.copy-emotion-layer{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:110;contain:strict}
.copy-emotion-particle{position:absolute;display:block;width:var(--size);height:var(--size);color:var(--color);opacity:0;pointer-events:none;transform-origin:center;animation:copy-emotion-rise var(--duration) cubic-bezier(.18,.68,.3,1) var(--delay) both}
.copy-emotion-particle svg{display:block;width:100%;height:100%;overflow:visible}
.copy-emotion-particle[data-motion="pulse"]{animation-name:copy-emotion-pulse}
.copy-emotion-particle[data-motion="drift"]{animation-name:copy-emotion-drift}
@keyframes copy-emotion-rise{0%{opacity:0;transform:translate(-50%,-20%) scale(.3) rotate(0deg)}18%{opacity:.95}75%{opacity:.85}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),var(--dy)) scale(var(--scale)) rotate(var(--turn))}}
@keyframes copy-emotion-pulse{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}25%{opacity:.9;transform:translate(-50%,-70%) scale(1)}48%{transform:translate(-50%,-80%) scale(.88)}70%{opacity:.8;transform:translate(-50%,-100%) scale(1.16)}100%{opacity:0;transform:translate(-50%,-150%) scale(1.35)}}
@keyframes copy-emotion-drift{0%{opacity:0;transform:translate(-50%,0) scale(.6) rotate(-12deg)}25%{opacity:.85}70%{opacity:.7}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),var(--dy)) scale(1) rotate(var(--turn))}}
@media(prefers-reduced-motion:reduce){.copy-emotion-layer{display:none}.copy-emotion-particle{animation:none}}
