# Animations for NORMAL windows.
	{
        match = "window_type = 'normal'";
        animations = (
            {
                triggers = ["close"];
                opacity = {
                    curve = "cubic-bezier(0,1,1,1)";
                    duration = 0.6;
                    start = "window-raw-opacity-before";
                    end = 0;
                };
                blur-opacity = "opacity";
                shadow-opacity = "opacity";

                scale-x = {
                    curve = "cubic-bezier(0,1.3,1,1)";
                    duration = 0.6;
                    start = 1;
                    end = 0.6;
                };
                scale-y = "scale-x";

                offset-x = "(1 - scale-x) / 2 * window-width";
                offset-y = "(1 - scale-y) / 2 * window-height";

                shadow-scale-x = "scale-x";
                shadow-scale-y = "scale-y";
                shadow-offset-x = "offset-x";
                shadow-offset-y = "offset-y";
            },

            # Animación de APERTURA
            {
                triggers = ["open"];
                opacity = {
                    curve = "cubic-bezier(0,1,1,1)";
                    duration = 0.5;
                    start = 0;
                    end = "window-raw-opacity";
                };
                blur-opacity = "opacity";
                shadow-opacity = "opacity";

                scale-x = {
                    curve = "cubic-bezier(0,1.3,1,1)";
                    duration = 0.5;
                    start = 0.6;
                    end = 1;
                };
                scale-y = "scale-x";

                offset-x = "(1 - scale-x) / 2 * window-width";
                offset-y = "(1 - scale-y) / 2 * window-height";

                shadow-scale-x = "scale-x";
                shadow-scale-y = "scale-y";
                shadow-offset-x = "offset-x";
                shadow-offset-y = "offset-y";
            },

            # Animación de GEOMETRÍA (modificada para ambos casos)
            {
                triggers = ["geometry"];
                # Cuando la ventana CRECE (abrir/mover/redimensionar)
                scale-x = {
                    curve = "cubic-bezier(0,0,0,1.28)";
                    duration = 0.5;
                    start = "window-width-before / window-width";
                    end = 1;
                };

                # Cuando la ventana ENCOGE (cerrar/mover/redimensionar)
                scale-x-reverse = {
                    curve = "cubic-bezier(0,0,0,1.28)";
                    duration = 0.6;
                    start = "window-width / window-width-before";
                    end = 1;
                };
                scale-y = {
                    curve = "cubic-bezier(0,0,0,1.28)";
                    duration = 0.5;
                    start = "window-height-before / window-height";
                    end = 1;
                };
                scale-y-reverse = {
                    curve = "cubic-bezier(0,0,0,1.28)";
                    duration = 0.6;
                    start = "window-height / window-height-before";
                    end = 1;
                };
                offset-x = {
                    curve = "cubic-bezier(0,0,0,1.28)";
                    duration = 0.5;
                    start = "window-x-before - window-x";
                    end = 0;
                };
                offset-y = {
                    curve = "cubic-bezier(0,0,0,1.28)";
                    duration = 0.5;
                    start = "window-y-before - window-y";
                    end = 0;
                };
                shadow-scale-x = "scale-x";
                shadow-scale-y = "scale-y";
                shadow-offset-x = "offset-x";
                shadow-offset-y = "offset-y";
            }
        )
    },

# Animations for Rofi launchers.
	{
		match = "class_g = 'Rofi'";
		animations = (
		{
			triggers = ["close", "hide"];
			preset = "disappear";
			duration = 0.05;
			scale = 0.5;
		},
		{
			triggers = ["open", "show"];
			preset = "appear";
			duration = 0.2;
			scale = 0.5;
		}
		)
	},

# Animations for Dunst notifications.
	{
		match = "class_g = 'dunst'";
		animations = (
		{
			triggers = ["close", "hide"];
			preset = "fly-out";	#-dunst-close-preset
			direction = "up";	#-dunst-close-direction
			duration = 0.2;
		},
		{
			triggers = ["open", "show"];
			preset = "fly-in";	#-dunst-open-preset
			direction = "up";	#-dunst-open-direction
			duration = 0.2;
		}
		)
	},

# Animations for Jgmenu.
	{
		match = "class_g = 'jgmenu'";
		animations = (
		{
			triggers = ["close", "hide"];
			preset = "disappear";
			duration = 0.08;
			scale = 0.5;
		},
		{
			triggers = ["open", "show"];
			preset = "appear";
			duration = 0.15;
			scale = 0.5;
		}
		)
	},

# Animations for Scratchpad.
	{
		match = "class_g = 'bspwm-scratch'";
		animations = (
		{
			triggers = ["close", "hide"];
			preset = "fly-out";
			direction = "up";
			duration = 0.2;
		},
		{
			triggers = ["open", "show"];
			preset = "fly-in";
			direction = "up";
			duration = 0.2;
		}
		)
	},

# Animations for Eww Profile card.
	{
		match = "name = 'Eww - launchermenu'";
		animations = (
		{
			triggers = ["close", "hide"];
			preset = "slide-out";
			direction = "right";
			duration = 0.2;
		},
		{
			triggers = ["open", "show"];
			preset = "slide-in";
			direction = "right";
			duration = 0.2;
		}
		)
	},

# Animations for Eww Music player.
	{
		match = "name = 'Eww - music'";
		animations = (
		{
			triggers = ["close", "hide"];
			preset = "slide-out";
			direction = "up";
			duration = 0.2;
		},
		{
			triggers = ["open", "show"];
			preset = "slide-in";
			direction = "up";
			duration = 0.2;
		}
		)
	},

# Animations for Eww calendar.
	{
		match = "name = 'Eww - date'";
		animations = (
		{
			triggers = ["close", "hide"];
			preset = "fly-out";
			direction = "up";
			duration = 0.2;
		},
		{
			triggers = ["open", "show"];
			preset = "fly-in";
			direction = "up";
			duration = 0.2;
		}
		)
	},

# Animations for Eww Cheatsheet.
	{
		match = "name = 'Eww - csheet'";
		animations = (
		{
			triggers = ["close", "hide"];
			preset = "disappear";
			duration = 0.08;
			scale = 0.5;
		},
		{
			triggers = ["open", "show"];
			preset = "appear";
			duration = 0.15;
			scale = 0.5;
		}
		)
	}
