/* The scene keeps the full original aspect ratio, so the ship follows the pointing gesture at every size. */
.poster-scene{position:relative;isolation:isolate;line-height:0}
.poster-scene>.hero-flight{position:absolute;left:35%;top:26%;width:clamp(42px,10.2vw,146px);aspect-ratio:360/192;transform:translate3d(-50%,-50%,0);z-index:2;pointer-events:none;opacity:0;contain:layout style;animation:hero-ship-crossing 14s linear infinite;animation-play-state:paused}
.hero-flight>img{position:relative;z-index:2;width:100%;height:auto;display:block;object-fit:contain}
.hero-flight.ship-ready{opacity:1}
.hero-flight.is-flying{animation-play-state:running}
.hero-thruster{position:absolute;z-index:1;width:65%;height:4.5%;left:78%;top:84%;transform-origin:0 50%;transform:rotate(28deg);border-radius:50%;background:linear-gradient(90deg,#dbfbffed 0%,#86e9ffd1 7%,#48bdea75 35%,#398bea24 68%,transparent);box-shadow:0 0 5px #6cdfff55}
.hero-thruster.far{left:92%;top:50%;width:44%;height:3%}
@keyframes hero-ship-crossing{0%{transform:translate3d(-50%,-50%,0);opacity:0}8%{opacity:1}85%{opacity:1}100%{transform:translate3d(calc(-50% + var(--flight-dx,-240px)),calc(-50% + var(--flight-dy,-120px)),0);opacity:0}}
.reduced-motion .hero-flight,.paused-tab .hero-flight,.dialog-visible .hero-flight{animation-play-state:paused!important}
.reduced-motion .hero-flight.ship-ready{animation:none;opacity:1;transform:translate3d(-50%,-50%,0)}
@media(prefers-reduced-motion:reduce){.hero-flight.ship-ready{animation:none;opacity:1;transform:translate3d(-50%,-50%,0)}.hero-thruster{width:24%}.hero-thruster.far{width:18%}}

.hero-flight.flight-static.ship-ready{animation:none;opacity:1;transform:translate3d(-50%,-50%,0)}
