/* Canvas hero engines (hero-ripple-v2.js, hero-vault.js; frozen, loaded read-only). Loaded only by pages whose hero
   uses one of them. The engines draw a canvas in hero-image pixels over the hero with object-fit:contain, inline at
   50% 50%; these rules align it with the article's own hero fit (50% 55% wide, 50% 100% narrow, as article.css sets
   for the light scenes), so canvas and image stay pixel-aligned. The approved still shows with no JS and with reduced
   motion; once an engine runs (its canvas exists), the still hides. */
.ar-pic canvas.ar-ripple,.ar-pic canvas.ar-vault{object-position:50% 55%!important}
@media (max-width:860px){
  .ar-pic canvas.ar-ripple,.ar-pic canvas.ar-vault{object-position:50% 100%!important}
}
/* Specificity (0,3,2) beats article.css's light-scene picture rule (0,3,1), which loads after this file. */
.ar-pic:has(canvas.ar-ripple) > picture.ar-flight-still,.ar-pic:has(canvas.ar-vault) > picture.ar-flight-still{display:none}
@media (prefers-reduced-motion:reduce){
  .ar-pic canvas.ar-ripple,.ar-pic canvas.ar-vault{display:none!important}
  .ar-pic .ar-flight-still{display:block!important;z-index:3}
}
