//  lesshat - The best mixin library in the world
//
// version: v4.1.0 (2016-07-19)

// TABLE OF MIXINS:
	// align-content
	// align-items
	// align-self
	// animation
	// animation-delay
	// animation-direction
	// animation-duration
	// animation-fill-mode
	// animation-iteration-count
	// animation-name
	// animation-play-state
	// animation-timing-function
	// appearance
	// backface-visibility
	// background-clip
	// background-image
	// background-origin
	// background-size
	// blur
	// border-bottom-left-radius
	// border-bottom-right-radius
	// border-image
	// border-radius
	// border-top-left-radius
	// border-top-right-radius
	// box-shadow
	// box-sizing
	// brightness
	// calc
	// column-count
	// column-gap
	// column-rule
	// column-width
	// columns
	// contrast
	// display
	// drop-shadow
	// filter
	// flex
	// flex-basis
	// flex-direction
	// flex-grow
	// flex-shrink
	// flex-wrap
	// font-face
	// grayscale
	// hue-rotate
	// hyphens
	// invert
	// justify-content
	// keyframes
	// opacity
	// order
	// perspective
	// perspective-origin
	// placeholder
	// rotate
	// rotate3d
	// rotateX
	// rotateY
	// rotateZ
	// saturate
	// scale
	// scale3d
	// scaleX
	// scaleY
	// scaleZ
	// selection
	// sepia
	// size
	// skew
	// skewX
	// skewY
	// transform
	// transform-origin
	// transform-style
	// transition
	// transition-delay
	// transition-duration
	// transition-property
	// transition-timing-function
	// translate
	// translate3d
	// translateX
	// translateY
	// translateZ
	// user-select

  // border-triangle
  // clearfix
  // float
  // gradient
  // ie6-png24-opacity
  // image-middle
  // image-retina
  // inline-block
  // grid
  // opacity
  // text-overflow
  // text-wrap
  //data-dpr
  //common-hover-transform
  //clear-after
