
#raven-cursor-flock {
  position: fixed;
  inset: 0;
  z-index: 9998;
  pointer-events: none;
  overflow: hidden;
  contain: strict;
}
.raven-cursor-bird {
  position: absolute;
  width: var(--bird-size, 23px);
  height: var(--bird-size, 23px);
  opacity: 0;
  transform: translate(-50%, -50%) rotate(var(--bird-rotation, 0deg));
  filter: drop-shadow(0 0 4px rgba(255, 191, 73, .55));
  animation: raven-bird-flight var(--bird-life, 1050ms) ease-out forwards;
}
.raven-cursor-bird svg { display: block; width: 100%; height: 100%; overflow: visible; }
.raven-cursor-bird .wing-left { transform-origin: 46% 47%; animation: raven-wing-left 170ms ease-in-out infinite alternate; }
.raven-cursor-bird .wing-right { transform-origin: 54% 47%; animation: raven-wing-right 170ms ease-in-out infinite alternate; }
@keyframes raven-wing-left { from { transform: rotate(-14deg); } to { transform: rotate(15deg); } }
@keyframes raven-wing-right { from { transform: rotate(14deg); } to { transform: rotate(-15deg); } }
@keyframes raven-bird-flight {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(.55) rotate(var(--bird-rotation)); }
  15% { opacity: .95; }
  70% { opacity: .7; }
  100% { opacity: 0; transform: translate(calc(-50% + var(--bird-dx)), calc(-50% + var(--bird-dy))) scale(.25) rotate(calc(var(--bird-rotation) + var(--bird-spin))); }
}
@media (prefers-reduced-motion: reduce) { #raven-cursor-flock { display: none !important; } }
