/* Route 47 bus icon */
.r47-bus-icon{
  width:44px;height:44px;
  background:url("/img/r47/bus.png") center/contain no-repeat;
  pointer-events:none;
  filter: drop-shadow(0 0 8px rgba(223, 10, 10, 0.35))
          drop-shadow(0 0 16px rgb(248, 229, 229));
  transform-origin:center;
}
.r47-bus-pulse{
  animation:r47BusGlow 2.8s ease-in-out infinite;
}
@keyframes r47BusGlow{
  0%,100%{
    transform:scale(1);
    filter: drop-shadow(0 0 8px rgba(255,80,80,0.32))
            drop-shadow(0 0 16px rgba(255,40,40,0.22));
  }
  50%{
    transform:scale(1.04);
    filter: drop-shadow(0 0 12px rgba(255,80,80,0.50))
            drop-shadow(0 0 24px rgba(255,40,40,0.35));
  }
}

/* Manifestation glow */
.char-rail-item.manifest-glow{
  position:relative;
  border-left:3px solid rgb(16, 0, 240);
  box-shadow: inset 0 0 0 1px rgb(24, 8, 248);
  filter: drop-shadow(0 0 10px rgba(190,90,255,0.18));
}
.char-rail-item.manifest-glow:hover{
  filter: drop-shadow(0 0 12px rgb(0, 21, 212)) drop-shadow(0 0 22px rgba(120,180,255,0.14));
  box-shadow: inset 0 0 0 1px rgb(9, 6, 192);
}
.char-rail-item.manifest-glow::after{
  content:"";
  position:absolute;
  inset:-1px;
  pointer-events:none;
  opacity:0;
  background: radial-gradient(120px 40px at 18% 50%, rgba(190,90,255,0.18), transparent 70%);
  transition: opacity .18s ease;
}
.char-rail-item.manifest-glow:hover::after{opacity:1;}