.align-content(...) {
  @process: ~`(function(t){return t=t||"stretch"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process_ms: ~`(function(e){return e=e||"stretch","flex-start"==e?e="start":"flex-end"==e?e="end":"space-between"==e?e="justify":"space-around"==e&&(e="distribute"),e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-align-content: @process;
  -ms-flex-line-pack: @process_ms;
  align-content: @process;
}

.align-items(...) {
  @process_olderwebkit: ~`(function(t){return t=t||"stretch","flex-start"==t?t="start":"flex-end"==t&&(t="end"),t})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process_moz: ~`(function(t){return t=t||"stretch","flex-start"==t?t="start":"flex-end"==t&&(t="end"),t})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process: ~`(function(t){return t=t||"stretch"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process_ms: ~`(function(t){return t=t||"stretch","flex-start"==t?t="start":"flex-end"==t&&(t="end"),t})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-box-align: @process_olderwebkit;
  -moz-box-align: @process_moz;
  -webkit-align-items: @process;
  -ms-flex-align: @process_ms;
  align-items: @process;
}

.align-self(...) {
  @process: ~`(function(n){return n=n||"auto"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process_ms: ~`(function(t){return t=t||"auto","flex-start"==t?t="start":"flex-end"==t&&(t="end"),t})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-align-self: @process;
  -ms-flex-item-align: @process_ms;
  align-self: @process;
}

.animation(...) {
  @process: ~`(function(e){return e=e||"none",/^[^, ]*,/.test(e)&&(e=e.replace(/(?:,)(?![^(]*\))/g,"")),e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-animation: @process;
  -moz-animation: @process;
  -o-animation: @process;
  animation: @process;
}

.animation-delay(...) {
  @process: ~`(function(r){r=r||"0";var s=/(?:\d)(?:ms|s)/gi,t=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return s.test(r)||"0"===r||(r=r.replace(t,function(r){return r+=parseFloat(r,10)>10?"ms":"s"})),r})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-animation-delay: @process;
  -moz-animation-delay: @process;
  -o-animation-delay: @process;
  animation-delay: @process;
}

.animation-direction(...) {
  @process: ~`(function(n){return n||"normal"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-animation-direction: @process;
  -moz-animation-direction: @process;
  -o-animation-direction: @process;
  animation-direction: @process;
}

.animation-duration(...) {
  @process: ~`(function(r){r=r||"0";var s=/ms|s/gi,t=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return s.test(r)||"0"===r||(r=r.replace(t,function(r){return r+=parseFloat(r,10)>10?"ms":"s"})),r})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-animation-duration: @process;
  -moz-animation-duration: @process;
  -o-animation-duration: @process;
  animation-duration: @process;
}

.animation-fill-mode(...) {
  @process: ~`(function(n){return n||"none"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-animation-fill-mode: @process;
  -moz-animation-fill-mode: @process;
  -o-animation-fill-mode: @process;
  animation-fill-mode: @process;
}

.animation-iteration-count(...) {
  @process: ~`(function(n){return n||"0"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-animation-iteration-count: @process;
  -moz-animation-iteration-count: @process;
  -o-animation-iteration-count: @process;
  animation-iteration-count: @process;
}

.animation-name(...) {
  @process: ~`(function(n){return n||"none"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-animation-name: @process;
  -moz-animation-name: @process;
  -o-animation-name: @process;
  animation-name: @process;
}

.animation-play-state(...) {
  @process: ~`(function(n){return n||"running"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-animation-play-state: @process;
  -moz-animation-play-state: @process;
  -o-animation-play-state: @process;
  animation-play-state: @process;
}

.animation-timing-function(...) {
  @process: ~`(function(e){return e||"ease"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-animation-timing-function: @process;
  -moz-animation-timing-function: @process;
  -o-animation-timing-function: @process;
  animation-timing-function: @process;
}

.appearance(...) {
  @process: ~`(function(n){return n||"none"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-appearance: @process;
  -moz-appearance: @process;
  appearance: @process;
}

.backface-visibility(...) {
  @process: ~`(function(i){return i||"visible"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-backface-visibility: @process;
  -moz-backface-visibility: @process;
  -ms-backface-visibility: @process;
  -o-backface-visibility: @process;
  backface-visibility: @process;
}

.background-clip(...) {
  @process: ~`(function(r){return r||"border-box"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-background-clip: @process;
  -moz-background-clip: @process;
  background-clip: @process;
}

.background-image(...) {
  @process_ms: ~`(function(t){function e(t){var e,r,s,a,n,i,o,c,g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",d=0,l=0,f="",h=[];if(!t)return t;do e=t.charCodeAt(d++),r=t.charCodeAt(d++),s=t.charCodeAt(d++),c=e<<16|r<<8|s,a=c>>18&63,n=c>>12&63,i=c>>6&63,o=63&c,h[l++]=g.charAt(a)+g.charAt(n)+g.charAt(i)+g.charAt(o);while(d<t.length);f=h.join("");var u=t.length%3;return(u?f.slice(0,u-3):f)+"===".slice(u||3)}if(t=t||8121991,8121991==t)return t;var r=/linear|radial/g.test(t)&&t.split(/,(?=\s*(?:linear|radial|url))/g),s=[],a={"to bottom":'x1="0%" y1="0%" x2="0%" y2="100%"',"to left":'x1="100%" y1="0%" x2="0%" y2="0%"',"to top":'x1="0%" y1="100%" x2="0%" y2="0%"',"to right":'x1="0%" y1="0%" x2="100%" y2="0%"',get"top"(){return this["to bottom"]},get"180deg"(){return this["to bottom"]},get"right"(){return this["to left"]},get"270deg"(){return this["to left"]},get"bottom"(){return this["to top"]},get"90deg"(){return this["to right"]},get"0deg"(){return this["to top"]},get"left"(){return this["to right"]},"-45deg":'x1="0%" y1="0%" x2="100%" y2="100%"',"45deg":'x1="0%" y1="100%" x2="100%" y2="0%"',"ellipse at center":'cx="50%" cy="50%" r="75%"',get"135deg"(){return this["-45deg"]}},n={uri_data:"url(data:image/svg+xml;base64,",xml:'<?xml version="1.0" ?>',svg_start:'<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 1 1" preserveAspectRatio="none">',linear_gradient_start:'<linearGradient id="lesshat-generated" gradientUnits="userSpaceOnUse"',radial_gradient_start:'<radialGradient id="lesshat-generated" gradientUnits="userSpaceOnUse"',linear_gradient_end:"</linearGradient>",radial_gradient_end:"</radialGradient>",rect_linear:'<rect x="0" y="0" width="1" height="1" fill="url(#lesshat-generated)" />',rect_radial:'<rect x="-50" y="-50" width="101" height="101" fill="url(#lesshat-generated)" />',svg_end:"</svg>"};if(r.length){r.forEach(function(t,e){var r={};if(Object.keys(a).some(function(e){return t.indexOf(e)>=0?(r.svg_direction=a[e],!0):void(r.svg_direction=!1)}),/linear/.test(t))r.svg_type="linear";else if(/radial/.test(t))r.svg_type="radial";else if(!/linear/.test(t)&&!/radial/.test(t))return r.url=t.trim(),r.svg_type="url",r.svg_direction=!0,s.push(r),!1;var n=t.match(/rgb|#[a-zA-Z0-9]|hsl/g).length;r.svg_stops=[],t=t.replace(/transparent/g,"rgba(0,0,0,0)"),t.match(/#[a-zA-Z0-9]/g)&&t.match(/(#[a-zA-Z0-9]+)\s*(\d+%)?/g).forEach(function(t){t=t.split(" "),r.svg_stops.push('<stop offset="'+(t[1]||!1)+'" stop-color="'+t[0]+'" stop-opacity="1"/>')}),t.match(/rgba?\(\d+,\s*\d+,\s*\d+(?:,\s*(0|1|\.\d+|0\.\d+))?\)/g)&&t.replace(/rgba?\((\d+,\s*\d+,\s*\d+)(?:,\s*(0|1|\.\d+|0\.\d+))?\)\s*(\d+%)?/g,function(t,e,s,a){r.svg_stops.push('<stop offset="'+(a||!1)+'" stop-color="rgb('+e+')" stop-opacity="'+(s||1)+'"/>')}),t.match(/hsla?\((\d+,\s*\d+%,\s*\d+%),\s*(0|1|\.\d+|0\.\d+)\)/g)&&t.replace(/hsla?\((\d+,\s*\d+%,\s*\d+%),\s*(0|1|\.\d+|0\.\d+)\)\s*(\d+%)?/g,function(t,e,s,a){r.svg_stops.push('<stop offset="'+(a||!1)+'" stop-color="hsl('+e+')" stop-opacity="'+(s||1)+'"/>')});var i=Math.floor(100/(n-1));r.svg_stops.forEach(function(t,e){/offset="false"/.test(t)&&(r.svg_stops[e]=t.replace(/offset="false"/,'offset="'+i*e+'%"'))}),r.svg_stops.sort(function(t,e){if(t=t.match(/offset="(\d+)%"/),e=e.match(/offset="(\d+)%"/),2==t.length&&2==e.length)return t[1]-e[1]}),s.push(r)});var i=[],o=s.every(function(t){for(var e in t)if(0==t[e]||0==t[e].length)return!1;return!0});if(!o)return 8121991;s.forEach(function(t,e){"linear"!=t.svg_type&&"radial"!=t.svg_type||(i[e]=n.xml+n.svg_start),"linear"==t.svg_type?(i[e]+=n.linear_gradient_start+" "+t.svg_direction+">",t.svg_stops.forEach(function(t){i[e]+=t}),i[e]+=n.linear_gradient_end,i[e]+=n.rect_linear,i[e]+=n.svg_end):"radial"==t.svg_type?(i[e]+=n.radial_gradient_start+" "+t.svg_direction+">",t.svg_stops.forEach(function(t){i[e]+=t}),i[e]+=n.radial_gradient_end,i[e]+=n.rect_radial,i[e]+=n.svg_end):"url"==t.svg_type&&(i[e]=t.url)}),i.forEach(function(t,r){/<\?xml version="1.0" \?>/g.test(t)&&(i[r]=n.uri_data+e(t)+")")}),t=i.join(",")}return t})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process_webkit: ~`(function(e){if(e=e||8121991,8121991==e)return e;var r={"to bottom":"top","to left":"right","to top":"bottom","to right":"left","ellipse at center":"center, ellipse cover","circle closest-side":"center center, circle contain","circle farthest-corner":"center center, circle cover","circle farthest-side":"center center, circle cover","ellipse closest-side":"center center, ellipse contain","ellipse farthest-corner":"center center, ellipse cover","ellipse farthest-side":"center center, ellipse cover"},t=/(radial-gradient\()([a-z- ]+)at\s+(\w+%?)\s*(\w*%?)/g,c=Object.keys(r);return c.some(function(c){return e.indexOf(c)>=0?(e=e.replace(new RegExp(c+"(?![ a-z0-9])","g"),r[c]),!0):void(t.test(e)&&(e=e.replace(t,function(e,r,t,c,i){return r.trim()+c.trim()+" "+i.trim()+","+t.replace(/closest-side/g,"contain").replace(/farthest-corner/g,"cover").trim()})))}),e=e.replace(/(\d+)\s*deg/g,function(e,r){return 90-r+"deg"}).replace(/(linear|radial)-gradient/g,"-webkit-$1-gradient")})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process_moz: ~`(function(e){if(e=e||8121991,8121991==e)return e;var r={"to bottom":"top","to left":"right","to top":"bottom","to right":"left","ellipse at center":"center, ellipse cover","circle closest-side":"center center, circle contain","circle farthest-corner":"center center, circle cover","circle farthest-side":"center center, circle cover","ellipse closest-side":"center center, ellipse contain","ellipse farthest-corner":"center center, ellipse cover","ellipse farthest-side":"center center, ellipse cover"},t=/(radial-gradient\()([a-z- ]+)at\s+(\w+%?)\s*(\w*%?)/g,c=Object.keys(r);return c.some(function(c){return e.indexOf(c)>=0?(e=e.replace(new RegExp(c+"(?![ a-z0-9])","g"),r[c]),!0):void(t.test(e)&&(e=e.replace(t,function(e,r,t,c,n){return r.trim()+c.trim()+" "+n.trim()+","+t.replace(/closest-side/g,"contain").replace(/farthest-corner/g,"cover").trim()})))}),e=e.replace(/(\d+)\s*deg/g,function(e,r){return 90-r+"deg"}).replace(/(linear|radial)-gradient/g,"-moz-$1-gradient")})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process_opera: ~`(function(e){if(e=e||8121991,8121991==e)return e;var r={"to bottom":"top","to left":"right","to top":"bottom","to right":"left","ellipse at center":"center, ellipse cover","circle closest-side":"center center, circle contain","circle farthest-corner":"center center, circle cover","circle farthest-side":"center center, circle cover","ellipse closest-side":"center center, ellipse contain","ellipse farthest-corner":"center center, ellipse cover","ellipse farthest-side":"center center, ellipse cover"},t=/(radial-gradient\()([a-z- ]+)at\s+(\w+%?)\s*(\w*%?)/g,c=Object.keys(r);return c.some(function(c){return e.indexOf(c)>=0?(e=e.replace(new RegExp(c+"(?![ a-z0-9])","g"),r[c]),!0):void(t.test(e)&&(e=e.replace(t,function(e,r,t,c,n){return r.trim()+c.trim()+" "+n.trim()+","+t.replace(/closest-side/g,"contain").replace(/farthest-corner/g,"cover").trim()})))}),e=e.replace(/(\d+)\s*deg/g,function(e,r){return 90-r+"deg"}).replace(/(linear|radial)-gradient/g,"-o-$1-gradient")})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process: ~`(function(t){if(t=t||8121991,8121991==t)return t;var e={top:"to bottom",right:"to left",bottom:"to top",left:"to right"},o=Object.keys(e);return o.some(function(o){if(t.indexOf(o)>=0&&!new RegExp("to\\s+"+o+"|at\\s+"+o,"g").test(t))return t=t.replace(new RegExp(o),e[o]),!0}),t})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  background-image: @process_ms;
  background-image: @process_webkit;
  background-image: @process_moz;
  background-image: @process_opera;
  background-image: @process;
}

.background-origin(...) {
  @process: ~`(function(n){return n||"padding-box"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-background-origin: @process;
  -moz-background-origin: @process;
  background-origin: @process;
}

.background-size(...) {
  @process: ~`(function(t){t=t||"auto auto";var e=/\d/gi,r=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return/^[^, ]*,/.test(t)&&(t=t.replace(/(?:,)(?![^(]*\))/g,"")),e.test(t)&&(t=t.replace(r,function(t){return 0==t&&t||t+"px"})),t})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-background-size: @process;
  -moz-background-size: @process;
  background-size: @process;
}

.blur(...) {
  @process: ~`(function(n){n=n||"0";var r=/\d/gi,t=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return r.test(n)&&(n=n.replace(t,function(n){return 0==n&&n||n+"px"})),n})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-filter: blur(@process);
  -moz-filter: blur(@process);
  -ms-filter: blur(@process);
  filter: blur(@process);
}

.border-bottom-left-radius(...) {
  @process: ~`(function(e){e=e||"0";var t=/\d/gi,r=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return/^[^, ]*,/.test(e)&&(e=e.replace(/(?:,)(?![^(]*\))/g,"")),t.test(e)&&(e=e.replace(r,function(e){return 0==e&&e||e+"px"})),e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-border-bottom-left-radius: @process; -webkit-background-clip: padding-box; 
  -moz-border-radius-bottomleft: @process; -moz-background-clip: padding; 
  border-bottom-left-radius: @process; background-clip: padding-box; 
}

.border-bottom-right-radius(...) {
  @process: ~`(function(e){e=e||"0";var t=/\d/gi,r=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return/^[^, ]*,/.test(e)&&(e=e.replace(/(?:,)(?![^(]*\))/g,"")),t.test(e)&&(e=e.replace(r,function(e){return 0==e&&e||e+"px"})),e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-border-bottom-right-radius: @process; -webkit-background-clip: padding-box; 
  -moz-border-radius-bottomright: @process; -moz-background-clip: padding; 
  border-bottom-right-radius: @process; background-clip: padding-box; 
}

.border-image(...) {
  @process: ~`(function(e){return e=e||8121991,/^[^, ]*,/.test(e)&&(e=e.replace(/(?:,)(?![^(]*\))/g,"")),e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-border-image: @process;
  -moz-border-image: @process;
  -o-border-image: @process;
  border-image: @process;
}

.border-radius(...) {
  @process: ~`(function(e){e=e||"0";var t=/\d/gi,r=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return/^[^, ]*,/.test(e)&&(e=e.replace(/(?:,)(?![^(]*\))/g,"")),t.test(e)&&(e=e.replace(r,function(e){return 0==e&&e||e+"px"})),e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-border-radius: @process; -webkit-background-clip: padding-box; 
  -moz-border-radius: @process; -moz-background-clip: padding; 
  border-radius: @process; background-clip: padding-box; 
}

.border-top-left-radius(...) {
  @process: ~`(function(e){e=e||"0";var t=/\d/gi,r=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return/^[^, ]*,/.test(e)&&(e=e.replace(/(?:,)(?![^(]*\))/g,"")),t.test(e)&&(e=e.replace(r,function(e){return 0==e&&e||e+"px"})),e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-border-top-left-radius: @process; -webkit-background-clip: padding-box; 
  -moz-border-radius-topleft: @process; -moz-background-clip: padding; 
  border-top-left-radius: @process; background-clip: padding-box; 
}

.border-top-right-radius(...) {
  @process: ~`(function(e){e=e||"0";var t=/\d/gi,r=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return/^[^, ]*,/.test(e)&&(e=e.replace(/(?:,)(?![^(]*\))/g,"")),t.test(e)&&(e=e.replace(r,function(e){return 0==e&&e||e+"px"})),e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-border-top-right-radius: @process; -webkit-background-clip: padding-box; 
  -moz-border-radius-topright: @process; -moz-background-clip: padding; 
  border-top-right-radius: @process; background-clip: padding-box; 
}

.box-shadow(...) {
  @process: ~`(function(e){e=e||"0";var t=/\d/gi,r=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return/^[^, ]*,/.test(e)&&(e=e.replace(/(?:,)(?![^(]*\))/g,"")),t.test(e)&&(e=e.replace(r,function(e){return 0==e&&e||e+"px"})),e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-box-shadow: @process;
  -moz-box-shadow: @process;
  box-shadow: @process;
}

.box-sizing(...) {
  @process: ~`(function(n){return n=n||"content-box"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-box-sizing: @process;
  -moz-box-sizing: @process;
  box-sizing: @process;
}

.brightness(...) {
  @process: ~`(function(n){return n=n||"1"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-filter: brightness(@process);
  -moz-filter: brightness(@process);
  -ms-filter: brightness(@process);
  filter: brightness(@process);
}

.calc(...) {
  @process: ~`(function(a){function c(c,t){var r=");\n",s=e.split(","),l=s[0]+":"+c+"("+(s[1].trim()||0)+r;"start"==t?a="0;\n"+l:a+=l}a=a||8121991;var t="@{state}",e=a;if(8121991==a)return a;switch(t){case"1":c("-webkit-calc","start"),c("-moz-calc"),c("calc");break;case"2":c("-webkit-calc","start"),c("-moz-calc");break;case"3":c("-webkit-calc","start"),c("calc");break;case"4":c("-webkit-calc","start");break;case"5":c("-moz-calc","start"),c("calc");break;case"6":c("-moz-calc","start");break;case"7":c("calc","start")}return a=a.replace(/;$/g,"")})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @state: 1; -lh-property: @process;

}

.column-count(...) {
  @process: ~`(function(n){return n=n||"auto"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-column-count: @process;
  -moz-column-count: @process;
  column-count: @process;
}

.column-gap(...) {
  @process: ~`(function(n){n=n||"normal";var r=/\d/gi,t=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return r.test(n)&&(n=n.replace(t,function(n){return 0==n&&n||n+"px"})),n})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-column-gap: @process;
  -moz-column-gap: @process;
  column-gap: @process;
}

.column-rule(...) {
  @process: ~`(function(e){e=e||"medium none black";var n=/\d/gi,t=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return/^[^, ]*,/.test(e)&&(e=e.replace(/(?:,)(?![^(]*\))/g,"")),n.test(e)&&(e=e.replace(t,function(e){return 0==e&&e||e+"px"})),e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-column-rule: @process;
  -moz-column-rule: @process;
  column-rule: @process;
}

.column-width(...) {
  @process: ~`(function(t){t=t||"auto";var n=/\d/gi,r=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return n.test(t)&&(t=t.replace(r,function(t){return 0==t&&t||t+"px"})),t})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-column-width: @process;
  -moz-column-width: @process;
  column-width: @process;
}

.columns(...) {
  @process: ~`(function(t){t=t||"auto auto";var e=/^\d+$/;return/^[^, ]*,/.test(t)&&(t=t.replace(/(?:,)(?![^(]*\))/g,""),t=t.split(" ")),e.test(t[0])&&(t[0]=t[0]+"px"),t.join(" ")})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-columns: @process;
  -moz-columns: @process;
  columns: @process;
}

.contrast(...) {
  @process: ~`(function(n){n=n||"100%";var r=/\d/gi,t=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return r.test(n)&&(n=n.replace(t,function(n){return 0==n&&n||n+"%"})),n})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-filter: ~"contrast(@{process})";
  -moz-filter: ~"contrast(@{process})";
  -ms-filter: ~"contrast(@{process})";
  filter: ~"contrast(@{process})";
}

.display(...) {
  @process_oldwebkit: ~`(function(e){return e="flex"==e||"inline-flex"==e?"-webkit-box":8121991})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process_moz: ~`(function(n){return n="flex"==n||"inline-flex"==n?"-moz-box":8121991})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process_webkit: ~`(function(e){return e="flex"==e||"inline-flex"==e?"-webkit-"+e:8121991})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process_ms: ~`(function(e){return e="flex"==e?"-ms-flexbox":"inline-flex"==e?"-ms-inline-flexbox":8121991})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process: ~`(function(n){return"flex"!=n&&"inline-flex"!=n&&(n=8121991),n})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  display: @process_oldwebkit;
  display: @process_moz;
  display: @process_webkit;
  display: @process_ms;
  display: @process;
}

.drop-shadow(...) {
  @process: ~`(function(e){if(e=e||8121991,8121991==e)return e;var r=/\d/gi,t=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return/^[^, ]*,/.test(e)&&(e=e.replace(/(?:,)(?![^(]*\))/g,"")),r.test(e)&&(e=e.replace(t,function(e){return 0==e&&e||e+"px"})),e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-filter: drop-shadow(@process);
  -moz-filter: drop-shadow(@process);
  -ms-filter: drop-shadow(@process);
  filter: drop-shadow(@process);
}

.filter(...) {
  @process: ~`(function(e){return e=e||"none",/^[^, ]*,/.test(e)&&(e=e.replace(/(?:,)(?![^(]*\))/g,"")),e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-filter: @process;
  -moz-filter: @process;
  -ms-filter: @process;
  filter: @process;
}

.flex(...) {
  @process_olderwebkit: ~`(function(t){return/^\d+/.test(t)?t=t.match(/^\d+/)[0]:""==t&&(t="0"),t})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process_moz: ~`(function(t){return/^\d+/.test(t)?t=t.match(/^\d+/)[0]:""==t&&(t="0"),t})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process: ~`(function(t){return t=t||"0 1 auto",/^[^, ]*,/.test(t)&&(t=t.replace(/(?:,)(?![^(]*\))/g,"")),t})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-box-flex: @process_olderwebkit;
  -moz-box-flex: @process_moz;
  -webkit-flex: @process;
  -ms-flex: @process;
  flex: @process;
}

.flex-basis(...) {
  @process: ~`(function(t){t=t||"auto";var n=/\d/gi,r=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return n.test(t)&&(t=t.replace(r,function(t){return 0==t&&t||t+"px"})),t})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-flex-basis: @process;
  flex-basis: @process;
}

.flex-direction(...) {
  @process_oldestwebkit: ~`(function(r){return r="row"==r||"column"==r?"normal":"row-reverse"==r||"column-reverse"==r?"reverse":8121991})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process_oldermoz: ~`(function(r){return r="row"==r||"column"==r?"normal":"row-reverse"==r||"column-reverse"==r?"reverse":8121991})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process_olderwebkit: ~`(function(r){return r="row"==r||"row-reverse"==r?"horizontal":"column"==r||"column-reverse"==r?"vertical":8121991})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process_moz: ~`(function(r){return r="row"==r||"row-reverse"==r?"horizontal":"column"==r||"column-reverse"==r?"vertical":8121991})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process: ~`(function(n){return n=n||"row"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-box-direction: @process_oldestwebkit;
  -moz-box-direction: @process_oldermoz;
  -webkit-box-orient: @process_olderwebkit;
  -moz-box-orient: @process_moz;
  -webkit-flex-direction: @process;
  -ms-flex-direction: @process;
  flex-direction: @process;
}

.flex-grow(...) {
  @process: ~`(function(n){return n=n||"0"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-flex-grow: @process;
  flex-grow: @process;
}

.flex-shrink(...) {
  @process: ~`(function(n){return n=n||"1"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-flex-shrink: @process;
  flex-shrink: @process;
}

.flex-wrap(...) {
  @process: ~`(function(n){return n=n||"nowrap"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-flex-wrap: @process;
  -ms-flex-wrap: @process;
  flex-wrap: @process;
}

.font-face(@fontname, @fontfile, @fontweight:normal, @fontstyle:normal) {
  font-family: "@{fontname}";
  src: url("@{fontfile}.eot");
  src: url("@{fontfile}.eot?#iefix") format("embedded-opentype"),
       url("@{fontfile}.woff") format("woff"),
       url("@{fontfile}.ttf") format("truetype"),
       url("@{fontfile}.svg#@{fontname}") format("svg");
  font-weight: @fontweight;
  font-style: @fontstyle;
}

.grayscale(...) {
  @process: ~`(function(n){n=n||"0";var r=/\d/gi,t=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return r.test(n)&&(n=n.replace(t,function(n){return 0==n&&n||n+"%"})),n})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-filter: grayscale(@process);
  -moz-filter: grayscale(@process);
  -ms-filter: grayscale(@process);
  filter: grayscale(@process);
}

.hue-rotate(...) {
  @process: ~`(function(e){e=e||"0";var n=/\d/gi,r=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return n.test(e)&&(e=e.replace(r,function(e){return 0==e&&e||e+"deg"})),e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-filter: hue-rotate(@process);
  -moz-filter: hue-rotate(@process);
  -ms-filter: hue-rotate(@process);
  filter: hue-rotate(@process);
}

.hyphens(...) {
  @process: ~`(function(n){return n=n||"manual"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-hyphens: @process;
  -moz-hyphens: @process;
  -ms-hyphens: @process;
  hyphens: @process;
}

.invert(...) {
  @process: ~`(function(n){n=n||"100%";var r=/\d/gi,t=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return r.test(n)&&(n=n.replace(t,function(n){return 0==n&&n||n+"%"})),n})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-filter: invert(@process);
  -moz-filter: invert(@process);
  -ms-filter: invert(@process);
  filter: invert(@process);
}

.justify-content(...) {
  @process_oldestWebkit: ~`(function(e){return e=e||"start","flex-start"==e?e="start":"flex-end"==e?e="end":"space-between"!=e&&"space-around"!=e||(e="justify"),e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process_moz: ~`(function(e){return e=e||"start","flex-start"==e?e="start":"flex-end"==e?e="end":"space-between"!=e&&"space-around"!=e||(e="justify"),e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process_ms: ~`(function(t){return t=t||"start","flex-start"==t?t="start":"flex-end"==t?t="end":"space-between"==t?t="justify":"space-around"==t&&(t="distribute"),t})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process: ~`(function(t){return t=t||"flex-start"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-box-pack: @process_oldestWebkit;
  -moz-box-pack: @process_moz;
  -ms-flex-pack: @process_ms;
  -webkit-justify-content: @process;
  justify-content: @process;
}

.keyframes(...) {
  @process: ~`(function(e){function a(a,r,k){var n="}\n",m=t.split(/(^[a-zA-Z0-9-]+),/g),o=r+" "+m[1]+"{",f=["-webkit-","-moz-","-ms-",""];k?s.forEach(function(a,r){e.indexOf(a)!==-1&&(m[2]=m[2].replace(new RegExp(a,"g"),function(e){return k+e}))}):m[2]=m[2].replace(/{([^}]+)}/g,function(e,a){var r=a.split(";");r.forEach(function(e,a){s.forEach(function(t){e.indexOf(t)!==-1&&(r[a]="",f.forEach(function(s){r[a]+=e.trim().replace(new RegExp(t,"g"),function(e){return s+e})+";"}))})});var t=r.join(";").replace(/;;/g,";");return e.replace(a,t)}),o+=m[2]+n,"start"==a?e="0; } \n"+o:"startend"==a?e="0; } \n"+o.replace(n,""):e+="end"==a?o.replace(n,""):o}e=e||8121991;var r="@{state}",t=e;if(8121991==e)return e;var s=["animation","transform","filter"];switch(r){case"1":a("start","@-webkit-keyframes","-webkit-"),a(null,"@-moz-keyframes","-moz-"),a(null,"@-o-keyframes","-o-"),a("end","@keyframes");break;case"2":a("start","@-webkit-keyframes","-webkit-"),a(null,"@-moz-keyframes","-moz-"),a("end","@keyframes");break;case"3":a("start","@-webkit-keyframes","-webkit-"),a(null,"@-moz-keyframes","-moz-"),a("end","@-o-keyframes","-o-");break;case"4":a("start","@-webkit-keyframes","-webkit-"),a(null,"@-o-keyframes","-o-"),a("end","@keyframes");break;case"5":a("start","@-webkit-keyframes","-webkit-"),a("end","@-moz-keyframes","-moz-");break;case"6":a("start","@-webkit-keyframes","-webkit-"),a("end","@-o-keyframes","-o-");break;case"7":a("start","@-webkit-keyframes","-webkit-"),a("end","@keyframes");break;case"8":a("startend","@-webkit-keyframes","-webkit-");break;case"9":a("start","@-moz-keyframes","-moz-"),a(null,"@-o-keyframes","-o-"),a("end","@keyframes");break;case"10":a("start","@-moz-keyframes","-moz-"),a("end","@-o-keyframes","-o-");break;case"11":a("start","@-moz-keyframes","-moz-"),a("end","@keyframes");break;case"12":a("startend","@-moz-keyframes","-moz-");break;case"13":a("start","@-o-keyframes","-o-"),a("end","@keyframes");break;case"14":a("startend","@-o-keyframes","-o-");break;case"15":a("startend","@keyframes")}return e+"}\n[not-existing] {\n  zoom: 1"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @state: 1; lesshat-selector { -lh-property: @process; }



}

.opacity(...) {
  @process_ms: ~`(function(a){return a=a||"filter: alpha(opacity=100)","alpha(opacity="+Math.floor(100*a)+")"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process: ~`(function(n){return n=n||"1"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
   zoom: 1; filter: @process_ms;
  -webkit-opacity: @process;
  -moz-opacity: @process;
  opacity: @process;
}

.order(...) {
  @process: ~`(function(n){return n=n||"0"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-box-ordinal-group: @process;
  -moz-box-ordinal-group: @process;
  -ms-flex-order: @process;
  -webkit-order: @process;
  order: @process;
}

.perspective(...) {
  @process: ~`(function(n){n=n||"none";var e=/\d/gi,r=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return e.test(n)&&(n=n.replace(r,function(n){return 0==n&&n||n+"px"})),n})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-perspective: @process;
  -moz-perspective: @process;
  perspective: @process;
}

.perspective-origin(...) {
  @process: ~`(function(e){e=e||"50% 50%";var t=/\d/gi,r=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return/^[^, ]*,/.test(e)&&(e=e.replace(/(?:,)(?![^(]*\))/g,"")),t.test(e)&&(e=e.replace(r,function(e){return 0==e&&e||e+"%"})),e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-perspective-origin: @process;
  -moz-perspective-origin: @process;
  perspective-origin: @process;
}

.placeholder(@color:#aaa, @element: 08121991) {
  .inception (@arguments) when not (@element = 08121991) {
    @{element}::-webkit-input-placeholder {
       color: @color;
    }
    @{element}:-moz-placeholder {
       color: @color;
    }
    @{element}::-moz-placeholder {
       color: @color;
    }
    @{element}:-ms-input-placeholder {
       color: @color;
    }
  }
  .inception (@arguments) when (@element = 08121991) {
    &::-webkit-input-placeholder {
       color: @color;
    }
    &:-moz-placeholder {
       color: @color;
    }
    &::-moz-placeholder {
       color: @color;
    }
    &:-ms-input-placeholder {
       color: @color;
    }
  }
  .inception(@arguments);
}

.rotate(...) {
  @process: ~`(function(e){e=e||"0";var n=/\d/gi,r=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return n.test(e)&&(e=e.replace(r,function(e){return 0==e&&e||e+"deg"})),e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-transform: rotate(@process);
  -moz-transform: rotate(@process);
  -ms-transform: rotate(@process);
  -o-transform: rotate(@process);
  transform: rotate(@process);
}

.rotate3d(...) {
  @process: ~`(function(n){return n=n||"0, 0, 0, 0",n=n.replace(/,\s*\d+$/,function(n){return n+"deg"})})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-transform: rotate3d(@process);
  -moz-transform: rotate3d(@process);
  -ms-transform: rotate3d(@process);
  -o-transform: rotate3d(@process);
  transform: rotate3d(@process);
}

.rotateX(...) {
  @process: ~`(function(e){e=e||"0";var n=/\d/gi,r=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return n.test(e)&&(e=e.replace(r,function(e){return 0==e&&e||e+"deg"})),e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-transform: rotateX(@process);
  -moz-transform: rotateX(@process);
  -ms-transform: rotateX(@process);
  -o-transform: rotateX(@process);
  transform: rotateX(@process);
}

.rotateY(...) {
  @process: ~`(function(e){e=e||"0";var n=/\d/gi,r=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return n.test(e)&&(e=e.replace(r,function(e){return 0==e&&e||e+"deg"})),e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-transform: rotateY(@process);
  -moz-transform: rotateY(@process);
  -ms-transform: rotateY(@process);
  -o-transform: rotateY(@process);
  transform: rotateY(@process);
}

.rotateZ(...) {
  @process: ~`(function(e){e=e||"0";var n=/\d/gi,r=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return n.test(e)&&(e=e.replace(r,function(e){return 0==e&&e||e+"deg"})),e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-transform: rotateZ(@process);
  -moz-transform: rotateZ(@process);
  -ms-transform: rotateZ(@process);
  -o-transform: rotateZ(@process);
  transform: rotateZ(@process);
}

.saturate(...) {
  @process: ~`(function(n){n=n||"100%";var r=/\d/gi,t=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return r.test(n)&&(n=n.replace(t,function(n){return 0==n&&n||n+"%"})),n})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-filter: ~"saturate(@{process})";
  -moz-filter: ~"saturate(@{process})";
  -ms-filter: ~"saturate(@{process})";
  filter: ~"saturate(@{process})";
}

.scale(...) {
  @process: ~`(function(n){return n=n||"1"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-transform: scale(@process);
  -moz-transform: scale(@process);
  -ms-transform: scale(@process);
  -o-transform: scale(@process);
  transform: scale(@process);
}

.scale3d(...) {
  @process: ~`(function(n){return n=n||"1, 1, 1"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-transform: scale3d(@process);
  -moz-transform: scale3d(@process);
  -ms-transform: scale3d(@process);
  -o-transform: scale3d(@process);
  transform: scale3d(@process);
}

.scaleX(...) {
  @process: ~`(function(n){return n=n||"1"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-transform: scaleX(@process);
  -moz-transform: scaleX(@process);
  -ms-transform: scaleX(@process);
  -o-transform: scaleX(@process);
  transform: scaleX(@process);
}

.scaleY(...) {
  @process: ~`(function(n){return n=n||"1"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-transform: scaleY(@process);
  -moz-transform: scaleY(@process);
  -ms-transform: scaleY(@process);
  -o-transform: scaleY(@process);
  transform: scaleY(@process);
}

.scaleZ(...) {
  @process: ~`(function(n){return n=n||"1"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-transform: scaleZ(@process);
  -moz-transform: scaleZ(@process);
  -ms-transform: scaleZ(@process);
  -o-transform: scaleZ(@process);
  transform: scaleZ(@process);
}

.selection(...) {
  @process: ~`(function(e){function t(t,n){var r="}\n",s=a.split(","),c=(s[1]||"")+n+"{"+s[0]+r;"start"==t?e="0; } \n"+c:"startend"==t?e="0; } \n"+c.replace(r,""):e+="end"==t?c.replace(r,""):c}e=e||8121991;var n="@{state}",a=e;if(8121991==e)return e;switch(n){case"1":t("start","::selection"),t("end","::-moz-selection");break;case"2":t("startend","::selection");break;case"3":t("startend","::-moz-selection")}return e=e.replace(/;$/g,"")})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @state: 1; lesshat-selector { -lh-property: @process; }

}

.sepia(...) {
  @process: ~`(function(n){n=n||"100%";var r=/\d/gi,t=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return r.test(n)&&(n=n.replace(t,function(n){return 0==n&&n||n+"%"})),n})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-filter: sepia(@process);
  -moz-filter: sepia(@process);
  -ms-filter: sepia(@process);
  filter: sepia(@process);
}

.size(@square) {
  @unit: 'px';
  .process(@square) when (ispixel(@square)), (isem(@square)), (ispercentage(@square)), (iskeyword(@square)) {
    width: @square;
    height: @square;
  }

  .process(@square) when not (ispixel(@square)) and not (isem(@square)) and not (ispercentage(@square)) and not (isstring(@square)) and not (iskeyword(@square)) {
    width: ~`@{square} + @{unit}`;
    height: ~`@{square} + @{unit}`;
  }

  .process(@square);

}

.size(@width, @height) {
  @unit: 'px';
  .process(@width, @height) when (ispixel(@width)), (isem(@width)), (ispercentage(@width)), (iskeyword(@width)) {
    .kittens(@height) when (ispixel(@height)), (isem(@height)), (ispercentage(@height)), (iskeyword(@height)) {
      width: @width;
      height: @height;
    }
    .kittens(@height) when not (ispixel(@height)) and not (isem(@height)) and not (ispercentage(@height)) and not (iskeyword(@height)) {
      width: @width;
      height: ~`@{height} + @{unit}`;
    }
    .kittens(@height);
  }

  .process(@width, @height) when (ispixel(@height)), (isem(@height)), (ispercentage(@height)), (iskeyword(@height)) {
    .kittens(@width) when (ispixel(@width)), (isem(@width)), (ispercentage(@width)), (iskeyword(@width)) {}
    .kittens(@width) when not (ispixel(@width)) and not (isem(@width)) and not (ispercentage(@width)) and not (iskeyword(@width)) {
      width: ~`@{width} + @{unit}`;
      height: @height;
    }
    .kittens(@width);
  }

  .process(@width, @height) when not (ispixel(@width)) and not (isem(@width)) and not (ispercentage(@width)) and not (iskeyword(@width)) and not (ispixel(@height)) and not (isem(@height)) and not (ispercentage(@height)) and not (iskeyword(@height))  {
    width: ~`@{width} + @{unit}`;
    height: ~`@{height} + @{unit}`;
  }

  .process(@width, @height);

}

.skew(...) {
  @process: ~`(function(e){e=e||"0";var n=/\d/gi,r=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return n.test(e)&&(e=e.replace(r,function(e){return 0==e&&e||e+"deg"})),e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-transform: skew(@process);
  -moz-transform: skew(@process);
  -ms-transform: skew(@process);
  -o-transform: skew(@process);
  transform: skew(@process);
}

.skewX(...) {
  @process: ~`(function(e){e=e||"0";var n=/\d/gi,r=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return n.test(e)&&(e=e.replace(r,function(e){return 0==e&&e||e+"deg"})),e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-transform: skewX(@process);
  -moz-transform: skewX(@process);
  -ms-transform: skewX(@process);
  -o-transform: skewX(@process);
  transform: skewX(@process);
}

.skewY(...) {
  @process: ~`(function(e){e=e||"0";var n=/\d/gi,r=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return n.test(e)&&(e=e.replace(r,function(e){return 0==e&&e||e+"deg"})),e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-transform: skewY(@process);
  -moz-transform: skewY(@process);
  -ms-transform: skewY(@process);
  -o-transform: skewY(@process);
  transform: skewY(@process);
}

.transform(...) {
  @process: ~`(function(e){e=e||"none";var r={translate:"px",rotate:"deg",rotate3d:"deg",skew:"deg"};/^\w*\(?[a-z0-9.]*\)?/.test(e)&&(e=e.replace(/(?:,)(?![^(]*\))/g,""));for(var t in r)e.indexOf(t)>=0&&(e=e.replace(new RegExp(t+"[\\w]?\\([a-z0-9, %]*\\)"),function(e){var n=/(\d+\.?\d*)(?!\w|%)/g;return"rotate3d"==t&&(n=/,\s*\d+$/),e.replace(n,function(e){return e+r[t]})}));return e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-transform: @process;
  -moz-transform: @process;
  -ms-transform: @process;
  -o-transform: @process;
  transform: @process;
}

.transform-origin(...) {
  @process: ~`(function(e){e=e||"50% 50% 0";var t=/\d/gi,r=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return/^[^, ]*,/.test(e)&&(e=e.replace(/(?:,)(?![^(]*\))/g,"")),t.test(e)&&(e=e.replace(r,function(e){return 0==e&&e||e+"%"})),e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-transform-origin: @process;
  -moz-transform-origin: @process;
  -ms-transform-origin: @process;
  -o-transform-origin: @process;
  transform-origin: @process;
}

.transform-style(...) {
  @process: ~`(function(n){return n=n||"flat"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-transform-style: @process;
  -moz-transform-style: @process;
  -ms-transform-style: @process;
  -o-transform-style: @process;
  transform-style: @process;
}

.transition(...) {
  @process_webkit: ~`(function(r){r=r||"all 0 ease 0";var e=["background-size","border-radius","border-bottom-left-radius","border-bottom-right-radius","border-top-left-radius","border-top-right-radius","box-shadow","column","transform","filter"],t="-webkit-",o=/(?:\d)(?:ms|s)/gi,a=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%)/gi;return/^[^, ]*,/.test(r)&&(r=r.replace(/(?:,)(?![^(]*\))/g,"")),e.forEach(function(e,o){r.indexOf(e)!==-1&&(r=r.replace(new RegExp(e,"g"),function(r){return t+r}))}),o.test(r)||"0"===r||(r=r.replace(a,function(r){return r+=parseFloat(r,10)>10?"ms":"s"})),r})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process_moz: ~`(function(e){e=e||"all 0 ease 0";var n=["background-size","box-shadow","column","transform","filter"],r="-moz-",t=/(?:\d)(?:ms|s)/gi,a=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%)/gi;return/^[^, ]*,/.test(e)&&(e=e.replace(/(?:,)(?![^(]*\))/g,"")),n.forEach(function(n,t){e.indexOf(n)!==-1&&(e=e.replace(new RegExp(n,"g"),function(e){return r+e}))}),t.test(e)||"0"===e||(e=e.replace(a,function(e){return e+=parseFloat(e,10)>10?"ms":"s"})),e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process_opera: ~`(function(e){e=e||"all 0 ease 0";var n=["transform"],r="-o-",t=/(?:\d)(?:ms|s)/gi,a=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%)/gi;return/^[^, ]*,/.test(e)&&(e=e.replace(/(?:,)(?![^(]*\))/g,"")),n.forEach(function(n,t){e.indexOf(n)!==-1&&(e=e.replace(new RegExp(n,"g"),function(e){return r+e}))}),t.test(e)||"0"===e||(e=e.replace(a,function(e){return e+=parseFloat(e,10)>10?"ms":"s"})),e})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process: ~`(function(n){n=n||"all 0 ease 0";var e=["-webkit-","-moz-","-o-",""],t=["column","transform","filter"],r=/(?:\d)(?:ms|s)/gi,o=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%)/gi;/^[^, ]*,/.test(n)&&(n=n.replace(/(?:,)(?![^(]*\))/g,""));var i=n.split(/(?:,)(?![^(]*\))/g);return i.forEach(function(n,r){t.forEach(function(t){n.indexOf(t)!==-1&&(i[r]="",e.forEach(function(o,a){i[r]+=n.trim().replace(new RegExp(t,"g"),function(n){return o+n}),a<e.length-1&&(i[r]+=",")}))})}),n=i.join(","),r.test(n)||"0"===n||(n=n.replace(o,function(n){return n+=parseFloat(n,10)>10?"ms":"s"})),n})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-transition: @process_webkit;
  -moz-transition: @process_moz;
  -o-transition: @process_opera;
  transition: @process;
}

.transition-delay(...) {
  @process: ~`(function(r){r=r||"0";var s=/(?:\d)(?:ms|s)/gi,t=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return s.test(r)||"0"===r||(r=r.replace(t,function(r){return r+=parseFloat(r,10)>10?"ms":"s"})),r})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-transition-delay: @process;
  -moz-transition-delay: @process;
  -o-transition-delay: @process;
  transition-delay: @process;
}

.transition-duration(...) {
  @process: ~`(function(r){r=r||"0";var s=/ms|s/gi,t=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return s.test(r)||"0"===r||(r=r.replace(t,function(r){return r+=parseFloat(r,10)>10?"ms":"s"})),r})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-transition-duration: @process;
  -moz-transition-duration: @process;
  -o-transition-duration: @process;
  transition-duration: @process;
}

.transition-property(...) {
  @process_webkit: ~`(function(r){r=r||"all";var o=["background-size","border-radius","border-bottom-left-radius","border-bottom-right-radius","border-top-left-radius","border-top-right-radius","box-shadow","column","transform","filter"],t="-webkit-";return o.forEach(function(o,e){r.indexOf(o)!==-1&&(r=r.replace(new RegExp(o,"g"),function(r){return t+r}))}),r})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process_moz: ~`(function(n){n=n||"all";var r=["background-size","box-shadow","column","transform","filter"],o="-moz-";return r.forEach(function(r,e){n.indexOf(r)!==-1&&(n=n.replace(new RegExp(r,"g"),function(n){return o+n}))}),n})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process_opera: ~`(function(n){n=n||"all";var r=["transform"],e="-o-";return r.forEach(function(r,f){n.indexOf(r)!==-1&&(n=n.replace(new RegExp(r,"g"),function(n){return e+n}))}),n})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  @process: ~`(function(n){n=n||"all";var o=["-webkit-","-moz-","-o-",""],r=["column","transform","filter"],t=n.split(/(?:,)(?![^(]*\))/g);return t.forEach(function(n,f){r.forEach(function(r){n.indexOf(r)!==-1&&(t[f]="",o.forEach(function(i,c){t[f]+=n.trim().replace(new RegExp(r,"g"),function(n){return i+n}),c<o.length-1&&(t[f]+=",")}))})}),n=t.join(",")})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-transition-property: @process_webkit;
  -moz-transition-property: @process_moz;
  -o-transition-property: @process_opera;
  transition-property: @process;
}

.transition-timing-function(...) {
  @process: ~`(function(e){return e=e||"ease"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-transition-timing-function: @process;
  -moz-transition-timing-function: @process;
  -o-transition-timing-function: @process;
  transition-timing-function: @process;
}

.translate(...) {
  @process: ~`(function(n){n=n||"0";var r=/\d/gi,t=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return r.test(n)&&(n=n.replace(t,function(n){return 0==n&&n||n+"px"})),n})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-transform: translate(@process);
  -moz-transform: translate(@process);
  -ms-transform: translate(@process);
  -o-transform: translate(@process);
  transform: translate(@process);
}

.translate3d(...) {
  @process: ~`(function(n){n=n||"0, 0, 0";var r=/\d/gi,t=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return r.test(n)&&(n=n.replace(t,function(n){return 0==n&&n||n+"px"})),n})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-transform: translate3d(@process);
  -moz-transform: translate3d(@process);
  -ms-transform: translate3d(@process);
  -o-transform: translate3d(@process);
  transform: translate3d(@process);
}

.translateX(...) {
  @process: ~`(function(n){n=n||"0";var r=/\d/gi,t=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return r.test(n)&&(n=n.replace(t,function(n){return 0==n&&n||n+"px"})),n})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-transform: translateX(@process);
  -moz-transform: translateX(@process);
  -ms-transform: translateX(@process);
  -o-transform: translateX(@process);
  transform: translateX(@process);
}

.translateY(...) {
  @process: ~`(function(n){n=n||"0";var r=/\d/gi,t=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return r.test(n)&&(n=n.replace(t,function(n){return 0==n&&n||n+"px"})),n})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-transform: translateY(@process);
  -moz-transform: translateY(@process);
  -ms-transform: translateY(@process);
  -o-transform: translateY(@process);
  transform: translateY(@process);
}

.translateZ(...) {
  @process: ~`(function(n){n=n||"0";var r=/\d/gi,t=/(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;return r.test(n)&&(n=n.replace(t,function(n){return 0==n&&n||n+"px"})),n})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-transform: translateZ(@process);
  -moz-transform: translateZ(@process);
  -ms-transform: translateZ(@process);
  -o-transform: translateZ(@process);
  transform: translateZ(@process);
}

.user-select(...) {
  @process: ~`(function(n){return n=n||"auto"})((function(){var r="@{arguments}";return r=r.replace(/^\[|\]$/g,"")})())`;
  -webkit-user-select: @process;
  -moz-user-select: @process;
  -ms-user-select: @process;
  user-select: @process;
}

.border-triangle(@arrow-pos:top;@border-bg:#ff9900;@border-width:20px){
  height:0;
  width:0;
  overflow: hidden;
  font-size: 0;
  line-height: 0;
  border-width:@border-width;
}

.border-triangle(@arrow-pos:top;@border-bg:#ff9900;@border-width:20px) when (@arrow-pos=top) {
  border-color: transparent transparent @border-bg transparent;
  border-style: dashed dashed solid dashed;
}

.border-triangle(@arrow-pos:top;@border-bg:#ff9900;@border-width:20px) when (@arrow-pos=left){
  border-color:transparent @border-bg transparent transparent;
  border-style:dashed solid dashed dashed;
}

.border-triangle(@arrow-pos:top;@border-bg:#ff9900;@border-width:20px) when (@arrow-pos=right){
  border-color: transparent transparent transparent @border-bg;
  border-style: dashed dashed dashed solid;
}

.border-triangle(@arrow-pos:top;@border-bg:#ff9900;@border-width:20px) when (@arrow-pos=bottom){
  border-color: @border-bg transparent transparent transparent;
  border-style: solid dashed dashed dashed;
}


// Clearfix
//
// For modern browsers
// 1. The space content is one way to avoid an Opera bug when the
//    contenteditable attribute is included anywhere else in the document.
//    Otherwise it causes space to appear at the top and bottom of elements
//    that are clearfixed.
// 2. The use of `table` rather than `block` is only necessary if using
//    `:before` to contain the top-margins of child elements.
//
// Source: http://nicolasgallagher.com/micro-clearfix-hack/


.clearfix() {
  *zoom: 1;
  &:before,
  &:after {
    content: "";
    display: table;
  }
  &:after {
    clear: both;
  }
}

//float
.float(@dirction: left) {
  .process(@dirction) when (@dirction = left){
    float: left;
    *display: inline;
  }
  .process(@dirction) when (@dirction = right){
    float: right;
    *display: inline;
  }
  .process(@dirction) when (@dirction = none){
    float: none;
  }
  .process(@dirction) when (default()){
    float: left;
    *display: inline;
  }
  .process(@dirction);
}

// Gradients

#gradient {

  // Horizontal gradient, from left to right
  //
  // Creates two color stops, start and end, by specifying a color and position for each color stop.
  // Color stops are not available in IE9 and below.
  .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
    background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
    background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12
    background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
    background-repeat: repeat-x;
    filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down
  }

  // Vertical gradient, from top to bottom
  //
  // Creates two color stops, start and end, by specifying a color and position for each color stop.
  // Color stops are not available in IE9 and below.
  .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
    background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent);  // Safari 5.1-6, Chrome 10+
    background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent);  // Opera 12
    background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
    background-repeat: repeat-x;
    filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down
  }

  .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {
    background-repeat: repeat-x;
    background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+
    background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12
    background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
  }
  .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
    background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
    background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
    background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);
    background-repeat: no-repeat;
    filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
  }
  .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
    background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
    background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
    background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);
    background-repeat: no-repeat;
    filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
  }
  .radial(@inner-color: #555; @outer-color: #333) {
    background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);
    background-image: radial-gradient(circle, @inner-color, @outer-color);
    background-repeat: no-repeat;
  }
  .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {
    background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
    background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
    background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
  }
}


.ie6-png24-opacity(@src){
  _background:none;
  _filter:~"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='@{src}', sizingMethod='crop')";
}

/**
 * 图片的垂直居中，注意容器不能设置float，会破坏display的效果，有需要建议在外层增加一层div包裹
 *
 * 正常使用，将该方法设置给img的父元素即可:
 *    div.pic-wrapper
 *      img
 * 若元素需要float:
 *    div.float
 *      div.pic-wrapper
 *        img
 * @param width
 * @param height
 */
.image-middle(@width, @height) when(ispixel(@height)) {

  // 非IE的主流浏览器识别的垂直居中的方法
  display: table-cell;
  vertical-align:middle;
  text-align:center;
  height: @height;
  width: @width;

  // 针对IE678最垂直居中
  // 针对IE的Hack
  display: ~'block\0';/* ie 8/9*/
  display: ~'table-cell\9\0';/* ie 9*/
  *display: block;

  *font-size: @height * 0.873;

  line-height: ~'@{height}\0';/* ie 8/9*/
  line-height: ~'inherit\9\0';/* ie 9*/
  *line-height: @height;
  // 防止非utf-8引起的hack失效问题，如gbk编码
  *font-family:Arial;

  img {
    max-height: @height;
    max-width: @width;
    vertical-align: middle;
  }
}

/**
 * 兼容一个参数的写法，长宽相等
 */
.image-middle(@square:60px){
  .image-middle(@square, @square);
}

//image-retina

.image-retina(@file-1x; @file-2x){
  background: url(@file-1x);
  background-image: -webkit-image-set(url(@file-1x) 1x,url(@file-2x) 2x);
  background-image: -moz-image-set(url(@file-1x) 1x,url(@file-2x) 2x);
  background-image: -ms-image-set(url(@file-1x) 1x,url(@file-2x) 2x);
  background-image: -o-image-set(url(@file-1x) 1x,url(@file-2x) 2x);
  background-repeat: no-repeat;
  _background-image: url(@file-1x);
}

//inline-block
.inline-block(){
  display: inline-block;
  zoom: 1; *display: inline; /* IE < 8: 伪造 inline-block */
  letter-spacing: normal;
  word-spacing: normal;
  vertical-align: top;
}
//grid
.grid() {
  letter-spacing: -0.31em; /* webkit */
  *letter-spacing: normal; /* IE < 8 重置 */
  word-spacing: -0.43em; /* IE < 8 && gecko */
}


// Opacity

.opacity(@opacity:1) {
  opacity: @opacity;
  // IE8 filter
  @opacity-ie: (@opacity * 100);
  filter: ~"alpha(opacity=@{opacity-ie})";
  //IE6 7
  -ms-filter: ~"progid:DXImageTransform.Microsoft.Alpha(opacity=(@{opacity-ie}))";
}


// Text overflow

.text-overflow() {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

//text-wrap
.text-wrap(){
  table-layout:fixed;
  word-break: break-all;
  overflow:hidden;
}


.data-dpr(@fontSize){
  font-size: @fontSize;
  [data-dpr="2"] {
    font-size: @fontSize * 2;
  }
  [data-dpr="3"] {
    font-size: @fontSize * 3;
  }
}
.common-hover-transform() {
  .transition(all .5s ease-out);
  &:hover {
    .transform(matrix(1.04, 0, 0, 1.04, 0, 0))
  }
}
.line-ellipsis(@lines:2){
    overflow : hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: @lines;
    -webkit-box-orient: vertical;
}
.clear-after(){
  &:after {
      content:"";
      display: block;
      clear: both;
  }
}