").append(b.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},b.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){b.fn[t]=function(e){return this.on(t,e)}}),b.each(["get","post"],function(e,n){b[n]=function(e,r,i,o){return b.isFunction(r)&&(o=o||i,i=r,r=t),b.ajax({url:e,type:n,dataType:o,data:r,success:i})}}),b.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Nn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Mn(Mn(e,b.ajaxSettings),t):Mn(b.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,u,l,c,p=b.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?b(f):b.event,h=b.Deferred(),g=b.Callbacks("once memory"),m=p.statusCode||{},y={},v={},x=0,T="canceled",N={readyState:0,getResponseHeader:function(e){var t;if(2===x){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===x?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return x||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return x||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>x)for(t in e)m[t]=[m[t],e[t]];else N.always(e[N.status]);return this},abort:function(e){var t=e||T;return l&&l.abort(t),k(0,t),this}};if(h.promise(N).complete=g.add,N.success=N.done,N.error=N.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=b.trim(p.dataType||"*").toLowerCase().match(w)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?80:443))==(mn[3]||("http:"===mn[1]?80:443)))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=b.param(p.data,p.traditional)),qn(An,p,n,N),2===x)return N;u=p.global,u&&0===b.active++&&b.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Cn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(b.lastModified[o]&&N.setRequestHeader("If-Modified-Since",b.lastModified[o]),b.etag[o]&&N.setRequestHeader("If-None-Match",b.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&N.setRequestHeader("Content-Type",p.contentType),N.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)N.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,N,p)===!1||2===x))return N.abort();T="abort";for(i in{success:1,error:1,complete:1})N[i](p[i]);if(l=qn(jn,p,n,N)){N.readyState=1,u&&d.trigger("ajaxSend",[N,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){N.abort("timeout")},p.timeout));try{x=1,l.send(y,k)}catch(C){if(!(2>x))throw C;k(-1,C)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,C=n;2!==x&&(x=2,s&&clearTimeout(s),l=t,a=i||"",N.readyState=e>0?4:0,r&&(w=_n(p,N,r)),e>=200&&300>e||304===e?(p.ifModified&&(T=N.getResponseHeader("Last-Modified"),T&&(b.lastModified[o]=T),T=N.getResponseHeader("etag"),T&&(b.etag[o]=T)),204===e?(c=!0,C="nocontent"):304===e?(c=!0,C="notmodified"):(c=Fn(p,w),C=c.state,y=c.data,v=c.error,c=!v)):(v=C,(e||!C)&&(C="error",0>e&&(e=0))),N.status=e,N.statusText=(n||C)+"",c?h.resolveWith(f,[y,C,N]):h.rejectWith(f,[N,C,v]),N.statusCode(m),m=t,u&&d.trigger(c?"ajaxSuccess":"ajaxError",[N,p,c?y:v]),g.fireWith(f,[N,C]),u&&(d.trigger("ajaxComplete",[N,p]),--b.active||b.event.trigger("ajaxStop")))}return N},getScript:function(e,n){return b.get(e,t,n,"script")},getJSON:function(e,t,n){return b.get(e,t,n,"json")}});function _n(e,n,r){var i,o,a,s,u=e.contents,l=e.dataTypes,c=e.responseFields;for(s in c)s in r&&(n[c[s]]=r[s]);while("*"===l[0])l.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in u)if(u[s]&&u[s].test(o)){l.unshift(s);break}if(l[0]in r)a=l[0];else{for(s in r){if(!l[0]||e.converters[s+" "+l[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==l[0]&&l.unshift(a),r[a]):t}function Fn(e,t){var n,r,i,o,a={},s=0,u=e.dataTypes.slice(),l=u[0];if(e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u[1])for(i in e.converters)a[i.toLowerCase()]=e.converters[i];for(;r=u[++s];)if("*"!==r){if("*"!==l&&l!==r){if(i=a[l+" "+r]||a["* "+r],!i)for(n in a)if(o=n.split(" "),o[1]===r&&(i=a[l+" "+o[0]]||a["* "+o[0]])){i===!0?i=a[n]:a[n]!==!0&&(r=o[0],u.splice(s--,0,r));break}if(i!==!0)if(i&&e["throws"])t=i(t);else try{t=i(t)}catch(c){return{state:"parsererror",error:i?c:"No conversion from "+l+" to "+r}}}l=r}return{state:"success",data:t}}b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return b.globalEval(e),e}}}),b.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),b.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=o.head||b("head")[0]||o.documentElement;return{send:function(t,i){n=o.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var On=[],Bn=/(=)\?(?=&|$)|\?\?/;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=On.pop()||b.expando+"_"+vn++;return this[e]=!0,e}}),b.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,u=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return u||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=b.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,u?n[u]=n[u].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||b.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,On.push(o)),s&&b.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}b.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=b.ajaxSettings.xhr(),b.support.cors=!!Rn&&"withCredentials"in Rn,Rn=b.support.ajax=!!Rn,Rn&&b.ajaxTransport(function(n){if(!n.crossDomain||b.support.cors){var r;return{send:function(i,o){var a,s,u=n.xhr();if(n.username?u.open(n.type,n.url,n.async,n.username,n.password):u.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)u[s]=n.xhrFields[s];n.mimeType&&u.overrideMimeType&&u.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)u.setRequestHeader(s,i[s])}catch(l){}u.send(n.hasContent&&n.data||null),r=function(e,i){var s,l,c,p;try{if(r&&(i||4===u.readyState))if(r=t,a&&(u.onreadystatechange=b.noop,$n&&delete Pn[a]),i)4!==u.readyState&&u.abort();else{p={},s=u.status,l=u.getAllResponseHeaders(),"string"==typeof u.responseText&&(p.text=u.responseText);try{c=u.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,l)},n.async?4===u.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},b(e).unload($n)),Pn[a]=r),u.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+x+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=Yn.exec(t),a=i.cur(),s=+a||0,u=1,l=20;if(o){if(n=+o[2],r=o[3]||(b.cssNumber[e]?"":"px"),"px"!==r&&s){s=b.css(i.elem,e,!0)||n||1;do u=u||".5",s/=u,b.style(i.elem,e,s+r);while(u!==(u=i.cur()/a)&&1!==u&&--l)}i.unit=r,i.start=s,i.end=o[1]?s+(o[1]+1)*n:n}return i}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=b.now()}function Zn(e,t){b.each(t,function(t,n){var r=(Qn[t]||[]).concat(Qn["*"]),i=0,o=r.length;for(;o>i;i++)if(r[i].call(e,t,n))return})}function er(e,t,n){var r,i,o=0,a=Gn.length,s=b.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,a=0,u=l.tweens.length;for(;u>a;a++)l.tweens[a].run(o);return s.notifyWith(e,[l,o,n]),1>o&&u?n:(s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:b.extend({},t),opts:b.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=b.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return t?s.resolveWith(e,[l,t]):s.rejectWith(e,[l,t]),this}}),c=l.props;for(tr(c,l.opts.specialEasing);a>o;o++)if(r=Gn[o].call(l,e,c,l.opts))return r;return Zn(l,c),b.isFunction(l.opts.start)&&l.opts.start.call(e,l),b.fx.timer(b.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function tr(e,t){var n,r,i,o,a;for(i in e)if(r=b.camelCase(i),o=t[r],n=e[i],b.isArray(n)&&(o=n[1],n=e[i]=n[0]),i!==r&&(e[r]=n,delete e[i]),a=b.cssHooks[r],a&&"expand"in a){n=a.expand(n),delete e[r];for(i in n)i in e||(e[i]=n[i],t[i]=o)}else t[r]=o}b.Animation=b.extend(er,{tweener:function(e,t){b.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,u,l,c,p,f=this,d=e.style,h={},g=[],m=e.nodeType&&nn(e);n.queue||(c=b._queueHooks(e,"fx"),null==c.unqueued&&(c.unqueued=0,p=c.empty.fire,c.empty.fire=function(){c.unqueued||p()}),c.unqueued++,f.always(function(){f.always(function(){c.unqueued--,b.queue(e,"fx").length||c.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],"inline"===b.css(e,"display")&&"none"===b.css(e,"float")&&(b.support.inlineBlockNeedsLayout&&"inline"!==un(e.nodeName)?d.zoom=1:d.display="inline-block")),n.overflow&&(d.overflow="hidden",b.support.shrinkWrapBlocks||f.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(i in t)if(a=t[i],Vn.exec(a)){if(delete t[i],u=u||"toggle"===a,a===(m?"hide":"show"))continue;g.push(i)}if(o=g.length){s=b._data(e,"fxshow")||b._data(e,"fxshow",{}),"hidden"in s&&(m=s.hidden),u&&(s.hidden=!m),m?b(e).show():f.done(function(){b(e).hide()}),f.done(function(){var t;b._removeData(e,"fxshow");for(t in h)b.style(e,t,h[t])});for(i=0;o>i;i++)r=g[i],l=f.createTween(r,m?s[r]:0),h[r]=s[r]||b.style(e,r),r in s||(s[r]=l.start,m&&(l.end=l.start,l.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}b.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(b.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?b.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=b.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){b.fx.step[e.prop]?b.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[b.cssProps[e.prop]]||b.cssHooks[e.prop])?b.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},b.each(["toggle","show","hide"],function(e,t){var n=b.fn[t];b.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),b.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=b.isEmptyObject(e),o=b.speed(t,n,r),a=function(){var t=er(this,b.extend({},e),o);a.finish=function(){t.stop(!0)},(i||b._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=b.timers,a=b._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&b.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=b._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=b.timers,a=r?r.length:0;for(n.finish=!0,b.queue(this,e,[]),i&&i.cur&&i.cur.finish&&i.cur.finish.call(this),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}b.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){b.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),b.speed=function(e,t,n){var r=e&&"object"==typeof e?b.extend({},e):{complete:n||!n&&t||b.isFunction(e)&&e,duration:e,easing:n&&t||t&&!b.isFunction(t)&&t};return r.duration=b.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in b.fx.speeds?b.fx.speeds[r.duration]:b.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){b.isFunction(r.old)&&r.old.call(this),r.queue&&b.dequeue(this,r.queue)},r},b.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},b.timers=[],b.fx=rr.prototype.init,b.fx.tick=function(){var e,n=b.timers,r=0;for(Xn=b.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||b.fx.stop(),Xn=t},b.fx.timer=function(e){e()&&b.timers.push(e)&&b.fx.start()},b.fx.interval=13,b.fx.start=function(){Un||(Un=setInterval(b.fx.tick,b.fx.interval))},b.fx.stop=function(){clearInterval(Un),Un=null},b.fx.speeds={slow:600,fast:200,_default:400},b.fx.step={},b.expr&&b.expr.filters&&(b.expr.filters.animated=function(e){return b.grep(b.timers,function(t){return e===t.elem}).length}),b.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){b.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,b.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},b.offset={setOffset:function(e,t,n){var r=b.css(e,"position");"static"===r&&(e.style.position="relative");var i=b(e),o=i.offset(),a=b.css(e,"top"),s=b.css(e,"left"),u=("absolute"===r||"fixed"===r)&&b.inArray("auto",[a,s])>-1,l={},c={},p,f;u?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),b.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(l.top=t.top-o.top+p),null!=t.left&&(l.left=t.left-o.left+f),"using"in t?t.using.call(e,l):i.css(l)}},b.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===b.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),b.nodeName(e[0],"html")||(n=e.offset()),n.top+=b.css(e[0],"borderTopWidth",!0),n.left+=b.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-b.css(r,"marginTop",!0),left:t.left-n.left-b.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||o.documentElement;while(e&&!b.nodeName(e,"html")&&"static"===b.css(e,"position"))e=e.offsetParent;return e||o.documentElement})}}),b.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);b.fn[e]=function(i){return b.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?b(a).scrollLeft():o,r?o:b(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return b.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}b.each({Height:"height",Width:"width"},function(e,n){b.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){b.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return b.access(this,function(n,r,i){var o;return b.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?b.css(n,r,s):b.style(n,r,i,s)},n,a?i:t,a,null)}})}),e.jQuery=e.$=b,"function"==typeof define&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return b})})(window);
\ No newline at end of file
diff --git a/assets/js/vendor/jquery.dlmenu.js b/assets/js/vendor/jquery.dlmenu.js
new file mode 100644
index 0000000..52f7bba
--- /dev/null
+++ b/assets/js/vendor/jquery.dlmenu.js
@@ -0,0 +1,252 @@
+/**
+ * jquery.dlmenu.js v1.0.1
+ * http://www.codrops.com
+ *
+ * Licensed under the MIT license.
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ * Copyright 2013, Codrops
+ * http://www.codrops.com
+ */
+;( function( $, window, undefined ) {
+
+ 'use strict';
+
+ // global
+ var Modernizr = window.Modernizr, $body = $( 'body' );
+
+ $.DLMenu = function( options, element ) {
+ this.$el = $( element );
+ this._init( options );
+ };
+
+ // the options
+ $.DLMenu.defaults = {
+ // classes for the animation effects
+ animationClasses : { classin : 'dl-animate-in-1', classout : 'dl-animate-out-1' },
+ // callback: click a link that has a sub menu
+ // el is the link element (li); name is the level name
+ onLevelClick : function( el, name ) { return false; },
+ // callback: click a link that does not have a sub menu
+ // el is the link element (li); ev is the event obj
+ onLinkClick : function( el, ev ) { return false; }
+ };
+
+ $.DLMenu.prototype = {
+ _init : function( options ) {
+
+ // options
+ this.options = $.extend( true, {}, $.DLMenu.defaults, options );
+ // cache some elements and initialize some variables
+ this._config();
+
+ var animEndEventNames = {
+ 'WebkitAnimation' : 'webkitAnimationEnd',
+ 'OAnimation' : 'oAnimationEnd',
+ 'msAnimation' : 'MSAnimationEnd',
+ 'animation' : 'animationend'
+ },
+ transEndEventNames = {
+ 'WebkitTransition' : 'webkitTransitionEnd',
+ 'MozTransition' : 'transitionend',
+ 'OTransition' : 'oTransitionEnd',
+ 'msTransition' : 'MSTransitionEnd',
+ 'transition' : 'transitionend'
+ };
+ // animation end event name
+ this.animEndEventName = animEndEventNames[ Modernizr.prefixed( 'animation' ) ] + '.dlmenu';
+ // transition end event name
+ this.transEndEventName = transEndEventNames[ Modernizr.prefixed( 'transition' ) ] + '.dlmenu',
+ // support for css animations and css transitions
+ this.supportAnimations = Modernizr.cssanimations,
+ this.supportTransitions = Modernizr.csstransitions;
+
+ this._initEvents();
+
+ },
+ _config : function() {
+ this.open = false;
+ this.$trigger = this.$el.children( '.dl-trigger' );
+ this.$menu = this.$el.children( 'ul.dl-menu' );
+ this.$menuitems = this.$menu.find( 'li:not(.dl-back)' );
+ this.$el.find( 'ul.dl-submenu' ).prepend( '
back ' );
+ this.$back = this.$menu.find( 'li.dl-back' );
+ },
+ _initEvents : function() {
+
+ var self = this;
+
+ this.$trigger.on( 'click.dlmenu', function() {
+
+ if( self.open ) {
+ self._closeMenu();
+ }
+ else {
+ self._openMenu();
+ }
+ return false;
+
+ } );
+
+ this.$menuitems.on( 'click.dlmenu', function( event ) {
+
+ event.stopPropagation();
+
+ var $item = $(this),
+ $submenu = $item.children( 'ul.dl-submenu' );
+
+ if( $submenu.length > 0 ) {
+
+ var $flyin = $submenu.clone().css( 'opacity', 0 ).insertAfter( self.$menu ),
+ onAnimationEndFn = function() {
+ self.$menu.off( self.animEndEventName ).removeClass( self.options.animationClasses.classout ).addClass( 'dl-subview' );
+ $item.addClass( 'dl-subviewopen' ).parents( '.dl-subviewopen:first' ).removeClass( 'dl-subviewopen' ).addClass( 'dl-subview' );
+ $flyin.remove();
+ };
+
+ setTimeout( function() {
+ $flyin.addClass( self.options.animationClasses.classin );
+ self.$menu.addClass( self.options.animationClasses.classout );
+ if( self.supportAnimations ) {
+ self.$menu.on( self.animEndEventName, onAnimationEndFn );
+ }
+ else {
+ onAnimationEndFn.call();
+ }
+
+ self.options.onLevelClick( $item, $item.children( 'a:first' ).text() );
+ } );
+
+ return false;
+
+ }
+ else {
+ self.options.onLinkClick( $item, event );
+ }
+
+ } );
+
+ this.$back.on( 'click.dlmenu', function( event ) {
+
+ var $this = $( this ),
+ $submenu = $this.parents( 'ul.dl-submenu:first' ),
+ $item = $submenu.parent(),
+
+ $flyin = $submenu.clone().insertAfter( self.$menu );
+
+ var onAnimationEndFn = function() {
+ self.$menu.off( self.animEndEventName ).removeClass( self.options.animationClasses.classin );
+ $flyin.remove();
+ };
+
+ setTimeout( function() {
+ $flyin.addClass( self.options.animationClasses.classout );
+ self.$menu.addClass( self.options.animationClasses.classin );
+ if( self.supportAnimations ) {
+ self.$menu.on( self.animEndEventName, onAnimationEndFn );
+ }
+ else {
+ onAnimationEndFn.call();
+ }
+
+ $item.removeClass( 'dl-subviewopen' );
+
+ var $subview = $this.parents( '.dl-subview:first' );
+ if( $subview.is( 'li' ) ) {
+ $subview.addClass( 'dl-subviewopen' );
+ }
+ $subview.removeClass( 'dl-subview' );
+ } );
+
+ return false;
+
+ } );
+
+ },
+ closeMenu : function() {
+ if( this.open ) {
+ this._closeMenu();
+ }
+ },
+ _closeMenu : function() {
+ var self = this,
+ onTransitionEndFn = function() {
+ self.$menu.off( self.transEndEventName );
+ self._resetMenu();
+ };
+
+ this.$menu.removeClass( 'dl-menuopen' );
+ this.$menu.addClass( 'dl-menu-toggle' );
+ this.$trigger.removeClass( 'dl-active' );
+
+ if( this.supportTransitions ) {
+ this.$menu.on( this.transEndEventName, onTransitionEndFn );
+ }
+ else {
+ onTransitionEndFn.call();
+ }
+
+ this.open = false;
+ },
+ openMenu : function() {
+ if( !this.open ) {
+ this._openMenu();
+ }
+ },
+ _openMenu : function() {
+ var self = this;
+ // clicking somewhere else makes the menu close
+ $body.off( 'click' ).on( 'click.dlmenu', function() {
+ self._closeMenu() ;
+ } );
+ this.$menu.addClass( 'dl-menuopen dl-menu-toggle' ).on( this.transEndEventName, function() {
+ $( this ).removeClass( 'dl-menu-toggle' );
+ } );
+ this.$trigger.addClass( 'dl-active' );
+ this.open = true;
+ },
+ // resets the menu to its original state (first level of options)
+ _resetMenu : function() {
+ this.$menu.removeClass( 'dl-subview' );
+ this.$menuitems.removeClass( 'dl-subview dl-subviewopen' );
+ }
+ };
+
+ var logError = function( message ) {
+ if ( window.console ) {
+ window.console.error( message );
+ }
+ };
+
+ $.fn.dlmenu = function( options ) {
+ if ( typeof options === 'string' ) {
+ var args = Array.prototype.slice.call( arguments, 1 );
+ this.each(function() {
+ var instance = $.data( this, 'dlmenu' );
+ if ( !instance ) {
+ logError( "cannot call methods on dlmenu prior to initialization; " +
+ "attempted to call method '" + options + "'" );
+ return;
+ }
+ if ( !$.isFunction( instance[options] ) || options.charAt(0) === "_" ) {
+ logError( "no such method '" + options + "' for dlmenu instance" );
+ return;
+ }
+ instance[ options ].apply( instance, args );
+ });
+ }
+ else {
+ this.each(function() {
+ var instance = $.data( this, 'dlmenu' );
+ if ( instance ) {
+ instance._init();
+ }
+ else {
+ instance = $.data( this, 'dlmenu', new $.DLMenu( options, this ) );
+ }
+ });
+ }
+ return this;
+ };
+
+} )( jQuery, window );
\ No newline at end of file
diff --git a/assets/js/vendor/jquery.fitvids.js b/assets/js/vendor/jquery.fitvids.js
new file mode 100644
index 0000000..4cb8e9c
--- /dev/null
+++ b/assets/js/vendor/jquery.fitvids.js
@@ -0,0 +1,81 @@
+/*global jQuery */
+/*jshint multistr:true browser:true */
+/*!
+* FitVids 1.0
+*
+* Copyright 2011, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com
+* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/
+* Released under the WTFPL license - http://sam.zoy.org/wtfpl/
+*
+* Date: Thu Sept 01 18:00:00 2011 -0500
+*/
+
+(function( $ ){
+
+ "use strict";
+
+ $.fn.fitVids = function( options ) {
+ var settings = {
+ customSelector: null
+ };
+
+ var div = document.createElement('div'),
+ ref = document.getElementsByTagName('base')[0] || document.getElementsByTagName('script')[0];
+
+ div.className = 'fit-vids-style';
+ div.innerHTML = '';
+
+ ref.parentNode.insertBefore(div,ref);
+
+ if ( options ) {
+ $.extend( settings, options );
+ }
+
+ return this.each(function(){
+ var selectors = [
+ "iframe[src*='player.vimeo.com']",
+ "iframe[src*='www.youtube.com']",
+ "iframe[src*='www.youtube-nocookie.com']",
+ "iframe[src*='www.kickstarter.com']",
+ "object",
+ "embed"
+ ];
+
+ if (settings.customSelector) {
+ selectors.push(settings.customSelector);
+ }
+
+ var $allVideos = $(this).find(selectors.join(','));
+
+ $allVideos.each(function(){
+ var $this = $(this);
+ if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; }
+ var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(),
+ width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(),
+ aspectRatio = height / width;
+ if(!$this.attr('id')){
+ var videoID = 'fitvid' + Math.floor(Math.random()*999999);
+ $this.attr('id', videoID);
+ }
+ $this.wrap('
').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+"%");
+ $this.removeAttr('height').removeAttr('width');
+ });
+ });
+ };
+})( jQuery );
\ No newline at end of file
diff --git a/assets/js/vendor/modernizr-2.6.2.custom.min.js b/assets/js/vendor/modernizr-2.6.2.custom.min.js
new file mode 100644
index 0000000..db5e1ea
--- /dev/null
+++ b/assets/js/vendor/modernizr-2.6.2.custom.min.js
@@ -0,0 +1,4 @@
+/* Modernizr 2.6.2 (Custom Build) | MIT & BSD
+ * Build: http://modernizr.com/download/#-cssanimations-csstransitions-touch-shiv-cssclasses-prefixed-teststyles-testprop-testallprops-prefixes-domprefixes-load
+ */
+;window.Modernizr=function(a,b,c){function z(a){j.cssText=a}function A(a,b){return z(m.join(a+";")+(b||""))}function B(a,b){return typeof a===b}function C(a,b){return!!~(""+a).indexOf(b)}function D(a,b){for(var d in a){var e=a[d];if(!C(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function E(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:B(f,"function")?f.bind(d||b):f}return!1}function F(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+o.join(d+" ")+d).split(" ");return B(b,"string")||B(b,"undefined")?D(e,b):(e=(a+" "+p.join(d+" ")+d).split(" "),E(e,b,c))}var d="2.6.2",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n="Webkit Moz O ms",o=n.split(" "),p=n.toLowerCase().split(" "),q={},r={},s={},t=[],u=t.slice,v,w=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["",'"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},x={}.hasOwnProperty,y;!B(x,"undefined")&&!B(x.call,"undefined")?y=function(a,b){return x.call(a,b)}:y=function(a,b){return b in a&&B(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=u.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(u.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(u.call(arguments)))};return e}),q.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:w(["@media (",m.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},q.cssanimations=function(){return F("animationName")},q.csstransitions=function(){return F("transition")};for(var G in q)y(q,G)&&(v=G.toLowerCase(),e[v]=q[G](),t.push((e[v]?"":"no-")+v));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)y(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},z(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e
",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=m,e._domPrefixes=p,e._cssomPrefixes=o,e.testProp=function(a){return D([a])},e.testAllProps=F,e.testStyles=w,e.prefixed=function(a,b,c){return b?F(a,b,c):F(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+t.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f
+ fakeBody = doc.createElement( "body" ),
+ div = doc.createElement( "div" );
+
+ div.id = "mq-test-1";
+ div.style.cssText = "position:absolute;top:-100em";
+ fakeBody.style.background = "none";
+ fakeBody.appendChild(div);
+
+ return function(q){
+
+ div.innerHTML = "";
+
+ docElem.insertBefore( fakeBody, refNode );
+ bool = div.offsetWidth === 42;
+ docElem.removeChild( fakeBody );
+
+ return {
+ matches: bool,
+ media: q
+ };
+
+ };
+
+}( document ));
+
+
+
+
+
+/*! Respond.js v1.1.0: min/max-width media query polyfill. (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs */
+(function( win ){
+
+ "use strict";
+
+ //exposed namespace
+ var respond = {};
+ win.respond = respond;
+
+ //define update even in native-mq-supporting browsers, to avoid errors
+ respond.update = function(){};
+
+ //expose media query support flag for external use
+ respond.mediaQueriesSupported = win.matchMedia && win.matchMedia( "only all" ).matches;
+
+ //if media queries are supported, exit here
+ if( respond.mediaQueriesSupported ){
+ return;
+ }
+
+ //define vars
+ var doc = win.document,
+ docElem = doc.documentElement,
+ mediastyles = [],
+ rules = [],
+ appendedEls = [],
+ parsedSheets = {},
+ resizeThrottle = 30,
+ head = doc.getElementsByTagName( "head" )[0] || docElem,
+ base = doc.getElementsByTagName( "base" )[0],
+ links = head.getElementsByTagName( "link" ),
+ requestQueue = [],
+
+ //loop stylesheets, send text content to translate
+ ripCSS = function(){
+
+ for( var i = 0; i < links.length; i++ ){
+ var sheet = links[ i ],
+ href = sheet.href,
+ media = sheet.media,
+ isCSS = sheet.rel && sheet.rel.toLowerCase() === "stylesheet";
+
+ //only links plz and prevent re-parsing
+ if( !!href && isCSS && !parsedSheets[ href ] ){
+ // selectivizr exposes css through the rawCssText expando
+ if (sheet.styleSheet && sheet.styleSheet.rawCssText) {
+ translate( sheet.styleSheet.rawCssText, href, media );
+ parsedSheets[ href ] = true;
+ } else {
+ if( (!/^([a-zA-Z:]*\/\/)/.test( href ) && !base) ||
+ href.replace( RegExp.$1, "" ).split( "/" )[0] === win.location.host ){
+ requestQueue.push( {
+ href: href,
+ media: media
+ } );
+ }
+ }
+ }
+ }
+ makeRequests();
+ },
+
+ //recurse through request queue, get css text
+ makeRequests = function(){
+ if( requestQueue.length ){
+ var thisRequest = requestQueue.shift();
+
+ ajax( thisRequest.href, function( styles ){
+ translate( styles, thisRequest.href, thisRequest.media );
+ parsedSheets[ thisRequest.href ] = true;
+
+ // by wrapping recursive function call in setTimeout
+ // we prevent "Stack overflow" error in IE7
+ win.setTimeout(function(){ makeRequests(); },0);
+ } );
+ }
+ },
+
+ //find media blocks in css text, convert to style blocks
+ translate = function( styles, href, media ){
+ var qs = styles.match( /@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi ),
+ ql = qs && qs.length || 0;
+
+ //try to get CSS path
+ href = href.substring( 0, href.lastIndexOf( "/" ) );
+
+ var repUrls = function( css ){
+ return css.replace( /(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g, "$1" + href + "$2$3" );
+ },
+ useMedia = !ql && media;
+
+ //if path exists, tack on trailing slash
+ if( href.length ){ href += "/"; }
+
+ //if no internal queries exist, but media attr does, use that
+ //note: this currently lacks support for situations where a media attr is specified on a link AND
+ //its associated stylesheet has internal CSS media queries.
+ //In those cases, the media attribute will currently be ignored.
+ if( useMedia ){
+ ql = 1;
+ }
+
+ for( var i = 0; i < ql; i++ ){
+ var fullq, thisq, eachq, eql;
+
+ //media attr
+ if( useMedia ){
+ fullq = media;
+ rules.push( repUrls( styles ) );
+ }
+ //parse for styles
+ else{
+ fullq = qs[ i ].match( /@media *([^\{]+)\{([\S\s]+?)$/ ) && RegExp.$1;
+ rules.push( RegExp.$2 && repUrls( RegExp.$2 ) );
+ }
+
+ eachq = fullq.split( "," );
+ eql = eachq.length;
+
+ for( var j = 0; j < eql; j++ ){
+ thisq = eachq[ j ];
+ mediastyles.push( {
+ media : thisq.split( "(" )[ 0 ].match( /(only\s+)?([a-zA-Z]+)\s?/ ) && RegExp.$2 || "all",
+ rules : rules.length - 1,
+ hasquery : thisq.indexOf("(") > -1,
+ minw : thisq.match( /\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/ ) && parseFloat( RegExp.$1 ) + ( RegExp.$2 || "" ),
+ maxw : thisq.match( /\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/ ) && parseFloat( RegExp.$1 ) + ( RegExp.$2 || "" )
+ } );
+ }
+ }
+
+ applyMedia();
+ },
+
+ lastCall,
+
+ resizeDefer,
+
+ // returns the value of 1em in pixels
+ getEmValue = function() {
+ var ret,
+ div = doc.createElement('div'),
+ body = doc.body,
+ fakeUsed = false;
+
+ div.style.cssText = "position:absolute;font-size:1em;width:1em";
+
+ if( !body ){
+ body = fakeUsed = doc.createElement( "body" );
+ body.style.background = "none";
+ }
+
+ body.appendChild( div );
+
+ docElem.insertBefore( body, docElem.firstChild );
+
+ ret = div.offsetWidth;
+
+ if( fakeUsed ){
+ docElem.removeChild( body );
+ }
+ else {
+ body.removeChild( div );
+ }
+
+ //also update eminpx before returning
+ ret = eminpx = parseFloat(ret);
+
+ return ret;
+ },
+
+ //cached container for 1em value, populated the first time it's needed
+ eminpx,
+
+ //enable/disable styles
+ applyMedia = function( fromResize ){
+ var name = "clientWidth",
+ docElemProp = docElem[ name ],
+ currWidth = doc.compatMode === "CSS1Compat" && docElemProp || doc.body[ name ] || docElemProp,
+ styleBlocks = {},
+ lastLink = links[ links.length-1 ],
+ now = (new Date()).getTime();
+
+ //throttle resize calls
+ if( fromResize && lastCall && now - lastCall < resizeThrottle ){
+ win.clearTimeout( resizeDefer );
+ resizeDefer = win.setTimeout( applyMedia, resizeThrottle );
+ return;
+ }
+ else {
+ lastCall = now;
+ }
+
+ for( var i in mediastyles ){
+ if( mediastyles.hasOwnProperty( i ) ){
+ var thisstyle = mediastyles[ i ],
+ min = thisstyle.minw,
+ max = thisstyle.maxw,
+ minnull = min === null,
+ maxnull = max === null,
+ em = "em";
+
+ if( !!min ){
+ min = parseFloat( min ) * ( min.indexOf( em ) > -1 ? ( eminpx || getEmValue() ) : 1 );
+ }
+ if( !!max ){
+ max = parseFloat( max ) * ( max.indexOf( em ) > -1 ? ( eminpx || getEmValue() ) : 1 );
+ }
+
+ // if there's no media query at all (the () part), or min or max is not null, and if either is present, they're true
+ if( !thisstyle.hasquery || ( !minnull || !maxnull ) && ( minnull || currWidth >= min ) && ( maxnull || currWidth <= max ) ){
+ if( !styleBlocks[ thisstyle.media ] ){
+ styleBlocks[ thisstyle.media ] = [];
+ }
+ styleBlocks[ thisstyle.media ].push( rules[ thisstyle.rules ] );
+ }
+ }
+ }
+
+ //remove any existing respond style element(s)
+ for( var j in appendedEls ){
+ if( appendedEls.hasOwnProperty( j ) ){
+ if( appendedEls[ j ] && appendedEls[ j ].parentNode === head ){
+ head.removeChild( appendedEls[ j ] );
+ }
+ }
+ }
+
+ //inject active styles, grouped by media type
+ for( var k in styleBlocks ){
+ if( styleBlocks.hasOwnProperty( k ) ){
+ var ss = doc.createElement( "style" ),
+ css = styleBlocks[ k ].join( "\n" );
+
+ ss.type = "text/css";
+ ss.media = k;
+
+ //originally, ss was appended to a documentFragment and sheets were appended in bulk.
+ //this caused crashes in IE in a number of circumstances, such as when the HTML element had a bg image set, so appending beforehand seems best. Thanks to @dvelyk for the initial research on this one!
+ head.insertBefore( ss, lastLink.nextSibling );
+
+ if ( ss.styleSheet ){
+ ss.styleSheet.cssText = css;
+ }
+ else {
+ ss.appendChild( doc.createTextNode( css ) );
+ }
+
+ //push to appendedEls to track for later removal
+ appendedEls.push( ss );
+ }
+ }
+ },
+ //tweaked Ajax functions from Quirksmode
+ ajax = function( url, callback ) {
+ var req = xmlHttp();
+ if (!req){
+ return;
+ }
+ req.open( "GET", url, true );
+ req.onreadystatechange = function () {
+ if ( req.readyState !== 4 || req.status !== 200 && req.status !== 304 ){
+ return;
+ }
+ callback( req.responseText );
+ };
+ if ( req.readyState === 4 ){
+ return;
+ }
+ req.send( null );
+ },
+ //define ajax obj
+ xmlHttp = (function() {
+ var xmlhttpmethod = false;
+ try {
+ xmlhttpmethod = new win.XMLHttpRequest();
+ }
+ catch( e ){
+ xmlhttpmethod = new win.ActiveXObject( "Microsoft.XMLHTTP" );
+ }
+ return function(){
+ return xmlhttpmethod;
+ };
+ })();
+
+ //translate CSS
+ ripCSS();
+
+ //expose update for re-running respond later on
+ respond.update = ripCSS;
+
+ //adjust on resize
+ function callMedia(){
+ applyMedia( true );
+ }
+ if( win.addEventListener ){
+ win.addEventListener( "resize", callMedia, false );
+ }
+ else if( win.attachEvent ){
+ win.attachEvent( "onresize", callMedia );
+ }
+})(this);
\ No newline at end of file
diff --git a/assets/less/coderay.less b/assets/less/coderay.less
new file mode 100644
index 0000000..e023b88
--- /dev/null
+++ b/assets/less/coderay.less
@@ -0,0 +1,66 @@
+.CodeRay {
+ font-family: @code-font;
+ .font(12);
+ color: #d0d0d0;
+ margin-bottom: 1.5em;
+ .rounded(3px);
+}
+
+.CodeRay .code pre {
+ margin: 0;
+ padding: 1em;
+ background-color: #272822;
+ border: 1px solid darken(@body-color, 5);
+}
+
+div.CodeRay { }
+span.CodeRay { white-space: pre; border: 0px; padding: 2px }
+
+table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px }
+table.CodeRay td {
+ padding: 1em 0.5em;
+ vertical-align: top;
+}
+
+.CodeRay .line-numbers, .CodeRay .no {
+ color: #8f908a;
+ text-align: right;
+}
+
+.CodeRay .line-numbers a {
+ color: #8f908a;
+}
+
+.CodeRay .line-numbers tt { font-weight: bold }
+.CodeRay .line-numbers .highlighted { color: red }
+.CodeRay .line { display: block; float: left; width: 100%; }
+.CodeRay span.line-numbers { padding: 0 24px 0 4px; }
+.CodeRay .code { width: 100% }
+
+ol.CodeRay { font-size: 10pt }
+ol.CodeRay li { white-space: pre }
+
+.CodeRay .code pre { overflow: auto }
+.CodeRay .debug { color:white ! important; background:blue ! important; }
+
+.CodeRay .doctype,
+.CodeRay .key,
+.CodeRay .instance-variable { color: #f8f8f2; }
+.CodeRay .attribute-name { color: #a6e22e;}
+.CodeRay .symbol,
+.CodeRay .integer,
+.CodeRay .float { color: #ff658b; }
+.CodeRay .string { color: #2dc900; }
+.CodeRay .keyword { color: #66d9ef; }
+.CodeRay .function,
+.CodeRay .class { color: #a6e22e; }
+.CodeRay .regexp,
+.CodeRay .constant,
+.CodeRay .tag { color: #f92672; }
+.CodeRay .modifier,
+.CodeRay .predefined-constant { color: #ff84e4; }
+.CodeRay .comment { color: #75715e; }
+.CodeRay .error { color: #ecc; }
+.CodeRay .content { color: #e6db74; }
+.CodeRay .delimiter { color: #e6db74; }
+.CodeRay .inline { color: #e6db74; }
\ No newline at end of file
diff --git a/assets/less/dl-menu.less b/assets/less/dl-menu.less
new file mode 100644
index 0000000..cca486f
--- /dev/null
+++ b/assets/less/dl-menu.less
@@ -0,0 +1,345 @@
+.dl-menuwrapper {
+ width: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 1000;
+ -webkit-perspective: 1000px;
+ -moz-perspective: 1000px;
+ perspective: 1000px;
+ -webkit-perspective-origin: 50% 200%;
+ -moz-perspective-origin: 50% 200%;
+ perspective-origin: 50% 200%;
+ @media @medium {
+ position: fixed;
+ max-width: 175px;
+ top: 25px;
+ left: 25px;
+ }
+ button {
+ top: 0;
+ left: 0;
+ background: @comp-color;
+ border: none;
+ width: 48px;
+ height: 45px;
+ text-indent: -900em;
+ overflow: hidden;
+ position: relative;
+ cursor: pointer;
+ outline: none;
+ .border-radius(0,3px,0,0);
+ box-shadow: 0 12px 24px fade(@black,35);
+ @media @medium {
+ .border-radius(3px,3px,3px,3px);
+ }
+ }
+ button:hover,
+ button.dl-active,
+ ul {
+ background: #aaa;
+ }
+ button:after {
+ content: '';
+ position: absolute;
+ width: 68%;
+ height: 5px;
+ background: @white;
+ top: 10px;
+ left: 16%;
+ box-shadow:
+ 0 10px 0 @white,
+ 0 20px 0 @white;
+ }
+ button.dl-active {
+ display: none;
+ }
+ ul {
+ padding: 0;
+ list-style: none;
+ -webkit-transform-style: preserve-3d;
+ -moz-transform-style: preserve-3d;
+ transform-style: preserve-3d;
+ }
+ li {
+ position: relative;
+ h4 {
+ margin:0;
+ padding: 15px 20px 0;
+ color: fade(@white,90);
+ }
+ p {
+ margin: 0;
+ padding: 15px 20px;
+ .font-rem(12);
+ color: fade(@white,80);
+ a {
+ display: inline;
+ padding: 0;
+ .font-rem(12);
+ }
+ }
+ i {
+ display: inline-block;
+ width: 2em;
+ }
+ a {
+ display: block;
+ position: relative;
+ padding: 15px 20px;
+ .font-rem(14);
+ line-height: 20px;
+ font-weight: 300;
+ color: @white;
+ outline: none;
+ }
+ .dl-back > a {
+ padding-left: 30px;
+ background: rgba(0,0,0,0.2);
+ }
+ .dl-back:after,
+ > a:not(:only-child):after {
+ position: absolute;
+ top: 0;
+ line-height: 50px;
+ font-family: 'fontawesome';
+ color: @white;
+ speak: none;
+ -webkit-font-smoothing: antialiased;
+ content: "\f105";
+ }
+ .dl-back:after {
+ left: 10px;
+ color: rgba(212,204,198,0.5);
+ -webkit-transform: rotate(180deg);
+ -moz-transform: rotate(180deg);
+ transform: rotate(180deg);
+ }
+ > a:after {
+ right: 10px;
+ color: rgba(0,0,0,0.15);
+ }
+ }
+ .dl-menu {
+ margin: 0;
+ position: absolute;
+ width: 100%;
+ max-width: 400px;
+ opacity: 0;
+ pointer-events: none;
+ box-shadow: 0 12px 24px fade(@black,35);
+ -webkit-transform: translateY(10px);
+ -moz-transform: translateY(10px);
+ transform: translateY(10px);
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ backface-visibility: hidden;
+ @media @medium {
+ .border-radius(3px,3px,3px,3px);
+ }
+ }
+ .dl-menu.dl-menu-toggle {
+ -webkit-transition: all 0.3s ease;
+ -moz-transition: all 0.3s ease;
+ transition: all 0.3s ease;
+ }
+ .dl-menu.dl-menuopen {
+ opacity: 1;
+ pointer-events: auto;
+ -webkit-transform: translateY(0px);
+ -moz-transform: translateY(0px);
+ transform: translateY(0px);
+ }
+ .dl-submenu {
+ .rounded(3px);
+ box-shadow: 0 12px 24px fade(@black,35);
+ }
+ /* Hide the inner submenus */
+ li .dl-submenu {
+ display: none;
+ }
+}
+/*
+When a submenu is openend, we will hide all li siblings.
+For that we give a class to the parent menu called "dl-subview".
+We also hide the submenu link.
+The opened submenu will get the class "dl-subviewopen".
+All this is done for any sub-level being entered.
+*/
+.dl-menu.dl-subview li,
+.dl-menu.dl-subview li.dl-subviewopen > a,
+.dl-menu.dl-subview li.dl-subview > a {
+ display: none;
+}
+.dl-menu.dl-subview li.dl-subview,
+.dl-menu.dl-subview li.dl-subview .dl-submenu,
+.dl-menu.dl-subview li.dl-subviewopen,
+.dl-menu.dl-subview li.dl-subviewopen > .dl-submenu,
+.dl-menu.dl-subview li.dl-subviewopen > .dl-submenu > li {
+ display: block;
+}
+/* Animation classes for moving out and in */
+.dl-menu.dl-animate-out {
+ -webkit-animation: MenuAnimOut 0.4s ease;
+ -moz-animation: MenuAnimOut 0.4s ease;
+ animation: MenuAnimOut 0.4s ease;
+}
+@-webkit-keyframes MenuAnimOut {
+ 100% {
+ -webkit-transform: translateZ(300px);
+ opacity: 0;
+ }
+}
+@-moz-keyframes MenuAnimOut {
+ 100% {
+ -moz-transform: translateZ(300px);
+ opacity: 0;
+ }
+}
+@keyframes MenuAnimOut {
+ 100% {
+ transform: translateZ(300px);
+ opacity: 0;
+ }
+}
+.dl-menu.dl-animate-in {
+ -webkit-animation: MenuAnimIn 0.4s ease;
+ -moz-animation: MenuAnimIn 0.4s ease;
+ animation: MenuAnimIn 0.4s ease;
+}
+@-webkit-keyframes MenuAnimIn {
+ 0% {
+ -webkit-transform: translateZ(300px);
+ opacity: 0;
+ }
+ 100% {
+ -webkit-transform: translateZ(0px);
+ opacity: 1;
+ }
+}
+@-moz-keyframes MenuAnimIn {
+ 0% {
+ -moz-transform: translateZ(300px);
+ opacity: 0;
+ }
+ 100% {
+ -moz-transform: translateZ(0px);
+ opacity: 1;
+ }
+}
+@keyframes MenuAnimIn {
+ 0% {
+ transform: translateZ(300px);
+ opacity: 0;
+ }
+ 100% {
+ transform: translateZ(0px);
+ opacity: 1;
+ }
+}
+.dl-menuwrapper > .dl-submenu.dl-animate-in {
+ -webkit-animation: SubMenuAnimIn 0.4s ease;
+ -moz-animation: SubMenuAnimIn 0.4s ease;
+ animation: SubMenuAnimIn 0.4s ease;
+}
+@-webkit-keyframes SubMenuAnimIn {
+ 0% {
+ -webkit-transform: translateZ(-300px);
+ opacity: 0;
+ }
+ 100% {
+ -webkit-transform: translateZ(0px);
+ opacity: 1;
+ }
+}
+@-moz-keyframes SubMenuAnimIn {
+ 0% {
+ -moz-transform: translateZ(-300px);
+ opacity: 0;
+ }
+ 100% {
+ -moz-transform: translateZ(0px);
+ opacity: 1;
+ }
+}
+@keyframes SubMenuAnimIn {
+ 0% {
+ transform: translateZ(-300px);
+ opacity: 0;
+ }
+ 100% {
+ transform: translateZ(0px);
+ opacity: 1;
+ }
+}
+.dl-menuwrapper > .dl-submenu.dl-animate-out {
+ -webkit-animation: SubMenuAnimOut 0.4s ease;
+ -moz-animation: SubMenuAnimOut 0.4s ease;
+ animation: SubMenuAnimOut 0.4s ease;
+}
+@-webkit-keyframes SubMenuAnimOut {
+ 0% {
+ -webkit-transform: translateZ(0px);
+ opacity: 1;
+ }
+ 100% {
+ -webkit-transform: translateZ(-300px);
+ opacity: 0;
+ }
+}
+@-moz-keyframes SubMenuAnimOut {
+ 0% {
+ -moz-transform: translateZ(0px);
+ opacity: 1;
+ }
+ 100% {
+ -moz-transform: translateZ(-300px);
+ opacity: 0;
+ }
+}
+@keyframes SubMenuAnimOut {
+ 0% {
+ transform: translateZ(0px);
+ opacity: 1;
+ }
+ 100% {
+ transform: translateZ(-300px);
+ opacity: 0;
+ }
+}
+/* No Touch Fallback */
+.no-touch .dl-menuwrapper li a:hover {
+ background: rgba(255,248,213,0.1);
+}
+/* No JS Fallback */
+.no-js {
+ .dl-trigger {
+ display: none;
+ }
+ .dl-menuwrapper .dl-menu {
+ position: relative;
+ opacity: 1;
+ pointer-events: auto;
+ -webkit-transform: none;
+ -moz-transform: none;
+ transform: none;
+ }
+ .dl-menuwrapper li .dl-submenu {
+ display: block;
+ }
+ .dl-menuwrapper li.dl-back {
+ display: none;
+ }
+ .dl-menuwrapper li > a:not(:only-child) {
+ background: rgba(0,0,0,0.1);
+ }
+ .dl-menuwrapper li > a:not(:only-child):after {
+ content: '';
+ }
+}
+// Menu Color
+.dl-menuwrapper button:hover,
+.dl-menuwrapper button.dl-active,
+.dl-menuwrapper ul {
+ background: @comp-color;
+}
\ No newline at end of file
diff --git a/assets/less/elements.less b/assets/less/elements.less
new file mode 100644
index 0000000..5131901
--- /dev/null
+++ b/assets/less/elements.less
@@ -0,0 +1,485 @@
+hr {
+ display: block;
+ margin: 1em 0;
+ padding: 0;
+ height: 1px;
+ border: 0;
+ border-top: 1px solid #ccc;
+ border-bottom: 1px solid #fff;
+}
+
+// Figures and images
+// --------------------------------------------------
+figure {
+ margin: 0;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ .clearfix();
+ img {
+ margin-bottom: 10px;
+ }
+ a {
+ img {
+ .translate(0, 0);
+ -webkit-transition-duration: 0.25s;
+ -moz-transition-duration: 0.25s;
+ -o-transition-duration: 0.25s;
+ &:hover {
+ .translate(0, -5px);
+ .box-shadow(0 0 10px fade(@base-color, 20));
+ }
+ }
+ }
+ &.half {
+ @media @large {
+ img {
+ width: 310px;
+ float: left;
+ margin-right: 10px;
+ }
+ figcaption {
+ clear: left;
+ }
+ }
+ }
+ &.third {
+ @media @large {
+ img {
+ width: 200px;
+ float: left;
+ margin-right: 10px;
+ }
+ figcaption {
+ clear: left;
+ }
+ }
+ }
+}
+svg:not(:root) {
+ overflow: hidden;
+}
+
+// Buttons
+// --------------------------------------------------
+.btn {
+ display: inline-block;
+ margin-bottom: 20px;
+ padding: 8px 20px;
+ .font-rem(14);
+ background-color: @primary;
+ color: @white;
+ border-width: 2px !important;
+ border-style: solid !important;
+ border-color: @primary;
+ .rounded(3px);
+ &:visited {
+ color: @white;
+ }
+ &:hover {
+ background-color: @white;
+ color: @primary;
+ }
+}
+.btn-success {
+ background-color: @success;
+ color: @white;
+ border-color: @success;
+ &:visited {
+ color: @white;
+ }
+ &:hover {
+ background-color: @white;
+ color: @success;
+ }
+}
+.btn-warning {
+ background-color: @warning;
+ color: @white;
+ border-color: @warning;
+ &:visited {
+ color: @white;
+ }
+ &:hover {
+ background-color: @white;
+ color: @warning;
+ }
+}
+.btn-danger {
+ background-color: @danger;
+ color: @white;
+ border-color: @danger;
+ &:visited {
+ color: @white;
+ }
+ &:hover {
+ background-color: @white;
+ color: @danger;
+ }
+}
+.btn-info {
+ background-color: @info;
+ color: @white;
+ border-color: @info;
+ &:visited {
+ color: @white;
+ }
+ &:hover {
+ background-color: @white;
+ color: @info;
+ }
+}
+
+// Well
+// --------------------------------------------------
+.well {
+ padding: 20px;
+ border: 1px solid @comp-color;
+ .rounded(4px);
+}
+
+// Animations
+// --------------------------------------------------
+.animated{-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;-ms-animation-fill-mode:both;-o-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:1s;-moz-animation-duration:1s;-ms-animation-duration:1s;-o-animation-duration:1s;animation-duration:1s;}.animated.hinge{-webkit-animation-duration:2s;-moz-animation-duration:2s;-ms-animation-duration:2s;-o-animation-duration:2s;animation-duration:2s;}@-webkit-keyframes fadeIn {
+ 0% {opacity: 0;} 100% {opacity: 1;}
+}
+
+@-moz-keyframes fadeIn {
+ 0% {opacity: 0;}
+ 100% {opacity: 1;}
+}
+
+@-o-keyframes fadeIn {
+ 0% {opacity: 0;}
+ 100% {opacity: 1;}
+}
+
+@keyframes fadeIn {
+ 0% {opacity: 0;}
+ 100% {opacity: 1;}
+}
+
+.fadeIn {
+ -webkit-animation-name: fadeIn;
+ -moz-animation-name: fadeIn;
+ -o-animation-name: fadeIn;
+ animation-name: fadeIn;
+}
+@-webkit-keyframes fadeInDown {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ }
+}
+
+@-moz-keyframes fadeInDown {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ }
+}
+
+@-o-keyframes fadeInDown {
+ 0% {
+ opacity: 0;
+ -o-transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -o-transform: translateY(0);
+ }
+}
+
+@keyframes fadeInDown {
+ 0% {
+ opacity: 0;
+ transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ transform: translateY(0);
+ }
+}
+
+.fadeInDown {
+ -webkit-animation-name: fadeInDown;
+ -moz-animation-name: fadeInDown;
+ -o-animation-name: fadeInDown;
+ animation-name: fadeInDown;
+}
+@-webkit-keyframes fadeInDownBig {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(-2000px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ }
+}
+
+@-moz-keyframes fadeInDownBig {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateY(-2000px);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ }
+}
+
+@-o-keyframes fadeInDownBig {
+ 0% {
+ opacity: 0;
+ -o-transform: translateY(-2000px);
+ }
+
+ 100% {
+ opacity: 1;
+ -o-transform: translateY(0);
+ }
+}
+
+@keyframes fadeInDownBig {
+ 0% {
+ opacity: 0;
+ transform: translateY(-2000px);
+ }
+
+ 100% {
+ opacity: 1;
+ transform: translateY(0);
+ }
+}
+
+.fadeInDownBig {
+ -webkit-animation-name: fadeInDownBig;
+ -moz-animation-name: fadeInDownBig;
+ -o-animation-name: fadeInDownBig;
+ animation-name: fadeInDownBig;
+}
+@-webkit-keyframes bounceIn {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale(.3);
+ }
+
+ 50% {
+ opacity: 1;
+ -webkit-transform: scale(1.05);
+ }
+
+ 70% {
+ -webkit-transform: scale(.9);
+ }
+
+ 100% {
+ -webkit-transform: scale(1);
+ }
+}
+
+@-moz-keyframes bounceIn {
+ 0% {
+ opacity: 0;
+ -moz-transform: scale(.3);
+ }
+
+ 50% {
+ opacity: 1;
+ -moz-transform: scale(1.05);
+ }
+
+ 70% {
+ -moz-transform: scale(.9);
+ }
+
+ 100% {
+ -moz-transform: scale(1);
+ }
+}
+
+@-o-keyframes bounceIn {
+ 0% {
+ opacity: 0;
+ -o-transform: scale(.3);
+ }
+
+ 50% {
+ opacity: 1;
+ -o-transform: scale(1.05);
+ }
+
+ 70% {
+ -o-transform: scale(.9);
+ }
+
+ 100% {
+ -o-transform: scale(1);
+ }
+}
+
+@keyframes bounceIn {
+ 0% {
+ opacity: 0;
+ transform: scale(.3);
+ }
+
+ 50% {
+ opacity: 1;
+ transform: scale(1.05);
+ }
+
+ 70% {
+ transform: scale(.9);
+ }
+
+ 100% {
+ transform: scale(1);
+ }
+}
+
+.bounceIn {
+ -webkit-animation-name: bounceIn;
+ -moz-animation-name: bounceIn;
+ -o-animation-name: bounceIn;
+ animation-name: bounceIn;
+}
+@-webkit-keyframes bounceInDown {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(-2000px);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translateY(30px);
+ }
+
+ 80% {
+ -webkit-transform: translateY(-10px);
+ }
+
+ 100% {
+ -webkit-transform: translateY(0);
+ }
+}
+
+@-moz-keyframes bounceInDown {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateY(-2000px);
+ }
+
+ 60% {
+ opacity: 1;
+ -moz-transform: translateY(30px);
+ }
+
+ 80% {
+ -moz-transform: translateY(-10px);
+ }
+
+ 100% {
+ -moz-transform: translateY(0);
+ }
+}
+
+@-o-keyframes bounceInDown {
+ 0% {
+ opacity: 0;
+ -o-transform: translateY(-2000px);
+ }
+
+ 60% {
+ opacity: 1;
+ -o-transform: translateY(30px);
+ }
+
+ 80% {
+ -o-transform: translateY(-10px);
+ }
+
+ 100% {
+ -o-transform: translateY(0);
+ }
+}
+
+@keyframes bounceInDown {
+ 0% {
+ opacity: 0;
+ transform: translateY(-2000px);
+ }
+
+ 60% {
+ opacity: 1;
+ transform: translateY(30px);
+ }
+
+ 80% {
+ transform: translateY(-10px);
+ }
+
+ 100% {
+ transform: translateY(0);
+ }
+}
+
+.bounceInDown {
+ -webkit-animation-name: bounceInDown;
+ -moz-animation-name: bounceInDown;
+ -o-animation-name: bounceInDown;
+ animation-name: bounceInDown;
+}
+
+@-webkit-keyframes drop {
+ 0% {
+ -webkit-transform: translateY(-500px);
+ }
+ 100% {
+ -webkit-transform: translateY(0);
+ }
+}
+@-moz-keyframes drop {
+ 0% {
+ -moz-transform: translateY(-500px);
+ }
+ 100% {
+ -moz-transform: translateY(0);
+ }
+}
+@-o-keyframes drop {
+ 0% {
+ -o-transform: translateY(-500px);
+ }
+ 100% {
+ -o-transform: translateY(0);
+ }
+}
+@keyframes drop {
+ 0% {
+ transform: translateY(-500px);
+ }
+ 100% {
+ transform: translateY(0);
+ }
+}
+.drop {
+ -webkit-animation-name: drop;
+ -moz-animation-name: drop;
+ -o-animation-name: drop;
+ animation-name: drop;
+}
\ No newline at end of file
diff --git a/assets/less/font-awesome.less b/assets/less/font-awesome.less
new file mode 100644
index 0000000..18f042d
--- /dev/null
+++ b/assets/less/font-awesome.less
@@ -0,0 +1,1471 @@
+/*!
+ * Font Awesome 3.2.0
+ * the iconic font designed for Bootstrap
+ * ------------------------------------------------------------------------------
+ * The full suite of pictographic icons, examples, and documentation can be
+ * found at http://fontawesome.io. Stay up to date on Twitter at
+ * http://twitter.com/fontawesome.
+ *
+ * License
+ * ------------------------------------------------------------------------------
+ * - The Font Awesome font is licensed under SIL OFL 1.1 -
+ * http://scripts.sil.org/OFL
+ * - Font Awesome CSS, LESS, and SASS files are licensed under MIT License -
+ * http://opensource.org/licenses/mit-license.html
+ * - Font Awesome documentation licensed under CC BY 3.0 -
+ * http://creativecommons.org/licenses/by/3.0/
+ * - Attribution is no longer required in Font Awesome 3.0, but much appreciated:
+ * "Font Awesome by Dave Gandy - http://fontawesome.io"
+ *
+ * Author - Dave Gandy
+ * ------------------------------------------------------------------------------
+ * Email: dave@fontawesome.io
+ * Twitter: http://twitter.com/byscuits
+ * Work: Lead Product Designer @ Kyruus - http://kyruus.com
+ */
+/* FONT PATH
+ * -------------------------- */
+@font-face {
+ font-family: 'FontAwesome';
+ src: url('//netdna.bootstrapcdn.com/font-awesome/3.2.0/font/fontawesome-webfont.eot?v=3.2.0');
+ src: url('//netdna.bootstrapcdn.com/font-awesome/3.2.0/font/fontawesome-webfont.eot?#iefix&v=3.2.0') format('embedded-opentype'), url('//netdna.bootstrapcdn.com/font-awesome/3.2.0/font/fontawesome-webfont.woff?v=3.2.0') format('woff'), url('//netdna.bootstrapcdn.com/font-awesome/3.2.0/font/fontawesome-webfont.ttf?v=3.2.0') format('truetype'), url('//netdna.bootstrapcdn.com/font-awesome/3.2.0/font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.0') format('svg');
+ font-weight: normal;
+ font-style: normal;
+}
+/* FONT AWESOME CORE
+ * -------------------------- */
+[class^="icon-"],
+[class*=" icon-"] {
+ font-family: FontAwesome;
+ font-weight: normal;
+ font-style: normal;
+ text-decoration: inherit;
+ -webkit-font-smoothing: antialiased;
+ *margin-right: .3em;
+}
+[class^="icon-"]:before,
+[class*=" icon-"]:before {
+ text-decoration: inherit;
+ display: inline-block;
+ cursor: default;
+ speak: none;
+}
+/* makes the font 33% larger relative to the icon container */
+.icon-large:before {
+ vertical-align: -10%;
+ font-size: 1.3333333333333333em;
+}
+/* makes sure icons active on rollover in links */
+a [class^="icon-"],
+a [class*=" icon-"] {
+ display: inline;
+}
+/* increased font size for icon-large */
+[class^="icon-"].icon-fixed-width,
+[class*=" icon-"].icon-fixed-width {
+ display: inline-block;
+ width: 1.1428571428571428em;
+ text-align: right;
+ padding-right: 0.2857142857142857em;
+}
+[class^="icon-"].icon-fixed-width.icon-large,
+[class*=" icon-"].icon-fixed-width.icon-large {
+ width: 1.4285714285714286em;
+}
+.icons-ul {
+ margin-left: 2.142857142857143em;
+ list-style-type: none;
+}
+.icons-ul > li {
+ position: relative;
+}
+.icons-ul .icon-li {
+ position: absolute;
+ left: -2.142857142857143em;
+ width: 2.142857142857143em;
+ text-align: center;
+ line-height: inherit;
+}
+[class^="icon-"].hide,
+[class*=" icon-"].hide {
+ display: none;
+}
+.icon-muted {
+ color: #eeeeee;
+}
+.icon-light {
+ color: #ffffff;
+}
+.icon-dark {
+ color: #333333;
+}
+.icon-border {
+ border: solid 1px #eeeeee;
+ padding: .2em .25em .15em;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+}
+.icon-2x {
+ font-size: 2em;
+}
+.icon-2x.icon-border {
+ border-width: 2px;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
+.icon-3x {
+ font-size: 3em;
+}
+.icon-3x.icon-border {
+ border-width: 3px;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+}
+.icon-4x {
+ font-size: 4em;
+}
+.icon-4x.icon-border {
+ border-width: 4px;
+ -webkit-border-radius: 6px;
+ -moz-border-radius: 6px;
+ border-radius: 6px;
+}
+.icon-5x {
+ font-size: 5em;
+}
+.icon-5x.icon-border {
+ border-width: 5px;
+ -webkit-border-radius: 7px;
+ -moz-border-radius: 7px;
+ border-radius: 7px;
+}
+.pull-right {
+ float: right;
+}
+.pull-left {
+ float: left;
+}
+[class^="icon-"].pull-left,
+[class*=" icon-"].pull-left {
+ margin-right: .3em;
+}
+[class^="icon-"].pull-right,
+[class*=" icon-"].pull-right {
+ margin-left: .3em;
+}
+/* BOOTSTRAP SPECIFIC CLASSES
+ * -------------------------- */
+/* Bootstrap 2.0 sprites.less reset */
+[class^="icon-"],
+[class*=" icon-"] {
+ display: inline;
+ width: auto;
+ height: auto;
+ line-height: normal;
+ vertical-align: baseline;
+ background-image: none;
+ background-position: 0% 0%;
+ background-repeat: repeat;
+ margin-top: 0;
+}
+/* more sprites.less reset */
+.icon-white,
+.nav-pills > .active > a > [class^="icon-"],
+.nav-pills > .active > a > [class*=" icon-"],
+.nav-list > .active > a > [class^="icon-"],
+.nav-list > .active > a > [class*=" icon-"],
+.navbar-inverse .nav > .active > a > [class^="icon-"],
+.navbar-inverse .nav > .active > a > [class*=" icon-"],
+.dropdown-menu > li > a:hover > [class^="icon-"],
+.dropdown-menu > li > a:hover > [class*=" icon-"],
+.dropdown-menu > .active > a > [class^="icon-"],
+.dropdown-menu > .active > a > [class*=" icon-"],
+.dropdown-submenu:hover > a > [class^="icon-"],
+.dropdown-submenu:hover > a > [class*=" icon-"] {
+ background-image: none;
+}
+/* keeps Bootstrap styles with and without icons the same */
+.btn [class^="icon-"].icon-large,
+.nav [class^="icon-"].icon-large,
+.btn [class*=" icon-"].icon-large,
+.nav [class*=" icon-"].icon-large {
+ line-height: .9em;
+}
+.btn [class^="icon-"].icon-spin,
+.nav [class^="icon-"].icon-spin,
+.btn [class*=" icon-"].icon-spin,
+.nav [class*=" icon-"].icon-spin {
+ display: inline-block;
+}
+.nav-tabs [class^="icon-"],
+.nav-pills [class^="icon-"],
+.nav-tabs [class*=" icon-"],
+.nav-pills [class*=" icon-"],
+.nav-tabs [class^="icon-"].icon-large,
+.nav-pills [class^="icon-"].icon-large,
+.nav-tabs [class*=" icon-"].icon-large,
+.nav-pills [class*=" icon-"].icon-large {
+ line-height: .9em;
+}
+.btn [class^="icon-"].pull-left.icon-2x,
+.btn [class*=" icon-"].pull-left.icon-2x,
+.btn [class^="icon-"].pull-right.icon-2x,
+.btn [class*=" icon-"].pull-right.icon-2x {
+ margin-top: .18em;
+}
+.btn [class^="icon-"].icon-spin.icon-large,
+.btn [class*=" icon-"].icon-spin.icon-large {
+ line-height: .8em;
+}
+.btn.btn-small [class^="icon-"].pull-left.icon-2x,
+.btn.btn-small [class*=" icon-"].pull-left.icon-2x,
+.btn.btn-small [class^="icon-"].pull-right.icon-2x,
+.btn.btn-small [class*=" icon-"].pull-right.icon-2x {
+ margin-top: .25em;
+}
+.btn.btn-large [class^="icon-"],
+.btn.btn-large [class*=" icon-"] {
+ margin-top: 0;
+}
+.btn.btn-large [class^="icon-"].pull-left.icon-2x,
+.btn.btn-large [class*=" icon-"].pull-left.icon-2x,
+.btn.btn-large [class^="icon-"].pull-right.icon-2x,
+.btn.btn-large [class*=" icon-"].pull-right.icon-2x {
+ margin-top: .05em;
+}
+.btn.btn-large [class^="icon-"].pull-left.icon-2x,
+.btn.btn-large [class*=" icon-"].pull-left.icon-2x {
+ margin-right: .2em;
+}
+.btn.btn-large [class^="icon-"].pull-right.icon-2x,
+.btn.btn-large [class*=" icon-"].pull-right.icon-2x {
+ margin-left: .2em;
+}
+/* EXTRAS
+ * -------------------------- */
+/* Stacked and layered icon */
+.icon-stack {
+ position: relative;
+ display: inline-block;
+ width: 2em;
+ height: 2em;
+ line-height: 2em;
+ vertical-align: -35%;
+}
+.icon-stack [class^="icon-"],
+.icon-stack [class*=" icon-"] {
+ display: block;
+ text-align: center;
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ font-size: 1em;
+ line-height: inherit;
+ *line-height: 2em;
+}
+.icon-stack .icon-stack-base {
+ font-size: 2em;
+ *line-height: 1em;
+}
+/* Animated rotating icon */
+.icon-spin {
+ display: inline-block;
+ -moz-animation: spin 2s infinite linear;
+ -o-animation: spin 2s infinite linear;
+ -webkit-animation: spin 2s infinite linear;
+ animation: spin 2s infinite linear;
+}
+a .icon-spin {
+ display: inline-block;
+ text-decoration: none;
+}
+@-moz-keyframes spin {
+ 0% {
+ -moz-transform: rotate(0deg);
+ }
+ 100% {
+ -moz-transform: rotate(359deg);
+ }
+}
+@-webkit-keyframes spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ }
+}
+@-o-keyframes spin {
+ 0% {
+ -o-transform: rotate(0deg);
+ }
+ 100% {
+ -o-transform: rotate(359deg);
+ }
+}
+@-ms-keyframes spin {
+ 0% {
+ -ms-transform: rotate(0deg);
+ }
+ 100% {
+ -ms-transform: rotate(359deg);
+ }
+}
+@keyframes spin {
+ 0% {
+ transform: rotate(0deg);
+ }
+ 100% {
+ transform: rotate(359deg);
+ }
+}
+/* Icon rotations and mirroring */
+.icon-rotate-90:before {
+ -webkit-transform: rotate(90deg);
+ -moz-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ -o-transform: rotate(90deg);
+ transform: rotate(90deg);
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
+}
+.icon-rotate-180:before {
+ -webkit-transform: rotate(180deg);
+ -moz-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ -o-transform: rotate(180deg);
+ transform: rotate(180deg);
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
+}
+.icon-rotate-270:before {
+ -webkit-transform: rotate(270deg);
+ -moz-transform: rotate(270deg);
+ -ms-transform: rotate(270deg);
+ -o-transform: rotate(270deg);
+ transform: rotate(270deg);
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
+}
+.icon-flip-horizontal:before {
+ -webkit-transform: scale(-1, 1);
+ -moz-transform: scale(-1, 1);
+ -ms-transform: scale(-1, 1);
+ -o-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+.icon-flip-vertical:before {
+ -webkit-transform: scale(1, -1);
+ -moz-transform: scale(1, -1);
+ -ms-transform: scale(1, -1);
+ -o-transform: scale(1, -1);
+ transform: scale(1, -1);
+}
+/* ensure rotation occurs inside anchor tags */
+a .icon-rotate-90:before,
+a .icon-rotate-180:before,
+a .icon-rotate-270:before,
+a .icon-flip-horizontal:before,
+a .icon-flip-vertical:before {
+ display: inline-block;
+}
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+ readers do not read off random characters that represent icons */
+.icon-glass:before {
+ content: "\f000";
+}
+.icon-music:before {
+ content: "\f001";
+}
+.icon-search:before {
+ content: "\f002";
+}
+.icon-envelope-alt:before {
+ content: "\f003";
+}
+.icon-heart:before {
+ content: "\f004";
+}
+.icon-star:before {
+ content: "\f005";
+}
+.icon-star-empty:before {
+ content: "\f006";
+}
+.icon-user:before {
+ content: "\f007";
+}
+.icon-film:before {
+ content: "\f008";
+}
+.icon-th-large:before {
+ content: "\f009";
+}
+.icon-th:before {
+ content: "\f00a";
+}
+.icon-th-list:before {
+ content: "\f00b";
+}
+.icon-ok:before {
+ content: "\f00c";
+}
+.icon-remove:before {
+ content: "\f00d";
+}
+.icon-zoom-in:before {
+ content: "\f00e";
+}
+.icon-zoom-out:before {
+ content: "\f010";
+}
+.icon-power-off:before,
+.icon-off:before {
+ content: "\f011";
+}
+.icon-signal:before {
+ content: "\f012";
+}
+.icon-cog:before {
+ content: "\f013";
+}
+.icon-trash:before {
+ content: "\f014";
+}
+.icon-home:before {
+ content: "\f015";
+}
+.icon-file-alt:before {
+ content: "\f016";
+}
+.icon-time:before {
+ content: "\f017";
+}
+.icon-road:before {
+ content: "\f018";
+}
+.icon-download-alt:before {
+ content: "\f019";
+}
+.icon-download:before {
+ content: "\f01a";
+}
+.icon-upload:before {
+ content: "\f01b";
+}
+.icon-inbox:before {
+ content: "\f01c";
+}
+.icon-play-circle:before {
+ content: "\f01d";
+}
+.icon-rotate-right:before,
+.icon-repeat:before {
+ content: "\f01e";
+}
+.icon-refresh:before {
+ content: "\f021";
+}
+.icon-list-alt:before {
+ content: "\f022";
+}
+.icon-lock:before {
+ content: "\f023";
+}
+.icon-flag:before {
+ content: "\f024";
+}
+.icon-headphones:before {
+ content: "\f025";
+}
+.icon-volume-off:before {
+ content: "\f026";
+}
+.icon-volume-down:before {
+ content: "\f027";
+}
+.icon-volume-up:before {
+ content: "\f028";
+}
+.icon-qrcode:before {
+ content: "\f029";
+}
+.icon-barcode:before {
+ content: "\f02a";
+}
+.icon-tag:before {
+ content: "\f02b";
+}
+.icon-tags:before {
+ content: "\f02c";
+}
+.icon-book:before {
+ content: "\f02d";
+}
+.icon-bookmark:before {
+ content: "\f02e";
+}
+.icon-print:before {
+ content: "\f02f";
+}
+.icon-camera:before {
+ content: "\f030";
+}
+.icon-font:before {
+ content: "\f031";
+}
+.icon-bold:before {
+ content: "\f032";
+}
+.icon-italic:before {
+ content: "\f033";
+}
+.icon-text-height:before {
+ content: "\f034";
+}
+.icon-text-width:before {
+ content: "\f035";
+}
+.icon-align-left:before {
+ content: "\f036";
+}
+.icon-align-center:before {
+ content: "\f037";
+}
+.icon-align-right:before {
+ content: "\f038";
+}
+.icon-align-justify:before {
+ content: "\f039";
+}
+.icon-list:before {
+ content: "\f03a";
+}
+.icon-indent-left:before {
+ content: "\f03b";
+}
+.icon-indent-right:before {
+ content: "\f03c";
+}
+.icon-facetime-video:before {
+ content: "\f03d";
+}
+.icon-picture:before {
+ content: "\f03e";
+}
+.icon-pencil:before {
+ content: "\f040";
+}
+.icon-map-marker:before {
+ content: "\f041";
+}
+.icon-adjust:before {
+ content: "\f042";
+}
+.icon-tint:before {
+ content: "\f043";
+}
+.icon-edit:before {
+ content: "\f044";
+}
+.icon-share:before {
+ content: "\f045";
+}
+.icon-check:before {
+ content: "\f046";
+}
+.icon-move:before {
+ content: "\f047";
+}
+.icon-step-backward:before {
+ content: "\f048";
+}
+.icon-fast-backward:before {
+ content: "\f049";
+}
+.icon-backward:before {
+ content: "\f04a";
+}
+.icon-play:before {
+ content: "\f04b";
+}
+.icon-pause:before {
+ content: "\f04c";
+}
+.icon-stop:before {
+ content: "\f04d";
+}
+.icon-forward:before {
+ content: "\f04e";
+}
+.icon-fast-forward:before {
+ content: "\f050";
+}
+.icon-step-forward:before {
+ content: "\f051";
+}
+.icon-eject:before {
+ content: "\f052";
+}
+.icon-chevron-left:before {
+ content: "\f053";
+}
+.icon-chevron-right:before {
+ content: "\f054";
+}
+.icon-plus-sign:before {
+ content: "\f055";
+}
+.icon-minus-sign:before {
+ content: "\f056";
+}
+.icon-remove-sign:before {
+ content: "\f057";
+}
+.icon-ok-sign:before {
+ content: "\f058";
+}
+.icon-question-sign:before {
+ content: "\f059";
+}
+.icon-info-sign:before {
+ content: "\f05a";
+}
+.icon-screenshot:before {
+ content: "\f05b";
+}
+.icon-remove-circle:before {
+ content: "\f05c";
+}
+.icon-ok-circle:before {
+ content: "\f05d";
+}
+.icon-ban-circle:before {
+ content: "\f05e";
+}
+.icon-arrow-left:before {
+ content: "\f060";
+}
+.icon-arrow-right:before {
+ content: "\f061";
+}
+.icon-arrow-up:before {
+ content: "\f062";
+}
+.icon-arrow-down:before {
+ content: "\f063";
+}
+.icon-mail-forward:before,
+.icon-share-alt:before {
+ content: "\f064";
+}
+.icon-resize-full:before {
+ content: "\f065";
+}
+.icon-resize-small:before {
+ content: "\f066";
+}
+.icon-plus:before {
+ content: "\f067";
+}
+.icon-minus:before {
+ content: "\f068";
+}
+.icon-asterisk:before {
+ content: "\f069";
+}
+.icon-exclamation-sign:before {
+ content: "\f06a";
+}
+.icon-gift:before {
+ content: "\f06b";
+}
+.icon-leaf:before {
+ content: "\f06c";
+}
+.icon-fire:before {
+ content: "\f06d";
+}
+.icon-eye-open:before {
+ content: "\f06e";
+}
+.icon-eye-close:before {
+ content: "\f070";
+}
+.icon-warning-sign:before {
+ content: "\f071";
+}
+.icon-plane:before {
+ content: "\f072";
+}
+.icon-calendar:before {
+ content: "\f073";
+}
+.icon-random:before {
+ content: "\f074";
+}
+.icon-comment:before {
+ content: "\f075";
+}
+.icon-magnet:before {
+ content: "\f076";
+}
+.icon-chevron-up:before {
+ content: "\f077";
+}
+.icon-chevron-down:before {
+ content: "\f078";
+}
+.icon-retweet:before {
+ content: "\f079";
+}
+.icon-shopping-cart:before {
+ content: "\f07a";
+}
+.icon-folder-close:before {
+ content: "\f07b";
+}
+.icon-folder-open:before {
+ content: "\f07c";
+}
+.icon-resize-vertical:before {
+ content: "\f07d";
+}
+.icon-resize-horizontal:before {
+ content: "\f07e";
+}
+.icon-bar-chart:before {
+ content: "\f080";
+}
+.icon-twitter-sign:before {
+ content: "\f081";
+}
+.icon-facebook-sign:before {
+ content: "\f082";
+}
+.icon-camera-retro:before {
+ content: "\f083";
+}
+.icon-key:before {
+ content: "\f084";
+}
+.icon-cogs:before {
+ content: "\f085";
+}
+.icon-comments:before {
+ content: "\f086";
+}
+.icon-thumbs-up-alt:before {
+ content: "\f087";
+}
+.icon-thumbs-down-alt:before {
+ content: "\f088";
+}
+.icon-star-half:before {
+ content: "\f089";
+}
+.icon-heart-empty:before {
+ content: "\f08a";
+}
+.icon-signout:before {
+ content: "\f08b";
+}
+.icon-linkedin-sign:before {
+ content: "\f08c";
+}
+.icon-pushpin:before {
+ content: "\f08d";
+}
+.icon-external-link:before {
+ content: "\f08e";
+}
+.icon-signin:before {
+ content: "\f090";
+}
+.icon-trophy:before {
+ content: "\f091";
+}
+.icon-github-sign:before {
+ content: "\f092";
+}
+.icon-upload-alt:before {
+ content: "\f093";
+}
+.icon-lemon:before {
+ content: "\f094";
+}
+.icon-phone:before {
+ content: "\f095";
+}
+.icon-unchecked:before,
+.icon-check-empty:before {
+ content: "\f096";
+}
+.icon-bookmark-empty:before {
+ content: "\f097";
+}
+.icon-phone-sign:before {
+ content: "\f098";
+}
+.icon-twitter:before {
+ content: "\f099";
+}
+.icon-facebook:before {
+ content: "\f09a";
+}
+.icon-github:before {
+ content: "\f09b";
+}
+.icon-unlock:before {
+ content: "\f09c";
+}
+.icon-credit-card:before {
+ content: "\f09d";
+}
+.icon-rss:before {
+ content: "\f09e";
+}
+.icon-hdd:before {
+ content: "\f0a0";
+}
+.icon-bullhorn:before {
+ content: "\f0a1";
+}
+.icon-bell:before {
+ content: "\f0a2";
+}
+.icon-certificate:before {
+ content: "\f0a3";
+}
+.icon-hand-right:before {
+ content: "\f0a4";
+}
+.icon-hand-left:before {
+ content: "\f0a5";
+}
+.icon-hand-up:before {
+ content: "\f0a6";
+}
+.icon-hand-down:before {
+ content: "\f0a7";
+}
+.icon-circle-arrow-left:before {
+ content: "\f0a8";
+}
+.icon-circle-arrow-right:before {
+ content: "\f0a9";
+}
+.icon-circle-arrow-up:before {
+ content: "\f0aa";
+}
+.icon-circle-arrow-down:before {
+ content: "\f0ab";
+}
+.icon-globe:before {
+ content: "\f0ac";
+}
+.icon-wrench:before {
+ content: "\f0ad";
+}
+.icon-tasks:before {
+ content: "\f0ae";
+}
+.icon-filter:before {
+ content: "\f0b0";
+}
+.icon-briefcase:before {
+ content: "\f0b1";
+}
+.icon-fullscreen:before {
+ content: "\f0b2";
+}
+.icon-group:before {
+ content: "\f0c0";
+}
+.icon-link:before {
+ content: "\f0c1";
+}
+.icon-cloud:before {
+ content: "\f0c2";
+}
+.icon-beaker:before {
+ content: "\f0c3";
+}
+.icon-cut:before {
+ content: "\f0c4";
+}
+.icon-copy:before {
+ content: "\f0c5";
+}
+.icon-paperclip:before,
+.icon-paper-clip:before {
+ content: "\f0c6";
+}
+.icon-save:before {
+ content: "\f0c7";
+}
+.icon-sign-blank:before {
+ content: "\f0c8";
+}
+.icon-reorder:before {
+ content: "\f0c9";
+}
+.icon-list-ul:before {
+ content: "\f0ca";
+}
+.icon-list-ol:before {
+ content: "\f0cb";
+}
+.icon-strikethrough:before {
+ content: "\f0cc";
+}
+.icon-underline:before {
+ content: "\f0cd";
+}
+.icon-table:before {
+ content: "\f0ce";
+}
+.icon-magic:before {
+ content: "\f0d0";
+}
+.icon-truck:before {
+ content: "\f0d1";
+}
+.icon-pinterest:before {
+ content: "\f0d2";
+}
+.icon-pinterest-sign:before {
+ content: "\f0d3";
+}
+.icon-google-plus-sign:before {
+ content: "\f0d4";
+}
+.icon-google-plus:before {
+ content: "\f0d5";
+}
+.icon-money:before {
+ content: "\f0d6";
+}
+.icon-caret-down:before {
+ content: "\f0d7";
+}
+.icon-caret-up:before {
+ content: "\f0d8";
+}
+.icon-caret-left:before {
+ content: "\f0d9";
+}
+.icon-caret-right:before {
+ content: "\f0da";
+}
+.icon-columns:before {
+ content: "\f0db";
+}
+.icon-sort:before {
+ content: "\f0dc";
+}
+.icon-sort-down:before {
+ content: "\f0dd";
+}
+.icon-sort-up:before {
+ content: "\f0de";
+}
+.icon-envelope:before {
+ content: "\f0e0";
+}
+.icon-linkedin:before {
+ content: "\f0e1";
+}
+.icon-rotate-left:before,
+.icon-undo:before {
+ content: "\f0e2";
+}
+.icon-legal:before {
+ content: "\f0e3";
+}
+.icon-dashboard:before {
+ content: "\f0e4";
+}
+.icon-comment-alt:before {
+ content: "\f0e5";
+}
+.icon-comments-alt:before {
+ content: "\f0e6";
+}
+.icon-bolt:before {
+ content: "\f0e7";
+}
+.icon-sitemap:before {
+ content: "\f0e8";
+}
+.icon-umbrella:before {
+ content: "\f0e9";
+}
+.icon-paste:before {
+ content: "\f0ea";
+}
+.icon-lightbulb:before {
+ content: "\f0eb";
+}
+.icon-exchange:before {
+ content: "\f0ec";
+}
+.icon-cloud-download:before {
+ content: "\f0ed";
+}
+.icon-cloud-upload:before {
+ content: "\f0ee";
+}
+.icon-user-md:before {
+ content: "\f0f0";
+}
+.icon-stethoscope:before {
+ content: "\f0f1";
+}
+.icon-suitcase:before {
+ content: "\f0f2";
+}
+.icon-bell-alt:before {
+ content: "\f0f3";
+}
+.icon-coffee:before {
+ content: "\f0f4";
+}
+.icon-food:before {
+ content: "\f0f5";
+}
+.icon-file-text-alt:before {
+ content: "\f0f6";
+}
+.icon-building:before {
+ content: "\f0f7";
+}
+.icon-hospital:before {
+ content: "\f0f8";
+}
+.icon-ambulance:before {
+ content: "\f0f9";
+}
+.icon-medkit:before {
+ content: "\f0fa";
+}
+.icon-fighter-jet:before {
+ content: "\f0fb";
+}
+.icon-beer:before {
+ content: "\f0fc";
+}
+.icon-h-sign:before {
+ content: "\f0fd";
+}
+.icon-plus-sign-alt:before {
+ content: "\f0fe";
+}
+.icon-double-angle-left:before {
+ content: "\f100";
+}
+.icon-double-angle-right:before {
+ content: "\f101";
+}
+.icon-double-angle-up:before {
+ content: "\f102";
+}
+.icon-double-angle-down:before {
+ content: "\f103";
+}
+.icon-angle-left:before {
+ content: "\f104";
+}
+.icon-angle-right:before {
+ content: "\f105";
+}
+.icon-angle-up:before {
+ content: "\f106";
+}
+.icon-angle-down:before {
+ content: "\f107";
+}
+.icon-desktop:before {
+ content: "\f108";
+}
+.icon-laptop:before {
+ content: "\f109";
+}
+.icon-tablet:before {
+ content: "\f10a";
+}
+.icon-mobile-phone:before {
+ content: "\f10b";
+}
+.icon-circle-blank:before {
+ content: "\f10c";
+}
+.icon-quote-left:before {
+ content: "\f10d";
+}
+.icon-quote-right:before {
+ content: "\f10e";
+}
+.icon-spinner:before {
+ content: "\f110";
+}
+.icon-circle:before {
+ content: "\f111";
+}
+.icon-mail-reply:before,
+.icon-reply:before {
+ content: "\f112";
+}
+.icon-github-alt:before {
+ content: "\f113";
+}
+.icon-folder-close-alt:before {
+ content: "\f114";
+}
+.icon-folder-open-alt:before {
+ content: "\f115";
+}
+.icon-expand-alt:before {
+ content: "\f116";
+}
+.icon-collapse-alt:before {
+ content: "\f117";
+}
+.icon-smile:before {
+ content: "\f118";
+}
+.icon-frown:before {
+ content: "\f119";
+}
+.icon-meh:before {
+ content: "\f11a";
+}
+.icon-gamepad:before {
+ content: "\f11b";
+}
+.icon-keyboard:before {
+ content: "\f11c";
+}
+.icon-flag-alt:before {
+ content: "\f11d";
+}
+.icon-flag-checkered:before {
+ content: "\f11e";
+}
+.icon-terminal:before {
+ content: "\f120";
+}
+.icon-code:before {
+ content: "\f121";
+}
+.icon-reply-all:before {
+ content: "\f122";
+}
+.icon-mail-reply-all:before {
+ content: "\f122";
+}
+.icon-star-half-full:before,
+.icon-star-half-empty:before {
+ content: "\f123";
+}
+.icon-location-arrow:before {
+ content: "\f124";
+}
+.icon-crop:before {
+ content: "\f125";
+}
+.icon-code-fork:before {
+ content: "\f126";
+}
+.icon-unlink:before {
+ content: "\f127";
+}
+.icon-question:before {
+ content: "\f128";
+}
+.icon-info:before {
+ content: "\f129";
+}
+.icon-exclamation:before {
+ content: "\f12a";
+}
+.icon-superscript:before {
+ content: "\f12b";
+}
+.icon-subscript:before {
+ content: "\f12c";
+}
+.icon-eraser:before {
+ content: "\f12d";
+}
+.icon-puzzle-piece:before {
+ content: "\f12e";
+}
+.icon-microphone:before {
+ content: "\f130";
+}
+.icon-microphone-off:before {
+ content: "\f131";
+}
+.icon-shield:before {
+ content: "\f132";
+}
+.icon-calendar-empty:before {
+ content: "\f133";
+}
+.icon-fire-extinguisher:before {
+ content: "\f134";
+}
+.icon-rocket:before {
+ content: "\f135";
+}
+.icon-maxcdn:before {
+ content: "\f136";
+}
+.icon-chevron-sign-left:before {
+ content: "\f137";
+}
+.icon-chevron-sign-right:before {
+ content: "\f138";
+}
+.icon-chevron-sign-up:before {
+ content: "\f139";
+}
+.icon-chevron-sign-down:before {
+ content: "\f13a";
+}
+.icon-html5:before {
+ content: "\f13b";
+}
+.icon-css3:before {
+ content: "\f13c";
+}
+.icon-anchor:before {
+ content: "\f13d";
+}
+.icon-unlock-alt:before {
+ content: "\f13e";
+}
+.icon-bullseye:before {
+ content: "\f140";
+}
+.icon-ellipsis-horizontal:before {
+ content: "\f141";
+}
+.icon-ellipsis-vertical:before {
+ content: "\f142";
+}
+.icon-rss-sign:before {
+ content: "\f143";
+}
+.icon-play-sign:before {
+ content: "\f144";
+}
+.icon-ticket:before {
+ content: "\f145";
+}
+.icon-minus-sign-alt:before {
+ content: "\f146";
+}
+.icon-check-minus:before {
+ content: "\f147";
+}
+.icon-level-up:before {
+ content: "\f148";
+}
+.icon-level-down:before {
+ content: "\f149";
+}
+.icon-check-sign:before {
+ content: "\f14a";
+}
+.icon-edit-sign:before {
+ content: "\f14b";
+}
+.icon-external-link-sign:before {
+ content: "\f14c";
+}
+.icon-share-sign:before {
+ content: "\f14d";
+}
+.icon-compass:before {
+ content: "\f14e";
+}
+.icon-collapse:before {
+ content: "\f150";
+}
+.icon-collapse-top:before {
+ content: "\f151";
+}
+.icon-expand:before {
+ content: "\f152";
+}
+.icon-euro:before,
+.icon-eur:before {
+ content: "\f153";
+}
+.icon-gbp:before {
+ content: "\f154";
+}
+.icon-dollar:before,
+.icon-usd:before {
+ content: "\f155";
+}
+.icon-rupee:before,
+.icon-inr:before {
+ content: "\f156";
+}
+.icon-yen:before,
+.icon-jpy:before {
+ content: "\f157";
+}
+.icon-renminbi:before,
+.icon-cny:before {
+ content: "\f158";
+}
+.icon-won:before,
+.icon-krw:before {
+ content: "\f159";
+}
+.icon-bitcoin:before,
+.icon-btc:before {
+ content: "\f15a";
+}
+.icon-file:before {
+ content: "\f15b";
+}
+.icon-file-text:before {
+ content: "\f15c";
+}
+.icon-sort-by-alphabet:before {
+ content: "\f15d";
+}
+.icon-sort-by-alphabet-alt:before {
+ content: "\f15e";
+}
+.icon-sort-by-attributes:before {
+ content: "\f160";
+}
+.icon-sort-by-attributes-alt:before {
+ content: "\f161";
+}
+.icon-sort-by-order:before {
+ content: "\f162";
+}
+.icon-sort-by-order-alt:before {
+ content: "\f163";
+}
+.icon-thumbs-up:before {
+ content: "\f164";
+}
+.icon-thumbs-down:before {
+ content: "\f165";
+}
+.icon-youtube-sign:before {
+ content: "\f166";
+}
+.icon-youtube:before {
+ content: "\f167";
+}
+.icon-xing:before {
+ content: "\f168";
+}
+.icon-xing-sign:before {
+ content: "\f169";
+}
+.icon-youtube-play:before {
+ content: "\f16a";
+}
+.icon-dropbox:before {
+ content: "\f16b";
+}
+.icon-stackexchange:before {
+ content: "\f16c";
+}
+.icon-instagram:before {
+ content: "\f16d";
+}
+.icon-flickr:before {
+ content: "\f16e";
+}
+.icon-adn:before {
+ content: "\f170";
+}
+.icon-bitbucket:before {
+ content: "\f171";
+}
+.icon-bitbucket-sign:before {
+ content: "\f172";
+}
+.icon-tumblr:before {
+ content: "\f173";
+}
+.icon-tumblr-sign:before {
+ content: "\f174";
+}
+.icon-long-arrow-down:before {
+ content: "\f175";
+}
+.icon-long-arrow-up:before {
+ content: "\f176";
+}
+.icon-long-arrow-left:before {
+ content: "\f177";
+}
+.icon-long-arrow-right:before {
+ content: "\f178";
+}
+.icon-apple:before {
+ content: "\f179";
+}
+.icon-windows:before {
+ content: "\f17a";
+}
+.icon-android:before {
+ content: "\f17b";
+}
+.icon-linux:before {
+ content: "\f17c";
+}
+.icon-dribble:before {
+ content: "\f17d";
+}
+.icon-skype:before {
+ content: "\f17e";
+}
+.icon-foursquare:before {
+ content: "\f180";
+}
+.icon-trello:before {
+ content: "\f181";
+}
+.icon-female:before {
+ content: "\f182";
+}
+.icon-male:before {
+ content: "\f183";
+}
+.icon-gittip:before {
+ content: "\f184";
+}
+.icon-sun:before {
+ content: "\f185";
+}
+.icon-moon:before {
+ content: "\f186";
+}
+.icon-archive:before {
+ content: "\f187";
+}
+.icon-bug:before {
+ content: "\f188";
+}
+.icon-vk:before {
+ content: "\f189";
+}
+.icon-weibo:before {
+ content: "\f18a";
+}
+.icon-renren:before {
+ content: "\f18b";
+}
diff --git a/assets/less/grid.less b/assets/less/grid.less
new file mode 100644
index 0000000..ed5ef3e
--- /dev/null
+++ b/assets/less/grid.less
@@ -0,0 +1,47 @@
+// Defining number of columns in the grid.
+// Common Values would be 12, 16 or 24
+@width: 100%;
+@def_grid: 12;
+@margin: 0;
+
+.container(){
+ margin:0 auto;
+ width:@width;
+}
+
+// Works out the width of elements based
+// on total number of columns and width
+// number of columns being displayed.
+// Removes 20px for margins
+.grid(@grid:@def_grid,@cols:'',@float:left,@display:inline){
+ display:@display;
+ float:@float;
+ width:(100%/@grid * @cols) - (@margin * 2);
+}
+
+// Allows for padding before element
+.prefix(@grid:@def_grid,@cols:''){
+ margin-left:(100%/@grid * @cols);
+}
+// Allows for padding after element
+.suffix(@grid:@def_grid,@cols:''){
+ margin-right:(100%/@grid * @cols);
+}
+// Removes left margin
+.first(){
+ margin-left:0;
+}
+// Removes right margin
+.last(){
+ margin-right:0;
+}
+
+.push(@grid:@def_grid,@move:'') {
+ position:relative;
+ left:(100%/@grid * @move);
+}
+
+.pull(@grid:@def_grid,@move:''){
+ position:relative;
+ left:(100%/@grid * @move) * -1;
+}
\ No newline at end of file
diff --git a/assets/less/main.less b/assets/less/main.less
new file mode 100644
index 0000000..884e10f
--- /dev/null
+++ b/assets/less/main.less
@@ -0,0 +1,30 @@
+// ===========================================================
+// HPSTR Jekyll Theme
+// By: Michael Rose
+// ===========================================================
+
+// ROOT =======================================================
+// CSS Reset ==================================================
+@import "reset.less";
+// Variables and mixins =======================================
+@import "variables.less";
+// Site wide styles (html, body, global classes) ==============
+@import "site.less";
+// TYPOGRAPHY =================================================
+@import "typography.less";
+// Pygments Syntax highlighting ===============================
+@import "pygments.less";
+// Coderay Syntax highlighting ===============================
+@import "coderay.less";
+// MIXINS =====================================================
+@import "mixins.less";
+@import "grid.less";
+// ELEMENTS ===================================================
+// Figures, images, social media, other elements ==============
+@import "elements.less";
+@import "dl-menu.less";
+// Font Awesome webfont icons =================================
+@import "font-awesome.less";
+// LAYOUT =====================================================
+// Page level layout styles ===================================
+@import "page.less";
\ No newline at end of file
diff --git a/assets/less/mixins.less b/assets/less/mixins.less
new file mode 100644
index 0000000..a408b7d
--- /dev/null
+++ b/assets/less/mixins.less
@@ -0,0 +1,305 @@
+// UTILITY MIXINS
+// --------------------------------------------------
+
+// Clearfix
+// --------------------
+// For clearing floats like a boss h5bp.com/q
+.clearfix {
+ *zoom: 1;
+ &:before,
+ &:after {
+ display: table;
+ content: "";
+ // Fixes Opera/contenteditable bug:
+ // http://nicolasgallagher.com/micro-clearfix-hack/#comment-36952
+ line-height: 0;
+ }
+ &:after {
+ clear: both;
+ }
+}
+
+// Webkit-style focus
+// --------------------
+.tab-focus() {
+ // Default
+ outline: thin dotted #333;
+ // Webkit
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+
+// Center-align a block level element
+// ----------------------------------
+.center-block() {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+// TYPOGRAPHY
+// --------------------------------------------------
+
+// Full-fat vertical rhythm
+// ------------------------
+.font-size(@size) {
+ font-size: 0px + @size;
+ font-size: 0rem + @size / @doc-font-size;
+ line-height: 0 + round(@doc-line-height / @size*10000) / 10000;
+ margin-bottom: 0px + @doc-line-height;
+ margin-bottom: 0rem + (@doc-line-height / @doc-font-size);
+}
+
+// Just the REMs
+// -------------
+.font-rem(@size) {
+ font-size: 0px + @size;
+ font-size: 0rem + @size / @doc-font-size;
+}
+
+// Just font-size and line-height
+// ------------------------------
+.font(@size) {
+ font-size: 0px + @size;
+ font-size: 0rem + @size / @doc-font-size;
+ line-height: 0 + round(@doc-line-height / @size*10000) / 10000;
+}
+
+.text-overflow() {
+overflow: hidden;
+text-overflow: ellipsis;
+white-space: nowrap; }
+
+// GRADIENTS
+// --------------------------------------------------
+
+.horizontal(@startColor : @white, @endColor : @lightergrey) {
+background-color: @endColor;
+background-image : -webkit-gradient(linear, 0 0, 100% 0, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+
+background-image : -webkit-linear-gradient(left, @startColor, @endColor); // Safari 5.1+, Chrome 10+
+background-image : -moz-linear-gradient(left, @startColor, @endColor); // FF 3.6+
+background-image : -ms-linear-gradient(left, @startColor, @endColor); // IE10
+background-image : -o-linear-gradient(left, @startColor, @endColor); // Opera 11.10
+background-image : linear-gradient(left, @startColor, @endColor); // W3C
+background-repeat : repeat-x; }
+
+.vertical(@startColor : @white, @endColor: @lightergrey) {
+background-image : -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+
+background-image : -webkit-linear-gradient(top, @startColor, @endColor); // Safari 5.1+, Chrome 10+
+background-color : @endColor;
+background-image : -moz-linear-gradient(top, @startColor, @endColor); // FF 3.6+
+background-image : -ms-linear-gradient(top, @startColor, @endColor); // IE10
+background-image : -o-linear-gradient(top, @startColor, @endColor); // Opera 11.10
+background-image : linear-gradient(top, @startColor, @endColor); // W3C
+background-repeat : repeat-x; }
+
+.directional(@startColor : @white, @endColor : @lightergrey, @deg : 45deg) {
+background-color : @endColor;
+background-image : -moz-linear-gradient(@deg, @startColor, @endColor); // FF 3.6+
+background-image : -ms-linear-gradient(@deg, @startColor, @endColor); // IE10
+background-image : -webkit-linear-gradient(@deg, @startColor, @endColor); // Safari 5.1+, Chrome 10+
+background-image : -o-linear-gradient(@deg, @startColor, @endColor); // Opera 11.10
+background-image : linear-gradient(@deg, @startColor, @endColor); // W3C
+background-repeat : repeat-x; }
+
+// .bordered(COLOR, COLOR, COLOR, COLOR);
+.bordered(@top-color: #eee, @right-color: #eee, @bottom-color: #eee, @left-color: #eee) {
+border-top : solid 1px @top-color;
+border-left : solid 1px @left-color;
+border-right : solid 1px @right-color;
+border-bottom : solid 1px @bottom-color; }
+
+// ROUND CORNERS
+// --------------------------------------------------
+
+// .rounded(VALUE);
+.rounded(@radius:4px) {
+-webkit-border-radius : @radius;
+-moz-border-radius : @radius;
+border-radius : @radius; }
+
+// .border-radius(VALUE,VALUE,VALUE,VALUE);
+.border-radius(@topright: 0, @bottomright: 0, @bottomleft: 0, @topleft: 0) {
+-webkit-border-top-right-radius : @topright;
+-webkit-border-bottom-right-radius : @bottomright;
+-webkit-border-bottom-left-radius : @bottomleft;
+-webkit-border-top-left-radius : @topleft;
+-moz-border-radius-topright : @topright;
+-moz-border-radius-bottomright : @bottomright;
+-moz-border-radius-bottomleft : @bottomleft;
+-moz-border-radius-topleft : @topleft;
+border-top-right-radius : @topright;
+border-bottom-right-radius : @bottomright;
+border-bottom-left-radius : @bottomleft;
+border-top-left-radius : @topleft;
+-webkit-background-clip : padding-box;
+-moz-background-clip : padding;
+background-clip : padding-box; }
+
+// .box-shadow(HORIZONTAL VERTICAL BLUR COLOR))
+.box-shadow(@shadow: 0 1px 3px rgba(0,0,0,.25)) {
+-webkit-box-shadow : @shadow;
+-moz-box-shadow : @shadow;
+box-shadow : @shadow; }
+
+// .drop-shadow(HORIZONTAL, VERTICAL, BLUR, ALPHA);
+.drop-shadow(@x-axis: 0, @y-axis: 1px, @blur: 2px, @alpha: 0.1) {
+-webkit-box-shadow : @x-axis @y-axis @blur rgba(0, 0, 0, @alpha);
+-moz-box-shadow : @x-axis @y-axis @blur rgba(0, 0, 0, @alpha);
+box-shadow : @x-axis @y-axis @blur rgba(0, 0, 0, @alpha); }
+
+// .text-shadow();
+.text-shadow(@shadow: 0 2px 3px rgba(0,0,0,.25)) {
+text-shadow : @shadow; }
+
+// .opacity(VALUE);
+.opacity(@opacity : .5) {
+-webkit-opacity : @opacity;
+-moz-opacity : @opacity;
+opacity : @opacity; }
+
+// TRANSFORMATIONS
+// --------------------------------------------------
+
+// .rotate(VALUEdeg);
+.rotate(@deg) {
+-webkit-transform : rotate(@deg);
+-moz-transform : rotate(@deg);
+-ms-transform : rotate(@deg);
+-o-transform : rotate(@deg);
+transform : rotate(@deg); }
+
+// .scale(VALUE);
+.scale(@ratio) {
+-webkit-transform : scale(@ratio);
+-moz-transform : scale(@ratio);
+-ms-transform : scale(@ratio);
+-o-transform : scale(@ratio);
+transform : scale(@ratio); }
+
+// .skew(VALUE, VALUE);
+.skew(@x: 0, @y: 0) {
+-webkit-transform : skew(@x, @y);
+-moz-transform : skew(@x, @y);
+-ms-transform : skew(@x, @y);
+-o-transform : skew(@x, @y);
+transform : skew(@x, @y); }
+
+// .transition(PROPERTY DURATION DELAY(OPTIONAL) TIMING-FINCTION);
+.transition(@transition) {
+-webkit-transition : @transition;
+-moz-transition : @transition;
+-ms-transition : @transition;
+-o-transition : @transition;
+transition : @transition; }
+
+// .translate(VALUE, VALUE)
+.translate(@x: 0, @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); }
+
+.translate3d(@x: 0, @y: 0, @z: 0) {
+-webkit-transform : translate(@x, @y, @z);
+-moz-transform : translate(@x, @y, @z);
+-ms-transform : translate(@x, @y, @z);
+-o-transform : translate(@x, @y, @z);
+transform : translate(@x, @y, @z); }
+
+.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;
+}
+
+// BACKGROUND
+// --------------------------------------------------
+
+// .background-alpha(VALUE VALUE);
+.background-alpha(@color: @white, @alpha: 1) {
+background-color : hsla(hue(@color), saturation(@color), lightness(@color), @alpha); }
+
+// .background-size(VALUE VALUE);
+.background-size(@size){
+-webkit-background-size : @size;
+-moz-background-size : @size;
+-o-background-size : @size;
+background-size : @size; }
+
+// .background-clip(VALUE); (border-box, padding-box, content-box)
+.background-clip(@clip) {
+-webkit-background-clip : @clip;
+-moz-background-clip : @clip;
+background-clip : @clip; }
+
+// .box-sizing(VALUE); (border-box, padding-box, content-box)
+.box-sizing(@boxsize: border-box) {
+-webkit-box-sizing : @boxsize;
+-moz-box-sizing : @boxsize;
+-ms-box-sizing : @boxsize;
+box-sizing : @boxsize; }
+
+// For image replacement
+.hide-text() {
+text-indent : 100%;
+white-space : nowrap;
+overflow : hidden; }
+
+// Hide from visual and speaking browsers
+.hidden() {
+display : none !important;
+visibility : hidden; }
+.hidden {
+ display: none;
+ visibility: hidden;
+}
+
+// Hide but maintain layout
+.invisible() {
+visibility : hidden; }
+
+// .resize(VALUE) (none, both, horizontal, vertical, inherit)
+.resize(@direction: both) {
+resize : @direction;
+overflow : auto; }
+
+// .userselect(VALUE) (all, element, none, text)
+.user-select(@select) {
+-webkit-user-select : @select;
+-moz-user-select : @select;
+-o-user-select : @select;
+user-select : @select; }
+
+// Hidden but available to speaking browsers
+.visuallyhidden() {
+overflow : hidden;
+position : absolute;
+clip : rect(0 0 0 0);
+height : 1px;
+width : 1px;
+margin : -1px;
+padding : 0;
+border : 0; }
+
+// Make visuallyhidden focusable with a keyboard
+.visuallyhidden.focusable:active,
+.visuallyhidden.focusable:focus {
+position : static;
+clip : auto;
+height : auto;
+width : auto;
+margin : 0;
+overflow: visible; }
+
+// MEDIA QUERIES
+// --------------------------------------------------
+
+@small: ~"only screen and (min-width: 30em)";
+@medium: ~"only screen and (min-width: 48em)";
+@large: ~"only screen and (min-width: 62.5em)";
+@highdensity: ~"only screen and (-webkit-min-device-pixel-ratio: 1.5)",
+ ~"only screen and (-o-min-device-pixel-ratio: 3/2)",
+ ~"only screen and (min-resolution: 144dpi)",
+ ~"only screen and (min-resolution: 1.5dppx)";
\ No newline at end of file
diff --git a/assets/less/page.less b/assets/less/page.less
new file mode 100644
index 0000000..4a50888
--- /dev/null
+++ b/assets/less/page.less
@@ -0,0 +1,357 @@
+body {
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ background-color: @body-color;
+}
+
+// Main
+// --------------------------------------------------
+.entry,
+.hentry {
+ .clearfix();
+}
+.entry-content {
+ .font-size(16);
+ // Dotted line underlines for links
+ p > a,
+ li > a {
+ border-bottom: 1px dotted lighten(@link-color, 50);
+ &:hover {
+ border-bottom-style: solid;
+ }
+ }
+}
+
+// Entry Header
+// --------------------------------------------------
+.entry-header {
+ width: 100%;
+ overflow: hidden;
+}
+.header-title {
+ text-align: center;
+ margin: 30px 0 0;
+ padding: 0 20px;
+ h1 {
+ margin: 10px 20px;
+ font-weight: 700;
+ .font-rem(28);
+ color: lighten(@base-color,20);
+ @media @medium {
+ .font-rem(48);
+ }
+ @media @large {
+ .font-rem(80);
+ }
+ }
+ h2 {
+ margin: 0;
+ .font-rem(18);
+ text-transform: uppercase;
+ color: lighten(@base-color,40);
+ @media @medium {
+ .font-rem(32);
+ }
+ }
+}
+.feature .header-title {
+ @media @medium {
+ position: absolute;
+ top: 0;
+ display: table;
+ margin-top: 0;
+ width: 100%;
+ height: 440px;
+ overflow: hidden;
+ .header-title-wrap {
+ display: table-cell;
+ vertical-align: middle;
+ margin: 0 auto;
+ text-align: center;
+ }
+ }
+ h1 {
+ margin: 10px 60px;
+ font-weight: 700;
+ @media @medium {
+ color: @white;
+ .font-rem(60);
+ text-shadow: 1px 1px 4px fade(@base-color,60);
+ a {
+ color: @white;
+ }
+ }
+ @media @large {
+ .font-rem(100);
+ }
+ }
+ h2 {
+ margin: 0;
+ .font-rem(18);
+ text-transform: uppercase;
+ @media @medium {
+ .font-rem(30);
+ color: @white;
+ a {
+ color: @white;
+ }
+ }
+ }
+}
+.entry-image {
+ position: relative;
+ width: auto;
+ height: 100%;
+ max-height: 440px;
+ &:after {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background-color: fade(@base-color,30);
+ }
+ img {
+ width: 100%;
+ }
+}
+.image-credit {
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ padding: 10px 15px;
+ color: @white;
+ background-color: fade(@base-color,50);
+ .font-rem(12);
+ text-align: right;
+ .border-radius(3px,0,0,3px);
+ z-index: 10;
+ a {
+ color: @white;
+ text-decoration: none;
+ }
+}
+
+// Single Post and Page
+// --------------------------------------------------
+.entry-meta {
+ .font-rem(12);
+ text-transform: uppercase;
+ color: lighten(@base-color,60);
+ a {
+ color: lighten(@base-color,60);
+ }
+ .vcard {
+ &:before {
+ content: " by ";
+ }
+ }
+ .tag {
+ display: inline-block;
+ margin: 4px;
+ padding: 2px 6px;
+ background-color: lighten(@base-color,60);
+ color: @white;
+ .rounded(3px);
+ color: @white;
+ span {
+ vertical-align: super;
+ .font-rem(10);
+ }
+ &:hover {
+ background-color: lighten(@base-color,50);
+ }
+ &:active {
+ .translate(0, 1px);
+ .box-shadow(0 0 1px fade(@base-color, 20));
+ }
+ }
+}
+#post,
+#page {
+ .entry-content {
+ margin: 40px 10px 20px 10px;
+ padding: 20px 30px;
+ background-color: @white;
+ box-shadow: 0 0 0 1px fade(@border-color,10), 0 6px 12px fade(@black,10);
+ .rounded(3px);
+
+ @media @large {
+ max-width: 800px;
+ padding: 50px 80px;
+ margin: 50px auto 30px auto;
+ > p:first-child {
+ .font-size(20);
+ }
+ }
+ }
+ #disqus_thread {
+ margin-left: 10px;
+ margin-right: 10px;
+ margin-bottom: 20px;
+ padding: 25px 40px;
+ background-color: @white;
+ box-shadow: 0 0 0 1px fade(@border-color,10), 0 6px 12px fade(@black,10);
+ .rounded(3px);
+ @media @large {
+ max-width: 800px;
+ padding: 50px 80px;
+ margin: 0 auto 30px auto;
+ }
+ }
+ .entry-meta {
+ margin: 50px 30px 30px;
+ text-align: center;
+ }
+}
+.entry-tags {
+ display: block;
+ margin-bottom: 6px;
+}
+// Post Pagination Module
+.pagination {
+ margin: 20px 10px;
+ text-align: center;
+ ul {
+ display: inline;
+ margin-left: 10px;
+ margin-right: 10px;
+ }
+ li {
+ padding-left: 4px;
+ padding-right: 4px;
+ }
+ .current-page {
+ font-weight: 700;
+ }
+}
+
+// Read More Module
+.read-more {
+ position: relative;
+ margin: 50px 10px 20px 10px;
+ padding: 50px 40px 25px;
+ background-color: @white;
+ box-shadow: 0 0 0 1px fade(@border-color,10), 0 6px 12px fade(@black,10);
+ .rounded(3px);
+ @media @large {
+ max-width: 800px;
+ padding: 50px 80px;
+ margin: 60px auto;
+ }
+ text-align: center;
+ .clearfix();
+}
+.read-more-header {
+ position: absolute;
+ top: -20px;
+ left: 0;
+ right: 0;
+ height: 35px;
+ a {
+ .btn();
+ }
+}
+.read-more-content {
+ .font-size(16);
+ // Dotted line underlines for links
+ p > a,
+ li > a {
+ border-bottom: 1px dotted lighten(@link-color, 50);
+ &:hover {
+ border-bottom-style: solid;
+ }
+ }
+ h3 {
+ margin: 0;
+ .font-rem(28);
+ a {
+ color: @primary;
+ }
+ @media @medium {
+ .font-rem(36);
+ }
+ }
+}
+
+// Post Index
+// --------------------------------------------------
+#post-index {
+ #main {
+ margin-top: 40px;
+ margin-left: 20px;
+ margin-right: 20px;
+ @media @large {
+ max-width: 800px;
+ margin-top: 50px;
+ margin-left: auto;
+ margin-right: auto;
+ }
+ }
+ article {
+ background-color: @white;
+ box-shadow: 0 0 0 1px fade(@base-color,10), 0 6px 12px fade(@base-color,10);
+ .rounded(3px);
+ margin-bottom: 20px;
+ padding: 25px 40px;
+ @media @large {
+ margin-bottom: 30px;
+ padding: 50px 80px;
+ }
+ }
+}
+
+// Footer
+// --------------------------------------------------
+.footer-wrapper {
+ .clearfix();
+ margin: 2em auto;
+ text-align: center;
+ color: lighten(@text-color,20);
+ a {
+ color: lighten(@text-color,20);
+ }
+}
+
+// Social Icons
+// --------------------------------------------------
+
+
+// Browser Upgrade
+// --------------------------------------------------
+.upgrade {
+ padding: 10px;
+ text-align: center;
+}
+
+// Google Search
+// --------------------------------------------------
+#goog-fixurl {
+ ul {
+ list-style: none;
+ margin-left: 0;
+ padding-left: 0;
+ li {
+ list-style-type: none;
+ }
+ }
+}
+#goog-wm-qt {
+ width: auto;
+ margin-right: 10px;
+ margin-bottom: 20px;
+ padding: 8px 20px;
+ display: inline-block;
+ .font-rem(14);
+ background-color: @white;
+ color: @primary;
+ border-width: 2px !important;
+ border-style: solid !important;
+ border-color: lighten(@primary,50);
+ .rounded(3px);
+}
+#goog-wm-sb {
+ .btn();
+}
diff --git a/assets/less/pygments.less b/assets/less/pygments.less
new file mode 100644
index 0000000..ae35037
--- /dev/null
+++ b/assets/less/pygments.less
@@ -0,0 +1,73 @@
+.highlight {
+ margin-bottom: 1.5em;
+ .font(12);
+ color: #d0d0d0;
+ border: 1px solid darken(@body-color, 5);
+ background-color: #272822;
+ .rounded(3px);
+ pre {
+ position: relative;
+ margin: 0;
+ padding: 1em;
+ }
+ .lineno { padding-right: 24px; color: #8f908a;}
+ .hll { background-color: #49483e }
+ .c { color: #75715e } /* Comment */
+ .err { color: #960050; background-color: #1e0010 } /* Error */
+ .k { color: #66d9ef } /* Keyword */
+ .l { color: #ae81ff } /* Literal */
+ .n { color: #f8f8f2 } /* Name */
+ .o { color: #f92672 } /* Operator */
+ .p { color: #f8f8f2 } /* Punctuation */
+ .cm { color: #75715e } /* Comment.Multiline */
+ .cp { color: #75715e } /* Comment.Preproc */
+ .c1 { color: #75715e } /* Comment.Single */
+ .cs { color: #75715e } /* Comment.Special */
+ .ge { font-style: italic } /* Generic.Emph */
+ .gs { font-weight: bold } /* Generic.Strong */
+ .kc { color: #66d9ef } /* Keyword.Constant */
+ .kd { color: #66d9ef } /* Keyword.Declaration */
+ .kn { color: #f92672 } /* Keyword.Namespace */
+ .kp { color: #66d9ef } /* Keyword.Pseudo */
+ .kr { color: #66d9ef } /* Keyword.Reserved */
+ .kt { color: #66d9ef } /* Keyword.Type */
+ .ld { color: #e6db74 } /* Literal.Date */
+ .m { color: #ae81ff } /* Literal.Number */
+ .s { color: #e6db74 } /* Literal.String */
+ .na { color: #a6e22e } /* Name.Attribute */
+ .nb { color: #f8f8f2 } /* Name.Builtin */
+ .nc { color: #a6e22e } /* Name.Class */
+ .no { color: #66d9ef } /* Name.Constant */
+ .nd { color: #a6e22e } /* Name.Decorator */
+ .ni { color: #f8f8f2 } /* Name.Entity */
+ .ne { color: #a6e22e } /* Name.Exception */
+ .nf { color: #a6e22e } /* Name.Function */
+ .nl { color: #f8f8f2 } /* Name.Label */
+ .nn { color: #f8f8f2 } /* Name.Namespace */
+ .nx { color: #a6e22e } /* Name.Other */
+ .py { color: #f8f8f2 } /* Name.Property */
+ .nt { color: #f92672 } /* Name.Tag */
+ .nv { color: #f8f8f2 } /* Name.Variable */
+ .ow { color: #f92672 } /* Operator.Word */
+ .w { color: #f8f8f2 } /* Text.Whitespace */
+ .mf { color: #ae81ff } /* Literal.Number.Float */
+ .mh { color: #ae81ff } /* Literal.Number.Hex */
+ .mi { color: #ae81ff } /* Literal.Number.Integer */
+ .mo { color: #ae81ff } /* Literal.Number.Oct */
+ .sb { color: #e6db74 } /* Literal.String.Backtick */
+ .sc { color: #e6db74 } /* Literal.String.Char */
+ .sd { color: #e6db74 } /* Literal.String.Doc */
+ .s2 { color: #e6db74 } /* Literal.String.Double */
+ .se { color: #ae81ff } /* Literal.String.Escape */
+ .sh { color: #e6db74 } /* Literal.String.Heredoc */
+ .si { color: #e6db74 } /* Literal.String.Interpol */
+ .sx { color: #e6db74 } /* Literal.String.Other */
+ .sr { color: #e6db74 } /* Literal.String.Regex */
+ .s1 { color: #e6db74 } /* Literal.String.Single */
+ .ss { color: #e6db74 } /* Literal.String.Symbol */
+ .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */
+ .vc { color: #f8f8f2 } /* Name.Variable.Class */
+ .vg { color: #f8f8f2 } /* Name.Variable.Global */
+ .vi { color: #f8f8f2 } /* Name.Variable.Instance */
+ .il { color: #ae81ff } /* Literal.Number.Integer.Long */
+}
\ No newline at end of file
diff --git a/assets/less/reset.less b/assets/less/reset.less
new file mode 100644
index 0000000..1bc854e
--- /dev/null
+++ b/assets/less/reset.less
@@ -0,0 +1,207 @@
+//
+// Reset CSS
+// Adapted from http://github.com/necolas/normalize.css
+// --------------------------------------------------
+
+*, *:after, *:before {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+// Display in IE6-9 and FF3
+// -------------------------
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+nav,
+section {
+ display: block;
+}
+
+// Display block in IE6-9 and FF3
+// -------------------------
+audio,
+canvas,
+video {
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+}
+
+// Prevents modern browsers from displaying 'audio' without controls
+// -------------------------
+audio:not([controls]) {
+ display: none;
+}
+
+// Base settings
+// -------------------------
+html {
+ font-size: 100%;
+ -webkit-text-size-adjust: 100%;
+ -ms-text-size-adjust: 100%;
+}
+// Focus states
+a:focus {
+ .tab-focus();
+}
+// Hover & Active
+a:hover,
+a:active {
+ outline: 0;
+}
+
+// Prevents sub and sup affecting line-height in all browsers
+// -------------------------
+sub,
+sup {
+ position: relative;
+ font-size: 75%;
+ line-height: 0;
+ vertical-align: baseline;
+}
+sup {
+ top: -0.5em;
+}
+sub {
+ bottom: -0.25em;
+}
+
+// Blockquote
+// -------------------------
+blockquote {
+ margin: 0;
+}
+
+// Img border in a's and image quality
+// -------------------------
+img {
+ /* Responsive images (ensure images don't scale beyond their parents) */
+ max-width: 100%; /* Part 1: Set a maxium relative to the parent */
+ width: auto\9; /* IE7-8 need help adjusting responsive images */
+ height: auto; /* Part 2: Scale the height according to the width, otherwise you get stretching */
+
+ vertical-align: middle;
+ border: 0;
+ -ms-interpolation-mode: bicubic;
+}
+
+// Prevent max-width from affecting Google Maps
+#map_canvas img,
+.google-maps img {
+ max-width: none;
+}
+
+// Forms
+// -------------------------
+// Font size in all browsers, margin changes, misc consistency
+button,
+input,
+select,
+textarea {
+ margin: 0;
+ font-size: 100%;
+ vertical-align: middle;
+}
+button,
+input {
+ *overflow: visible; // Inner spacing ie IE6/7
+ line-height: normal; // FF3/4 have !important on line-height in UA stylesheet
+}
+button::-moz-focus-inner,
+input::-moz-focus-inner { // Inner padding and border oddities in FF3/4
+ padding: 0;
+ border: 0;
+}
+button,
+html input[type="button"], // Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls.
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button; // Corrects inability to style clickable `input` types in iOS.
+ cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others.
+}
+label,
+select,
+button,
+input[type="button"],
+input[type="reset"],
+input[type="submit"],
+input[type="radio"],
+input[type="checkbox"] {
+ cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others.
+}
+input[type="search"] { // Appearance in Safari/Chrome
+ .box-sizing(content-box);
+ -webkit-appearance: textfield;
+}
+input[type="search"]::-webkit-search-decoration,
+input[type="search"]::-webkit-search-cancel-button {
+ -webkit-appearance: none; // Inner-padding issues in Chrome OSX, Safari 5
+}
+textarea {
+ overflow: auto; // Remove vertical scrollbar in IE6-9
+ vertical-align: top; // Readability and alignment cross-browser
+}
+
+// Printing
+// -------------------------
+// Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css
+@media print {
+
+ * {
+ text-shadow: none !important;
+ color: #000 !important; // Black prints faster: h5bp.com/s
+ background: transparent !important;
+ box-shadow: none !important;
+ }
+ a,
+ a:visited {
+ text-decoration: underline;
+ }
+ a[href]:after {
+ content: " (" attr(href) ")";
+ }
+ abbr[title]:after {
+ content: " (" attr(title) ")";
+ }
+ // Don't show links for images, or javascript/internal links
+ .ir a:after,
+ a[href^="javascript:"]:after,
+ a[href^="#"]:after {
+ content: "";
+ }
+ pre,
+ blockquote {
+ border: 1px solid #999;
+ page-break-inside: avoid;
+ }
+ thead {
+ display: table-header-group; // h5bp.com/t
+ }
+ tr,
+ img {
+ page-break-inside: avoid;
+ }
+ img {
+ max-width: 100% !important;
+ }
+ @page {
+ margin: 0.5cm;
+ }
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3;
+ }
+ h2,
+ h3 {
+ page-break-after: avoid;
+ }
+}
\ No newline at end of file
diff --git a/assets/less/site.less b/assets/less/site.less
new file mode 100644
index 0000000..57dcf93
--- /dev/null
+++ b/assets/less/site.less
@@ -0,0 +1,50 @@
+// Selection
+// --------------------------------------------------
+::-moz-selection {
+ background-color: lighten(@base-color, 65%);
+ color: @base-color;
+ text-shadow: none;
+}
+::selection {
+ background-color: lighten(@base-color, 65%);
+ color: @base-color;
+ text-shadow: none;
+}
+
+// Global Classes
+// --------------------------------------------------
+.wrap {
+ margin: 0 auto;
+}
+.all-caps {
+ text-transform: uppercase;
+}
+.pull-left {
+ float: left;
+}
+.pull-right {
+ float:right;
+}
+.unstyled-list {
+ list-style: none;
+ margin-left: 0;
+ padding-left: 0;
+ li {
+ list-style-type: none;
+ }
+}
+.inline-list {
+ list-style: none;
+ margin-left: 0;
+ padding-left: 0;
+ li {
+ list-style-type: none;
+ display: inline;
+ }
+}
+
+// Global Transition
+// ---------------------------------------------------
+b, i, strong, em, blockquote, p, q, span, figure, img, h1, h2, header, input, a {
+ .transition(all .2s ease);
+}
\ No newline at end of file
diff --git a/assets/less/typography.less b/assets/less/typography.less
new file mode 100644
index 0000000..970321e
--- /dev/null
+++ b/assets/less/typography.less
@@ -0,0 +1,132 @@
+// Body
+// --------------------------------------------------
+body {
+ font-family: @base-font;
+ color: @text-color;
+}
+
+// Headings
+// --------------------------------------------------
+h1, h2, h3, h4, h5, h6 {
+ font-family: @heading-font;
+}
+h1 {
+ .font-rem(32);
+}
+
+// Links
+// --------------------------------------------------
+a {
+ text-decoration: none;
+ color: @link-color;
+ &:visited {
+ color: lighten(@link-color, 20);
+ }
+ &:hover {
+ color: darken(@link-color, 20);
+ }
+ &:focus {
+ outline: thin dotted;
+ color: darken(@link-color, 20);
+ }
+ &:hover,
+ &:active {
+ outline: 0;
+ }
+}
+
+.link-arrow {
+ font-weight: 100;
+ text-decoration: underline;
+ font-style: normal;
+}
+
+// Figures
+// --------------------------------------------------
+figcaption {
+ padding-top: 10px;
+ .font(14);
+ line-height: 1.3;
+ color: lighten(@text-color, 10);
+}
+
+// Feature Image Caption
+// --------------------------------------------------
+.image-credit {
+ margin: 0 auto;
+ max-width: 440px;
+ padding-top: 5px;
+ padding-right: 20px;
+ padding-left: 20px;
+ text-align: right;
+ .font(14);
+ line-height: 1.3;
+ color: lighten(@text-color, 30);
+ .clearfix();
+ @media @medium {
+ max-width: 760px;
+ padding-right: 60px;
+ padding-left: 60px;
+ }
+ @media @large {
+ max-width: 960px;
+ }
+ a {
+ color: lighten(@text-color, 30);
+ }
+}
+
+// Note text
+// --------------------------------------------------
+.notice {
+ margin-top: 1.5em;
+ padding: .5em 1em;
+ text-indent: 0;
+ .font-rem(14);
+ background-color: @body-color;
+ border: 1px solid darken(@body-color,20);
+ .rounded(3px);
+}
+
+// Blockquotes
+// --------------------------------------------------
+blockquote {
+ margin-left: -28px;
+ padding-left: 20px;
+ border-left: 8px solid @border-color;
+ font-family: @alt-font;
+ font-style: italic;
+ .font-rem(24);
+}
+
+// Footnotes
+// --------------------------------------------------
+.entry-content .footnotes {
+ ol, li, p {
+ .font-size(14);
+ }
+}
+
+// Code
+// --------------------------------------------------
+tt, code, kbd, samp, pre {
+ font-family: @code-font;
+}
+p,
+li {
+ code {
+ .font-rem(12);
+ line-height: 1.5;
+ white-space: nowrap;
+ margin: 0 2px;
+ padding: 0 5px;
+ border: 1px solid lighten(@black, 90);
+ background-color: lighten(@black, 95);
+ .rounded(3px);
+ }
+}
+pre {
+ .font-rem(12);
+ line-height: 1.5;
+ overflow-x: auto;
+}
diff --git a/assets/less/variables.less b/assets/less/variables.less
new file mode 100644
index 0000000..33570fe
--- /dev/null
+++ b/assets/less/variables.less
@@ -0,0 +1,35 @@
+// Typography
+// --------------------------------------------------
+
+@base-font: 'Lato', Calibri, Arial, sans-serif;
+@heading-font: @base-font;
+@caption-font: @base-font;
+@code-font: monospace;
+@alt-font: serif;
+
+@doc-font-size: 16;
+@doc-line-height: 26;
+
+
+// set-up the body font-size / line-height
+body {
+ margin-top: 0px + @doc-line-height;
+ font-size: 0px + @doc-font-size;
+}
+
+// Colors
+// --------------------------------------------------
+@base-color : #222;
+@body-color : #e8e8e8;
+@text-color : #222;
+@comp-color : spin(@base-color, 180);
+@border-color : lighten(@base-color,60);
+@white : #fff;
+@black : #000;
+@link-color : #222;
+
+@primary : @base-color;
+@success : #5cb85c;
+@warning : #dd8338;
+@danger : #C64537;
+@info : #308cbc;
diff --git a/favicon.ico b/favicon.ico
new file mode 100644
index 0000000..ec3c4f0
Binary files /dev/null and b/favicon.ico differ
diff --git a/favicon.png b/favicon.png
new file mode 100644
index 0000000..5460ff1
Binary files /dev/null and b/favicon.png differ
diff --git a/feed.xml b/feed.xml
new file mode 100644
index 0000000..371bbb3
--- /dev/null
+++ b/feed.xml
@@ -0,0 +1,36 @@
+---
+layout: none
+---
+
+
+{{ site.title }}
+Jekyll
+
+
+{{ site.time | date_to_xmlschema }}
+{{ site.url }}/
+
+ {{ site.owner.name }}
+ {{ site.url }}/
+ {{ site.owner.email }}
+
+{% for post in site.posts limit:20 %}
+
+
+
+ {% if post.link %}{{ post.link }}{% else %}{{ site.url }}{{ post.url }}{% endif %}
+ {{ site.url }}{{ post.id }}
+ {% if post.modified %}{{ post.modified | to_xmlschema }}T00:00:00-00:00
+ {{ post.date | date_to_xmlschema }}
+ {% else %}{{ post.date | date_to_xmlschema }}
+ {{ post.date | date_to_xmlschema }} {% endif %}
+
+ {{ site.owner.name }}
+ {{ site.url }}
+ {{ site.owner.email }}
+
+ {{ post.content | xml_escape }}
+ <p><a href="{{ site.url }}{{ post.url }}">{{ post.title }}</a> was originally published by {{ site.owner.name }} at <a href="{{ site.url }}">{{ site.title }}</a> on {{ post.date | date: "%B %d, %Y" }}.</p>
+
+{% endfor %}
+
diff --git a/images/3953273590_704e3899d5_m.jpg b/images/3953273590_704e3899d5_m.jpg
new file mode 100644
index 0000000..aeb6c57
Binary files /dev/null and b/images/3953273590_704e3899d5_m.jpg differ
diff --git a/images/abstract-1.jpg b/images/abstract-1.jpg
new file mode 100644
index 0000000..d0e882d
Binary files /dev/null and b/images/abstract-1.jpg differ
diff --git a/images/abstract-10.jpg b/images/abstract-10.jpg
new file mode 100644
index 0000000..ecc9005
Binary files /dev/null and b/images/abstract-10.jpg differ
diff --git a/images/abstract-11.jpg b/images/abstract-11.jpg
new file mode 100644
index 0000000..10010b5
Binary files /dev/null and b/images/abstract-11.jpg differ
diff --git a/images/abstract-12.jpg b/images/abstract-12.jpg
new file mode 100644
index 0000000..cf074e0
Binary files /dev/null and b/images/abstract-12.jpg differ
diff --git a/images/abstract-2.jpg b/images/abstract-2.jpg
new file mode 100644
index 0000000..bbb7580
Binary files /dev/null and b/images/abstract-2.jpg differ
diff --git a/images/abstract-3.jpg b/images/abstract-3.jpg
new file mode 100644
index 0000000..96367b9
Binary files /dev/null and b/images/abstract-3.jpg differ
diff --git a/images/abstract-4.jpg b/images/abstract-4.jpg
new file mode 100644
index 0000000..65090c4
Binary files /dev/null and b/images/abstract-4.jpg differ
diff --git a/images/abstract-5.jpg b/images/abstract-5.jpg
new file mode 100644
index 0000000..72c8132
Binary files /dev/null and b/images/abstract-5.jpg differ
diff --git a/images/abstract-6.jpg b/images/abstract-6.jpg
new file mode 100644
index 0000000..0b7611a
Binary files /dev/null and b/images/abstract-6.jpg differ
diff --git a/images/abstract-7.jpg b/images/abstract-7.jpg
new file mode 100644
index 0000000..a14e15e
Binary files /dev/null and b/images/abstract-7.jpg differ
diff --git a/images/abstract-8.jpg b/images/abstract-8.jpg
new file mode 100644
index 0000000..59f5cfa
Binary files /dev/null and b/images/abstract-8.jpg differ
diff --git a/images/apple-touch-icon-114x114-precomposed.png b/images/apple-touch-icon-114x114-precomposed.png
new file mode 100644
index 0000000..2f295f0
Binary files /dev/null and b/images/apple-touch-icon-114x114-precomposed.png differ
diff --git a/images/apple-touch-icon-144x144-precomposed.png b/images/apple-touch-icon-144x144-precomposed.png
new file mode 100644
index 0000000..87ce097
Binary files /dev/null and b/images/apple-touch-icon-144x144-precomposed.png differ
diff --git a/images/apple-touch-icon-72x72-precomposed.png b/images/apple-touch-icon-72x72-precomposed.png
new file mode 100644
index 0000000..7979a5a
Binary files /dev/null and b/images/apple-touch-icon-72x72-precomposed.png differ
diff --git a/images/apple-touch-icon-precomposed.png b/images/apple-touch-icon-precomposed.png
new file mode 100644
index 0000000..0de21e9
Binary files /dev/null and b/images/apple-touch-icon-precomposed.png differ
diff --git a/images/avatar.jpg b/images/avatar.jpg
new file mode 100644
index 0000000..86b5e82
Binary files /dev/null and b/images/avatar.jpg differ
diff --git a/images/hpster-rdx-theme-preview.jpg b/images/hpster-rdx-theme-preview.jpg
new file mode 100644
index 0000000..203742c
Binary files /dev/null and b/images/hpster-rdx-theme-preview.jpg differ
diff --git a/images/twitter-card-summary-large-image.jpg b/images/twitter-card-summary-large-image.jpg
new file mode 100644
index 0000000..980aebc
Binary files /dev/null and b/images/twitter-card-summary-large-image.jpg differ
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..ec27da0
--- /dev/null
+++ b/index.html
@@ -0,0 +1,62 @@
+---
+layout: post-index
+title: Latest Posts
+description: "Describe this nonsense."
+tags: [Jekyll, theme, themes, responsive, blog, modern]
+image:
+ feature: abstract-1.jpg
+ credit: dargadgetz
+ creditlink: http://www.dargadgetz.com/ios-7-abstract-wallpaper-pack-for-iphone-5-and-ipod-touch-retina/
+---
+
+{% for post in paginator.posts %}
+
+
+
+ {{ post.content }}
+
+
+{% endfor %}
+
+
\ No newline at end of file
diff --git a/sitemap.xml b/sitemap.xml
new file mode 100644
index 0000000..47e9aa5
--- /dev/null
+++ b/sitemap.xml
@@ -0,0 +1,15 @@
+---
+layout: nil
+---
+
+
+
+ {{ site.url }}
+
+
+ {% for post in site.posts %}
+
+ {{ site.url }}{{ post.url }}
+
+ {% endfor %}
+
\ No newline at end of file
diff --git a/tags.html b/tags.html
new file mode 100644
index 0000000..98d056c
--- /dev/null
+++ b/tags.html
@@ -0,0 +1,38 @@
+---
+layout: post-index
+permalink: /tags/index.html
+title: Tag Archive
+description: "An archive of posts sorted by tag."
+---
+
+
+
+{% for tag in site.tags %}
+
+ {{ tag[0] }}
+
+ {% assign pages_list = tag[1] %}
+ {% for post in pages_list %}
+ {% if post.title != null %}
+ {% if group == null or group == post.group %}
+ {{ post.title }}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% assign pages_list = nil %}
+ {% assign group = nil %}
+
+
+{% endfor %}
\ No newline at end of file
diff --git a/theme-setup.md b/theme-setup.md
new file mode 100644
index 0000000..dbf7ea5
--- /dev/null
+++ b/theme-setup.md
@@ -0,0 +1,266 @@
+---
+layout: page
+permalink: /theme-setup/index.html
+title: Theme Setup
+description: "Instructions on how to install and customize the Jekyll theme HPSTR RDX."
+tags: [Jekyll, theme, install, setup]
+image:
+ feature: abstract-11.jpg
+ credit: dargadgetz
+ creditlink: http://www.dargadgetz.com/ios-7-abstract-wallpaper-pack-for-iphone-5-and-ipod-touch-retina/
+---
+
+General notes and suggestions for customizing **HPSTR RDX**.
+
+## Basic Setup for a new Jekyll site
+
+1. [Install Jekyll](http://jekyllrb.com) and read through the documentation if you haven't already.
+2. Fork the [HPSTR RDX repo](https://github.com/mmistakes/hpstr-rdx-theme/fork)
+3. Clone the repo you just forked to your computer.
+4. Edit `_config.yml` to personalize your site.
+5. Check out the sample posts in `_posts` to see examples for pulling in large feature images, tags, and other YAML data.
+6. Read the documentation below for further customization pointers and documentation.
+
+
+
+**Pro-tip:** Delete the `gh-pages` branch after cloning and start fresh by branching off `master`. There is a bunch of garbage in `gh-pages` used for the theme's demo that I'm guessing you don't want on your site.
+{:.notice}
+
+---
+
+## Setup for an Existing Jekyll site
+
+1. Clone the following folders: `_includes`, `_layouts`, `assets`, and `images`.
+2. Clone the following files and personalize content as need: `about.md`, `archive.html`, `index.html`, `tags.html`, and `feed.xml`.
+3. Set the following variables in your `config.yml` file:
+
+{% highlight yaml %}
+title: Site Title
+description: Describe your website here.
+logo: site-logo.png
+disqus_shortname: shortname
+url: http://your-website.com
+
+# Owner/author information
+owner:
+ name: Your Name
+ avatar: avatar.jpg
+ bio: "Your bio goes here. It shouldn't be super long but a good two sentences or two should suffice."
+ email: you@email.com
+ # Social networking links used in footer. Update and remove as you like.
+ twitter:
+ facebook:
+ github:
+ stackexchange:
+ linkedin:
+ instagram:
+ flickr:
+ tumblr:
+ # For Google Authorship https://plus.google.com/authorship
+ google_plus:
+
+# Analytics and webmaster tools stuff goes here
+google_analytics:
+google_verify:
+# https://ssl.bing.com/webmaster/configure/verify/ownership Option 2 content= goes here
+bing_verify:
+
+# Links to include in top navigation
+# For external links add external: true
+links:
+ - title: Theme Setup
+ url: /theme-setup
+ - title: External Link
+ url: http://mademistakes.com
+ external: true
+
+# http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
+timezone: America/New_York
+future: true
+pygments: true
+markdown: kramdown
+
+# Amount of posts to show on home page
+paginate: 5
+{% endhighlight %}
+
+---
+
+## Folder Structure
+
+{% highlight bash %}
+hpstr-rdx-theme/
+├── _includes
+| ├── browser-upgrade.html # prompt to upgrade browser on < IE8
+| ├── footer.html # site footer
+| ├── head.html # site head
+| ├── navigation.html # site navigation
+| └── scripts.html # jQuery, plugins, GA, etc
+├── _layouts
+| ├── page.html # page layout
+| ├── page.html # post-index layout used on home page
+| └── post.html # post layout
+├── _posts
+├── assets
+| ├── css # preprocessed less styles
+| ├── js
+| | ├── main.js # concatenated vendor scripts
+| | └── vendor # 3rd party scripts
+| └── less
+├── images # images for posts and pages
+├── _config.yml # Jekyll options
+├── about.md # about page
+├── archive.html # all posts
+├── index.html # home page
+└── tags.html # all posts grouped by tag
+{% endhighlight %}
+
+---
+
+## Customization
+
+### _config.yml
+
+Most of the variables found here are used in the .html files found in `_includes` if you need to add or remove anything. A good place to start would be to add the `title`, `description`, and `url` for your site. Links are absolute and prefixed with `{{ "{{ site.url " }}}}` in the various `_includes` and `_layouts`, so remember to comment out `url`[^1] when working locally to avoid broken links.
+
+#### Disqus Comments
+
+Create a [Disqus](http://disqus.com) account and change `disqus_shortname` in `_config.yml` to the Disqus *shortname* you just setup. To enable commenting on a post, add the following to its front matter:
+
+{% highlight yaml %}
+comments: true
+{% endhighlight %}
+
+#### Owner/Author Information
+
+Change your name, and avatar photo (200x200 pixels or larger), email, and social networking URLs. If you want to link to an external image on Gravatar or something similar you'll need to edit the path in `head.html` since it assumes it is located in `/images`.
+
+Including a link to your Google+ profile has the added benefit of displaying [Google Authorship](https://plus.google.com/authorship) in Google search results if you've went ahead and applied for it.
+
+#### Google Analytics and Webmaster Tools
+
+Your Google Analytics ID goes here along with meta tags for [Google Webmaster Tools](http://support.google.com/webmasters/bin/answer.py?hl=en&answer=35179) and [Bing Webmaster Tools](https://ssl.bing.com/webmaster/configure/verify/ownershi) site verification.
+
+#### Navigation Menu Links
+
+Edit page/post titles and URLs to include in the site's navigation. For external links add `external: true`.
+
+{% highlight yaml %}
+# sample top navigation links
+links:
+ - title: Other Page
+ url: /other-page/
+ - title: External Link
+ url: http://mademistakes.com
+ external: true
+{% endhighlight %}
+
+#### Other Stuff
+
+The rest is just your average Jekyll config settings. Nothing too crazy here...
+
+### _includes
+
+For the most part you can leave these as is since the author/owner details are pulled from `_config.yml`. That said you'll probably want to customize the copyright stuff in `footer.html` to your liking.
+
+### Adding Posts and Pages
+
+There are two main content layouts: `post.html` (for posts) and `page.html` (for pages). Both have support for large **feature images** that span the full-width of the screen, and both are meant for text heavy blog posts (or articles).
+
+#### Feature Images
+
+A good rule of thumb is to keep feature images nice and wide so you don't push the body text too far down. An image cropped around around 1024 x 256 pixels will keep file size down with an acceptable resolution for most devices. If you want to serve these images responsively I'd suggest looking at the [Jekyll Picture Tag](https://github.com/scottjehl/picturefill)[^2] plugin.
+
+The two layouts make the assumption that the feature images live in the *images* folder. To add a feature image to a post or page just include the filename in the front matter like so.
+
+{% highlight yaml %}
+image:
+ feature: feature-image-filename.jpg
+ thumb: thumbnail-image.jpg #keep it square 200x200 px is good
+{% endhighlight %}
+
+If you want to apply attribution to a feature image use the following YAML front matter on posts or pages. Image credits appear directly below the feature image with a link back to the original source.
+
+{% highlight yaml %}
+image:
+ feature: feature-image-filename.jpg
+ credit: Michael Rose #name of the person or site you want to credit
+ creditlink: http://mademistakes.com #url to their site or licensing
+{% endhighlight %}
+
+#### Post/Page Thumbnails for OG and Twitter Cards
+
+Post and page thumbnails work the same way. These are used by [Open Graph](https://developers.facebook.com/docs/opengraph/) and [Twitter Cards](https://dev.twitter.com/docs/cards) meta tags found in `head.html`. If you don't assign a thumbnail the image you assigned to `site.owner.avatar` in `_config.yml` will be used.
+
+Here's an example of what a tweet to your site could look like if you activate Twitter Cards and include all the metas in your post's YAML.
+
+![Twitter Card summary large image screenshot]({{ site.url }}/images/twitter-card-summary-large-image.jpg)
+
+#### Videos
+
+Video embeds are responsive and scale with the width of the main content block with the help of [FitVids](http://fitvidsjs.com/).
+
+Not sure if this only effects Kramdown or if it's an issue with Markdown in general. But adding YouTube video embeds causes errors when building your Jekyll site. To fix add a space between the `