@font-face{font-family:Satoshi-Variable;src:url(./Satoshi-Variable-CFg-z2ne.woff2) format("woff2"),url(./Satoshi-Variable-CfACykSx.woff) format("woff");font-display:swap;font-style:normal;font-weight:100 900}*{box-sizing:border-box}body{margin:0;background-color:var(--theme-surface-passive-background-color);color:var(--theme-typography-color-primary);font-family:var(--primitive-font-family-text, "Satoshi-Variable", sans-serif);min-height:100vh}#root{min-height:100vh}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);border:0;white-space:nowrap}:root{--grid-gutter-min: var(--primitive-layout-grid-gutter-min);--grid-col-min: var(--primitive-layout-grid-column-min);--grid-col-max: var(--primitive-layout-grid-column-max);--nav-gap-primary: var(--primitive-layout-grid-nav-gap-primary);--nav-gap-secondary: var(--primitive-layout-grid-nav-gap-secondary);--mobile-gutter-min: var(--primitive-layout-grid-mobile-gutter-min);--mobile-max: var(--primitive-layout-grid-mobile-max)}.page{display:grid;grid-template-columns:minmax(var(--grid-gutter-min),1fr) minmax(var(--grid-col-min),var(--grid-col-max)) minmax(var(--grid-gutter-min),min-content) minmax(var(--grid-col-min),var(--grid-col-max)) minmax(var(--grid-gutter-min),1fr);grid-template-rows:auto auto auto auto;row-gap:0;padding:0;align-content:start}.page-header{grid-column:1 / -1;grid-row:1 / 3;display:grid;grid-template-columns:subgrid;grid-template-rows:subgrid;row-gap:var(--primitive-spacing-md);padding:var(--primitive-spacing-lg) 0 var(--primitive-spacing-md) 0;background-color:var(--theme-surface-emphasis-background-color)}.page-content{grid-column:1 / -1;grid-row:3;display:grid;grid-template-columns:subgrid;grid-template-rows:auto auto;row-gap:var(--primitive-spacing-2xl);padding:var(--primitive-spacing-md) 0;background-color:var(--theme-surface-passive-background-color)}.page-header .nav-toggle{grid-column:4;grid-row:1;justify-self:end}.page-content .nav-secondary{grid-column:4;grid-row:1}.page-content .left{grid-column:2;grid-row:2}.page-content .left:has(.case-studies-page),.page-content .left:has(.case-study-detail-page){grid-column:2 / 5}.page-content .right{grid-column:4;grid-row:2}.page-content .content-grid{grid-column:2 / 5;grid-row:2;display:grid;grid-template-columns:subgrid;grid-auto-rows:auto;row-gap:var(--primitive-spacing-2xl);align-content:start;min-height:min-content}.content-row{display:contents}.content-row .col-left{grid-column:1;grid-row:var(--content-row)}.page>.page-footer{grid-column:2 / 5;grid-row:4;padding-top:var(--primitive-spacing-4xl);padding-bottom:var(--primitive-spacing-2xl);display:flex;flex-direction:column;gap:var(--primitive-spacing-xs)}.page-footer__main{margin:0}.content-row .col-right{grid-column:3;grid-row:var(--content-row);display:flex;flex-direction:column}.content-row .col-span{grid-column:1 / 4;grid-row:var(--content-row)}.content-row .col-right .release-info{flex:1;min-height:0}.masthead,.masthead-nav-group{display:contents}.nav-toggle{display:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;padding:var(--primitive-spacing-xs);border-radius:var(--theme-control-border-radius);color:var(--theme-typography-color-primary);cursor:pointer;line-height:0}.nav-toggle__icon{display:block;width:var(--primitive-spacing-lg);height:var(--primitive-spacing-lg);background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7.79944 0L10.0556 3.31496L14.0541 3.01208L12.8691 6.84289L15.5989 9.78017L11.865 11.2421L11.2705 15.2078L7.79944 13.2L4.32837 15.2078L3.73391 11.2421L1.52588e-05 9.78017L2.72981 6.84289L1.54479 3.01208L5.54324 3.31496L7.79944 0Z' fill='currentColor'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7.79944 0L10.0556 3.31496L14.0541 3.01208L12.8691 6.84289L15.5989 9.78017L11.865 11.2421L11.2705 15.2078L7.79944 13.2L4.32837 15.2078L3.73391 11.2421L1.52588e-05 9.78017L2.72981 6.84289L1.54479 3.01208L5.54324 3.31496L7.79944 0Z' fill='currentColor'/%3E%3C/svg%3E");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}.nav-toggle:hover{background-color:var(--theme-surface-passive-background-color)}.nav-toggle:focus-visible{outline:var(--theme-control-border-width) solid var(--theme-control-emphasis-idle-background-color);outline-offset:var(--primitive-spacing-xxs)}.logo{grid-column:3;grid-row:1;justify-self:center;margin:0}.logo a,.logo a:hover,.logo a:visited{text-decoration:none}.logo a:focus-visible{outline:var(--theme-control-border-width) solid var(--theme-control-emphasis-idle-background-color);outline-offset:var(--primitive-spacing-xxs);border-radius:var(--theme-surface-border-radius)}.logo:focus-visible{outline:var(--theme-control-border-width) solid var(--theme-control-emphasis-idle-background-color);outline-offset:var(--primitive-spacing-xxs);border-radius:var(--theme-surface-border-radius)}.nav-primary{grid-column:4;grid-row:2;justify-self:end;display:flex;gap:var(--nav-gap-primary);align-items:center}.nav-primary a{color:var(--theme-control-passive-color-default);text-decoration:none;font-size:var(--theme-control-passive-font-size);font-weight:var(--theme-control-passive-font-weight);line-height:var(--theme-control-passive-line-height);padding:var(--primitive-spacing-xs) var(--primitive-spacing-sm);border-radius:var(--theme-surface-border-radius);transition:color var(--primitive-motion-duration-interaction) var(--primitive-motion-easing-exit),background-color var(--primitive-motion-duration-interaction) var(--primitive-motion-easing-exit),font-weight var(--primitive-motion-duration-interaction) var(--primitive-motion-easing-exit);white-space:nowrap}.nav-primary a:hover,.nav-primary a:focus-visible{color:var(--theme-typography-color-primary);background-color:var(--theme-surface-passive-background-color);outline:none;transition:color var(--primitive-motion-duration-fast) var(--primitive-motion-easing-standard),background-color var(--primitive-motion-duration-fast) var(--primitive-motion-easing-standard),font-weight var(--primitive-motion-duration-fast) var(--primitive-motion-easing-standard)}.nav-primary a:focus-visible{outline:var(--theme-control-border-width) solid var(--theme-control-emphasis-idle-background-color);outline-offset:var(--primitive-spacing-xxs)}.nav-primary a.active{color:var(--theme-typography-color-primary);font-weight:var(--theme-typography-heading-font-weight);background-color:var(--theme-surface-passive-background-color)}.nav-secondary__item{margin:0;display:contents}.nav-secondary{justify-self:end;display:flex;gap:var(--nav-gap-secondary);align-items:center}.nav-secondary a{color:var(--theme-control-passive-color-default);text-decoration:none;font-size:var(--theme-control-passive-font-size);font-weight:var(--theme-control-passive-font-weight);line-height:var(--theme-control-passive-line-height);padding:var(--primitive-spacing-xs) var(--primitive-spacing-sm);border-radius:var(--theme-surface-border-radius);transition:color var(--primitive-motion-duration-interaction) var(--primitive-motion-easing-exit),background-color var(--primitive-motion-duration-interaction) var(--primitive-motion-easing-exit),font-weight var(--primitive-motion-duration-interaction) var(--primitive-motion-easing-exit);white-space:nowrap}.nav-secondary a:hover,.nav-secondary a:focus-visible{color:var(--theme-typography-color-primary);background-color:var(--theme-surface-passive-background-color);outline:none;transition:color var(--primitive-motion-duration-fast) var(--primitive-motion-easing-standard),background-color var(--primitive-motion-duration-fast) var(--primitive-motion-easing-standard),font-weight var(--primitive-motion-duration-fast) var(--primitive-motion-easing-standard)}.nav-secondary a:focus-visible{outline:var(--theme-control-border-width) solid var(--theme-control-emphasis-idle-background-color);outline-offset:var(--primitive-spacing-xxs)}.nav-secondary a.active{color:var(--theme-typography-color-primary);font-weight:var(--theme-typography-heading-font-weight);background-color:var(--theme-surface-passive-background-color)}.endorsement{display:flex;flex-direction:column;gap:var(--primitive-spacing-sm);margin:0;padding:var(--primitive-spacing-md) 0 var(--primitive-spacing-md) var(--primitive-spacing-md);border-left:var(--theme-control-border-width) solid var(--theme-surface-separator-color);position:relative}.endorsement:before{content:'"';font-size:var(--theme-typography-title-font-size);font-weight:var(--theme-typography-title-font-weight);line-height:1;color:var(--theme-typography-color-secondary);position:absolute;left:var(--primitive-spacing-md);top:var(--primitive-spacing-md)}.endorsement__avatar{flex-shrink:0;width:48px;height:48px;border-radius:50%;overflow:hidden;background-color:var(--theme-surface-passive-background-color);display:flex;align-items:center;justify-content:center}.endorsement__avatar-img{width:100%;height:100%;object-fit:cover}.endorsement__avatar-initials{font-size:var(--theme-typography-caption-font-size);font-weight:var(--theme-typography-heading-font-weight);color:var(--theme-typography-color-secondary)}.endorsement__meta{display:flex;flex-direction:column;gap:var(--primitive-spacing-xxs);min-width:0}.endorsement__name{font-size:var(--theme-typography-body-font-size);font-weight:var(--theme-typography-heading-font-weight)}.endorsement__headline{font-size:var(--theme-typography-caption-font-size);font-weight:var(--theme-typography-caption-font-weight);line-height:var(--theme-typography-caption-line-height);color:var(--theme-typography-color-secondary);margin:0}.endorsement__relationship{font-size:var(--theme-typography-caption-font-size);font-weight:var(--theme-typography-caption-font-weight);color:var(--theme-typography-color-secondary)}.endorsement__quote-block{margin:0;padding:0}.endorsement__quote{font-size:var(--theme-typography-body-font-size);font-weight:var(--theme-typography-body-font-weight);line-height:var(--theme-typography-body-line-height);font-style:italic;color:var(--theme-typography-body-color);margin:0;padding-left:var(--primitive-spacing-lg)}.endorsement__attribution{font-size:var(--theme-typography-caption-font-size);font-weight:var(--theme-typography-caption-font-weight);line-height:var(--theme-typography-caption-line-height);color:var(--theme-typography-color-secondary);margin:0}.endorsement__tags{display:flex;flex-wrap:wrap;gap:var(--primitive-spacing-xs);margin-top:var(--primitive-spacing-sm)}.endorsement__tag{font-size:var(--theme-typography-caption-font-size);font-weight:var(--theme-typography-caption-font-weight);line-height:var(--theme-typography-caption-line-height);color:var(--theme-typography-color-secondary);padding:var(--primitive-spacing-xs) var(--primitive-spacing-sm);border-radius:var(--theme-surface-border-radius);border:var(--theme-surface-separator-width) solid var(--theme-surface-separator-color);background-color:var(--theme-surface-passive-background-color)}.endorsements-page{display:flex;flex-direction:column;gap:var(--primitive-spacing-2xl)}.endorsements-list{display:flex;flex-direction:column;gap:var(--primitive-spacing-xl)}.endorsement-block{display:flex;flex-direction:column;gap:var(--primitive-spacing-md)}.content-row--hero .col-left,.content-row--hero .col-right{min-height:calc(3 * var(--primitive-spacing-2xl))}.page-hero{display:flex;flex-direction:column;gap:var(--primitive-spacing-lg);flex:1}.col-left .page-hero{justify-content:end;text-align:right}.list-stack{display:flex;flex-direction:column;gap:var(--primitive-spacing-2xl);width:100%;min-width:0}.cs-lead-in{display:flex;flex-direction:column;gap:var(--primitive-spacing-md)}div.cs-lead-in__cover{width:100%;aspect-ratio:1;background:#d9d9d9;border-radius:var(--theme-surface-border-radius)}img.cs-lead-in__cover{width:100%;height:auto;display:block;border-radius:var(--theme-surface-border-radius)}.cs-lead-in__meta,.cs-lead-in__excerpt{color:var(--theme-typography-color-secondary)}.case-study-detail-header__title{margin:0;align-self:stretch;text-align:right}.case-study-detail-page{display:flex;flex-direction:column;gap:var(--primitive-spacing-2xl)}.case-study-content>h1:first-child{display:none}.case-study-sidebar{display:flex;flex-direction:column;gap:var(--primitive-spacing-xl);position:sticky;top:var(--primitive-spacing-lg);align-items:flex-end;text-align:right}.case-study-toc__title{margin:0 0 var(--primitive-spacing-xs) 0;text-transform:uppercase;letter-spacing:.05em;text-align:right}.case-study-toc{align-self:stretch;display:none}.case-study-toc__list{margin:0;padding:0;list-style:none}.case-study-toc__item{margin:0}.case-study-toc__item--h3{padding-right:var(--primitive-spacing-md)}.case-study-toc__link{display:block;width:100%;text-align:right;padding:var(--primitive-spacing-xs) 0;border:none;background:none;font-family:inherit;font-size:var(--theme-typography-caption-font-size);font-weight:var(--theme-typography-caption-font-weight);line-height:var(--theme-typography-caption-line-height);color:var(--theme-typography-color-secondary);cursor:pointer;transition:color var(--primitive-motion-duration-interaction) var(--primitive-motion-easing-exit)}.case-study-toc__link:hover,.case-study-toc__link:focus-visible{color:var(--theme-typography-color-primary);outline:none;transition:color var(--primitive-motion-duration-fast) var(--primitive-motion-easing-standard)}.case-study-toc__link:focus-visible{outline:var(--theme-control-border-width) solid var(--theme-control-emphasis-idle-background-color);outline-offset:var(--primitive-spacing-xxs)}.case-study-sidebar-meta{display:flex;flex-direction:column;gap:var(--primitive-spacing-xs);align-items:flex-end;text-align:right}.case-study-sidebar-meta__date,.case-study-sidebar-meta__read{margin:0}.case-study-content{--case-study-measure: 68ch;text-align:left}.case-study-content h1,.case-study-content h2,.case-study-content h3,.case-study-content h4,.case-study-content h5,.case-study-content h6,.case-study-content p,.case-study-content blockquote,.case-study-content ul,.case-study-content ol{max-width:var(--case-study-measure)}.case-study-content p:has(img){max-width:none}.case-study-content img{max-width:100%;height:auto;display:block}.case-study-content h1{font-size:var(--theme-typography-title-font-size);font-weight:var(--theme-typography-title-font-weight);line-height:var(--theme-typography-title-line-height);color:var(--theme-typography-title-color);margin:0}.case-study-content h2{font-size:var(--theme-typography-title-font-size);font-weight:var(--theme-typography-title-font-weight);line-height:var(--theme-typography-title-line-height);color:var(--theme-typography-title-color);margin:var(--primitive-spacing-xl) 0 0 0}.case-study-content h2:first-child{margin-top:0}.case-study-content h3{font-size:var(--theme-typography-heading-font-size);font-weight:var(--theme-typography-heading-font-weight);line-height:var(--theme-typography-heading-line-height);color:var(--theme-typography-heading-color);margin:var(--primitive-spacing-lg) 0 0 0}.case-study-content h3:first-child{margin-top:0}.case-study-content h4,.case-study-content h5,.case-study-content h6{font-size:var(--theme-typography-body-font-size);font-weight:var(--theme-typography-heading-font-weight);line-height:var(--theme-typography-body-line-height);color:var(--theme-typography-heading-color);margin:var(--primitive-spacing-md) 0 0 0;text-transform:uppercase;letter-spacing:.05em}.case-study-content h4:first-child,.case-study-content h5:first-child,.case-study-content h6:first-child{margin-top:0}.case-study-content p,.case-study-content li,.case-study-content blockquote{font-size:var(--theme-typography-body-font-size);font-weight:var(--theme-typography-body-font-weight);line-height:var(--theme-typography-body-line-height);color:var(--theme-typography-body-color);margin:0}.case-study-content blockquote{padding-left:var(--primitive-spacing-lg);border-left:var(--theme-surface-separator-width) solid var(--theme-surface-separator-color)}.case-study-content ul,.case-study-content ol{padding-left:var(--primitive-spacing-lg)}.case-study-content li{margin-bottom:var(--primitive-spacing-xs)}.case-study-content li:last-child{margin-bottom:0}.case-study-content pre,.case-study-content code{font-size:var(--theme-typography-caption-font-size);font-weight:var(--theme-typography-body-font-weight);line-height:var(--theme-typography-body-line-height);color:var(--theme-typography-color-primary);font-family:ui-monospace,monospace;text-align:left}.case-study-content code{padding:.15em .35em;background-color:var(--theme-surface-emphasis-background-color);border-radius:var(--theme-surface-border-radius)}.case-study-content pre{margin:0;padding:var(--primitive-spacing-md);background-color:var(--theme-surface-emphasis-background-color);border-radius:var(--theme-surface-border-radius);overflow-x:auto}.case-study-content pre code{padding:0;background:none}.music-intro h1{margin-bottom:var(--primitive-spacing-lg)}.music-intro p{margin-bottom:0}.release-info__header{display:flex;flex-direction:column;gap:var(--primitive-spacing-xs);margin-bottom:var(--primitive-spacing-md)}.release-info__title{margin:0}.release-info__body{display:flex;flex-direction:column;gap:var(--primitive-spacing-md)}.release-info__description{margin:0}.release-info__section-heading{margin:0;text-transform:uppercase;letter-spacing:.05em}.release-info__tracklist-section{display:flex;flex-direction:column;gap:var(--primitive-spacing-xs)}.release-info__tracklist-toggle{display:flex;align-items:center;justify-content:space-between;gap:var(--primitive-spacing-sm);width:100%;padding:0;border:none;background:none;font-family:inherit;font-size:var(--theme-typography-caption-font-size);font-weight:var(--theme-typography-caption-font-weight);line-height:var(--theme-typography-caption-line-height);color:var(--theme-typography-color-secondary);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;text-align:left;transition:color var(--primitive-motion-duration-interaction) var(--primitive-motion-easing-exit)}.release-info__tracklist-toggle:hover,.release-info__tracklist-toggle:focus-visible{color:var(--theme-typography-color-primary);outline:none;transition:color var(--primitive-motion-duration-fast) var(--primitive-motion-easing-standard)}.release-info__tracklist-toggle:focus-visible{outline:var(--theme-control-border-width) solid var(--theme-control-emphasis-idle-background-color);outline-offset:var(--primitive-spacing-xxs)}.release-info__tracklist-toggle-icon{flex-shrink:0;font-size:1.2em;line-height:1}.release-info__credits-section{display:flex;flex-direction:column;gap:var(--primitive-spacing-xs)}.release-info__credits-toggle{display:flex;align-items:center;justify-content:space-between;gap:var(--primitive-spacing-sm);width:100%;padding:0;border:none;background:none;font-family:inherit;font-size:var(--theme-typography-caption-font-size);font-weight:var(--theme-typography-caption-font-weight);line-height:var(--theme-typography-caption-line-height);color:var(--theme-typography-color-secondary);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;text-align:left;transition:color var(--primitive-motion-duration-interaction) var(--primitive-motion-easing-exit)}.release-info__credits-toggle:hover,.release-info__credits-toggle:focus-visible{color:var(--theme-typography-color-primary);outline:none;transition:color var(--primitive-motion-duration-fast) var(--primitive-motion-easing-standard)}.release-info__credits-toggle:focus-visible{outline:var(--theme-control-border-width) solid var(--theme-control-emphasis-idle-background-color);outline-offset:var(--primitive-spacing-xxs)}.release-info__credits-toggle-icon{flex-shrink:0;font-size:1.2em;line-height:1}.release-info__credits[hidden]{display:none}.release-info__credits-text{margin:0}.release-info__tracklist[hidden]{display:none}.release-info__tracklist{display:flex;flex-direction:column;gap:var(--primitive-spacing-xs);list-style:decimal;padding-left:var(--primitive-spacing-lg);margin:0}.release-info__track{display:flex;justify-content:space-between;gap:var(--primitive-spacing-sm);margin:0}.release-info__track-title{flex:1 1 auto;min-width:0}.release-info__track-duration{flex-shrink:0}.release-info__link{display:inline-block;font-size:var(--theme-typography-caption-font-size);font-weight:var(--theme-typography-heading-font-weight);line-height:var(--theme-typography-caption-line-height)}.content-link,.cs-lead-in__title a,.case-study__back,.case-study-content a,.release-info__link,a.endorsement__name,.sd33ds-ProjectHero__title-link{color:var(--theme-typography-color-link-default);text-decoration:none;transition:color var(--primitive-motion-duration-interaction) var(--primitive-motion-easing-exit)}.content-link:visited,.cs-lead-in__title a:visited,.case-study__back:visited,.case-study-content a:visited,.release-info__link:visited,a.endorsement__name:visited,.sd33ds-ProjectHero__title-link:visited{color:var(--theme-typography-color-link-visited)}.content-link:hover,.cs-lead-in__title a:hover,.case-study__back:hover,.case-study-content a:hover,.release-info__link:hover,a.endorsement__name:hover,.sd33ds-ProjectHero__title-link:hover{color:var(--theme-typography-color-link-hover);transition:color var(--primitive-motion-duration-fast) var(--primitive-motion-easing-standard)}.content-link:focus-visible,.cs-lead-in__title a:focus-visible,.case-study__back:focus-visible,.case-study-content a:focus-visible,.release-info__link:focus-visible,a.endorsement__name:focus-visible,.sd33ds-ProjectHero__title-link:focus-visible{color:var(--theme-typography-color-link-focus);outline:var(--theme-control-border-width) solid var(--theme-control-emphasis-idle-background-color);outline-offset:var(--primitive-spacing-xxs);transition:color var(--primitive-motion-duration-fast) var(--primitive-motion-easing-standard)}.content-link:active,.cs-lead-in__title a:active,.case-study__back:active,.case-study-content a:active,.release-info__link:active,a.endorsement__name:active,.sd33ds-ProjectHero__title-link:active{color:var(--theme-typography-color-link-active);transition:color var(--primitive-motion-duration-fast) var(--primitive-motion-easing-standard)}.bandcamp-embed{width:100%;overflow:visible;line-height:0}.bandcamp-embed__iframe{display:block;border:none;width:100%;aspect-ratio:350 / 450;line-height:normal}.bandcamp-embed--track .bandcamp-embed__iframe{aspect-ratio:350 / 450}.left,.right{min-height:0}.left img,.right img{max-width:100%;height:auto;display:block}h1{font-size:var(--theme-typography-title-font-size);font-weight:var(--theme-typography-title-font-weight);line-height:var(--theme-typography-title-line-height);color:var(--theme-typography-title-color);margin:0 0 var(--primitive-spacing-lg) 0}h2{font-size:var(--theme-typography-heading-font-size);font-weight:var(--theme-typography-heading-font-weight);line-height:var(--theme-typography-heading-line-height);color:var(--theme-typography-heading-color);margin:0 0 var(--primitive-spacing-md) 0}p{font-size:var(--theme-typography-body-font-size);font-weight:var(--theme-typography-body-font-weight);line-height:var(--theme-typography-body-line-height);color:var(--theme-typography-body-color);margin:0 0 var(--primitive-spacing-md) 0}p:last-child{margin-bottom:0}.text-hero{font-size:var(--theme-typography-hero-font-size);font-weight:var(--theme-typography-hero-font-weight);line-height:var(--theme-typography-hero-line-height);color:var(--theme-typography-hero-color);margin:0 0 var(--primitive-spacing-lg) 0}.text-title{font-size:var(--theme-typography-title-font-size);font-weight:var(--theme-typography-title-font-weight);line-height:var(--theme-typography-title-line-height);color:var(--theme-typography-title-color);margin:0}.text-heading,.text-intro{font-size:var(--theme-typography-heading-font-size);font-weight:var(--theme-typography-heading-font-weight);line-height:var(--theme-typography-heading-line-height);color:var(--theme-typography-heading-color);margin:0}.text-body{font-size:var(--theme-typography-body-font-size);font-weight:var(--theme-typography-body-font-weight);line-height:var(--theme-typography-body-line-height);color:var(--theme-typography-body-color);margin:0}.text-caption{font-size:var(--theme-typography-caption-font-size);font-weight:var(--theme-typography-caption-font-weight);line-height:var(--theme-typography-caption-line-height);color:var(--theme-typography-color-secondary);margin:0}.text-body-emphasis{font-weight:var(--theme-typography-heading-font-weight)}.content-section{display:flex;flex-direction:column;gap:var(--primitive-spacing-md)}.content-section__title{padding-bottom:var(--primitive-spacing-xs);border-bottom:var(--theme-surface-separator-width) solid var(--theme-surface-separator-color);margin:0 0 var(--primitive-spacing-sm) 0}.content-entry{display:flex;flex-direction:column;gap:var(--primitive-spacing-md);padding:var(--primitive-spacing-md);background-color:var(--theme-surface-passive-background-color);border-radius:var(--theme-surface-border-radius)}.content-entry__header{display:flex;flex-direction:column;gap:var(--primitive-spacing-xs)}.content-meta{margin:0}.content-list{margin:0;padding-left:var(--primitive-spacing-lg)}.content-list li{margin-bottom:var(--primitive-spacing-xs)}.content-list li:last-child{margin-bottom:0}.cta-primary{display:inline-flex;align-items:center;justify-content:center;padding:var(--primitive-spacing-sm) var(--primitive-spacing-md);border-radius:var(--theme-control-border-radius);background-color:var(--theme-control-emphasis-idle-background-color);color:var(--theme-control-emphasis-idle-text-color);text-decoration:none;font-size:var(--theme-control-emphasis-font-size);font-weight:var(--theme-control-emphasis-font-weight);line-height:var(--theme-control-emphasis-line-height)}.cta-primary:hover,.cta-primary:focus-visible{background-color:var(--theme-control-emphasis-engaged-background-color);color:var(--theme-control-emphasis-idle-text-color);outline:none}.cta-primary:focus-visible{outline:var(--theme-control-border-width) solid var(--theme-control-emphasis-idle-background-color);outline-offset:var(--primitive-spacing-xxs)}.home-banner{margin-bottom:var(--primitive-spacing-md)}.home-banner img{width:100%;height:320px;object-fit:cover;display:block}@media (min-width: 901px){.home-banner img{height:400px}}.content-row--work-dashboard-metric.content-row--hero .col-left,.content-row--work-dashboard-metric.content-row--hero .col-right{min-height:unset}.content-row--work-dashboard-metric .col-left .work-dashboard__metric{margin-inline-start:0;width:100%}.content-row--work-dashboard-metric .col-right .work-dashboard__metric{margin-inline-end:0;width:100%}.work-dashboard__metric{display:flex;flex-direction:column;gap:var(--primitive-spacing-xs);justify-content:center;align-items:center;text-align:center;padding:var(--primitive-spacing-xl) var(--primitive-spacing-lg);border-radius:var(--theme-surface-border-radius);background-color:var(--theme-surface-emphasis-background-color)}.work-dashboard__metric-value{margin:0;display:inline-flex;align-items:flex-start;gap:var(--primitive-spacing-xxs);font-size:var(--primitive-font-size-ginormous);font-weight:var(--primitive-font-weight-black);line-height:1;letter-spacing:0;color:var(--theme-typography-color-primary)}.work-dashboard__metric-currency{font-size:var(--theme-typography-title-font-size);font-weight:var(--theme-typography-title-font-weight);line-height:var(--theme-typography-title-line-height)}.work-dashboard__metric-number{line-height:1}.work-dashboard__metric-label{margin:0;display:block;max-width:18rem;font-size:var(--theme-typography-title-font-size);font-weight:var(--primitive-font-weight-bold);line-height:var(--theme-typography-title-line-height);color:var(--theme-typography-color-primary)}.work-dashboard__metric--accent{background-color:#376b1e}.work-dashboard__metric--accent .work-dashboard__metric-value,.work-dashboard__metric--accent .work-dashboard__metric-label{color:#fff;max-width:none}.content-row--work-dashboard-featured .sd33ds-ProjectHero__logo{width:max-content;max-width:100%}.work-dashboard__featured-logo-signature{box-sizing:border-box;display:flex;align-items:center;justify-content:flex-start;min-height:var(--primitive-spacing-4xl);padding-block:var(--primitive-spacing-xs)}.work-dashboard__featured-logo{display:flex;align-items:center}.work-dashboard__featured-logo-signature .work-dashboard__featured-logo svg{display:block;width:230px;max-width:100%;height:auto;max-height:var(--primitive-spacing-3xl);box-sizing:border-box}.work-dashboard__featured-logo__ej-type path{fill:var(--theme-typography-color-primary)}.work-dashboard__featured-logo__bja-primary{fill:var(--theme-typography-color-primary)}.work-dashboard__featured-logo__bja-secondary{fill:var(--theme-typography-color-secondary)}.work-dashboard__featured-logo__lls-type path{fill:var(--theme-typography-color-primary)}@media (max-width: 900px){.page{grid-template-columns:1fr;grid-template-rows:auto auto auto;row-gap:0;padding:0}.page-header{grid-row:1;grid-template-columns:minmax(var(--mobile-gutter-min),1fr) minmax(0,var(--mobile-max)) minmax(var(--mobile-gutter-min),1fr);grid-template-rows:auto;row-gap:0;padding:var(--primitive-spacing-md) 0}.page-header .masthead{grid-column:2;grid-row:1;display:flex;flex-direction:row;flex-wrap:nowrap;align-items:flex-start;justify-content:space-between;gap:var(--primitive-spacing-sm)}.page-header .masthead-nav-group{display:flex;flex-direction:row;align-items:flex-start;gap:var(--primitive-spacing-sm);flex-shrink:0}.page-header .logo{grid-column:auto;grid-row:auto;justify-self:start;flex-shrink:1;min-width:0;display:flex;align-items:center;min-height:calc(var(--primitive-spacing-lg) + 2 * var(--primitive-spacing-xs))}.page-header .nav-toggle{grid-column:auto;grid-row:auto;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.page-header .nav-primary{display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;flex-wrap:nowrap;gap:var(--primitive-spacing-lg);margin:0;padding:0}.page-header .nav-primary:not(:has(.active)){display:none}.page[data-nav-open=true] .page-header .nav-primary{display:flex}.page-header .nav-primary a:not(.active){display:none}.page[data-nav-open=true] .page-header .nav-primary a:not(.active){display:block}.page-header .nav-primary a{background-color:transparent;font-size:var(--theme-control-passive-font-size);font-weight:var(--theme-control-passive-font-weight);line-height:var(--theme-control-passive-line-height);color:var(--theme-typography-color-secondary)}.page-header .nav-primary a:hover,.page-header .nav-primary a:focus-visible{color:var(--theme-typography-color-primary);background-color:var(--theme-surface-passive-background-color)}.page-header .nav-primary a.active{color:var(--theme-typography-color-primary);font-weight:var(--theme-typography-heading-font-weight);background-color:var(--theme-surface-passive-background-color)}.page-content{grid-row:2;grid-template-columns:minmax(var(--mobile-gutter-min),1fr) minmax(0,var(--mobile-max)) minmax(var(--mobile-gutter-min),1fr);grid-template-rows:auto auto auto;row-gap:var(--primitive-spacing-md);padding:var(--primitive-spacing-md) 0}.page-content .nav-secondary{grid-column:2;grid-row:1;justify-self:stretch;flex-wrap:wrap;justify-content:flex-end}.page-content .left{grid-column:2;grid-row:2;justify-self:stretch}.page-content .left:has(.case-studies-page),.page-content .left:has(.case-study-detail-page){grid-column:2}.page-content .right{grid-column:2;grid-row:3;justify-self:stretch;margin-top:var(--primitive-spacing-md)}.page-content .content-grid{grid-column:2;grid-row:2;display:flex;flex-direction:column;gap:var(--primitive-spacing-2xl);min-height:min-content}.page-content .content-grid:has(.content-row--work-dashboard-metric){gap:var(--primitive-spacing-md)}.page>.page-footer{grid-column:1;grid-row:3;padding-left:var(--mobile-gutter-min);padding-right:var(--mobile-gutter-min)}.content-row{display:flex;flex-direction:column;gap:var(--primitive-spacing-md)}.content-row .col-left,.content-row .col-right,.content-row .col-span{grid-column:unset;grid-row:unset}.case-study-sidebar{position:static;padding-top:var(--primitive-spacing-xl);border-top:var(--theme-surface-separator-width) solid var(--theme-surface-separator-color)}.case-study-toc{display:none}.work-dashboard__metric{min-height:auto;padding:var(--primitive-spacing-md)}}:root{--edj-brand-accent: #FAD141;--edj-brand-accent-dark: #3F4041}:root{--bja-brand-accent: #03B674;--bja-brand-accent-dark: #036656}:root{--lls-brand-accent: #E88826;--lls-brand-accent-mid: #DB6A26;--lls-brand-accent-dark: #BE3B26}#portfolio-edj{--client-brand-accent: var(--edj-brand-accent);--client-placeholder-bg: linear-gradient( 145deg, var(--theme-surface-emphasis-background-color) 0%, var(--theme-surface-passive-background-color) 100% );--client-placeholder-label-color: var(--theme-typography-color-secondary)}#portfolio-bja{--client-brand-accent: var(--bja-brand-accent);--client-placeholder-bg: linear-gradient( 145deg, var(--bja-brand-accent-dark) 0%, color-mix(in srgb, var(--bja-brand-accent-dark) 40%, var(--theme-surface-passive-background-color)) 100% );--client-placeholder-label-color: color-mix(in srgb, #fff 70%, var(--bja-brand-accent));--theme-control-emphasis-idle-background-color: var(--bja-brand-accent);--theme-control-emphasis-engaged-background-color: var(--bja-brand-accent-dark)}#portfolio-lls{--client-brand-accent: var(--lls-brand-accent-mid);--client-placeholder-bg: linear-gradient( 145deg, color-mix(in srgb, var(--lls-brand-accent) 25%, var(--theme-surface-emphasis-background-color)) 0%, var(--theme-surface-passive-background-color) 100% );--client-placeholder-label-color: var(--theme-typography-color-secondary)}.portfolio-client-hero-text{display:flex;flex-direction:column;align-items:flex-start;gap:var(--primitive-spacing-md);padding:var(--primitive-spacing-3xl) 0 var(--primitive-spacing-2xl)}.portfolio-client-hero-text .text-hero{margin:0;letter-spacing:-.01em}.portfolio-client-eyebrow{margin:0;font-size:var(--theme-typography-caption-font-size);font-weight:var(--theme-typography-heading-font-weight);line-height:var(--theme-typography-caption-line-height);color:var(--theme-typography-color-primary);text-transform:uppercase;letter-spacing:.12em}@media (prefers-color-scheme: dark){.portfolio-client-eyebrow{color:var(--client-brand-accent)}}.portfolio-client-hero-text__desc{max-width:66ch;color:var(--theme-typography-color-secondary)}.portfolio-client-image{width:100%;display:block;object-fit:cover;border-radius:var(--theme-surface-border-radius)}.portfolio-client-image--hero{aspect-ratio:21 / 8;min-height:var(--primitive-spacing-5xl);object-fit:contain}.portfolio-client-stat-block{display:flex;flex-direction:column;gap:var(--primitive-spacing-xs);padding:var(--primitive-spacing-xl) var(--primitive-spacing-lg);border-radius:var(--theme-surface-border-radius);background-color:var(--theme-surface-emphasis-background-color);height:100%;box-sizing:border-box}.portfolio-client-stat-block__value{margin:0;display:inline-flex;align-items:flex-start;gap:var(--primitive-spacing-xxs);font-size:var(--primitive-font-size-ginormous);font-weight:var(--primitive-font-weight-bold);line-height:1;letter-spacing:-.02em;color:var(--theme-typography-color-primary)}@media (prefers-color-scheme: dark){.portfolio-client-stat-block__value{color:var(--client-brand-accent)}}.portfolio-client-stat-block__currency{font-size:var(--theme-typography-title-font-size);font-weight:var(--theme-typography-title-font-weight);line-height:var(--theme-typography-title-line-height);padding-top:.15em}.portfolio-client-stat-block__label{margin:0;font-size:var(--theme-typography-body-font-size);font-weight:var(--theme-typography-body-font-weight);line-height:var(--theme-typography-body-line-height);color:var(--theme-typography-color-secondary)}.portfolio-client-meta-band{display:flex;flex-direction:column;gap:0;margin:0;padding:0;list-style:none}.portfolio-client-meta-item{display:flex;gap:var(--primitive-spacing-lg);padding:var(--primitive-spacing-sm) 0;border-bottom:var(--theme-surface-separator-width) solid var(--theme-surface-separator-color)}.portfolio-client-meta-item:first-child{border-top:var(--theme-surface-separator-width) solid var(--theme-surface-separator-color)}.portfolio-client-meta-item__key{flex-shrink:0;min-width:5rem;font-size:var(--theme-typography-caption-font-size);font-weight:var(--theme-typography-heading-font-weight);line-height:var(--theme-typography-caption-line-height);color:var(--theme-typography-color-secondary);text-transform:uppercase;letter-spacing:.05em;padding-top:.15em}.portfolio-client-meta-item__value{font-size:var(--theme-typography-body-font-size);font-weight:var(--theme-typography-body-font-weight);line-height:var(--theme-typography-body-line-height);color:var(--theme-typography-color-primary)}.portfolio-client-chapter{display:flex;flex-direction:column;gap:var(--primitive-spacing-md)}.portfolio-client-chapter__title{margin:0;font-size:var(--theme-typography-title-font-size);font-weight:var(--theme-typography-title-font-weight);line-height:var(--theme-typography-title-line-height);color:var(--theme-typography-title-color)}.portfolio-client-chapter__body{display:flex;flex-direction:column;gap:var(--primitive-spacing-sm)}.portfolio-client-chapter__body .text-body{color:var(--theme-typography-color-secondary)}.portfolio-client-chapter__bullets{margin:0;padding-left:var(--primitive-spacing-lg);display:flex;flex-direction:column;gap:var(--primitive-spacing-xs)}.portfolio-client-chapter__bullets li{font-size:var(--theme-typography-body-font-size);font-weight:var(--theme-typography-body-font-weight);line-height:var(--theme-typography-body-line-height);color:var(--theme-typography-body-color)}.content-row--client-stat .col-left .portfolio-client-stat-block,.content-row--client-stat .col-right .portfolio-client-stat-block{width:100%}.content-row--client-chapter .col-left,.content-row--client-chapter .col-right{display:flex;flex-direction:column}.portfolio-client-chapter-block{display:flex;flex-direction:column;gap:var(--primitive-spacing-xl)}@media (max-width: 900px){.portfolio-client-hero-text{padding:var(--primitive-spacing-2xl) 0 var(--primitive-spacing-xl)}.portfolio-client-hero-text__desc{max-width:none}.portfolio-client-image--hero{aspect-ratio:16 / 9;min-height:var(--primitive-spacing-4xl)}}html[data-debug-grid=true] main.page{outline:3px solid #e63946;outline-offset:-1px}html[data-debug-grid=true] .page-header{outline:3px solid #f4a261;outline-offset:-1px}html[data-debug-grid=true] .page-content{outline:3px solid #2a9d8f;outline-offset:-1px}html[data-debug-grid=true] .page-content .nav-secondary{outline:3px dashed #e9c46a;outline-offset:-2px}html[data-debug-grid=true] .content-grid{outline:3px solid #264653;outline-offset:-2px}html[data-debug-grid=true] .content-row .col-left{outline:3px solid #9b5de5;outline-offset:-2px}html[data-debug-grid=true] .content-row .col-right{outline:3px solid #f15bb5;outline-offset:-2px}html[data-debug-grid=true] .content-row .col-span{outline:3px solid #00bbf9;outline-offset:-2px}html[data-debug-grid=true] .page-content .left{outline:3px solid #ee6c4d;outline-offset:-2px}html[data-debug-grid=true] .page-content .right{outline:3px solid #3d5a80;outline-offset:-2px}html[data-debug-grid=true] .page>.page-footer{outline:3px solid #bc6c25;outline-offset:-1px}html[data-debug-grid=true] .page-header .logo{outline:2px dotted #457b9d;outline-offset:2px}html[data-debug-grid=true] .page-header .nav-primary{outline:2px dotted #1d3557;outline-offset:2px}.sd33ds-LogoWordmark{box-sizing:border-box;display:inline-block;margin:0;font-family:var(--primitive-font-family-text, "Satoshi-Variable", sans-serif);font-size:var(--theme-typography-body-font-size);font-weight:var(--theme-typography-heading-font-weight);line-height:var(--theme-typography-heading-line-height);color:var(--theme-typography-color-primary);text-transform:uppercase;white-space:nowrap;letter-spacing:10%}.sd33ds-SectionHeader{margin:0;width:100%;padding-bottom:var(--primitive-spacing-md);border-bottom:var(--primitive-border-width-thick) solid var(--theme-surface-separator-color)}.sd33ds-SectionHeader__title{margin:0;font-size:var(--theme-typography-heading-font-size);font-weight:var(--theme-typography-heading-font-weight);line-height:var(--theme-typography-heading-line-height);color:var(--theme-typography-heading-color)}.sd33ds-ProjectKpiTag{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;padding:var(--primitive-spacing-xxs, 4px) var(--primitive-spacing-xs, 8px);border-radius:var(--theme-control-border-radius, 4px);font-size:var(--theme-typography-body-font-size, 20px);font-weight:var(--theme-typography-heading-font-weight, 600);line-height:var(--theme-typography-body-line-height, 1.5);color:var(--theme-typography-body-color)}.sd33ds-ProjectHero{box-sizing:border-box;width:100%;max-width:100%;margin:0;display:flex;flex-direction:column;align-items:flex-start;gap:var(--primitive-spacing-2xl, 48px);padding:var(--primitive-spacing-3xl, 64px) var(--primitive-spacing-xl, 32px) var(--primitive-spacing-xl, 32px) var(--primitive-spacing-3xl, 64px);border-radius:var(--theme-surface-border-radius);background-color:var(--theme-surface-emphasis-background-color, #fff);overflow:clip}.sd33ds-ProjectHero__logo{flex-shrink:0;width:100%}.sd33ds-ProjectHero__main{display:flex;flex-direction:column;align-items:flex-start;gap:var(--primitive-spacing-lg, 24px);width:100%}.sd33ds-ProjectHero__title{margin:0;width:100%;font-size:var(--theme-typography-hero-font-size, 39px);font-weight:var(--theme-typography-hero-font-weight, 700);line-height:var(--theme-typography-hero-line-height, 1.2);color:var(--theme-typography-hero-color)}.sd33ds-ProjectHero__kpis{display:flex;flex-wrap:wrap;align-items:flex-start;align-content:flex-start;gap:var(--primitive-spacing-xs, 8px) var(--primitive-spacing-sm, 12px);margin:0;padding:0;width:100%;list-style:none}.sd33ds-ProjectHero__kpi{display:inline-flex;margin:0;padding:0}.sd33ds-ProjectHero__description{margin:0;width:100%;font-size:var(--theme-typography-body-font-size, 20px);font-weight:var(--theme-typography-body-font-weight, 400);line-height:var(--theme-typography-body-line-height, 1.5);color:var(--theme-typography-body-color)}.sd33ds-ProjectHero__footer{box-sizing:border-box;width:100%;margin:0;padding-top:var(--primitive-spacing-lg, 24px);border-top:var(--primitive-border-width-thick, 3px) solid var(--theme-surface-separator-color);display:flex;justify-content:flex-end;align-items:flex-end}.sd33ds-ProjectHero__cta{display:inline-flex;align-items:center;justify-content:center;padding:var(--primitive-spacing-xs, 8px);border-radius:var(--theme-control-border-radius, 4px);font-size:var(--theme-typography-body-font-size, 20px);font-weight:var(--theme-typography-heading-font-weight, 600);line-height:var(--theme-typography-body-line-height, 1.5);color:var(--theme-typography-color-link-default);text-decoration:none;text-align:center;white-space:nowrap}.sd33ds-ProjectHero__cta:hover{text-decoration:underline}.sd33ds-ProjectHero__cta:focus-visible{outline:2px solid var(--theme-typography-color-link-default);outline-offset:2px}.content-row--contact .col-left{display:flex;align-items:center;justify-content:flex-end}.contact-portrait{margin:0;width:100%}.contact-portrait img{display:block;width:100%;height:auto;border-radius:var(--theme-surface-border-radius)}.contact-copy{max-width:36rem}.contact-links{display:flex;flex-wrap:wrap;align-items:center;gap:var(--primitive-spacing-md) var(--primitive-spacing-lg);margin-top:var(--primitive-spacing-xs)}.contact-link{font-size:var(--theme-typography-body-font-size);font-weight:var(--theme-typography-heading-font-weight);color:var(--theme-typography-link-color);text-decoration:underline;text-underline-offset:.15em}.contact-link:hover,.contact-link:focus-visible{color:var(--theme-typography-link-hover-color)}.contact-link:focus-visible{outline:var(--theme-control-border-width) solid var(--theme-control-emphasis-idle-background-color);outline-offset:var(--primitive-spacing-xxs)}@media (max-width: 900px){.content-row--contact .col-left{justify-content:center}.col-left .page-hero,.contact-copy{text-align:left}.contact-links{flex-direction:column;align-items:flex-start}}.nf-wrap{position:relative;width:100%;min-height:100dvh;background:transparent;overflow:visible}.nf-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;image-rendering:pixelated;z-index:0;pointer-events:none}.page:has(.nf-wrap) .page-content{background-color:transparent}.page:has(.nf-wrap) .page-header{position:relative;z-index:10}.nf-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2.5rem;pointer-events:none;z-index:1}.nf-title{margin:0;font-size:clamp(8rem,40vw,52vw);font-weight:900;line-height:.85;letter-spacing:-.04em;color:var(--theme-typography-color-primary);text-shadow:0 0 120px var(--theme-control-emphasis-idle-background-color),0 0 40px var(--theme-control-emphasis-idle-background-color),0 0 8px var(--theme-typography-color-primary);-webkit-user-select:none;user-select:none}@media (max-width: 900px){.nf-overlay{padding:1rem}.nf-title{font-size:clamp(6rem,45vw,52vw)}}@media (prefers-reduced-motion: reduce){.nf-canvas{display:none}.nf-title{text-shadow:none}}
