/* FACTECH HERO v10.4 — three approved panoramic scenes + restrained luminous masks.
   Fonts, navigation, CTA/tilt and stage controls are inherited from assets/style.css.
   Avoid raster GIF; original WebP stays sharp and completely static. */
.stage-v8 .v8-scene--rail::before,
.stage-v8 .v8-scene--tech::before,
.stage-v8 .v8-scene--media::before,
.stage-v8 .v8-scene--tech::after,
.stage-v8 .v8-scene--media::after { content:none!important;display:none!important; }
.stage-v8 .v8-scene--rail,
.stage-v8 .v8-scene--tech,
.stage-v8 .v8-scene--media{
  position:relative;
  background:linear-gradient(150deg,#e9f6ff,#f3f8ff 65%,#f0edff);
  overflow:hidden;
  isolation:isolate;
}
.stage-v8 .v8-scene--rail>img,
.stage-v8 .v8-scene--tech>img,
.stage-v8 .v8-scene--media>img {
  display:block!important;
  position:absolute!important;
  inset:0!important;
  width:100%!important;height:100%!important;
  max-width:none!important;max-height:none!important;
  object-fit:cover!important;
  object-position:center center!important;
  mix-blend-mode:normal!important;
  filter:none!important;
  -webkit-mask-image:none!important;mask-image:none!important;
  transform:none!important;
  border-radius:0!important;
}
.stage-v8 .home-hero-glow{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  overflow:hidden;
  isolation:isolate;
}
.stage-v8 .stage-artwork.is-active .v8-scene--rail .home-hero-glow{--home-mask:url('home-hero-rail-lights-v104.webp')}
.stage-v8 .stage-artwork.is-active .v8-scene--tech .home-hero-glow{--home-mask:url('home-hero-tech-lights-v104.webp')}
.stage-v8 .stage-artwork.is-active .v8-scene--media .home-hero-glow{--home-mask:url('home-hero-media-lights-v104.webp')}
.stage-v8 .home-hero-glow::before,.stage-v8 .home-hero-glow::after{
  content:'';
  position:absolute;inset:0;
  pointer-events:none;
  -webkit-mask-image:var(--home-mask);mask-image:var(--home-mask);
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  /* Mask and image must be cropped IDENTICALLY, including on a narrow phone. */
  -webkit-mask-size:cover;mask-size:cover;
  -webkit-mask-position:center center;mask-position:center center;
  mix-blend-mode:screen;
  animation-play-state:paused;
}
.stage-v8 .home-hero-glow::before{
  background:linear-gradient(104deg,transparent 33%,rgba(98,225,249,0) 42%,rgba(207,251,255,.85) 49%,rgba(174,98,255,.38) 53%,transparent 62%);
  background-size:280% 100%;background-position:100% 50%;
  opacity:.46;
  animation:factech-home-sweep 9.5s linear infinite;
}
.stage-v8 .home-hero-glow::after{
  background:linear-gradient(110deg,rgba(0,238,255,.19),rgba(126,100,240,.07) 55%,rgba(207,106,255,.22));
  opacity:.07;
  animation:factech-home-breathe 7.4s ease-in-out infinite;
}
/* Only the current tab, only while HERO is actually visible. */
.stage-v8.home-glow-in-view .stage-artwork.is-active .home-hero-glow::before,
.stage-v8.home-glow-in-view .stage-artwork.is-active .home-hero-glow::after{animation-play-state:running;}
@keyframes factech-home-sweep{
  0%,12%{background-position:100% 50%}
  84%,100%{background-position:-100% 50%}
}
@keyframes factech-home-breathe{
  0%,100%{opacity:.07}
  45%{opacity:.21}
}
@media(prefers-reduced-motion:reduce){
  .stage-v8 .home-hero-glow{display:none!important}
}

/* v12.4: the inactive panorama has no mask/effect until selected. */
.stage-v8 .stage-artwork:not(.is-active) .home-hero-glow{display:none}
