/* Short, input-driven feedback. Content and hit areas remain in place. */
:root{--ui-ease:cubic-bezier(.22,1,.36,1);--ui-speed:260ms}
.motion-arrow{display:inline-block;pointer-events:none;white-space:nowrap}

/* A light sweep stays inside the existing button, on its original colour. */
:is(.action,.small-action,.pill,.book-download){
  background-image:linear-gradient(110deg,transparent 30%,#ffffff26 48%,transparent 65%);
  background-size:260% 100%;background-position:100% 0;
  transition:background-position 480ms var(--ui-ease),background-color var(--ui-speed),color var(--ui-speed),border-color var(--ui-speed),box-shadow var(--ui-speed);
}
:is(.action,.small-action,.pill,.book-download):focus-visible{
  background-position:0 0;box-shadow:0 4px 18px #0003;
  outline:3px solid var(--cyan,#97dce3);outline-offset:4px;
}
:is(.action,.small-action,.pill,.book-download):active{box-shadow:inset 0 2px 5px #0003}
:is(.motion-arrow,.mega-link-arrow,.mega-icon svg,.guide-arrow,.guide-trigger-icon,.site-search-open svg){transition:transform var(--ui-speed) var(--ui-ease),color var(--ui-speed),opacity var(--ui-speed)}
a:focus-visible>.motion-arrow{transform:translate(3px,-3px)}
a:focus-visible>.motion-arrow[data-direction="down"]{transform:translateY(3px)}
a:focus-visible>.motion-arrow[data-direction="right"]{transform:translateX(3px)}
.text-link{transition:color var(--ui-speed),border-color var(--ui-speed)}
.text-link:focus-visible{color:var(--orange);border-color:var(--orange)}

/* Cards respond through light and colour, never through a moving hit target. */
main a:is(.catalog-card,.related-card,.expertise,.article,.home-lab-feature,.home-lab-brief,.home-lab-particles),.objective-card{
  transition:border-color var(--ui-speed),background-color var(--ui-speed),box-shadow var(--ui-speed);
}
main a:is(.catalog-card,.related-card,.expertise,.article,.home-lab-feature,.home-lab-brief,.home-lab-particles):focus-visible,.objective-card:focus-within{
  border-color:var(--cyan,#97dce3);box-shadow:inset 3px 0 0 var(--orange),0 8px 24px #0002;
}
main a:is(.catalog-card,.related-card,.expertise,.article,.home-lab-feature,.home-lab-brief,.home-lab-particles):focus-visible{
  outline:3px solid var(--cyan,#97dce3);outline-offset:4px;
}

/* Stable navigation with an underline and small, independent icon movements. */
.site-header :is(.nav-simple,.nav-contact),.site-navigation>.mega-group>summary{
  background-image:linear-gradient(var(--orange),var(--orange));background-repeat:no-repeat;
  background-size:0 2px;background-position:0 calc(100% - 8px);
  transition:background-size 320ms var(--ui-ease),color 180ms;
}
.site-navigation>.mega-group>summary{background-position:0 calc(100% - 25px)}
.site-header :is(.nav-simple,.nav-contact):is(:focus-visible,[aria-current="page"]),.site-navigation>.mega-group[open]>summary{background-size:100% 2px}
.site-header .mega-link:is(:hover,:focus-visible){transform:none}
.mega-link:focus-visible .mega-icon{color:var(--orange);border-color:#b27158}
.mega-link:focus-visible .mega-icon svg{transform:scale(1.09)}
.site-search-open,.site-header .nav-audience>summary,.guide-trigger{transition:background-color var(--ui-speed),color var(--ui-speed),border-color var(--ui-speed),box-shadow var(--ui-speed)}
.guide-trigger:hover{transform:none}
.guide-trigger:focus-visible .guide-trigger-icon{transform:rotate(-8deg)}
.site-search-open:focus-visible svg{transform:rotate(-12deg) scale(1.06)}
.guide-dialog .guide-option:focus-visible{background:#273b42;border-color:var(--orange)}
.guide-option:focus-visible .guide-arrow{transform:translate(3px,-3px)}
.search-results a,.guide-dialog :is(.guide-option,.guide-route,.guide-email,.guide-export),.search-filters button,.search-close,.guide-close{
  transition:border-color 180ms,background-color 180ms,color 180ms,box-shadow 180ms;
}
.search-results a:focus-visible{background:#243f47;border-color:#8cc7ca}

@media(hover:hover) and (pointer:fine){
  :is(.action,.small-action,.pill,.book-download):hover{background-position:0 0;box-shadow:0 4px 18px #0003}
  a:hover>.motion-arrow{transform:translate(3px,-3px)}
  a:hover>.motion-arrow[data-direction="down"]{transform:translateY(3px)}
  a:hover>.motion-arrow[data-direction="right"]{transform:translateX(3px)}
  .text-link:hover{color:var(--orange);border-color:var(--orange)}
  main a:is(.catalog-card,.related-card,.expertise,.article,.home-lab-feature,.home-lab-brief,.home-lab-particles):hover{
    transform:none;border-color:var(--cyan,#97dce3);box-shadow:inset 3px 0 0 var(--orange),0 8px 24px #0002;
  }
  .objective-card:hover{border-color:var(--cyan,#97dce3)}
  .site-header :is(.nav-simple,.nav-contact):hover,.site-navigation>.mega-group>summary:hover{background-size:100% 2px}
  .mega-link:hover .mega-icon svg{transform:scale(1.09)}
  .site-search-open:hover svg{transform:rotate(-12deg) scale(1.06)}
  .guide-trigger:hover .guide-trigger-icon{transform:rotate(-8deg)}
  .guide-option:hover .guide-arrow{transform:translate(3px,-3px)}
  .search-filters button:not([aria-pressed="true"]):hover{background:#294048;border-color:#8cc7ca}
  .search-close:hover,.guide-close:hover{background:#294048}
}

/* State changes only: no autoplay, infinite loop or scroll listener. */
@media(prefers-reduced-motion:no-preference){
  .site-search[open],.guide-dialog[open]{animation:ui-panel-in 280ms var(--ui-ease)}
  .site-search[open]::backdrop,.guide-dialog[open]::backdrop{animation:ui-backdrop-in 200ms ease-out}
  .mega-group[open] .mega-column{animation:ui-content-in 240ms var(--ui-ease) backwards}
  .mega-group[open] .mega-column:nth-child(2){animation-delay:35ms}
  .site-search[open] .search-results>li:nth-child(-n+6){animation:ui-content-in 220ms var(--ui-ease) backwards}
  .site-search[open] .search-results>li:nth-child(2){animation-delay:20ms}
  .site-search[open] .search-results>li:nth-child(3){animation-delay:40ms}
  .site-search[open] .search-results>li:nth-child(4){animation-delay:60ms}
  .site-search[open] .search-results>li:nth-child(5){animation-delay:80ms}
  .site-search[open] .search-results>li:nth-child(6){animation-delay:100ms}
  .guide-dialog[open] :is(.guide-question,.guide-intro,.guide-recap,.guide-routes){animation:ui-content-in 220ms var(--ui-ease)}
  .guide-dialog[open] .guide-option{animation:ui-content-in 220ms var(--ui-ease) backwards}
  .guide-dialog[open] .guide-option:nth-child(2){animation-delay:20ms}
  .guide-dialog[open] .guide-option:nth-child(3){animation-delay:40ms}
  .guide-dialog[open] .guide-option:nth-child(n+4){animation-delay:60ms}
  .objective-card[open] .objective-answer{animation:ui-content-in 240ms var(--ui-ease)}
  .page-faq details[open]>p,.faq details[open]>p{animation:ui-content-in 220ms var(--ui-ease)}
}
@keyframes ui-panel-in{from{opacity:.4;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes ui-content-in{from{opacity:.45;transform:translateY(5px)}to{opacity:1;transform:none}}
@keyframes ui-backdrop-in{from{opacity:0}to{opacity:1}}

@media(max-width:1199px){.site-navigation>.mega-group>summary{background-position:0 100%}}
@media(hover:none){main a.catalog-card:hover{transform:none}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  .site-header *,.mega-shade,.site-search,.site-search *,.guide-dialog,.guide-dialog *,.guide-trigger,.guide-trigger *,
  :is(.action,.small-action,.pill,.book-download,.text-link,.motion-arrow),
  main a:is(.catalog-card,.related-card,.expertise,.article,.home-lab-feature,.home-lab-brief,.home-lab-particles),
  .objective-card,.objective-card *,.page-faq details>p,.faq details>p{animation:none!important;transition:none!important}
  .site-search::backdrop,.guide-dialog::backdrop{animation:none!important;transition:none!important}
  .motion-arrow,.site-search-open svg,.guide-trigger-icon,.guide-arrow,.mega-icon svg,.mega-link,
  main a:is(.catalog-card,.related-card,.expertise,.article,.home-lab-feature,.home-lab-brief,.home-lab-particles):hover{transform:none!important}
}
@media(forced-colors:active){
  :is(.action,.small-action,.pill,.book-download){background-image:none}
  main a:is(.catalog-card,.related-card,.expertise,.article):focus-visible{outline-color:Highlight}
}
@media print{.motion-arrow{transform:none!important}}
