/* Motion follows the visitor: short transitions, stable controls, native scrolling. */
:root{scroll-padding-top:calc(var(--navigation-height,132px) + 12px);--travel-distance:14px}
[id]{scroll-margin-top:calc(var(--navigation-height,132px) + 12px)}
#main:focus:not(:focus-visible),h1[tabindex="-1"]:focus{outline:none}
:where(a,button,input):focus-visible{outline:2px solid #b5ddd9;outline-offset:5px}
html[data-navigation-direction="back"]{--travel-distance:-14px}
.header{view-transition-name:site-header}
::view-transition{pointer-events:none}
::view-transition-old(root){animation:fluid-exit 170ms ease-out both;mix-blend-mode:normal}
::view-transition-new(root){animation:fluid-enter 420ms cubic-bezier(.16,1,.3,1) both;mix-blend-mode:normal}
::view-transition-group(site-header){animation:none}
::view-transition-old(site-header){display:none}
::view-transition-new(site-header){animation:none;mix-blend-mode:normal}
::view-transition-group(research-visual){animation-duration:520ms;animation-timing-function:cubic-bezier(.22,1,.36,1);overflow:hidden}
::view-transition-old(research-visual),::view-transition-new(research-visual){height:100%;object-fit:cover;mix-blend-mode:normal}
::view-transition-old(research-visual){animation:fluid-image-out 300ms ease both}
::view-transition-new(research-visual){animation:fluid-image-in 400ms ease both}
@keyframes fluid-exit{to{opacity:0;transform:translateY(calc(var(--travel-distance)*-.6))}}
@keyframes fluid-enter{from{opacity:0;transform:translateY(var(--travel-distance))}to{opacity:1;transform:translateY(0)}}
@keyframes fluid-image-out{to{opacity:0}}
@keyframes fluid-image-in{from{opacity:0}to{opacity:1}}
.is-navigating body:after{content:"";position:fixed;inset:0 0 auto;height:2px;z-index:2000;background:linear-gradient(90deg,transparent,#88cfc6,#d7c6a2,transparent);background-size:200% 100%;animation:fluid-signal 1s linear infinite;pointer-events:none}
@keyframes fluid-signal{from{background-position:200% 0}to{background-position:0 0}}
.revealed{animation:fluid-reveal 580ms cubic-bezier(.16,1,.3,1) backwards;animation-delay:var(--reveal-delay,0ms)}
@keyframes fluid-reveal{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
.button,.icon-btn,.languages button,.document-filters button,.scene-viewpoints button,.scene-material button{touch-action:manipulation;transition:background-color .2s,border-color .2s,color .2s,box-shadow .2s,transform .2s}
.button:active,.icon-btn:active,.scene-viewpoints button:active,.scene-material button:active{transform:scale(.97)}
.desktop-nav a{position:relative}
.desktop-nav a:after{content:"";position:absolute;inset:auto 0 -7px;height:1px;background:#a4d8cc;transform:scaleX(0);transform-origin:center;transition:transform .25s cubic-bezier(.2,.8,.2,1)}
.desktop-nav a:hover:after,.desktop-nav a[aria-current="page"]:after{transform:scaleX(1)}
.mobile-nav{transform-origin:top;max-height:calc(100svh - 125px);overflow-y:auto;overscroll-behavior:contain}
.mobile-nav a{min-height:58px;transition:background .2s,padding-inline .2s}
.mobile-nav a[aria-current="page"]{background:#24433e75;color:#cef0e3}
.mobile-nav a:active{background:#24433e}
.spatial-gallery .team-card{transition-duration:.55s}
.stage-tools .icon-btn{width:40px;height:40px;min-width:40px}
.scene-material button,.scene-viewpoints button,.document-filters button{min-height:40px}
.selected-team>a{min-width:40px;min-height:40px}
.document-filters{position:sticky;top:var(--navigation-height,132px);z-index:5;background:#091724f5;padding-block:14px;backdrop-filter:blur(12px)}
.health-description{min-height:300px}
@media(max-width:1000px){.nav-end .icon-btn,.languages button{min-height:40px}.stage-tools{flex-wrap:wrap}.stage-tools>div{margin-inline-start:auto;gap:6px}.stage-tools .icon-btn{width:40px;height:40px;min-width:40px}.team-dock>button{min-height:44px}.scene-material button,.scene-viewpoints button{min-height:44px}.mobile-nav a[aria-current="page"]{border-inline-start:2px solid #9fd6c5}}
@media(max-width:760px){.stage-tools>p{max-width:none;flex:1 1 100%;margin-bottom:0}.stage-tools>div{width:100%;justify-content:flex-end}.stage-tools .icon-btn{width:44px;height:44px;min-width:44px}.document-filters{gap:8px;flex-wrap:wrap}.document-filters button{min-height:44px}.health-description{min-height:0}.selected-team>a{min-width:44px;min-height:44px}.languages button{min-height:42px}.nav-end .mobile-only{min-height:42px}}
.paused .revealed{animation:none}
.paused::view-transition-group(*),.paused::view-transition-old(*),.paused::view-transition-new(*){animation:none!important}
.paused .is-navigating body:after,.paused.is-navigating body:after{animation:none}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}.revealed,.is-navigating body:after{animation:none!important}.button,.icon-btn,.languages button,.desktop-nav a:after,.mobile-nav a{transition:none}.button:active,.icon-btn:active{transform:none}}
@media print{.is-navigating body:after{display:none}.document-filters{position:static}}
