.ship-journey{
  position:absolute;left:0;top:0;width:0;height:0;
  z-index:60;                       /* over the sections, under the nav (80) */
  pointer-events:none;
}
.ship-journey img{
  position:absolute;left:0;top:0;
  width:150px;height:auto;max-width:none;
  transform-origin:50% 50%;
  filter:drop-shadow(0 24px 44px rgba(0,0,0,.7));
  will-change:transform;
}
/* the two ships this one replaces. they stay in the DOM: the case-study
   section measures its own .ship rect to aim the haze wedge, so removing
   it would leave the beam pointing at nothing. */
.pg-hero__probe,[data-ship-from]{opacity:0}
.sec-cs .ship img{opacity:0}
/* composed page only: the journey owns the arrival, so the slot must not
   also cross in - it is the rect aim() throws the beam from, and nothing
   waits for its 1.5s transition. */
.sec-cs .ship{transform:translate(0,-50%);opacity:1;transition:none}

/* composed page only: the light has to be able to go out as well as come
   on, and removing `lit-on` drops the animation in a single frame. */
.sec-cs .haze .wedge,.sec-cs .glow{transition:opacity .45s ease,transform .45s ease}

