.leaf-cursor-enabled {
  cursor:url("leaf-cursor.svg") 3 3, auto;
}

.leaf-cursor-enabled a,
.leaf-cursor-enabled button,
.leaf-cursor-enabled select,
.leaf-cursor-enabled input,
.leaf-cursor-enabled label[for],
.leaf-cursor-enabled summary,
.leaf-cursor-enabled [role="button"] {
  cursor:pointer;
}

.leaf-cursor-trail {
  position:fixed;
  z-index:9999;
  inset:0;
  overflow:hidden;
  pointer-events:none;
  contain:strict;
}

.cursor-leaf {
  position:absolute;
  width:var(--leaf-size);
  height:calc(var(--leaf-size) * .58);
  border-radius:100% 0 100% 0;
  background:var(--leaf-color);
  box-shadow:0 2px 5px rgba(5,14,15,.24);
  opacity:0;
  transform-origin:50% 50%;
  animation:cursor-leaf-drift var(--leaf-duration) cubic-bezier(.18,.72,.28,1) forwards;
  will-change:transform,opacity;
}

.cursor-leaf::after {
  content:"";
  position:absolute;
  top:48%;
  left:13%;
  width:74%;
  height:1px;
  border-radius:1px;
  background:rgba(231,255,215,.52);
  transform:rotate(-29deg);
  transform-origin:center;
}

@keyframes cursor-leaf-drift {
  0% {
    opacity:0;
    transform:translate(-50%,-50%) rotate(var(--leaf-start-rotation)) scale(.55);
  }
  12% {
    opacity:var(--leaf-opacity);
    transform:translate(-50%,-50%) rotate(var(--leaf-start-rotation)) scale(1);
  }
  70% { opacity:calc(var(--leaf-opacity) * .72); }
  100% {
    opacity:0;
    transform:translate(calc(-50% + var(--leaf-drift-x)),calc(-50% + var(--leaf-drift-y))) rotate(var(--leaf-end-rotation)) scale(.18);
  }
}

@media (prefers-reduced-motion:reduce), (pointer:coarse) {
  .leaf-cursor-enabled,
  .leaf-cursor-enabled a,
  .leaf-cursor-enabled button,
  .leaf-cursor-enabled select,
  .leaf-cursor-enabled input,
  .leaf-cursor-enabled label[for],
  .leaf-cursor-enabled summary,
  .leaf-cursor-enabled [role="button"] { cursor:auto; }
  .leaf-cursor-trail { display:none; }
}
