.pnc-factory-marquee {
  --fm-height: 66px;
  position: relative;
  width: 100%;
  max-width: 720px;
  margin: 14px 0 2px;
}

.pnc-factory-marquee *,
.pnc-factory-marquee *::before,
.pnc-factory-marquee *::after {
  box-sizing: border-box;
}

.pnc-factory-marquee-scene {
  position: relative;
  height: var(--fm-height);
  overflow: hidden;
  border: 2px solid #000;
  border-radius: 13px;
  background:
    radial-gradient(circle at 18% 12%, rgba(255,255,255,.85), transparent 24%),
    repeating-linear-gradient(135deg, rgba(2,132,199,.035) 0 1px, transparent 1px 8px),
    linear-gradient(180deg, #fff 0%, #eef9ff 52%, #d9f1fd 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.95),
    0 3px 0 #000,
    0 9px 18px rgba(2,132,199,.14);
  isolation: isolate;
}

.pnc-factory-marquee-scene::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .38;
  background:
    radial-gradient(circle at 10% 24%, rgba(255,255,255,.98) 0 11px, transparent 12px),
    radial-gradient(circle at 13.5% 20%, rgba(255,255,255,.98) 0 14px, transparent 15px),
    radial-gradient(circle at 17% 24%, rgba(255,255,255,.98) 0 10px, transparent 11px),
    radial-gradient(circle at 21% 21%, rgba(255,255,255,.96) 0 8px, transparent 9px),
    radial-gradient(circle at 73% 18%, rgba(255,255,255,.97) 0 10px, transparent 11px),
    radial-gradient(circle at 77% 15%, rgba(255,255,255,.98) 0 14px, transparent 15px),
    radial-gradient(circle at 81% 18.5%, rgba(255,255,255,.97) 0 9px, transparent 10px),
    radial-gradient(circle at 84.5% 15.5%, rgba(255,255,255,.94) 0 7px, transparent 8px),
    radial-gradient(circle at 89% 24%, rgba(255,255,255,.85) 0 3px, transparent 4px),
    radial-gradient(circle at 91% 19%, rgba(255,255,255,.82) 0 2px, transparent 3px);
}

.pnc-factory-marquee-scene::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 20;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.45);
  pointer-events: none;
}

.pnc-factory-marquee-floor {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 7px;
  z-index: 1;
  height: 7px;
  border-top: 2px solid #000;
  background:
    repeating-linear-gradient(90deg, transparent 0 32px, rgba(0,0,0,.18) 32px 36px),
    linear-gradient(180deg, #8bd7f7 0%, #5ab9e4 100%);
}

.pnc-factory-marquee .fm-cloud {
  position: absolute;
  display: block;
  z-index: 2;
  height: 12px;
  border: 1px solid rgba(40, 50, 60, .35);
  border-bottom-color: rgba(40, 50, 60, .42);
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(246,250,253,.98) 100%);
  box-shadow:
    0 1px 0 rgba(255,255,255,.88) inset,
    0 1px 2px rgba(70, 85, 100, .10);
  opacity: .95;
  pointer-events: none;
  animation: fmCloudFloat 7s ease-in-out infinite;
}

.pnc-factory-marquee .fm-cloud::before,
.pnc-factory-marquee .fm-cloud::after {
  content: "";
  position: absolute;
  bottom: 3px;
  border: 1px solid rgba(40, 50, 60, .35);
  border-bottom-color: rgba(40, 50, 60, .42);
  border-radius: 50%;
  background: linear-gradient(180deg, rgba(255,255,255,.99) 0%, rgba(246,250,253,.98) 100%);
  box-shadow: 0 1px 0 rgba(255,255,255,.88) inset;
}

.pnc-factory-marquee .fm-cloud::before {
  width: 14px;
  height: 14px;
  left: 6px;
}

.pnc-factory-marquee .fm-cloud::after {
  width: 18px;
  height: 18px;
  right: 7px;
  bottom: 4px;
}

.pnc-factory-marquee .fm-cloud-one {
  top: 12px;
  left: 205px;
  width: 38px;
}

.pnc-factory-marquee .fm-cloud-two {
  top: 10px;
  right: 118px;
  width: 42px;
  animation-delay: 1.5s;
}

.pnc-factory-marquee .fm-asset {
  position: absolute;
  display: block;
  max-width: none;
  user-select: none;
  pointer-events: none;
}

.pnc-factory-marquee .fm-factory {
  left: 7px;
  bottom: 10px;
  z-index: 4;
  width: 66px;
}

