/* Shared mobile interaction layer — Candidate only.
   Layout remains owned by each page stylesheet; this file aligns motion,
   touch feedback, focus and reduced-motion behaviour across every page. */

@media (max-width:760px){
  html.av-mobile-motion-ready [data-av-mobile-reveal]{
    opacity:0;
    transform:translateY(18px);
    transition:opacity .58s ease,transform .58s cubic-bezier(.2,.75,.25,1);
    will-change:opacity,transform;
  }

  html.av-mobile-motion-ready [data-av-mobile-reveal].is-visible{
    opacity:1;
    transform:none;
  }

  [data-av-mobile-action]{
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
    transition:transform .18s ease,background-color .22s ease,color .22s ease,
      border-color .22s ease,box-shadow .22s ease;
  }

  [data-av-mobile-action]:active{
    transform:scale(.985);
  }

  [data-av-mobile-action]:focus-visible{
    outline:2px solid currentColor!important;
    outline-offset:4px!important;
  }

  .site-header,.mobile-nav nav{
    transition:box-shadow .25s ease,opacity .25s ease,transform .25s ease;
  }

  .mobile-nav[open] nav{
    animation:av-mobile-menu-in .28s cubic-bezier(.2,.75,.25,1) both;
  }

  @keyframes av-mobile-menu-in{
    from{opacity:0;transform:translateY(-8px)}
    to{opacity:1;transform:none}
  }
}

@media (max-width:760px) and (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  html.av-mobile-motion-ready [data-av-mobile-reveal],
  html.av-mobile-motion-ready [data-av-mobile-reveal].is-visible{
    opacity:1;
    transform:none;
    transition:none;
    will-change:auto;
  }
  [data-av-mobile-action],.site-header,.mobile-nav nav{
    transition:none!important;
    animation:none!important;
  }
  [data-av-mobile-action]:active{transform:none}
}
