.text-shadow (@string:0 1px 3px rgba(0,
0,
0,
0.25)) {
	text-shadow: @string;
}
.box-shadow (@string) {
	-webkit-box-shadow: @string;
	-moz-box-shadow: @string;
	box-shadow: @string;
}
.drop-shadow (@x:0,
@y:1px,
@blur:2px,
@spread:0,
@alpha:0.25) {
	-webkit-box-shadow: @x @y @blur @spread rgba(0, 0, 0, @alpha);
	-moz-box-shadow: @x @y @blur @spread rgba(0, 0, 0, @alpha);
	box-shadow: @x @y @blur @spread rgba(0, 0, 0, @alpha);
}
.inner-shadow (@x:0,
@y:1px,
@blur:2px,
@spread:0,
@alpha:0.25) {
	-webkit-box-shadow: inset @x @y @blur @spread rgba(0, 0, 0, @alpha);
	-moz-box-shadow: inset @x @y @blur @spread rgba(0, 0, 0, @alpha);
	box-shadow: inset @x @y @blur @spread rgba(0, 0, 0, @alpha);
}
.box-sizing (@type:border-box) {
	-webkit-box-sizing: @type;
	-moz-box-sizing: @type;
	box-sizing: @type;
}
.border-radius (@radius:5px) {
	-webkit-border-radius: @radius;
	-moz-border-radius: @radius;
	border-radius: @radius;
}
.border-radiuses (@topright:0,
@bottomright:0,
@bottomleft:0,
@topleft:0) {
	-webkit-border-top-right-radius: @topright;
	border-top-right-radius: @topright;
	-webkit-border-bottom-right-radius: @bottomright;
	border-bottom-right-radius: @bottomright;
	-webkit-border-bottom-left-radius: @bottomleft;
	border-bottom-left-radius: @bottomleft;
	-webkit-border-top-left-radius: @topleft;
	border-top-left-radius: @topleft;
	background-clip: padding-box;
	-moz-border-radius-topright: @topright;
	-moz-border-radius-bottomright: @bottomright;
	-moz-border-radius-bottomleft: @bottomleft;
	-moz-border-radius-topleft: @topleft;
	-moz-background-clip: padding;
	-webkit-background-clip: padding-box;
}
.opacity (@opacity:100) {
	opacity: @opacity / 100;
}
.gradient (@startColor:#eee,
@endColor:white) {
	background: -webkit-gradient(linear, left top, left bottom, from(@startColor), to(@endColor));
	background: -webkit-linear-gradient(top, @startColor, @endColor);
	background: -moz-linear-gradient(top, @startColor, @endColor);
	background: -ms-linear-gradient(top, @startColor, @endColor);
	background: -o-linear-gradient(top, @startColor, @endColor);
	background-color: @startColor;
}
.horizontal-gradient (@startColor:#eee,
@endColor:white) {
	background-color: @startColor;
	background-image: -webkit-gradient(linear, left top, right top, from(@startColor), to(@endColor));
	background-image: -webkit-linear-gradient(left, @startColor, @endColor);
	background-image: -moz-linear-gradient(left, @startColor, @endColor);
	background-image: -ms-linear-gradient(left, @startColor, @endColor);
	background-image: -o-linear-gradient(left, @startColor, @endColor);
}
.animation (@name,
@duration:300ms,
@delay:0,
@ease:ease) {
	-webkit-animation: @name @duration @delay @ease;
	-moz-animation: @name @duration @delay @ease;
	-ms-animation: @name @duration @delay @ease;
	animation: @name @duration @delay @ease;
}
.transition (@transition) {
	-webkit-transition: @transition;
	-moz-transition: @transition;
	-ms-transition: @transition;
	-o-transition: @transition;
	transition: @transition;
}
.transform(@string) {
	-webkit-transform: @string;
	-moz-transform: @string;
	-ms-transform: @string;
	-o-transform: @string;
	transform: @string;
	ms-transform: @string;
}
.scale (@factor) {
	-webkit-transform: scale(@factor);
	-moz-transform: scale(@factor);
	-ms-transform: scale(@factor);
	-o-transform: scale(@factor);
	transform: scale(@factor);
	ms-transform: scale(@factor);
}
.rotate (@deg) {
	-webkit-transform: rotate(@deg);
	-moz-transform: rotate(@deg);
	-ms-transform: rotate(@deg);
	-o-transform: rotate(@deg);
	transform: rotate(@deg);
	ms-transform: rotate(@deg);
}
.rotateY (@deg) {
	-webkit-transform: rotateY(@deg);
	-moz-transform: rotateY(@deg);
	-ms-transform: rotateY(@deg);
	-o-transform: rotateY(@deg);
	-ms-transform: rotateY(@deg);
	transform: rotateY(@deg);
	ms-transform: rotateY(@deg);
}
.rotateX (@deg) {
	-webkit-transform: rotateX(@deg);
	-moz-transform: rotateX(@deg);
	-ms-transform: rotateX(@deg);
	-o-transform: rotateX(@deg);
	transform: rotateX(@deg);
	ms-transform: rotateX(@deg);
}
.skew (@deg,
@deg2) {
	-webkit-transform: skew(@deg, @deg2);
	-moz-transform: skew(@deg, @deg2);
	-ms-transform: skew(@deg, @deg2);
	-o-transform: skew(@deg, @deg2);
	transform: skew(@deg, @deg2);
	ms-transform: skew(@deg, @deg2);
}
.translate (@x,
@y:0) {
	-webkit-transform: translate(@x, @y);
	-moz-transform: translate(@x, @y);
	-ms-transform: translate(@x, @y);
	-o-transform: translate(@x, @y);
	transform: translate(@x, @y);
	ms-transform: translate(@x, @y);
}
.translateX (@value) {
	-webkit-transform: translateX(@value);
	-moz-transform: translateX(@value);
	-ms-transform: translateX(@value);
	-o-transform: translateX(@value);
	transform: translateX(@value);
	ms-transform: translateX(@value);
}
.translate3d (@x,
@y:0,
@z:0) {
	-webkit-transform: translate3d(@x, @y, @z);
	-moz-transform: translate3d(@x, @y, @z);
	-ms-transform: translate3d(@x, @y, @z);
	-o-transform: translate3d(@x, @y, @z);
	transform: translate3d(@x, @y, @z);
	ms-transform: translate3d(@x, @y, @z);
}
.perspective (@value:1000) {
	-webkit-perspective: @value;
	-moz-perspective: @value;
	-ms-perspective: @value;
	perspective: @value;
	ms-perspective: @value;
}
.transform-origin (@x:center,
@y:center) {
	-webkit-transform-origin: @x @y;
	-moz-transform-origin: @x @y;
	-ms-transform-origin: @x @y;
	-o-transform-origin: @x @y;
	ms-transform-origin: @x @y;
}
.filter-blur (@value:2px) {
	filter: blur(@value);
	-webkit-filter: blur(@value);
	-moz-filter: blur(@value);
	-o-filter: blur(@value);
	-ms-filter: blur(@value);
	-ms-filter: blur(@value);
}
.filter-contrast (@value:150%) {
	filter: contrast(@value);
	-webkit-filter: contrast(@value);
	-moz-filter: contrast(@value);
	-o-filter: contrast(@value);
	-ms-filter: contrast(@value);
}
.filter-grayscale (@value:100%) {
	filter: grayscale(@value);
	-webkit-filter: grayscale(@value);
	-moz-filter: grayscale(@value);
	-o-filter: grayscale(@value);
	-ms-filter: grayscale(@value);
}
.filter-sepia (@value:100%) {
	filter: sepia(@value);
	-webkit-filter: sepia(@value);
	-moz-filter: sepia(@value);
	-o-filter: sepia(@value);
	-ms-filter: sepia(@value);
}
.clearfix() {
	*zoom:1;
	&:before,
	&:after {
		content: " ";
		display: table;
	}
	&:after {
		clear: both;
	}
}
.backface-visibility (@value:hidden) {
	-webkit-backface-visibility: hidden;
	-moz-backface-visibility: hidden;
	-ms-backface-visibility: hidden;
	-o-backface-visibility: hidden;
	backface-visibility: hidden;
	ms-backface-visibility: hidden;
}

.bg-transparent(@color, @alpha: 1) {
  background: rgba( red(@color), green(@color), blue(@color), @alpha);
}

.gpu() {
	-webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -ms-backface-visibility: hidden;
    backface-visibility: hidden;

    -webkit-perspective: 1000;
    -moz-perspective: 1000;
    -ms-perspective: 1000;
    perspective: 1000;

	-webkit-transform: translateZ(0px);
	-moz-transform: translateZ(0px);
	-ms-transform: translateZ(0px);
	-o-transform: translateZ(0px);
	transform: translateZ(0px);
}