/*//////////////////////////////////////////*/
/* Animations */
/*//////////////////////////////////////////*/

@keyframes tm_shine {
	0% { left: -40px; opacity: 1; }
	30% { left: calc(100% + 40px); opacity: 1; }
	31% { opacity: 0; }
	100% { opacity: 0; }
}

@keyframes tm_bob {
	0%, 100% { transform: translateY(0) rotate(var(--r, 0deg)); }
	50% { transform: translateY(-12px) rotate(calc(var(--r, 0deg) + 4deg)); }
}

@keyframes tm_float {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-10px); }
}

@keyframes tm_spin {
	from { transform: translate(-50%, -50%) rotate(0deg); }
	to { transform: translate(-50%, -50%) rotate(360deg); }
}

@keyframes tm_breathe {
	0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.9; }
	50% { transform: translate(-50%, -50%) scale(1.06); opacity: 1; }
}

@keyframes tm_ribbon {
	from { transform: translateX(0); }
	to { transform: translateX(-33.3333%); }
}

@keyframes tm_ribbon_back {
	from { transform: translateX(-33.3333%); }
	to { transform: translateX(0); }
}

@keyframes tm_loader {
	to { transform: rotate(360deg); }
}

@keyframes pp_wheel {
	from { transform: rotate(0deg); }
	to { transform: rotate(-360deg); }
}

@keyframes pp_ping {
	0% { transform: scale(1); opacity: 0.8; }
	100% { transform: scale(1.7); opacity: 0; }
}
