/* APDC motion tokens: interactive precision, stable reading. */
:root{--motion-hover:220ms;--motion-state:280ms;--motion-reveal:620ms;--motion-image:780ms;--motion-enter:cubic-bezier(.22,1,.36,1);--motion-balanced:cubic-bezier(.45,0,.55,1);--motion-feedback:cubic-bezier(.16,1,.3,1);}
@view-transition{navigation:auto;}
::view-transition-old(root){animation:documentOut 140ms ease both;}
::view-transition-new(root){animation:documentIn 220ms var(--motion-enter) both;}
@keyframes documentOut{to{opacity:0}}
@keyframes documentIn{from{opacity:.65}to{opacity:1}}
.site-header{transition:box-shadow var(--motion-state),background var(--motion-state);}
.site-header.is-scrolled{box-shadow:0 1px 0 #bccad43d,0 8px 22px #142d420c;}
.header-scroll-marker{position:absolute;top:24px;left:0;width:1px;height:1px;pointer-events:none;}
.nav-group[open] .nav-dropdown{animation:dropdownIn var(--motion-state) var(--motion-enter);}
.mobile-nav.open{animation:menuIn 240ms var(--motion-enter);}
@keyframes dropdownIn{from{opacity:.3;translate:0 6px}to{opacity:1;translate:0 0}}
@keyframes menuIn{from{opacity:.65;translate:0 -6px}to{opacity:1;translate:0 0}}
.motion-selector{position:relative;}
.motion-selection-rule{position:absolute;top:0;left:0;width:1px;height:2px;background:#927039;pointer-events:none;transform-origin:0 50%;z-index:1;}
.motion-indicator-ready .motion-selection-rule{transition:transform var(--motion-state) var(--motion-enter);}
.context-pointer{position:fixed;top:0;left:0;z-index:80;pointer-events:none;border:1px solid #cad6df66;background:#142d42f0;color:#fff;padding:7px 12px;font-size:11px;line-height:1.5;border-radius:2px;white-space:nowrap;}
.context-pointer[hidden]{display:none;}
.button svg,.text-link svg,.related-reading-link svg,.film-view svg{transition:transform var(--motion-hover) var(--motion-feedback);}
:is(.button,.text-link,.related-reading-link):hover svg{transform:translate(2px,-2px);}
:is(.button,.text-link,.related-reading-link):focus-visible svg{transform:translate(2px,-2px);}
.film-view:hover svg,.film-view:focus-visible svg{transform:scale(1.08);}
:is(input,textarea,select){transition:border-color var(--motion-hover),background-color var(--motion-hover);}
@media(hover:hover) and (pointer:fine){
 .venture-path-visual img{transition:scale var(--motion-image) var(--motion-enter);}
 .venture-path-visual:hover img{scale:1.025;}
 .resource-card,.insight-card,.service-tile,.contribution-column{transition:border-color var(--motion-hover),box-shadow var(--motion-hover);}
 .resource-card:hover,.insight-card:hover,.service-tile:hover,.contribution-column:hover{border-color:#927039;box-shadow:0 8px 18px -18px #142d4266;}
}
@media(max-width:767px){:root{--motion-reveal:340ms;--motion-image:380ms;}.context-pointer{display:none!important;}}
@media(prefers-reduced-motion:reduce){
 ::view-transition-old(root),::view-transition-new(root){animation:none!important;}
 .nav-group[open] .nav-dropdown,.mobile-nav.open{animation:none!important;}
 .motion-selection-rule,.site-header,.button svg,.text-link svg,.related-reading-link svg,.film-view svg,.venture-path-visual img{transition:none!important;}
 .venture-path-visual:hover img{scale:1;}.context-pointer{display:none!important;}
}
/* Keep the actual click target still; icon and colour carry the feedback. */
.button:hover,.button:focus-visible{transform:none;translate:none;}
