/* Shared public navigation and footer, generated from the approved previews. */
html[data-site-shell] body{overflow-x:clip;}
html:root[data-site-shell] body .site-header:not(.is-pinned){position:relative;display:flex!important;align-items:center!important;min-height:94px;box-sizing:border-box;padding:20px!important;}
html:root[data-site-shell] body .site-header .logo,
html:root[data-site-shell] body .site-header .logo-wrap{margin:0!important;padding:0!important;}
html:root[data-site-shell] body .site-header :is(nav a,.logo a,.site-search-trigger,.site-email-trigger){display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:40px;margin:0;min-height:0;padding:0 20px!important;border-radius:999px;text-decoration:none!important;transform:scale(1)!important;transition:transform .2s ease,box-shadow .2s ease!important;}
html:root[data-site-shell] body .site-header .logo a{font-size:20px!important;white-space:nowrap!important;}
html:root[data-site-shell] body .site-header nav a{font-size:14px!important;}
html:root[data-site-shell] body .site-header.is-pinned .logo a{font-size:19.2px!important;}
html:root[data-site-shell] body .site-header.is-pinned nav a{font-size:13.44px!important;}
html:root[data-site-shell] body .site-header :is(nav a,.logo a,.site-search-trigger,.site-email-trigger)::before{inset:0;height:100%;border-radius:999px;background:transparent;}
html:root[data-site-shell]:not([data-dark-project]) body .site-header :is(nav a,.logo a,.site-search-trigger,.site-email-trigger),
html:root[data-site-shell] body .site-header.is-pinned :is(nav a,.logo a,.site-search-trigger,.site-email-trigger){color:#111!important;}
html:root[data-site-shell]:where([data-dark-project]) body .site-header:where(:not(.is-pinned)) :is(nav a,.logo a,.site-search-trigger,.site-email-trigger){color:#f5f5f5!important;}
html:root[data-site-shell] body .site-header :is(nav a,.logo a,.site-search-trigger,.site-email-trigger)[aria-current]::before{background:#3a3a3a;}
html:root[data-site-shell] body .site-header :is(nav a,.logo a,.site-search-trigger,.site-email-trigger)[aria-current]{color:#fff!important;}
html:root[data-site-shell] body .site-header :is(nav a,.logo a,.site-search-trigger,.site-email-trigger):is(:hover,:focus-visible)::before{background:#000;}
html:root[data-site-shell] body .site-header :is(nav a,.logo a,.site-search-trigger,.site-email-trigger):is(:hover,:focus-visible),
html:root[data-site-shell] body .site-header :is(nav a,.logo a,.site-search-trigger,.site-email-trigger):is(:hover,:focus-visible) *{color:#fff!important;}
html:root[data-site-shell] body .site-header :is(nav a,.logo a,.site-search-trigger,.site-email-trigger):is(:hover,:focus-visible){transform:scale(1.1)!important;box-shadow:0 3px 8px rgba(0,0,0,.14);}
html:root[data-site-shell] body .site-header button.site-search-trigger{width:40px;padding:8px!important;flex-basis:40px;}
html:root[data-site-shell] body .site-header a.site-email-trigger{position:relative!important;isolation:isolate;width:40px;padding:8px!important;flex:0 0 40px;}
html[data-site-shell] .site-header .site-email-trigger::before{content:"";position:absolute;z-index:-1;pointer-events:auto;cursor:pointer;}
html[data-site-shell] .site-email-trigger svg{display:block;flex:0 0 24px;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
html[data-site-shell] .site-header.is-pinned .site-email-trigger svg{transform:scale(1.2);transform-origin:center;}
html:root[data-site-shell] body .site-header nav{column-gap:12px;margin-top:0!important;margin-bottom:0!important;padding-top:0!important;padding-bottom:0!important;}
html[data-site-shell] .site-header :is(nav a,.logo a,.site-search-trigger,.site-email-trigger):focus-visible{outline:2px solid #777;outline-offset:3px;}
html[data-site-shell] .site-header :focus:not(:focus-visible){outline:none!important;}
html:root[data-site-shell][data-page-layout="home"] body .site-header{position:relative!important;top:auto!important;}
html[data-site-shell] .project-contact-cta{padding-top:76.8px;padding-bottom:76.8px;}
@media(min-width:741px){html:root[data-site-shell] body .site-header.is-pinned{height:auto!important;min-height:64px!important;padding:12px 20px!important;}}
@media(max-width:932px){
 html:root[data-site-shell] body .site-header .logo-container{gap:12px;}
 html:root[data-site-shell] body .site-header .site-email-trigger{order:1;}
 html:root[data-site-shell] body .site-header .site-search-trigger-mobile{order:2;}
 html:root[data-site-shell] body .site-header .hamburger-click-area{width:40px;height:40px;flex-basis:40px;}
 html:root[data-site-shell] body .site-header>.nav-container{display:none!important;}
 html:root[data-site-shell] body .responsive-nav nav a{border-radius:999px;padding:12px 24px!important;color:#111!important;}
 html:root[data-site-shell] body .responsive-nav nav a[aria-current]{background:#3a3a3a;color:#fff!important;}
 html:root[data-site-shell] body .responsive-nav nav a:is(:hover,:focus-visible){background:#000;color:#fff!important;}
}
@media(min-width:933px){
 html:root[data-site-shell] body .site-header .hamburger-click-area,
 html:root[data-site-shell] body .site-header .site-email-trigger,
 html:root[data-site-shell] body .site-header .site-search-trigger-mobile{display:none!important;}
}
@media(max-width:540px){html[data-site-shell] .project-contact-cta{padding-top:57.6px;padding-bottom:57.6px;}}
@media(max-width:360px){
 html:root[data-site-shell] body .site-header .logo a,
 html:root[data-site-shell] body .site-header.is-pinned .logo a{font-size:16px!important;line-height:20px;}
}
@media(prefers-reduced-motion:reduce){html:root[data-site-shell] body .site-header :is(nav a,.logo a,.site-search-trigger,.site-email-trigger){transform:none!important;transition:none!important;}}

.site-shell-content{position:relative;z-index:1;display:flow-root;background:var(--site-shell-surface,#ededed);}
.site-shell-content::after{content:"";position:absolute;left:0;right:0;bottom:-32px;height:32px;pointer-events:none;background:linear-gradient(to bottom,rgba(0,0,0,.10),rgba(0,0,0,.035) 40%,transparent);}
html:root[data-site-shell] body .site-shell-footer{position:sticky!important;bottom:0;top:auto;z-index:0;box-sizing:border-box;width:100%!important;max-width:none!important;float:none!important;clear:both;display:flow-root;margin:0!important;padding:32px 20px!important;max-height:none!important;height:auto!important;overflow:visible!important;clip-path:none!important;transform:none!important;background:#e4e4e4!important;--sticky-fit:1;}
html:root[data-site-shell] body .site-shell-footer .footer-text::before{display:none;}
@media(max-width:932px){
 html:root[data-site-shell] body .site-shell-footer .footer-text{font-size:calc(20px * var(--sticky-fit));line-height:calc(30px * var(--sticky-fit));}
}

/* The marker follows the text line rather than the desktop row height. */
html:root[data-site-shell] body .site-shell-footer .footer-text :is(a,.analytics-settings){
 display:inline-block!important;vertical-align:middle;line-height:1.2!important;
 width:auto;max-width:100%;padding:0!important;margin-block:0;
 transition:background-color .18s ease,color .18s ease,box-shadow .18s ease!important;
}
html:root[data-site-shell] body .site-shell-footer .footer-text :is(a,.analytics-settings):is(:hover,:focus-visible){
 transition:background-color .18s ease,color .18s ease,box-shadow .18s ease!important;
}
@media(min-width:933px){
 html:root[data-site-shell] body .site-shell-footer .footer-text,
 html:root[data-site-shell] body .site-shell-footer .footer-text :is(a,.analytics-settings){font-size:16px!important;}
 html:root[data-site-shell] body .site-shell-footer .footer-link-group{column-gap:26px;row-gap:26px;min-height:40px;}
 html:root[data-site-shell] body .site-shell-footer .footer-company{display:flex;align-items:center;justify-content:center;min-height:40px;}
}
@media(prefers-reduced-motion:reduce){
 html:root[data-site-shell] body .site-shell-footer .footer-text :is(a,.analytics-settings),
 html:root[data-site-shell] body .site-shell-footer .footer-text :is(a,.analytics-settings):is(:hover,:focus-visible){transition:none!important;}
}


/* Match the shared header capsules: rounded hit area, centered 10% scale and shadow. */
html:root[data-site-shell] body .site-shell-footer .footer-text :is(a,.analytics-settings),
html:root[data-site-shell] body .site-shell-footer .footer-text :is(a,.analytics-settings):is(:hover,:focus-visible){
 box-sizing:border-box;position:relative;display:inline-flex!important;align-items:center;justify-content:center;
 min-height:40px;max-width:100%;padding:8px 20px!important;line-height:1.2!important;border:0;border-radius:999px!important;
 background:transparent!important;box-shadow:none!important;text-decoration:none!important;
 transform:scale(1)!important;transform-origin:center;
 transition:transform .2s ease,box-shadow .2s ease!important;
}
html:root[data-site-shell] body .site-shell-footer .footer-text :is(a,.analytics-settings):is(:hover,:focus-visible){
 background:#000!important;color:#fff!important;transform:scale(1.1)!important;box-shadow:0 3px 8px rgba(0,0,0,.14)!important;
}
html:root[data-site-shell] body .site-shell-footer .footer-text :is(a,.analytics-settings):is(:hover,:focus-visible) *{color:#fff!important;background:transparent!important;}
html:root[data-site-shell] body .site-shell-footer .footer-text :is(a,.analytics-settings):focus-visible{outline:2px solid #111;outline-offset:3px;}
html:root[data-site-shell] body .site-shell-footer{padding:40px 20px!important;}
@media(min-width:933px){
 html:root[data-site-shell] body .site-shell-footer .footer-text{gap:20px;}
 html:root[data-site-shell] body .site-shell-footer .footer-link-group{column-gap:32px;row-gap:20px;min-height:40px;}
 html:root[data-site-shell] body .site-shell-footer .footer-company{min-height:40px;}
}
@media(max-width:932px){
 html:root[data-site-shell] body .site-shell-footer{padding-top:calc(40px * var(--sticky-fit))!important;padding-bottom:calc(40px * var(--sticky-fit) + env(safe-area-inset-bottom,0px))!important;}
 html:root[data-site-shell] body .site-shell-footer .footer-text :is(a,.analytics-settings),
 html:root[data-site-shell] body .site-shell-footer .footer-text :is(a,.analytics-settings):is(:hover,:focus-visible){min-height:calc(40px * var(--sticky-fit));padding:calc(8px * var(--sticky-fit)) calc(20px * var(--sticky-fit))!important;}
 html:root[data-site-shell] body .site-shell-footer .footer-link-group{gap:calc(16px * var(--sticky-fit));}
 html:root[data-site-shell] body .site-shell-footer .footer-section-divider{margin-top:calc(24px * var(--sticky-fit));margin-bottom:calc(24px * var(--sticky-fit));}
}
@media(prefers-reduced-motion:reduce){
 html:root[data-site-shell] body .site-shell-footer .footer-text :is(a,.analytics-settings),
 html:root[data-site-shell] body .site-shell-footer .footer-text :is(a,.analytics-settings):is(:hover,:focus-visible){transform:none!important;transition:none!important;}
}

/* The footer keeps the same light surface on light and dark project pages. */
html:root[data-site-shell] body .site-shell-footer,
html:root[data-site-shell] body .site-shell-footer .footer-text,
html:root[data-site-shell] body .site-shell-footer .footer-text :is(a,.analytics-settings){color:#4d4d4d!important;}
html:root[data-site-shell] body .site-shell-footer .footer-text :is(a,.analytics-settings):is(:hover,:focus-visible),
html:root[data-site-shell] body .site-shell-footer .footer-text :is(a,.analytics-settings):is(:hover,:focus-visible) *{color:#fff!important;}
html:root[data-site-shell] body .site-shell-footer .footer-text a{text-decoration:none!important;}
html:root[data-site-shell] body .site-shell-footer .footer-text :is(a,.analytics-settings):not(:hover):not(:focus-visible){color:#4d4d4d!important;}
/* Related-work headings retain their surface-aware heading colour when linked. */
html[data-site-shell] .other-projects-title a{color:inherit!important;font:inherit;text-decoration:none!important;}
html[data-site-shell] .other-projects-title a:focus-visible{outline:2px solid currentColor;outline-offset:4px;}