.pnc-factory-marquee .fm-conveyor {
  left: 79px;
  bottom: 4px;
  z-index: 5;
  width: 49px;
}

.pnc-factory-marquee .fm-box-pile {
  z-index: 7;
  width: 18px;
  transform-origin: center bottom;
  animation: fmBoxPileRock 2.8s ease-in-out infinite;
}

.pnc-factory-marquee .fm-box-pile-one {
  left: 111px;
  bottom: 10px;
}

.pnc-factory-marquee .fm-box-pile-two {
  left: 125px;
  bottom: 10px;
  animation-delay: .3s;
}

.pnc-factory-marquee .fm-box-pile-three {
  left: 118px;
  bottom: 23px;
  width: 17px;
  animation-delay: .6s;
}

.pnc-factory-marquee .fm-worker-carry {
  left: 132px;
  bottom: 8px;
  z-index: 8;
  width: 36px;
  opacity: 0;
  animation: fmCarryWorker 9s linear infinite;
}

.pnc-factory-marquee .fm-worker-load {
  left: 286px;
  bottom: 8px;
  z-index: 8;
  width: 36px;
  animation: fmLoadWorker 9s ease-in-out infinite;
}


.pnc-factory-marquee .fm-train-wrap {
  position: absolute;
  right: 10px;
  bottom: 5px;
  z-index: 6;
  width: 390px;
  height: 50px;
  animation: fmTrainDepart 9s ease-in-out infinite;
}

.pnc-factory-marquee .fm-train-car {
  bottom: -11px;
  width: 76px;
}

.pnc-factory-marquee .fm-train-car-one { left: 0; }
.pnc-factory-marquee .fm-train-car-two { left: 78px; }
.pnc-factory-marquee .fm-train-car-three { left: 156px; }
.pnc-factory-marquee .fm-train-car-four { left: 234px; }

.pnc-factory-marquee .fm-train-engine {
  left: 312px;
  bottom: -5px;
  width: 68px;
  transform: scaleX(-1);
  transform-origin: center center;
}

.pnc-factory-marquee .fm-steam {
  z-index: 3;
  opacity: 0;
  animation: fmSteamRise 2.6s ease-out infinite;
}

.pnc-factory-marquee .fm-steam-one {
  left: 26px;
  bottom: 43px;
  width: 23px;
}

.pnc-factory-marquee .fm-steam-two {
  left: 42px;
  bottom: 45px;
  width: 17px;
  animation-delay: 1.15s;
}

.pnc-factory-marquee .fm-train-steam {
  left: 330px;
  bottom: 37px;
  width: 19px;
  animation-delay: .55s;
}

.pnc-factory-marquee .fm-spark {
  position: absolute;
  top: 7px;
  right: 13px;
  z-index: 2;
  color: #0284c7;
  font-size: .68rem;
  line-height: 1;
  opacity: .35;
  animation: fmSpark 2.2s ease-in-out infinite;
}

.pnc-factory-marquee .fm-spark.is-two {
  top: 20px;
  right: 35px;
  color: #000;
  font-size: .5rem;
  animation-delay: .8s;
}



@keyframes fmCarryWorker {
  0%, 12% { opacity: 0; transform: translate(-8px, 0); }
  15% { opacity: 1; transform: translate(0, 0); }
  21% { transform: translate(18px, -1px); }
  27% { transform: translate(36px, 0); }
  33% { transform: translate(54px, -1px); }
  39% { transform: translate(72px, 0); }
  45% { transform: translate(90px, -1px); }
  51% { transform: translate(108px, 0); }
  57% { transform: translate(126px, -1px); }
  61% { opacity: 1; transform: translate(140px, 0); }
  66%, 100% { opacity: 0; transform: translate(146px, 0); }
}

@keyframes fmBoxPileRock {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-2deg) translateY(-1px); }
  50% { transform: rotate(1.5deg) translateY(0); }
  75% { transform: rotate(-1deg) translateY(-1px); }
}

@keyframes fmLoadWorker {
  0%, 43%, 67%, 100% { transform: translateY(0) rotate(0deg); }
  49% { transform: translateY(-2px) rotate(-1deg); }
  55% { transform: translateY(0) rotate(0deg); }
  61% { transform: translateY(-2px) rotate(1deg); }
}



@keyframes fmTrainDepart {
  0%, 61% { opacity: 1; transform: translateX(0); }
  68% { transform: translateX(0); }
  83% { opacity: 1; transform: translateX(122px); }
  90% { opacity: 0; transform: translateX(245px); }
  91% { opacity: 0; transform: translateX(-160px); }
  100% { opacity: 1; transform: translateX(0); }
}

