.wfe-overlay {
position: fixed;
inset: 0;
pointer-events: none;
overflow: hidden;
z-index: 2147480000; transition: opacity .35s ease;
}
.wfe-emoji {
position: absolute;
bottom: -40px;
left: var(--x);
transform: translate(-50%, 0) rotate(var(--rot));
font-size: 24px;
opacity: 0.95;
filter: drop-shadow(0 2px 2px rgba(0,0,0,.25));
animation:
wfe-rise var(--dur) linear forwards,
wfe-sway calc(var(--dur) * 0.6) ease-in-out infinite alternate;
will-change: transform, opacity;
}
.wfe-emoji img, .wfe-emoji svg {
display: block;
width: 1em;
height: 1em;
}
@keyframes wfe-rise {
0%   { transform: translate(-50%, 0) rotate(var(--rot)); opacity: 0.95; }
100% { transform: translate(-50%, -110vh) rotate(calc(var(--rot) + 20deg)); opacity: 0; }
}
@keyframes wfe-sway {
0%   { margin-left: -10px; }
100% { margin-left: 10px; }
}
@media (prefers-reduced-motion: reduce) {
.wfe-emoji { animation: none; opacity: 1; }
}
.wfe-overlay.wfe-hidden {
opacity: 0;
}