.transition(@property){
	-webkit-transition: @property .25s ease;
	   -moz-transition: @property .25s ease;
	    -ms-transition: @property .25s ease;
	     -o-transition: @property .25s ease;
	        transition: @property .25s ease;
}

.transition-custom(...){
	@values: ~`"@{arguments}".replace(/[\[\]]/g, '')`;
	-webkit-transition: @values;
	   -moz-transition: @values;
	    -ms-transition: @values;
	     -o-transition: @values;
	        transition: @values;
}

.placeholder(@rules) {

    &::-webkit-input-placeholder {
        @rules();
    }
    &:-moz-placeholder {
        @rules();
    }
    &::-moz-placeholder {
        @rules();
    }
    &:-ms-input-placeholder {
        @rules();
    }
}


.fz( @value: @font-size_base, @context: @font-size_base ) {
	font-size: (@value / @context) + 0em;
}

.translateX(@value){
	-webkit-transform: translateX(@value);
	   -moz-transform: translateX(@value);
	    -ms-transform: translateX(@value);
	     -o-transform: translateX(@value);
	        transform: translateX(@value);
}

.animation(@arguments) {
	-webkit-animation: @arguments;
	   -moz-animation: @arguments;
	    -ms-animation: @arguments;
	     -o-animation: @arguments;
	        animation: @arguments;
}

.transform(@value){
	-webkit-transform: @value;
	   -moz-transform: @value;
	    -ms-transform: @value;
	     -o-transform: @value;
	        transform: @value;
}

.keyframes(@name; @arguments) {
	@-moz-keyframes @name { @arguments(); }
	@-webkit-keyframes @name { @arguments(); }
	@keyframes @name { @arguments(); }
}