@keyframes fmSteamRise {
  0% { opacity: 0; transform: translateY(8px) scale(.55); }
  20% { opacity: .78; }
  62% { opacity: .5; transform: translateY(-7px) scale(.9); }
  100% { opacity: 0; transform: translateY(-18px) scale(1.13); }
}

@keyframes fmCloudFloat {
  0%, 100% { transform: translateY(0) translateX(0); }
  50% { transform: translateY(-1px) translateX(2px); }
}

@keyframes fmSpark {
  0%, 100% { opacity: .2; transform: scale(.8) rotate(0deg); }
  50% { opacity: .9; transform: scale(1.18) rotate(15deg); }
}

@media (max-width: 720px) {
  .pnc-factory-marquee {
    --fm-height: 58px;
    margin-top: 12px;
  }

  .pnc-factory-marquee .fm-cloud { height: 10px; }
  .pnc-factory-marquee .fm-cloud::before { width: 12px; height: 12px; left: 5px; }
  .pnc-factory-marquee .fm-cloud::after { width: 15px; height: 15px; right: 5px; bottom: 3px; }
  .pnc-factory-marquee .fm-cloud-one { top: 11px; left: 112px; width: 30px; }
  .pnc-factory-marquee .fm-cloud-two { top: 9px; right: 82px; width: 33px; }
  .pnc-factory-marquee .fm-factory { left: 5px; bottom: 9px; width: 55px; }
  .pnc-factory-marquee .fm-conveyor { left: 63px; bottom: 4px; width: 40px; }
  .pnc-factory-marquee .fm-box-pile { width: 15px; }
  .pnc-factory-marquee .fm-box-pile-one { left: 90px; bottom: 9px; }
  .pnc-factory-marquee .fm-box-pile-two { left: 101px; bottom: 9px; }
  .pnc-factory-marquee .fm-box-pile-three { left: 95px; bottom: 20px; width: 14px; }
  .pnc-factory-marquee .fm-worker-carry { left: 108px; bottom: 7px; width: 29px; }
  .pnc-factory-marquee .fm-worker-load { left: 151px; bottom: 7px; width: 29px; }
  .pnc-factory-marquee .fm-train-wrap { right: 4px; bottom: 4px; width: 218px; height: 41px; }
  .pnc-factory-marquee .fm-train-car { bottom: -8px; width: 38px; }
  .pnc-factory-marquee .fm-train-car-one { left: 0; }
  .pnc-factory-marquee .fm-train-car-two { left: 40px; }
  .pnc-factory-marquee .fm-train-car-three { left: 80px; }
  .pnc-factory-marquee .fm-train-car-four { left: 120px; }
  .pnc-factory-marquee .fm-train-engine { left: 160px; bottom: -4px; width: 51px; transform: scaleX(-1); transform-origin: center center; }
  .pnc-factory-marquee .fm-steam-one { left: 21px; bottom: 37px; width: 19px; }
  .pnc-factory-marquee .fm-steam-two { left: 34px; bottom: 39px; width: 14px; }
  .pnc-factory-marquee .fm-train-steam { left: 174px; bottom: 30px; width: 15px; }


  @keyframes fmCarryWorker {
    0%, 12% { opacity: 0; transform: translate(-7px, 0); }
    15% { opacity: 1; transform: translate(0, 0); }
    21% { transform: translate(11px, -1px); }
    27% { transform: translate(22px, 0); }
    33% { transform: translate(33px, -1px); }
    39% { transform: translate(44px, 0); }
    45% { transform: translate(55px, -1px); }
    51% { transform: translate(66px, 0); }
    57% { transform: translate(77px, -1px); }
    61% { opacity: 1; transform: translate(86px, 0); }
    66%, 100% { opacity: 0; transform: translate(91px, 0); }
  }
}

@media (max-width: 430px) {
  .pnc-factory-marquee .fm-worker-load {
    display: none;
  }

  .pnc-factory-marquee .fm-train-wrap {
    transform-origin: right bottom;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pnc-factory-marquee .fm-asset,
  .pnc-factory-marquee .fm-train-wrap,
  .pnc-factory-marquee .fm-spark,
  .pnc-factory-marquee .fm-cloud {
    animation: none !important;
  }

  .pnc-factory-marquee .fm-box-pile,
  .pnc-factory-marquee .fm-worker-carry {
    opacity: 1;
  }

  .pnc-factory-marquee .fm-steam {
    opacity: .45;
  }
}
