").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cc=a.document.documentElement;function dc(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dc(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cc;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cc})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dc(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=La(k.pixelPosition,function(a,c){return c?(c=Ja(a,b),Ha.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ec=a.jQuery,fc=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fc),b&&a.jQuery===m&&(a.jQuery=ec),m},typeof b===K&&(a.jQuery=a.$=m),m});
+/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0
+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML=" ",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML=" ";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML=" ",y.option=!!ce.lastChild;var ge={thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 $window.height())
+ $x.css('height', 'auto');
+ else
+ $x.css('height', '100vh');
- var $x = $('.fullscreen');
+ }, 250);
- clearTimeout(flexboxFixTimeoutId);
+ }).triggerHandler('resize.flexbox-fix');
- flexboxFixTimeoutId = setTimeout(function() {
+ })();
- if ($x.prop('scrollHeight') > $window.height())
- $x.css('height', 'auto');
- else
- $x.css('height', '100vh');
+ // Object fit workaround.
+ if (!browser.canUse('object-fit'))
+ (function() {
- }, 250);
-
- }).triggerHandler('resize.flexbox-fix');
-
- })();
-
- // Object fit workaround.
- if (!skel.canUse('object-fit'))
- (function() {
-
- $('.banner .image, .spotlight .image').each(function() {
-
- var $this = $(this),
- $img = $this.children('img'),
- positionClass = $this.parent().attr('class').match(/image-position-([a-z]+)/);
-
- // Set image.
- $this
- .css('background-image', 'url("' + $img.attr('src') + '")')
- .css('background-repeat', 'no-repeat')
- .css('background-size', 'cover');
-
- // Set position.
- switch (positionClass.length > 1 ? positionClass[1] : '') {
-
- case 'left':
- $this.css('background-position', 'left');
- break;
-
- case 'right':
- $this.css('background-position', 'right');
- break;
-
- default:
- case 'center':
- $this.css('background-position', 'center');
- break;
-
- }
-
- // Hide original.
- $img.css('opacity', '0');
-
- });
-
- })();
-
- // Smooth scroll.
- $('.smooth-scroll').scrolly();
- $('.smooth-scroll-middle').scrolly({ anchor: 'middle' });
-
- // Wrapper.
- $wrapper.children()
- .scrollex({
- top: '30vh',
- bottom: '30vh',
- initialize: function() {
- $(this).addClass('is-inactive');
- },
- terminate: function() {
- $(this).removeClass('is-inactive');
- },
- enter: function() {
- $(this).removeClass('is-inactive');
- },
- leave: function() {
-
- var $this = $(this);
-
- if ($this.hasClass('onscroll-bidirectional'))
- $this.addClass('is-inactive');
-
- }
- });
-
- // Items.
- $('.items')
- .scrollex({
- top: '30vh',
- bottom: '30vh',
- delay: 50,
- initialize: function() {
- $(this).addClass('is-inactive');
- },
- terminate: function() {
- $(this).removeClass('is-inactive');
- },
- enter: function() {
- $(this).removeClass('is-inactive');
- },
- leave: function() {
-
- var $this = $(this);
-
- if ($this.hasClass('onscroll-bidirectional'))
- $this.addClass('is-inactive');
-
- }
- })
- .children()
- .wrapInner('
');
-
- // Gallery.
- $('.gallery')
- .wrapInner('
')
- .prepend(skel.vars.mobile ? '' : '
')
- .scrollex({
- top: '30vh',
- bottom: '30vh',
- delay: 50,
- initialize: function() {
- $(this).addClass('is-inactive');
- },
- terminate: function() {
- $(this).removeClass('is-inactive');
- },
- enter: function() {
- $(this).removeClass('is-inactive');
- },
- leave: function() {
-
- var $this = $(this);
-
- if ($this.hasClass('onscroll-bidirectional'))
- $this.addClass('is-inactive');
-
- }
- })
- .children('.inner')
- //.css('overflow', 'hidden')
- .css('overflow-y', skel.vars.mobile ? 'visible' : 'hidden')
- .css('overflow-x', skel.vars.mobile ? 'scroll' : 'hidden')
- .scrollLeft(0);
-
- // Style #1.
- // ...
-
- // Style #2.
- $('.gallery')
- .on('wheel', '.inner', function(event) {
-
- var $this = $(this),
- delta = (event.originalEvent.deltaX * 10);
-
- // Cap delta.
- if (delta > 0)
- delta = Math.min(25, delta);
- else if (delta < 0)
- delta = Math.max(-25, delta);
-
- // Scroll.
- $this.scrollLeft( $this.scrollLeft() + delta );
-
- })
- .on('mouseenter', '.forward, .backward', function(event) {
+ $('.banner .image, .spotlight .image').each(function() {
var $this = $(this),
- $inner = $this.siblings('.inner'),
- direction = ($this.hasClass('forward') ? 1 : -1);
+ $img = $this.children('img'),
+ positionClass = $this.parent().attr('class').match(/image-position-([a-z]+)/);
- // Clear move interval.
- clearInterval(this._gallery_moveIntervalId);
+ // Set image.
+ $this
+ .css('background-image', 'url("' + $img.attr('src') + '")')
+ .css('background-repeat', 'no-repeat')
+ .css('background-size', 'cover');
- // Start interval.
- this._gallery_moveIntervalId = setInterval(function() {
- $inner.scrollLeft( $inner.scrollLeft() + (5 * direction) );
- }, 10);
+ // Set position.
+ switch (positionClass.length > 1 ? positionClass[1] : '') {
- })
- .on('mouseleave', '.forward, .backward', function(event) {
+ case 'left':
+ $this.css('background-position', 'left');
+ break;
- // Clear move interval.
- clearInterval(this._gallery_moveIntervalId);
+ case 'right':
+ $this.css('background-position', 'right');
+ break;
+
+ default:
+ case 'center':
+ $this.css('background-position', 'center');
+ break;
+
+ }
+
+ // Hide original.
+ $img.css('opacity', '0');
});
- // Lightbox.
- $('.gallery.lightbox')
- .on('click', 'a', function(event) {
+ })();
- var $a = $(this),
- $gallery = $a.parents('.gallery'),
- $modal = $gallery.children('.modal'),
- $modalImg = $modal.find('img'),
- href = $a.attr('href');
+ // Smooth scroll.
+ $('.smooth-scroll').scrolly();
+ $('.smooth-scroll-middle').scrolly({ anchor: 'middle' });
- // Not an image? Bail.
- if (!href.match(/\.(jpg|gif|png|mp4)$/))
- return;
+ // Wrapper.
+ $wrapper.children()
+ .scrollex({
+ top: '30vh',
+ bottom: '30vh',
+ initialize: function() {
+ $(this).addClass('is-inactive');
+ },
+ terminate: function() {
+ $(this).removeClass('is-inactive');
+ },
+ enter: function() {
+ $(this).removeClass('is-inactive');
+ },
+ leave: function() {
- // Prevent default.
- event.preventDefault();
- event.stopPropagation();
+ var $this = $(this);
- // Locked? Bail.
- if ($modal[0]._locked)
- return;
+ if ($this.hasClass('onscroll-bidirectional'))
+ $this.addClass('is-inactive');
- // Lock.
- $modal[0]._locked = true;
+ }
+ });
- // Set src.
- $modalImg.attr('src', href);
+ // Items.
+ $('.items')
+ .scrollex({
+ top: '30vh',
+ bottom: '30vh',
+ delay: 50,
+ initialize: function() {
+ $(this).addClass('is-inactive');
+ },
+ terminate: function() {
+ $(this).removeClass('is-inactive');
+ },
+ enter: function() {
+ $(this).removeClass('is-inactive');
+ },
+ leave: function() {
- // Set visible.
- $modal.addClass('visible');
+ var $this = $(this);
- // Focus.
- $modal.focus();
+ if ($this.hasClass('onscroll-bidirectional'))
+ $this.addClass('is-inactive');
+
+ }
+ })
+ .children()
+ .wrapInner('
');
+
+ // Gallery.
+ $('.gallery')
+ .wrapInner('
')
+ .prepend(browser.mobile ? '' : '
')
+ .scrollex({
+ top: '30vh',
+ bottom: '30vh',
+ delay: 50,
+ initialize: function() {
+ $(this).addClass('is-inactive');
+ },
+ terminate: function() {
+ $(this).removeClass('is-inactive');
+ },
+ enter: function() {
+ $(this).removeClass('is-inactive');
+ },
+ leave: function() {
+
+ var $this = $(this);
+
+ if ($this.hasClass('onscroll-bidirectional'))
+ $this.addClass('is-inactive');
+
+ }
+ })
+ .children('.inner')
+ //.css('overflow', 'hidden')
+ .css('overflow-y', browser.mobile ? 'visible' : 'hidden')
+ .css('overflow-x', browser.mobile ? 'scroll' : 'hidden')
+ .scrollLeft(0);
+
+ // Style #1.
+ // ...
+
+ // Style #2.
+ $('.gallery')
+ .on('wheel', '.inner', function(event) {
+
+ var $this = $(this),
+ delta = (event.originalEvent.deltaX * 10);
+
+ // Cap delta.
+ if (delta > 0)
+ delta = Math.min(25, delta);
+ else if (delta < 0)
+ delta = Math.max(-25, delta);
+
+ // Scroll.
+ $this.scrollLeft( $this.scrollLeft() + delta );
+
+ })
+ .on('mouseenter', '.forward, .backward', function(event) {
+
+ var $this = $(this),
+ $inner = $this.siblings('.inner'),
+ direction = ($this.hasClass('forward') ? 1 : -1);
+
+ // Clear move interval.
+ clearInterval(this._gallery_moveIntervalId);
+
+ // Start interval.
+ this._gallery_moveIntervalId = setInterval(function() {
+ $inner.scrollLeft( $inner.scrollLeft() + (5 * direction) );
+ }, 10);
+
+ })
+ .on('mouseleave', '.forward, .backward', function(event) {
+
+ // Clear move interval.
+ clearInterval(this._gallery_moveIntervalId);
+
+ });
+
+ // Lightbox.
+ $('.gallery.lightbox')
+ .on('click', 'a', function(event) {
+
+ var $a = $(this),
+ $gallery = $a.parents('.gallery'),
+ $modal = $gallery.children('.modal'),
+ $modalImg = $modal.find('img'),
+ href = $a.attr('href');
+
+ // Not an image? Bail.
+ if (!href.match(/\.(jpg|gif|png|mp4)$/))
+ return;
+
+ // Prevent default.
+ event.preventDefault();
+ event.stopPropagation();
+
+ // Locked? Bail.
+ if ($modal[0]._locked)
+ return;
+
+ // Lock.
+ $modal[0]._locked = true;
+
+ // Set src.
+ $modalImg.attr('src', href);
+
+ // Set visible.
+ $modal.addClass('visible');
+
+ // Focus.
+ $modal.focus();
+
+ // Delay.
+ setTimeout(function() {
+
+ // Unlock.
+ $modal[0]._locked = false;
+
+ }, 600);
+
+ })
+ .on('click', '.modal', function(event) {
+
+ var $modal = $(this),
+ $modalImg = $modal.find('img');
+
+ // Locked? Bail.
+ if ($modal[0]._locked)
+ return;
+
+ // Already hidden? Bail.
+ if (!$modal.hasClass('visible'))
+ return;
+
+ // Lock.
+ $modal[0]._locked = true;
+
+ // Clear visible, loaded.
+ $modal
+ .removeClass('loaded')
+
+ // Delay.
+ setTimeout(function() {
+
+ $modal
+ .removeClass('visible')
- // Delay.
setTimeout(function() {
+ // Clear src.
+ $modalImg.attr('src', '');
+
// Unlock.
$modal[0]._locked = false;
- }, 600);
+ // Focus.
+ $body.focus();
- })
- .on('click', '.modal', function(event) {
+ }, 475);
- var $modal = $(this),
- $modalImg = $modal.find('img');
+ }, 125);
- // Locked? Bail.
- if ($modal[0]._locked)
- return;
+ })
+ .on('keypress', '.modal', function(event) {
- // Already hidden? Bail.
- if (!$modal.hasClass('visible'))
- return;
+ var $modal = $(this);
- // Lock.
- $modal[0]._locked = true;
+ // Escape? Hide modal.
+ if (event.keyCode == 27)
+ $modal.trigger('click');
- // Clear visible, loaded.
- $modal
- .removeClass('loaded')
+ })
+ .prepend('')
+ .find('img')
+ .on('load', function(event) {
+
+ var $modalImg = $(this),
+ $modal = $modalImg.parents('.modal');
- // Delay.
setTimeout(function() {
- $modal
- .removeClass('visible')
+ // No longer visible? Bail.
+ if (!$modal.hasClass('visible'))
+ return;
- setTimeout(function() {
+ // Set loaded.
+ $modal.addClass('loaded');
- // Clear src.
- $modalImg.attr('src', '');
+ }, 275);
- // Unlock.
- $modal[0]._locked = false;
+ });
- // Focus.
- $body.focus();
-
- }, 475);
-
- }, 125);
-
- })
- .on('keypress', '.modal', function(event) {
-
- var $modal = $(this);
-
- // Escape? Hide modal.
- if (event.keyCode == 27)
- $modal.trigger('click');
-
- })
- .prepend('')
- .find('img')
- .on('load', function(event) {
-
- var $modalImg = $(this),
- $modal = $modalImg.parents('.modal');
-
- setTimeout(function() {
-
- // No longer visible? Bail.
- if (!$modal.hasClass('visible'))
- return;
-
- // Set loaded.
- $modal.addClass('loaded');
-
- }, 275);
-
- });
-
- });
-
-})(jQuery);
+})(jQuery);
\ No newline at end of file
diff --git a/assets/js/skel.min.js b/assets/js/skel.min.js
deleted file mode 100644
index 0e7633a..0000000
--- a/assets/js/skel.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/* skel.js v3.0.1 | (c) skel.io | MIT licensed */
-var skel=function(){"use strict";var t={breakpointIds:null,events:{},isInit:!1,obj:{attachments:{},breakpoints:{},head:null,states:{}},sd:"/",state:null,stateHandlers:{},stateId:"",vars:{},DOMReady:null,indexOf:null,isArray:null,iterate:null,matchesMedia:null,extend:function(e,n){t.iterate(n,function(i){t.isArray(n[i])?(t.isArray(e[i])||(e[i]=[]),t.extend(e[i],n[i])):"object"==typeof n[i]?("object"!=typeof e[i]&&(e[i]={}),t.extend(e[i],n[i])):e[i]=n[i]})},newStyle:function(t){var e=document.createElement("style");return e.type="text/css",e.innerHTML=t,e},_canUse:null,canUse:function(e){t._canUse||(t._canUse=document.createElement("div"));var n=t._canUse.style,i=e.charAt(0).toUpperCase()+e.slice(1);return e in n||"Moz"+i in n||"Webkit"+i in n||"O"+i in n||"ms"+i in n},on:function(e,n){var i=e.split(/[\s]+/);return t.iterate(i,function(e){var a=i[e];if(t.isInit){if("init"==a)return void n();if("change"==a)n();else{var r=a.charAt(0);if("+"==r||"!"==r){var o=a.substring(1);if(o in t.obj.breakpoints)if("+"==r&&t.obj.breakpoints[o].active)n();else if("!"==r&&!t.obj.breakpoints[o].active)return void n()}}}t.events[a]||(t.events[a]=[]),t.events[a].push(n)}),t},trigger:function(e){return t.events[e]&&0!=t.events[e].length?(t.iterate(t.events[e],function(n){t.events[e][n]()}),t):void 0},breakpoint:function(e){return t.obj.breakpoints[e]},breakpoints:function(e){function n(t,e){this.name=this.id=t,this.media=e,this.active=!1,this.wasActive=!1}return n.prototype.matches=function(){return t.matchesMedia(this.media)},n.prototype.sync=function(){this.wasActive=this.active,this.active=this.matches()},t.iterate(e,function(i){t.obj.breakpoints[i]=new n(i,e[i])}),window.setTimeout(function(){t.poll()},0),t},addStateHandler:function(e,n){t.stateHandlers[e]=n},callStateHandler:function(e){var n=t.stateHandlers[e]();t.iterate(n,function(e){t.state.attachments.push(n[e])})},changeState:function(e){t.iterate(t.obj.breakpoints,function(e){t.obj.breakpoints[e].sync()}),t.vars.lastStateId=t.stateId,t.stateId=e,t.breakpointIds=t.stateId===t.sd?[]:t.stateId.substring(1).split(t.sd),t.obj.states[t.stateId]?t.state=t.obj.states[t.stateId]:(t.obj.states[t.stateId]={attachments:[]},t.state=t.obj.states[t.stateId],t.iterate(t.stateHandlers,t.callStateHandler)),t.detachAll(t.state.attachments),t.attachAll(t.state.attachments),t.vars.stateId=t.stateId,t.vars.state=t.state,t.trigger("change"),t.iterate(t.obj.breakpoints,function(e){t.obj.breakpoints[e].active?t.obj.breakpoints[e].wasActive||t.trigger("+"+e):t.obj.breakpoints[e].wasActive&&t.trigger("-"+e)})},generateStateConfig:function(e,n){var i={};return t.extend(i,e),t.iterate(t.breakpointIds,function(e){t.extend(i,n[t.breakpointIds[e]])}),i},getStateId:function(){var e="";return t.iterate(t.obj.breakpoints,function(n){var i=t.obj.breakpoints[n];i.matches()&&(e+=t.sd+i.id)}),e},poll:function(){var e="";e=t.getStateId(),""===e&&(e=t.sd),e!==t.stateId&&t.changeState(e)},_attach:null,attach:function(e){var n=t.obj.head,i=e.element;return i.parentNode&&i.parentNode.tagName?!1:(t._attach||(t._attach=n.firstChild),n.insertBefore(i,t._attach.nextSibling),e.permanent&&(t._attach=i),!0)},attachAll:function(e){var n=[];t.iterate(e,function(t){n[e[t].priority]||(n[e[t].priority]=[]),n[e[t].priority].push(e[t])}),n.reverse(),t.iterate(n,function(e){t.iterate(n[e],function(i){t.attach(n[e][i])})})},detach:function(t){var e=t.element;return t.permanent||!e.parentNode||e.parentNode&&!e.parentNode.tagName?!1:(e.parentNode.removeChild(e),!0)},detachAll:function(e){var n={};t.iterate(e,function(t){n[e[t].id]=!0}),t.iterate(t.obj.attachments,function(e){e in n||t.detach(t.obj.attachments[e])})},attachment:function(e){return e in t.obj.attachments?t.obj.attachments[e]:null},newAttachment:function(e,n,i,a){return t.obj.attachments[e]={id:e,element:n,priority:i,permanent:a}},init:function(){t.initMethods(),t.initVars(),t.initEvents(),t.obj.head=document.getElementsByTagName("head")[0],t.isInit=!0,t.trigger("init")},initEvents:function(){t.on("resize",function(){t.poll()}),t.on("orientationChange",function(){t.poll()}),t.DOMReady(function(){t.trigger("ready")}),window.onload&&t.on("load",window.onload),window.onload=function(){t.trigger("load")},window.onresize&&t.on("resize",window.onresize),window.onresize=function(){t.trigger("resize")},window.onorientationchange&&t.on("orientationChange",window.onorientationchange),window.onorientationchange=function(){t.trigger("orientationChange")}},initMethods:function(){document.addEventListener?!function(e,n){t.DOMReady=n()}("domready",function(){function t(t){for(r=1;t=n.shift();)t()}var e,n=[],i=document,a="DOMContentLoaded",r=/^loaded|^c/.test(i.readyState);return i.addEventListener(a,e=function(){i.removeEventListener(a,e),t()}),function(t){r?t():n.push(t)}}):!function(e,n){t.DOMReady=n()}("domready",function(t){function e(t){for(h=1;t=i.shift();)t()}var n,i=[],a=!1,r=document,o=r.documentElement,s=o.doScroll,c="DOMContentLoaded",d="addEventListener",u="onreadystatechange",l="readyState",f=s?/^loaded|^c/:/^loaded|c/,h=f.test(r[l]);return r[d]&&r[d](c,n=function(){r.removeEventListener(c,n,a),e()},a),s&&r.attachEvent(u,n=function(){/^c/.test(r[l])&&(r.detachEvent(u,n),e())}),t=s?function(e){self!=top?h?e():i.push(e):function(){try{o.doScroll("left")}catch(n){return setTimeout(function(){t(e)},50)}e()}()}:function(t){h?t():i.push(t)}}),Array.prototype.indexOf?t.indexOf=function(t,e){return t.indexOf(e)}:t.indexOf=function(t,e){if("string"==typeof t)return t.indexOf(e);var n,i,a=e?e:0;if(!this)throw new TypeError;if(i=this.length,0===i||a>=i)return-1;for(0>a&&(a=i-Math.abs(a)),n=a;i>n;n++)if(this[n]===t)return n;return-1},Array.isArray?t.isArray=function(t){return Array.isArray(t)}:t.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)},Object.keys?t.iterate=function(t,e){if(!t)return[];var n,i=Object.keys(t);for(n=0;i[n]&&e(i[n],t[i[n]])!==!1;n++);}:t.iterate=function(t,e){if(!t)return[];var n;for(n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&e(n,t[n])===!1)break},window.matchMedia?t.matchesMedia=function(t){return""==t?!0:window.matchMedia(t).matches}:window.styleMedia||window.media?t.matchesMedia=function(t){if(""==t)return!0;var e=window.styleMedia||window.media;return e.matchMedium(t||"all")}:window.getComputedStyle?t.matchesMedia=function(t){if(""==t)return!0;var e=document.createElement("style"),n=document.getElementsByTagName("script")[0],i=null;e.type="text/css",e.id="matchmediajs-test",n.parentNode.insertBefore(e,n),i="getComputedStyle"in window&&window.getComputedStyle(e,null)||e.currentStyle;var a="@media "+t+"{ #matchmediajs-test { width: 1px; } }";return e.styleSheet?e.styleSheet.cssText=a:e.textContent=a,"1px"===i.width}:t.matchesMedia=function(t){if(""==t)return!0;var e,n,i,a,r={"min-width":null,"max-width":null},o=!1;for(i=t.split(/\s+and\s+/),e=0;er["max-width"]||null!==r["min-height"]&&cr["max-height"]?!1:!0},navigator.userAgent.match(/MSIE ([0-9]+)/)&&RegExp.$1<9&&(t.newStyle=function(t){var e=document.createElement("span");return e.innerHTML=' ",e})},initVars:function(){var e,n,i,a=navigator.userAgent;e="other",n=0,i=[["firefox",/Firefox\/([0-9\.]+)/],["bb",/BlackBerry.+Version\/([0-9\.]+)/],["bb",/BB[0-9]+.+Version\/([0-9\.]+)/],["opera",/OPR\/([0-9\.]+)/],["opera",/Opera\/([0-9\.]+)/],["edge",/Edge\/([0-9\.]+)/],["safari",/Version\/([0-9\.]+).+Safari/],["chrome",/Chrome\/([0-9\.]+)/],["ie",/MSIE ([0-9]+)/],["ie",/Trident\/.+rv:([0-9]+)/]],t.iterate(i,function(t,i){return a.match(i[1])?(e=i[0],n=parseFloat(RegExp.$1),!1):void 0}),t.vars.browser=e,t.vars.browserVersion=n,e="other",n=0,i=[["ios",/([0-9_]+) like Mac OS X/,function(t){return t.replace("_",".").replace("_","")}],["ios",/CPU like Mac OS X/,function(t){return 0}],["wp",/Windows Phone ([0-9\.]+)/,null],["android",/Android ([0-9\.]+)/,null],["mac",/Macintosh.+Mac OS X ([0-9_]+)/,function(t){return t.replace("_",".").replace("_","")}],["windows",/Windows NT ([0-9\.]+)/,null],["bb",/BlackBerry.+Version\/([0-9\.]+)/,null],["bb",/BB[0-9]+.+Version\/([0-9\.]+)/,null]],t.iterate(i,function(t,i){return a.match(i[1])?(e=i[0],n=parseFloat(i[2]?i[2](RegExp.$1):RegExp.$1),!1):void 0}),t.vars.os=e,t.vars.osVersion=n,t.vars.IEVersion="ie"==t.vars.browser?t.vars.browserVersion:99,t.vars.touch="wp"==t.vars.os?navigator.msMaxTouchPoints>0:!!("ontouchstart"in window),t.vars.mobile="wp"==t.vars.os||"android"==t.vars.os||"ios"==t.vars.os||"bb"==t.vars.os}};return t.init(),t}();!function(t,e){"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?module.exports=e():t.skel=e()}(this,function(){return skel});
diff --git a/assets/sass/base/_page.scss b/assets/sass/base/_page.scss
index a5e314e..3578216 100644
--- a/assets/sass/base/_page.scss
+++ b/assets/sass/base/_page.scss
@@ -17,18 +17,27 @@
}
// Ensures page width is always >=320px.
- @include breakpoint(xsmall) {
+ @include breakpoint('<=xsmall') {
html, body {
min-width: 320px;
}
}
+ // Set box model to border-box.
+ // Based on css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice
+ html {
+ box-sizing: border-box;
+ }
+
+ *, *:before, *:after {
+ box-sizing: inherit;
+ }
+
body {
background: _palette(bg);
- // Prevents animation/transition "flicker" on page load.
- // Automatically added/removed by js/main.js.
- &.is-loading {
+ // Stops initial animations until page loads.
+ &.is-preload {
*, *:before, *:after {
@include vendor('animation', 'none !important');
@include vendor('transition', 'none !important');
diff --git a/assets/sass/base/_reset.scss b/assets/sass/base/_reset.scss
new file mode 100644
index 0000000..9d21e12
--- /dev/null
+++ b/assets/sass/base/_reset.scss
@@ -0,0 +1,76 @@
+///
+/// Story by HTML5 UP
+/// html5up.net | @ajlkn
+/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
+///
+
+// Reset.
+// Based on meyerweb.com/eric/tools/css/reset (v2.0 | 20110126 | License: public domain)
+
+ html, body, div, span, applet, object,
+ iframe, h1, h2, h3, h4, h5, h6, p, blockquote,
+ pre, a, abbr, acronym, address, big, cite,
+ code, del, dfn, em, img, ins, kbd, q, s, samp,
+ small, strike, strong, sub, sup, tt, var, b,
+ u, i, center, dl, dt, dd, ol, ul, li, fieldset,
+ form, label, legend, table, caption, tbody,
+ tfoot, thead, tr, th, td, article, aside,
+ canvas, details, embed, figure, figcaption,
+ footer, header, hgroup, menu, nav, output, ruby,
+ section, summary, time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline;
+ }
+
+ article, aside, details, figcaption, figure,
+ footer, header, hgroup, menu, nav, section {
+ display: block;
+ }
+
+ body {
+ line-height: 1;
+ }
+
+ ol, ul {
+ list-style:none;
+ }
+
+ blockquote, q {
+ quotes: none;
+
+ &:before,
+ &:after {
+ content: '';
+ content: none;
+ }
+ }
+
+ table {
+ border-collapse: collapse;
+ border-spacing: 0;
+ }
+
+ body {
+ -webkit-text-size-adjust: none;
+ }
+
+ mark {
+ background-color: transparent;
+ color: inherit;
+ }
+
+ input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+ }
+
+ input, select, textarea {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ -ms-appearance: none;
+ appearance: none;
+ }
\ No newline at end of file
diff --git a/assets/sass/base/_typography.scss b/assets/sass/base/_typography.scss
index c09953c..b64a32f 100644
--- a/assets/sass/base/_typography.scss
+++ b/assets/sass/base/_typography.scss
@@ -9,19 +9,19 @@
html {
font-size: 18pt;
- @include breakpoint(xlarge) {
+ @include breakpoint('<=xlarge') {
font-size: 14pt;
}
- @include breakpoint(large) {
+ @include breakpoint('<=large') {
font-size: 12pt;
}
- @include breakpoint(small) {
+ @include breakpoint('<=small') {
font-size: 11pt;
}
- @include breakpoint(xxsmall) {
+ @include breakpoint('<=xxsmall') {
font-size: 10pt;
}
}
@@ -163,7 +163,7 @@
text-align: right;
}
- @include breakpoint(small) {
+ @include breakpoint('<=small') {
p {
&.major {
font-size: 1.1rem;
diff --git a/assets/sass/components/_actions.scss b/assets/sass/components/_actions.scss
new file mode 100644
index 0000000..0e63444
--- /dev/null
+++ b/assets/sass/components/_actions.scss
@@ -0,0 +1,101 @@
+///
+/// Story by HTML5 UP
+/// html5up.net | @ajlkn
+/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
+///
+
+/* Actions */
+
+ ul.actions {
+ @include vendor('display', 'flex');
+ cursor: default;
+ list-style: none;
+ margin-left: (_size(element-margin) * -0.5);
+ padding-left: 0;
+
+ li {
+ padding: 0 0 0 (_size(element-margin) * 0.5);
+ vertical-align: middle;
+ }
+
+ &.special {
+ @include vendor('justify-content', 'center');
+ width: 100%;
+ margin-left: 0;
+
+ li {
+ &:first-child {
+ padding-left: 0;
+ }
+ }
+ }
+
+ &.stacked {
+ @include vendor('flex-direction', 'column');
+ margin-left: 0;
+
+ li {
+ padding: (_size(element-margin) * 0.65) 0 0 0;
+
+ &:first-child {
+ padding-top: 0;
+ }
+ }
+ }
+
+ &.fit {
+ width: calc(100% + #{_size(element-margin) * 0.5});
+
+ li {
+ @include vendor('flex-grow', '1');
+ @include vendor('flex-shrink', '1');
+ width: 100%;
+
+ > * {
+ width: 100%;
+ }
+ }
+
+ &.stacked {
+ width: 100%;
+ }
+ }
+
+ @include breakpoint('<=xsmall') {
+ &:not(.fixed) {
+ @include vendor('flex-direction', 'column');
+ margin-left: 0;
+ width: 100% !important;
+
+ li {
+ @include vendor('flex-grow', '1');
+ @include vendor('flex-shrink', '1');
+ padding: (_size(element-margin) * 0.5) 0 0 0;
+ text-align: center;
+ width: 100%;
+
+ > * {
+ width: 100%;
+ }
+
+ &:first-child {
+ padding-top: 0;
+ }
+
+ input[type="submit"],
+ input[type="reset"],
+ input[type="button"],
+ button,
+ .button {
+ width: 100%;
+
+ &.icon {
+ &:before {
+ margin-left: -0.5rem;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
\ No newline at end of file
diff --git a/assets/sass/components/_banner.scss b/assets/sass/components/_banner.scss
index df56a7f..6722640 100644
--- a/assets/sass/components/_banner.scss
+++ b/assets/sass/components/_banner.scss
@@ -14,7 +14,7 @@
$y: null;
@if ($event == 'load') {
- $x: 'body.is-loading &';
+ $x: 'body.is-preload &';
$y: _duration(on-load);
}
@else if ($event == 'scroll') {
@@ -266,25 +266,25 @@
}
}
- @include breakpoint(xlarge) {
+ @include breakpoint('<=xlarge') {
.content {
@include padding(_size(padding, xlarge), _size(padding, xlarge));
}
}
- @include breakpoint(large) {
+ @include breakpoint('<=large') {
.content {
@include padding(_size(padding, large), _size(padding, large));
}
}
- @include breakpoint(medium) {
+ @include breakpoint('<=medium') {
.content {
@include padding(_size(padding, medium) * 1.25, _size(padding, medium));
}
}
- @include breakpoint(small) {
+ @include breakpoint('<=small') {
.content {
@include padding(_size(padding, small) * 1.25, _size(padding, small));
}
@@ -429,7 +429,7 @@
}
}
- @include breakpoint(xlarge) {
+ @include breakpoint('<=xlarge') {
@include padding(_size(padding, xlarge) * 0.75, _size(padding, xlarge) * 0.75);
.content {
@@ -437,7 +437,7 @@
}
}
- @include breakpoint(large) {
+ @include breakpoint('<=large') {
@include padding(_size(padding, large), _size(padding, large) * 0.75);
.content {
@@ -445,7 +445,7 @@
}
}
- @include breakpoint(medium) {
+ @include breakpoint('<=medium') {
@include padding(_size(padding, medium), _size(padding, medium));
.content {
@@ -453,7 +453,7 @@
}
}
- @include breakpoint(small) {
+ @include breakpoint('<=small') {
@include padding(_size(padding, small), _size(padding, small));
.content {
@@ -571,15 +571,15 @@
}
}
- @include breakpoint(xlarge) {
+ @include breakpoint('<=xlarge') {
@include padding(_size(padding, xlarge), _size(padding, xlarge));
}
- @include breakpoint(large) {
+ @include breakpoint('<=large') {
@include padding(_size(padding, large), _size(padding, large));
}
- @include breakpoint(medium) {
+ @include breakpoint('<=medium') {
@include padding(_size(padding, medium) * 1.25, _size(padding, medium));
.image {
@@ -588,7 +588,7 @@
}
}
- @include breakpoint(small) {
+ @include breakpoint('<=small') {
@include padding(_size(padding, small) * 1.25, _size(padding, small));
@include vendor('align-items', 'flex-start');
@@ -629,7 +629,7 @@
margin: 0 0 _size(element-margin) (_size(element-margin) * 1.75);
}
- @include breakpoint(small) {
+ @include breakpoint('<=small') {
.image {
margin: 0 0 _size(element-margin) (_size(element-margin) * 1);
}
@@ -709,15 +709,15 @@
margin-right: (_size(element-margin) * 1.75);
}
- @include breakpoint(xlarge) {
+ @include breakpoint('<=xlarge') {
@include padding(_size(padding, xlarge), _size(padding, xlarge));
}
- @include breakpoint(large) {
+ @include breakpoint('<=large') {
@include padding(_size(padding, large), _size(padding, large));
}
- @include breakpoint(medium) {
+ @include breakpoint('<=medium') {
@include padding(_size(padding, medium) * 1.25, _size(padding, medium));
.image {
@@ -725,7 +725,7 @@
}
}
- @include breakpoint(small) {
+ @include breakpoint('<=small') {
@include padding(_size(padding, small) * 1.25, _size(padding, small));
@include vendor('align-items', 'flex-start');
@@ -869,19 +869,19 @@
}
}
- @include breakpoint(xlarge) {
+ @include breakpoint('<=xlarge') {
@include padding(_size(padding, xlarge), _size(padding, xlarge));
}
- @include breakpoint(large) {
+ @include breakpoint('<=large') {
@include padding(_size(padding, large), _size(padding, large));
}
- @include breakpoint(medium) {
+ @include breakpoint('<=medium') {
@include padding(_size(padding, medium) * 1.25, _size(padding, medium));
}
- @include breakpoint(small) {
+ @include breakpoint('<=small') {
@include padding(_size(padding, small) * 1.25, _size(padding, small));
}
diff --git a/assets/sass/components/_button.scss b/assets/sass/components/_button.scss
index 9afca0c..4347ed0 100644
--- a/assets/sass/components/_button.scss
+++ b/assets/sass/components/_button.scss
@@ -42,8 +42,6 @@
}
&.fit {
- display: block;
- margin: 0 0 (_size(element-margin) * 0.5) 0;
width: 100%;
}
@@ -55,7 +53,7 @@
padding: 0 2em;
}
- &.big {
+ &.large {
font-size: 0.8rem;
height: 4em;
line-height: 4em;
@@ -95,7 +93,7 @@
color: _palette($p, accent) !important;
}
- &.special {
+ &.primary {
background-color: _palette($p, fg-bold);
box-shadow: none;
color: _palette($p, bg) !important;
diff --git a/assets/sass/components/_form.scss b/assets/sass/components/_form.scss
index 1550c62..5e6a416 100644
--- a/assets/sass/components/_form.scss
+++ b/assets/sass/components/_form.scss
@@ -7,79 +7,61 @@
/* Form */
form {
- $gutter: _size(element-margin) * 0.75;
-
margin: 0 0 _size(element-margin) 0;
- .field {
- margin: 0 0 ($gutter * 1) 0;
- clear: both;
-
- &.half {
- clear: none;
- width: 50%;
- float: left;
- padding: 0 0 0 ($gutter * 1 * 0.5);
-
- &.first {
- padding: 0 ($gutter * 1 * 0.5) 0 0;
- }
- }
-
- &.third {
- clear: none;
- width: (100% / 3);
- float: left;
- padding: 0 0 0 ($gutter * 1 * 0.5);
-
- &.first {
- padding: 0 ($gutter * 1 * 0.5) 0 0;
- }
- }
+ > :last-child {
+ margin-bottom: 0;
}
- > .actions {
- clear: both;
- margin: ($gutter * 1.25) 0 0 0 !important;
- }
+ > .fields {
+ $gutter: (_size(element-margin) * 0.75);
- @include breakpoint(small) {
- .field {
- margin: 0 0 ($gutter * 0.75) 0;
+ @include vendor('display', 'flex');
+ @include vendor('flex-wrap', 'wrap');
+ width: calc(100% + #{$gutter * 2});
+ margin: ($gutter * -1) 0 _size(element-margin) ($gutter * -1);
+
+ > .field {
+ @include vendor('flex-grow', '0');
+ @include vendor('flex-shrink', '0');
+ padding: $gutter 0 0 $gutter;
+ width: calc(100% - #{$gutter * 1});
&.half {
- padding: 0 0 0 ($gutter * 0.75 * 0.5);
-
- &.first {
- padding: 0 ($gutter * 0.75 * 0.5) 0 0;
- }
- }
- }
-
- > .actions {
- margin: ($gutter * 1) 0 0 0 !important;
- }
- }
-
- @include breakpoint(xsmall) {
- .field {
- &.half {
- width: 100%;
- float: none;
- padding: 0;
-
- &.first {
- padding: 0;
- }
+ width: calc(50% - #{$gutter * 0.5});
}
&.third {
- width: 100%;
- float: none;
- padding: 0;
+ width: calc(#{100% / 3} - #{$gutter * (1 / 3)});
+ }
- &.first {
- padding: 0;
+ &.quarter {
+ width: calc(25% - #{$gutter * 0.25});
+ }
+ }
+ }
+
+ @include breakpoint('<=xsmall') {
+ > .fields {
+ $gutter: (_size(element-margin) * 0.75);
+
+ width: calc(100% + #{$gutter * 2});
+ margin: ($gutter * -1) 0 _size(element-margin) ($gutter * -1);
+
+ > .field {
+ padding: $gutter 0 0 $gutter;
+ width: calc(100% - #{$gutter * 1});
+
+ &.half {
+ width: calc(100% - #{$gutter * 1});
+ }
+
+ &.third {
+ width: calc(100% - #{$gutter * 1});
+ }
+
+ &.quarter {
+ width: calc(100% - #{$gutter * 1});
}
}
}
@@ -118,25 +100,21 @@
}
}
- .select-wrapper {
- @include icon;
- display: block;
- position: relative;
+ select {
+ background-size: 1.25rem;
+ background-repeat: no-repeat;
+ background-position: calc(100% - 1rem) center;
+ height: _size(element-height);
+ padding-right: _size(element-height);
+ text-overflow: ellipsis;
- &:before {
- content: '\f078';
- display: block;
- height: _size(element-height);
- line-height: _size(element-height);
- pointer-events: none;
- position: absolute;
- right: 0;
- text-align: center;
- top: 0;
- width: _size(element-height);
+ &:focus {
+ &::-ms-value {
+ background-color: transparent;
+ }
}
- select::-ms-expand {
+ &::-ms-expand {
display: none;
}
}
@@ -166,7 +144,7 @@
z-index: -1;
& + label {
- @include icon;
+ @include icon(false, solid);
@include vendor('user-select', 'none');
cursor: pointer;
display: inline-block;
@@ -182,9 +160,10 @@
border: solid _size(border-width);
content: '';
display: inline-block;
+ font-size: 0.8rem;
height: (_size(element-height) * 0.6);
left: 0;
- line-height: (_size(element-height) * 0.575);
+ line-height: (_size(element-height) * 0.6);
position: absolute;
text-align: center;
top: 0;
@@ -231,10 +210,6 @@
opacity: 1.0;
}
- .formerize-placeholder {
- opacity: 1.0;
- }
-
@mixin color-form($p: null) {
label {
color: _palette($p, fg-bold);
@@ -256,9 +231,12 @@
}
}
- .select-wrapper {
- &:before {
- color: _palette($p, border);
+ select {
+ background-image: svg-url(" ");
+
+ option {
+ color: _palette(fg-bold);
+ background: _palette(bg);
}
}
@@ -303,10 +281,6 @@
:-ms-input-placeholder {
color: _palette($p, fg-light) !important;
}
-
- .formerize-placeholder {
- color: _palette($p, fg-light) !important;
- }
}
@include color-form;
\ No newline at end of file
diff --git a/assets/sass/components/_gallery.scss b/assets/sass/components/_gallery.scss
index 91ef227..4485a19 100644
--- a/assets/sass/components/_gallery.scss
+++ b/assets/sass/components/_gallery.scss
@@ -14,7 +14,7 @@
$y: null;
@if ($event == 'load') {
- $x: 'body.is-loading &';
+ $x: 'body.is-preload &';
$y: _duration(on-load);
}
@else if ($event == 'scroll') {
@@ -148,7 +148,7 @@
}
}
- @include breakpoint(large) {
+ @include breakpoint('<=large') {
article {
width: (100% / 3);
@@ -158,7 +158,7 @@
}
}
- @include breakpoint(medium) {
+ @include breakpoint('<=medium') {
article {
width: 50%;
@@ -168,7 +168,7 @@
}
}
- @include breakpoint(xsmall) {
+ @include breakpoint('<=xsmall') {
article {
width: 100%;
@@ -190,7 +190,7 @@
}
}
- @include breakpoint(large) {
+ @include breakpoint('<=large') {
article {
width: 25%;
@@ -200,7 +200,7 @@
}
}
- @include breakpoint(medium) {
+ @include breakpoint('<=medium') {
article {
width: (100% / 3);
@@ -210,7 +210,7 @@
}
}
- @include breakpoint(xsmall) {
+ @include breakpoint('<=xsmall') {
article {
width: 50%;
@@ -234,7 +234,7 @@
}
}
- @include breakpoint(large) {
+ @include breakpoint('<=large') {
article {
width: 50%;
@@ -244,7 +244,7 @@
}
}
- @include breakpoint(medium) {
+ @include breakpoint('<=medium') {
article {
width: 50%;
@@ -254,7 +254,7 @@
}
}
- @include breakpoint(xsmall) {
+ @include breakpoint('<=xsmall') {
article {
width: 100%;
@@ -278,7 +278,7 @@
background-color: transparent;
> .forward, >.backward {
- @include icon;
+ @include icon(false, solid);
@include vendor('transition', 'opacity #{_duration(transition)} ease-in-out');
position: absolute;
top: 0;
@@ -399,7 +399,7 @@
}
}
- @include breakpoint(medium) {
+ @include breakpoint('<=medium') {
article {
.caption {
padding: 2rem;
@@ -407,7 +407,7 @@
}
}
- @include breakpoint(small) {
+ @include breakpoint('<=small') {
article {
.caption {
padding: 2rem;
@@ -427,7 +427,7 @@
}
}
- @include breakpoint(medium) {
+ @include breakpoint('<=medium') {
article {
.caption {
padding: 2rem;
@@ -435,7 +435,7 @@
}
}
- @include breakpoint(small) {
+ @include breakpoint('<=small') {
article {
.caption {
padding: 2rem;
@@ -457,7 +457,7 @@
}
}
- @include breakpoint(medium) {
+ @include breakpoint('<=medium') {
article {
.caption {
padding: 3rem;
@@ -465,7 +465,7 @@
}
}
- @include breakpoint(small) {
+ @include breakpoint('<=small') {
article {
.caption {
padding: 2rem;
@@ -590,7 +590,7 @@
}
}
- @include breakpoint(medium) {
+ @include breakpoint('<=medium') {
.modal {
.inner {
img {
diff --git a/assets/sass/components/_icon.scss b/assets/sass/components/_icon.scss
index 5a59b9a..03c70cb 100644
--- a/assets/sass/components/_icon.scss
+++ b/assets/sass/components/_icon.scss
@@ -16,6 +16,22 @@
display: none;
}
+ &:before {
+ line-height: inherit;
+ }
+
+ &.solid {
+ &:before {
+ font-weight: 900;
+ }
+ }
+
+ &.brands {
+ &:before {
+ font-family: 'Font Awesome 5 Brands';
+ }
+ }
+
&.style2 {
&:before {
border-radius: 2.75em;
diff --git a/assets/sass/components/_icons.scss b/assets/sass/components/_icons.scss
new file mode 100644
index 0000000..240ad14
--- /dev/null
+++ b/assets/sass/components/_icons.scss
@@ -0,0 +1,22 @@
+///
+/// Story by HTML5 UP
+/// html5up.net | @ajlkn
+/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
+///
+
+/* Icons */
+
+ ul.icons {
+ cursor: default;
+ list-style: none;
+ padding-left: 0;
+
+ li {
+ display: inline-block;
+ padding: 0 0.75rem 0 0;
+
+ &:last-child {
+ padding-right: 0;
+ }
+ }
+ }
\ No newline at end of file
diff --git a/assets/sass/components/_index.scss b/assets/sass/components/_index.scss
index a7485c1..0c91d51 100644
--- a/assets/sass/components/_index.scss
+++ b/assets/sass/components/_index.scss
@@ -28,7 +28,7 @@
border-top: 0;
}
- @include breakpoint(medium) {
+ @include breakpoint('<=medium') {
> * {
> header {
width: 11rem;
@@ -36,7 +36,7 @@
}
}
- @include breakpoint(small) {
+ @include breakpoint('<=small') {
> * {
> header {
width: 10rem;
@@ -44,7 +44,7 @@
}
}
- @include breakpoint(xsmall) {
+ @include breakpoint('<=xsmall') {
> * {
@include vendor('flex-direction', 'column');
diff --git a/assets/sass/components/_items.scss b/assets/sass/components/_items.scss
index 790090e..d1f1523 100644
--- a/assets/sass/components/_items.scss
+++ b/assets/sass/components/_items.scss
@@ -14,7 +14,7 @@
$y: null;
@if ($event == 'load') {
- $x: 'body.is-loading &';
+ $x: 'body.is-preload &';
$y: _duration(on-load);
}
@else if ($event == 'scroll') {
@@ -111,12 +111,12 @@
@include items-style1-size(medium, 3, _size(gutter) * 0.625);
@include items-style1-size(small, 4, _size(gutter) * 0.375);
- @include breakpoint(large) {
+ @include breakpoint('<=large') {
@include items-style1-size-reset(small, 4);
@include items-style1-size(small, 3, _size(gutter) * 0.625);
}
- @include breakpoint(medium) {
+ @include breakpoint('<=medium') {
@include items-style1-size-reset(medium, 3);
@include items-style1-size(medium, 2, _size(gutter));
@@ -124,7 +124,7 @@
@include items-style1-size(small, 2, _size(gutter));
}
- @include breakpoint(xsmall) {
+ @include breakpoint('<=xsmall') {
@include items-style1-size-reset(big, 2);
@include items-style1-size(big, 1, _size(gutter) * 0.75);
@@ -217,12 +217,12 @@
@include items-style2-size(medium, 3, _size(gutter) * 0.625);
@include items-style2-size(small, 4, _size(gutter) * 0.375);
- @include breakpoint(large) {
+ @include breakpoint('<=large') {
@include items-style2-size-reset(small, 4);
@include items-style2-size(small, 3, _size(gutter) * 0.625);
}
- @include breakpoint(medium) {
+ @include breakpoint('<=medium') {
@include items-style2-size-reset(medium, 3);
@include items-style2-size(medium, 2, _size(gutter));
@@ -230,7 +230,7 @@
@include items-style2-size(small, 2, _size(gutter));
}
- @include breakpoint(xsmall) {
+ @include breakpoint('<=xsmall') {
@include items-style2-size-reset(big, 2);
@include items-style2-size(big, 1, _size(gutter) * 0.75);
@@ -273,20 +273,20 @@
@include items-style3-size(medium, 3, _size(gutter) * 0.5 * 0.625);
@include items-style3-size(small, 4, _size(gutter) * 0.5 * 0.375);
- @include breakpoint(large) {
+ @include breakpoint('<=large') {
@include items-style3-size(small, 3, _size(gutter) * 0.5 * 0.625);
}
- @include breakpoint(medium) {
+ @include breakpoint('<=medium') {
@include items-style3-size(medium, 2, _size(gutter) * 0.5);
@include items-style3-size(small, 2, _size(gutter) * 0.5);
}
- @include breakpoint(small) {
+ @include breakpoint('<=small') {
margin: _size(element-margin) 0;
}
- @include breakpoint(xsmall) {
+ @include breakpoint('<=xsmall') {
@include items-style3-size(big, 1, _size(gutter) * 0.5 * 0.75);
@include items-style3-size(medium, 1, _size(gutter) * 0.5 * 0.75);
@include items-style3-size(small, 1, _size(gutter) * 0.5 * 0.75);
diff --git a/assets/sass/components/_list.scss b/assets/sass/components/_list.scss
index a2d5816..1c527af 100644
--- a/assets/sass/components/_list.scss
+++ b/assets/sass/components/_list.scss
@@ -39,130 +39,6 @@
}
}
}
-
- &.icons {
- cursor: default;
- list-style: none;
- padding-left: 0;
-
- li {
- display: inline-block;
- padding: 0 0.75rem 0 0;
-
- &:last-child {
- padding-right: 0;
- }
- }
- }
-
- &.actions {
- cursor: default;
- list-style: none;
- padding-left: 0;
-
- li {
- display: inline-block;
- padding: 0 (_size(element-margin) * 0.5) 0 0;
- vertical-align: middle;
-
- &:last-child {
- padding-right: 0;
- }
- }
-
- &.small {
- li {
- padding: 0 (_size(element-margin) * 0.25) 0 0;
- }
- }
-
- &.vertical {
- li {
- display: block;
- padding: (_size(element-margin) * 0.5) 0 0 0;
-
- &:first-child {
- padding-top: 0;
- }
-
- > * {
- margin-bottom: 0;
- }
- }
-
- &.small {
- li {
- padding: (_size(element-margin) * 0.25) 0 0 0;
-
- &:first-child {
- padding-top: 0;
- }
- }
- }
- }
-
- &.fit {
- display: table;
- margin-left: (_size(element-margin) * -0.5);
- padding: 0;
- table-layout: fixed;
- width: calc(100% + #{(_size(element-margin) * 0.5)});
-
- li {
- display: table-cell;
- padding: 0 0 0 (_size(element-margin) * 0.5);
-
- > * {
- margin-bottom: 0;
- }
- }
-
- &.small {
- margin-left: (_size(element-margin) * -0.25);
- width: calc(100% + #{(_size(element-margin) * 0.25)});
-
- li {
- padding: 0 0 0 (_size(element-margin) * 0.25);
- }
- }
- }
-
- @include breakpoint(xsmall) {
- margin: 0 0 _size(element-margin) 0;
-
- li {
- padding: (_size(element-margin) * 0.5) 0 0 0;
- display: block;
- text-align: center;
- width: 100%;
-
- &:first-child {
- padding-top: 0;
- }
-
- > * {
- width: 100%;
- margin: 0 !important;
-
- &.icon {
- &:before {
- margin-left: -2rem;
- }
- }
- }
- }
-
- &.small {
- li {
- padding: (_size(element-margin) * 0.25) 0 0 0;
-
- &:first-child {
- padding-top: 0;
- }
- }
- }
- }
- }
}
dl {
diff --git a/assets/sass/components/_row.scss b/assets/sass/components/_row.scss
new file mode 100644
index 0000000..4ed0e9e
--- /dev/null
+++ b/assets/sass/components/_row.scss
@@ -0,0 +1,35 @@
+///
+/// Story by HTML5 UP
+/// html5up.net | @ajlkn
+/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
+///
+
+/* Row */
+
+ .row {
+ @include html-grid(2rem);
+
+ @include breakpoint('<=xlarge') {
+ @include html-grid(2rem, 'xlarge');
+ }
+
+ @include breakpoint('<=large') {
+ @include html-grid(2rem, 'large');
+ }
+
+ @include breakpoint('<=medium') {
+ @include html-grid(2rem, 'medium');
+ }
+
+ @include breakpoint('<=small') {
+ @include html-grid(2rem, 'small');
+ }
+
+ @include breakpoint('<=xsmall') {
+ @include html-grid(2rem, 'xsmall');
+ }
+
+ @include breakpoint('<=xxsmall') {
+ @include html-grid(2rem, 'xxsmall');
+ }
+ }
\ No newline at end of file
diff --git a/assets/sass/components/_spotlight.scss b/assets/sass/components/_spotlight.scss
index 0a8bbd8..9113958 100644
--- a/assets/sass/components/_spotlight.scss
+++ b/assets/sass/components/_spotlight.scss
@@ -14,7 +14,7 @@
$y: null;
@if ($event == 'load') {
- $x: 'body.is-loading &';
+ $x: 'body.is-preload &';
$y: _duration(on-load);
}
@else if ($event == 'scroll') {
@@ -267,19 +267,19 @@
}
}
- @include breakpoint(xlarge) {
+ @include breakpoint('<=xlarge') {
.content {
@include padding(_size(padding, xlarge), _size(padding, xlarge));
}
}
- @include breakpoint(large) {
+ @include breakpoint('<=large') {
.content {
@include padding(_size(padding, large), _size(padding, large));
}
}
- @include breakpoint(medium) {
+ @include breakpoint('<=medium') {
.content {
@include padding(_size(padding, medium) * 1.25, _size(padding, medium));
width: 50%;
@@ -292,14 +292,14 @@
}
}
- @include breakpoint(small) {
+ @include breakpoint('<=small') {
.content {
@include padding(_size(padding, small) * 1.25, _size(padding, small));
}
@include orientation(portrait) {
@include vendor('flex-direction', 'column-reverse');
- text-align: center;
+ text-align: center !important;
.content {
width: 100%;
@@ -325,7 +325,7 @@
&.orient-right {
@include vendor('flex-direction', 'row-reverse');
- @include breakpoint(small) {
+ @include breakpoint('<=small') {
@include orientation(portrait) {
@include vendor('flex-direction', 'column-reverse');
}
@@ -406,15 +406,15 @@
}
}
- @include breakpoint(xlarge) {
+ @include breakpoint('<=xlarge') {
@include padding(_size(padding, xlarge), _size(padding, xlarge));
}
- @include breakpoint(large) {
+ @include breakpoint('<=large') {
@include padding(_size(padding, large), _size(padding, large));
}
- @include breakpoint(medium) {
+ @include breakpoint('<=medium') {
@include padding(_size(padding, medium) * 1.25, _size(padding, medium));
.image {
@@ -423,7 +423,7 @@
}
}
- @include breakpoint(small) {
+ @include breakpoint('<=small') {
@include padding(_size(padding, small) * 1.25, _size(padding, small));
@include vendor('align-items', 'flex-start');
@@ -437,7 +437,7 @@
@include orientation(portrait) {
@include vendor('align-items', 'center');
@include vendor('flex-direction', 'column-reverse');
- text-align: center;
+ text-align: center !important;
.content {
width: 34rem;
@@ -459,7 +459,7 @@
margin: 0 0 _size(element-margin) (_size(element-margin) * 1.75);
}
- @include breakpoint(small) {
+ @include breakpoint('<=small') {
.image {
margin: 0 0 _size(element-margin) (_size(element-margin) * 1);
}
@@ -539,15 +539,15 @@
margin-right: (_size(element-margin) * 1.75);
}
- @include breakpoint(xlarge) {
+ @include breakpoint('<=xlarge') {
@include padding(_size(padding, xlarge), _size(padding, xlarge));
}
- @include breakpoint(large) {
+ @include breakpoint('<=large') {
@include padding(_size(padding, large), _size(padding, large));
}
- @include breakpoint(medium) {
+ @include breakpoint('<=medium') {
@include padding(_size(padding, medium) * 1.25, _size(padding, medium));
.image {
@@ -555,7 +555,7 @@
}
}
- @include breakpoint(small) {
+ @include breakpoint('<=small') {
@include padding(_size(padding, small) * 1.25, _size(padding, small));
@include vendor('align-items', 'flex-start');
@@ -567,7 +567,7 @@
@include orientation(portrait) {
@include vendor('align-items', 'center');
@include vendor('flex-direction', 'column-reverse');
- text-align: center;
+ text-align: center !important;
.content {
width: 34rem;
@@ -696,7 +696,7 @@
}
}
- @include breakpoint(xlarge) {
+ @include breakpoint('<=xlarge') {
@include padding(_size(padding, xlarge), _size(padding, xlarge) * 0.75);
.content {
@@ -704,7 +704,7 @@
}
}
- @include breakpoint(large) {
+ @include breakpoint('<=large') {
@include padding(_size(padding, large), _size(padding, large) * 0.75);
.content {
@@ -712,7 +712,7 @@
}
}
- @include breakpoint(medium) {
+ @include breakpoint('<=medium') {
@include padding(_size(padding, medium), _size(padding, medium) * 0.75);
.content {
@@ -720,7 +720,7 @@
}
}
- @include breakpoint(small) {
+ @include breakpoint('<=small') {
@include padding(_size(padding, small), _size(padding, small) * 0.75);
.content {
@@ -728,7 +728,7 @@
}
}
- @include breakpoint(xsmall) {
+ @include breakpoint('<=xsmall') {
.content {
max-width: 80%;
}
@@ -852,7 +852,7 @@
}
}
- @include breakpoint(xlarge) {
+ @include breakpoint('<=xlarge') {
@include padding(_size(padding, xlarge), _size(padding, xlarge) * 0.75);
.content {
@@ -860,7 +860,7 @@
}
}
- @include breakpoint(large) {
+ @include breakpoint('<=large') {
@include padding(_size(padding, large), _size(padding, large) * 0.75);
.content {
@@ -868,7 +868,7 @@
}
}
- @include breakpoint(medium) {
+ @include breakpoint('<=medium') {
@include padding(_size(padding, medium), _size(padding, medium) * 0.75);
.content {
@@ -876,7 +876,7 @@
}
}
- @include breakpoint(small) {
+ @include breakpoint('<=small') {
@include padding(_size(padding, small), _size(padding, small) * 0.75);
.content {
@@ -884,7 +884,7 @@
}
}
- @include breakpoint(xsmall) {
+ @include breakpoint('<=xsmall') {
.content {
max-width: 80%;
}
diff --git a/assets/sass/components/_wrapper.scss b/assets/sass/components/_wrapper.scss
index 32b3bf5..83bc871 100644
--- a/assets/sass/components/_wrapper.scss
+++ b/assets/sass/components/_wrapper.scss
@@ -22,25 +22,25 @@
}
}
- @include breakpoint(xlarge) {
+ @include breakpoint('<=xlarge') {
> .inner {
@include padding(_size(padding, xlarge), _size(padding, xlarge) * 0.5);
}
}
- @include breakpoint(large) {
+ @include breakpoint('<=large') {
> .inner {
@include padding(_size(padding, large), _size(padding, large));
}
}
- @include breakpoint(medium) {
+ @include breakpoint('<=medium') {
> .inner {
@include padding(_size(padding, medium) * 1.5, _size(padding, medium));
}
}
- @include breakpoint(small) {
+ @include breakpoint('<=small') {
> .inner {
@include padding(_size(padding, small) * 1.5, _size(padding, small));
}
@@ -72,7 +72,7 @@
}
}
- @include breakpoint(xlarge) {
+ @include breakpoint('<=xlarge') {
padding: _size(padding, xlarge);
> .inner {
@@ -80,7 +80,7 @@
}
}
- @include breakpoint(large) {
+ @include breakpoint('<=large') {
padding: _size(padding, large);
> .inner {
@@ -88,7 +88,7 @@
}
}
- @include breakpoint(medium) {
+ @include breakpoint('<=medium') {
padding: _size(padding, medium) * 0.75;
> .inner {
@@ -96,7 +96,7 @@
}
}
- @include breakpoint(small) {
+ @include breakpoint('<=small') {
padding: _size(padding, small) * 0.75;
> .inner {
diff --git a/assets/sass/libs/_breakpoints.scss b/assets/sass/libs/_breakpoints.scss
new file mode 100644
index 0000000..c5301d8
--- /dev/null
+++ b/assets/sass/libs/_breakpoints.scss
@@ -0,0 +1,223 @@
+// breakpoints.scss v1.0 | @ajlkn | MIT licensed */
+
+// Vars.
+
+ /// Breakpoints.
+ /// @var {list}
+ $breakpoints: () !global;
+
+// Mixins.
+
+ /// Sets breakpoints.
+ /// @param {map} $x Breakpoints.
+ @mixin breakpoints($x: ()) {
+ $breakpoints: $x !global;
+ }
+
+ /// Wraps @content in a @media block targeting a specific orientation.
+ /// @param {string} $orientation Orientation.
+ @mixin orientation($orientation) {
+ @media screen and (orientation: #{$orientation}) {
+ @content;
+ }
+ }
+
+ /// Wraps @content in a @media block using a given query.
+ /// @param {string} $query Query.
+ @mixin breakpoint($query: null) {
+
+ $breakpoint: null;
+ $op: null;
+ $media: null;
+
+ // Determine operator, breakpoint.
+
+ // Greater than or equal.
+ @if (str-slice($query, 0, 2) == '>=') {
+
+ $op: 'gte';
+ $breakpoint: str-slice($query, 3);
+
+ }
+
+ // Less than or equal.
+ @elseif (str-slice($query, 0, 2) == '<=') {
+
+ $op: 'lte';
+ $breakpoint: str-slice($query, 3);
+
+ }
+
+ // Greater than.
+ @elseif (str-slice($query, 0, 1) == '>') {
+
+ $op: 'gt';
+ $breakpoint: str-slice($query, 2);
+
+ }
+
+ // Less than.
+ @elseif (str-slice($query, 0, 1) == '<') {
+
+ $op: 'lt';
+ $breakpoint: str-slice($query, 2);
+
+ }
+
+ // Not.
+ @elseif (str-slice($query, 0, 1) == '!') {
+
+ $op: 'not';
+ $breakpoint: str-slice($query, 2);
+
+ }
+
+ // Equal.
+ @else {
+
+ $op: 'eq';
+ $breakpoint: $query;
+
+ }
+
+ // Build media.
+ @if ($breakpoint and map-has-key($breakpoints, $breakpoint)) {
+
+ $a: map-get($breakpoints, $breakpoint);
+
+ // Range.
+ @if (type-of($a) == 'list') {
+
+ $x: nth($a, 1);
+ $y: nth($a, 2);
+
+ // Max only.
+ @if ($x == null) {
+
+ // Greater than or equal (>= 0 / anything)
+ @if ($op == 'gte') {
+ $media: 'screen';
+ }
+
+ // Less than or equal (<= y)
+ @elseif ($op == 'lte') {
+ $media: 'screen and (max-width: ' + $y + ')';
+ }
+
+ // Greater than (> y)
+ @elseif ($op == 'gt') {
+ $media: 'screen and (min-width: ' + ($y + 1) + ')';
+ }
+
+ // Less than (< 0 / invalid)
+ @elseif ($op == 'lt') {
+ $media: 'screen and (max-width: -1px)';
+ }
+
+ // Not (> y)
+ @elseif ($op == 'not') {
+ $media: 'screen and (min-width: ' + ($y + 1) + ')';
+ }
+
+ // Equal (<= y)
+ @else {
+ $media: 'screen and (max-width: ' + $y + ')';
+ }
+
+ }
+
+ // Min only.
+ @else if ($y == null) {
+
+ // Greater than or equal (>= x)
+ @if ($op == 'gte') {
+ $media: 'screen and (min-width: ' + $x + ')';
+ }
+
+ // Less than or equal (<= inf / anything)
+ @elseif ($op == 'lte') {
+ $media: 'screen';
+ }
+
+ // Greater than (> inf / invalid)
+ @elseif ($op == 'gt') {
+ $media: 'screen and (max-width: -1px)';
+ }
+
+ // Less than (< x)
+ @elseif ($op == 'lt') {
+ $media: 'screen and (max-width: ' + ($x - 1) + ')';
+ }
+
+ // Not (< x)
+ @elseif ($op == 'not') {
+ $media: 'screen and (max-width: ' + ($x - 1) + ')';
+ }
+
+ // Equal (>= x)
+ @else {
+ $media: 'screen and (min-width: ' + $x + ')';
+ }
+
+ }
+
+ // Min and max.
+ @else {
+
+ // Greater than or equal (>= x)
+ @if ($op == 'gte') {
+ $media: 'screen and (min-width: ' + $x + ')';
+ }
+
+ // Less than or equal (<= y)
+ @elseif ($op == 'lte') {
+ $media: 'screen and (max-width: ' + $y + ')';
+ }
+
+ // Greater than (> y)
+ @elseif ($op == 'gt') {
+ $media: 'screen and (min-width: ' + ($y + 1) + ')';
+ }
+
+ // Less than (< x)
+ @elseif ($op == 'lt') {
+ $media: 'screen and (max-width: ' + ($x - 1) + ')';
+ }
+
+ // Not (< x and > y)
+ @elseif ($op == 'not') {
+ $media: 'screen and (max-width: ' + ($x - 1) + '), screen and (min-width: ' + ($y + 1) + ')';
+ }
+
+ // Equal (>= x and <= y)
+ @else {
+ $media: 'screen and (min-width: ' + $x + ') and (max-width: ' + $y + ')';
+ }
+
+ }
+
+ }
+
+ // String.
+ @else {
+
+ // Missing a media type? Prefix with "screen".
+ @if (str-slice($a, 0, 1) == '(') {
+ $media: 'screen and ' + $a;
+ }
+
+ // Otherwise, use as-is.
+ @else {
+ $media: $a;
+ }
+
+ }
+
+ }
+
+ // Output.
+ @media #{$media} {
+ @content;
+ }
+
+ }
\ No newline at end of file
diff --git a/assets/sass/libs/_functions.scss b/assets/sass/libs/_functions.scss
index 0e08c1a..f563aab 100644
--- a/assets/sass/libs/_functions.scss
+++ b/assets/sass/libs/_functions.scss
@@ -1,3 +1,59 @@
+/// Removes a specific item from a list.
+/// @author Hugo Giraudel
+/// @param {list} $list List.
+/// @param {integer} $index Index.
+/// @return {list} Updated list.
+@function remove-nth($list, $index) {
+
+ $result: null;
+
+ @if type-of($index) != number {
+ @warn "$index: #{quote($index)} is not a number for `remove-nth`.";
+ }
+ @else if $index == 0 {
+ @warn "List index 0 must be a non-zero integer for `remove-nth`.";
+ }
+ @else if abs($index) > length($list) {
+ @warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`.";
+ }
+ @else {
+
+ $result: ();
+ $index: if($index < 0, length($list) + $index + 1, $index);
+
+ @for $i from 1 through length($list) {
+
+ @if $i != $index {
+ $result: append($result, nth($list, $i));
+ }
+
+ }
+
+ }
+
+ @return $result;
+
+}
+
+/// Gets a value from a map.
+/// @author Hugo Giraudel
+/// @param {map} $map Map.
+/// @param {string} $keys Key(s).
+/// @return {string} Value.
+@function val($map, $keys...) {
+
+ @if nth($keys, 1) == null {
+ $keys: remove-nth($keys, 1);
+ }
+
+ @each $key in $keys {
+ $map: map-get($map, $key);
+ }
+
+ @return $map;
+
+}
+
/// Gets a duration value.
/// @param {string} $keys Key(s).
/// @return {string} Value.
diff --git a/assets/sass/libs/_html-grid.scss b/assets/sass/libs/_html-grid.scss
new file mode 100644
index 0000000..3c08069
--- /dev/null
+++ b/assets/sass/libs/_html-grid.scss
@@ -0,0 +1,149 @@
+// html-grid.scss v1.0 | @ajlkn | MIT licensed */
+
+// Mixins.
+
+ /// Initializes the current element as an HTML grid.
+ /// @param {mixed} $gutters Gutters (either a single number to set both column/row gutters, or a list to set them individually).
+ /// @param {mixed} $suffix Column class suffix (optional; either a single suffix or a list).
+ @mixin html-grid($gutters: 1.5em, $suffix: '') {
+
+ // Initialize.
+ $cols: 12;
+ $multipliers: 0, 0.25, 0.5, 1, 1.50, 2.00;
+ $unit: 100% / $cols;
+
+ // Suffixes.
+ $suffixes: null;
+
+ @if (type-of($suffix) == 'list') {
+ $suffixes: $suffix;
+ }
+ @else {
+ $suffixes: ($suffix);
+ }
+
+ // Gutters.
+ $guttersCols: null;
+ $guttersRows: null;
+
+ @if (type-of($gutters) == 'list') {
+
+ $guttersCols: nth($gutters, 1);
+ $guttersRows: nth($gutters, 2);
+
+ }
+ @else {
+
+ $guttersCols: $gutters;
+ $guttersRows: 0;
+
+ }
+
+ // Row.
+ display: flex;
+ flex-wrap: wrap;
+ box-sizing: border-box;
+ align-items: stretch;
+
+ // Columns.
+ > * {
+ box-sizing: border-box;
+ }
+
+ // Gutters.
+ &.gtr-uniform {
+ > * {
+ > :last-child {
+ margin-bottom: 0;
+ }
+ }
+ }
+
+ // Alignment.
+ &.aln-left {
+ justify-content: flex-start;
+ }
+
+ &.aln-center {
+ justify-content: center;
+ }
+
+ &.aln-right {
+ justify-content: flex-end;
+ }
+
+ &.aln-top {
+ align-items: flex-start;
+ }
+
+ &.aln-middle {
+ align-items: center;
+ }
+
+ &.aln-bottom {
+ align-items: flex-end;
+ }
+
+ // Step through suffixes.
+ @each $suffix in $suffixes {
+
+ // Suffix.
+ @if ($suffix != '') {
+ $suffix: '-' + $suffix;
+ }
+ @else {
+ $suffix: '';
+ }
+
+ // Row.
+
+ // Important.
+ > .imp#{$suffix} {
+ order: -1;
+ }
+
+ // Columns, offsets.
+ @for $i from 1 through $cols {
+ > .col-#{$i}#{$suffix} {
+ width: $unit * $i;
+ }
+
+ > .off-#{$i}#{$suffix} {
+ margin-left: $unit * $i;
+ }
+ }
+
+ // Step through multipliers.
+ @each $multiplier in $multipliers {
+
+ // Gutters.
+ $class: null;
+
+ @if ($multiplier != 1) {
+ $class: '.gtr-' + ($multiplier * 100);
+ }
+
+ {$class} {
+ margin-top: ($guttersRows * $multiplier * -1);
+ margin-left: ($guttersCols * $multiplier * -1);
+
+ > * {
+ padding: ($guttersRows * $multiplier) 0 0 ($guttersCols * $multiplier);
+ }
+
+ // Uniform.
+ &.gtr-uniform {
+ margin-top: $guttersCols * $multiplier * -1;
+
+ > * {
+ padding-top: $guttersCols * $multiplier;
+ }
+ }
+
+ }
+
+ }
+
+ }
+
+ }
\ No newline at end of file
diff --git a/assets/sass/libs/_mixins.scss b/assets/sass/libs/_mixins.scss
index f9f5523..a331483 100644
--- a/assets/sass/libs/_mixins.scss
+++ b/assets/sass/libs/_mixins.scss
@@ -1,7 +1,8 @@
/// Makes an element's :before pseudoelement a FontAwesome icon.
/// @param {string} $content Optional content value to use.
+/// @param {string} $category Optional category to use.
/// @param {string} $where Optional pseudoelement to target (before or after).
-@mixin icon($content: false, $where: before) {
+@mixin icon($content: false, $category: regular, $where: before) {
text-decoration: none;
@@ -13,11 +14,25 @@
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
- font-family: FontAwesome;
+ display: inline-block;
font-style: normal;
- font-weight: normal;
+ font-variant: normal;
+ text-rendering: auto;
+ line-height: 1;
text-transform: none !important;
+ @if ($category == brands) {
+ font-family: 'Font Awesome 5 Brands';
+ }
+ @elseif ($category == solid) {
+ font-family: 'Font Awesome 5 Free';
+ font-weight: 900;
+ }
+ @else {
+ font-family: 'Font Awesome 5 Free';
+ font-weight: 400;
+ }
+
}
}
@@ -49,6 +64,7 @@
@function svg-url($svg) {
$svg: str-replace($svg, '"', '\'');
+ $svg: str-replace($svg, '%', '%25');
$svg: str-replace($svg, '<', '%3C');
$svg: str-replace($svg, '>', '%3E');
$svg: str-replace($svg, '&', '%26');
diff --git a/assets/sass/libs/_skel.scss b/assets/sass/libs/_skel.scss
deleted file mode 100644
index f5e0dcd..0000000
--- a/assets/sass/libs/_skel.scss
+++ /dev/null
@@ -1,587 +0,0 @@
-// skel.scss v3.0.2-dev | (c) skel.io | MIT licensed */
-
-// Vars.
-
- /// Breakpoints.
- /// @var {list}
- $breakpoints: () !global;
-
- /// Vendor prefixes.
- /// @var {list}
- $vendor-prefixes: (
- '-moz-',
- '-webkit-',
- '-ms-',
- ''
- );
-
- /// Properties that should be vendorized.
- /// @var {list}
- $vendor-properties: (
- 'align-content',
- 'align-items',
- 'align-self',
- 'animation',
- 'animation-delay',
- 'animation-direction',
- 'animation-duration',
- 'animation-fill-mode',
- 'animation-iteration-count',
- 'animation-name',
- 'animation-play-state',
- 'animation-timing-function',
- 'appearance',
- 'backface-visibility',
- 'box-sizing',
- 'filter',
- 'flex',
- 'flex-basis',
- 'flex-direction',
- 'flex-flow',
- 'flex-grow',
- 'flex-shrink',
- 'flex-wrap',
- 'justify-content',
- 'object-fit',
- 'object-position',
- 'order',
- 'perspective',
- 'pointer-events',
- 'transform',
- 'transform-origin',
- 'transform-style',
- 'transition',
- 'transition-delay',
- 'transition-duration',
- 'transition-property',
- 'transition-timing-function',
- 'user-select'
- );
-
- /// Values that should be vendorized.
- /// @var {list}
- $vendor-values: (
- 'filter',
- 'flex',
- 'linear-gradient',
- 'radial-gradient',
- 'transform'
- );
-
-// Functions.
-
- /// Removes a specific item from a list.
- /// @author Hugo Giraudel
- /// @param {list} $list List.
- /// @param {integer} $index Index.
- /// @return {list} Updated list.
- @function remove-nth($list, $index) {
-
- $result: null;
-
- @if type-of($index) != number {
- @warn "$index: #{quote($index)} is not a number for `remove-nth`.";
- }
- @else if $index == 0 {
- @warn "List index 0 must be a non-zero integer for `remove-nth`.";
- }
- @else if abs($index) > length($list) {
- @warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`.";
- }
- @else {
-
- $result: ();
- $index: if($index < 0, length($list) + $index + 1, $index);
-
- @for $i from 1 through length($list) {
-
- @if $i != $index {
- $result: append($result, nth($list, $i));
- }
-
- }
-
- }
-
- @return $result;
-
- }
-
- /// Replaces a substring within another string.
- /// @author Hugo Giraudel
- /// @param {string} $string String.
- /// @param {string} $search Substring.
- /// @param {string} $replace Replacement.
- /// @return {string} Updated string.
- @function str-replace($string, $search, $replace: '') {
-
- $index: str-index($string, $search);
-
- @if $index {
- @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
- }
-
- @return $string;
-
- }
-
- /// Replaces a substring within each string in a list.
- /// @param {list} $strings List of strings.
- /// @param {string} $search Substring.
- /// @param {string} $replace Replacement.
- /// @return {list} Updated list of strings.
- @function str-replace-all($strings, $search, $replace: '') {
-
- @each $string in $strings {
- $strings: set-nth($strings, index($strings, $string), str-replace($string, $search, $replace));
- }
-
- @return $strings;
-
- }
-
- /// Gets a value from a map.
- /// @author Hugo Giraudel
- /// @param {map} $map Map.
- /// @param {string} $keys Key(s).
- /// @return {string} Value.
- @function val($map, $keys...) {
-
- @if nth($keys, 1) == null {
- $keys: remove-nth($keys, 1);
- }
-
- @each $key in $keys {
- $map: map-get($map, $key);
- }
-
- @return $map;
-
- }
-
-// Mixins.
-
- /// Sets the global box model.
- /// @param {string} $model Model (default is content).
- @mixin boxModel($model: 'content') {
-
- $x: $model + '-box';
-
- *, *:before, *:after {
- -moz-box-sizing: #{$x};
- -webkit-box-sizing: #{$x};
- box-sizing: #{$x};
- }
-
- }
-
- /// Wraps @content in a @media block using a given breakpoint.
- /// @param {string} $breakpoint Breakpoint.
- /// @param {map} $queries Additional queries.
- @mixin breakpoint($breakpoint: null, $queries: null) {
-
- $query: 'screen';
-
- // Breakpoint.
- @if $breakpoint and map-has-key($breakpoints, $breakpoint) {
- $query: $query + ' and ' + map-get($breakpoints, $breakpoint);
- }
-
- // Queries.
- @if $queries {
- @each $k, $v in $queries {
- $query: $query + ' and (' + $k + ':' + $v + ')';
- }
- }
-
- @media #{$query} {
- @content;
- }
-
- }
-
- /// Wraps @content in a @media block targeting a specific orientation.
- /// @param {string} $orientation Orientation.
- @mixin orientation($orientation) {
- @media screen and (orientation: #{$orientation}) {
- @content;
- }
- }
-
- /// Utility mixin for containers.
- /// @param {mixed} $width Width.
- @mixin containers($width) {
-
- // Locked?
- $lock: false;
-
- @if length($width) == 2 {
- $width: nth($width, 1);
- $lock: true;
- }
-
- // Modifiers.
- .container.\31 25\25 { width: 100%; max-width: $width * 1.25; min-width: $width; }
- .container.\37 5\25 { width: $width * 0.75; }
- .container.\35 0\25 { width: $width * 0.5; }
- .container.\32 5\25 { width: $width * 0.25; }
-
- // Main class.
- .container {
- @if $lock {
- width: $width !important;
- }
- @else {
- width: $width;
- }
- }
-
- }
-
- /// Utility mixin for grid.
- /// @param {list} $gutters Column and row gutters (default is 40px).
- /// @param {string} $breakpointName Optional breakpoint name.
- @mixin grid($gutters: 40px, $breakpointName: null) {
-
- // Gutters.
- @include grid-gutters($gutters);
- @include grid-gutters($gutters, \32 00\25, 2);
- @include grid-gutters($gutters, \31 50\25, 1.5);
- @include grid-gutters($gutters, \35 0\25, 0.5);
- @include grid-gutters($gutters, \32 5\25, 0.25);
-
- // Cells.
- $x: '';
-
- @if $breakpointName {
- $x: '\\28' + $breakpointName + '\\29';
- }
-
- .\31 2u#{$x}, .\31 2u\24#{$x} { width: 100%; clear: none; margin-left: 0; }
- .\31 1u#{$x}, .\31 1u\24#{$x} { width: 91.6666666667%; clear: none; margin-left: 0; }
- .\31 0u#{$x}, .\31 0u\24#{$x} { width: 83.3333333333%; clear: none; margin-left: 0; }
- .\39 u#{$x}, .\39 u\24#{$x} { width: 75%; clear: none; margin-left: 0; }
- .\38 u#{$x}, .\38 u\24#{$x} { width: 66.6666666667%; clear: none; margin-left: 0; }
- .\37 u#{$x}, .\37 u\24#{$x} { width: 58.3333333333%; clear: none; margin-left: 0; }
- .\36 u#{$x}, .\36 u\24#{$x} { width: 50%; clear: none; margin-left: 0; }
- .\35 u#{$x}, .\35 u\24#{$x} { width: 41.6666666667%; clear: none; margin-left: 0; }
- .\34 u#{$x}, .\34 u\24#{$x} { width: 33.3333333333%; clear: none; margin-left: 0; }
- .\33 u#{$x}, .\33 u\24#{$x} { width: 25%; clear: none; margin-left: 0; }
- .\32 u#{$x}, .\32 u\24#{$x} { width: 16.6666666667%; clear: none; margin-left: 0; }
- .\31 u#{$x}, .\31 u\24#{$x} { width: 8.3333333333%; clear: none; margin-left: 0; }
-
- .\31 2u\24#{$x} + *,
- .\31 1u\24#{$x} + *,
- .\31 0u\24#{$x} + *,
- .\39 u\24#{$x} + *,
- .\38 u\24#{$x} + *,
- .\37 u\24#{$x} + *,
- .\36 u\24#{$x} + *,
- .\35 u\24#{$x} + *,
- .\34 u\24#{$x} + *,
- .\33 u\24#{$x} + *,
- .\32 u\24#{$x} + *,
- .\31 u\24#{$x} + * {
- clear: left;
- }
-
- .\-11u#{$x} { margin-left: 91.6666666667% }
- .\-10u#{$x} { margin-left: 83.3333333333% }
- .\-9u#{$x} { margin-left: 75% }
- .\-8u#{$x} { margin-left: 66.6666666667% }
- .\-7u#{$x} { margin-left: 58.3333333333% }
- .\-6u#{$x} { margin-left: 50% }
- .\-5u#{$x} { margin-left: 41.6666666667% }
- .\-4u#{$x} { margin-left: 33.3333333333% }
- .\-3u#{$x} { margin-left: 25% }
- .\-2u#{$x} { margin-left: 16.6666666667% }
- .\-1u#{$x} { margin-left: 8.3333333333% }
-
- }
-
- /// Utility mixin for grid.
- /// @param {list} $gutters Gutters.
- /// @param {string} $class Optional class name.
- /// @param {integer} $multiplier Multiplier (default is 1).
- @mixin grid-gutters($gutters, $class: null, $multiplier: 1) {
-
- // Expand gutters if it's not a list.
- @if length($gutters) == 1 {
- $gutters: ($gutters, 0);
- }
-
- // Get column and row gutter values.
- $c: nth($gutters, 1);
- $r: nth($gutters, 2);
-
- // Get class (if provided).
- $x: '';
-
- @if $class {
- $x: '.' + $class;
- }
-
- // Default.
- .row#{$x} > * { padding: ($r * $multiplier) 0 0 ($c * $multiplier); }
- .row#{$x} { margin: ($r * $multiplier * -1) 0 -1px ($c * $multiplier * -1); }
-
- // Uniform.
- .row.uniform#{$x} > * { padding: ($c * $multiplier) 0 0 ($c * $multiplier); }
- .row.uniform#{$x} { margin: ($c * $multiplier * -1) 0 -1px ($c * $multiplier * -1); }
-
- }
-
- /// Wraps @content in vendorized keyframe blocks.
- /// @param {string} $name Name.
- @mixin keyframes($name) {
-
- @-moz-keyframes #{$name} { @content; }
- @-webkit-keyframes #{$name} { @content; }
- @-ms-keyframes #{$name} { @content; }
- @keyframes #{$name} { @content; }
-
- }
-
- ///
- /// Sets breakpoints.
- /// @param {map} $x Breakpoints.
- ///
- @mixin skel-breakpoints($x: ()) {
- $breakpoints: $x !global;
- }
-
- ///
- /// Initializes layout module.
- /// @param {map} config Config.
- ///
- @mixin skel-layout($config: ()) {
-
- // Config.
- $configPerBreakpoint: ();
-
- $z: map-get($config, 'breakpoints');
-
- @if $z {
- $configPerBreakpoint: $z;
- }
-
- // Reset.
- $x: map-get($config, 'reset');
-
- @if $x {
-
- /* Reset */
-
- @include reset($x);
-
- }
-
- // Box model.
- $x: map-get($config, 'boxModel');
-
- @if $x {
-
- /* Box Model */
-
- @include boxModel($x);
-
- }
-
- // Containers.
- $containers: map-get($config, 'containers');
-
- @if $containers {
-
- /* Containers */
-
- .container {
- margin-left: auto;
- margin-right: auto;
- }
-
- // Use default is $containers is just "true".
- @if $containers == true {
- $containers: 960px;
- }
-
- // Apply base.
- @include containers($containers);
-
- // Apply per-breakpoint.
- @each $name in map-keys($breakpoints) {
-
- // Get/use breakpoint setting if it exists.
- $x: map-get($configPerBreakpoint, $name);
-
- // Per-breakpoint config exists?
- @if $x {
- $y: map-get($x, 'containers');
-
- // Setting exists? Use it.
- @if $y {
- $containers: $y;
- }
-
- }
-
- // Create @media block.
- @media screen and #{map-get($breakpoints, $name)} {
- @include containers($containers);
- }
-
- }
-
- }
-
- // Grid.
- $grid: map-get($config, 'grid');
-
- @if $grid {
-
- /* Grid */
-
- // Use defaults if $grid is just "true".
- @if $grid == true {
- $grid: ();
- }
-
- // Sub-setting: Gutters.
- $grid-gutters: 40px;
- $x: map-get($grid, 'gutters');
-
- @if $x {
- $grid-gutters: $x;
- }
-
- // Rows.
- .row {
- border-bottom: solid 1px transparent;
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- }
-
- .row > * {
- float: left;
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- }
-
- .row:after, .row:before {
- content: '';
- display: block;
- clear: both;
- height: 0;
- }
-
- .row.uniform > * > :first-child {
- margin-top: 0;
- }
-
- .row.uniform > * > :last-child {
- margin-bottom: 0;
- }
-
- // Gutters (0%).
- @include grid-gutters($grid-gutters, \30 \25, 0);
-
- // Apply base.
- @include grid($grid-gutters);
-
- // Apply per-breakpoint.
- @each $name in map-keys($breakpoints) {
-
- // Get/use breakpoint setting if it exists.
- $x: map-get($configPerBreakpoint, $name);
-
- // Per-breakpoint config exists?
- @if $x {
- $y: map-get($x, 'grid');
-
- // Setting exists?
- @if $y {
-
- // Sub-setting: Gutters.
- $x: map-get($y, 'gutters');
-
- @if $x {
- $grid-gutters: $x;
- }
-
- }
-
- }
-
- // Create @media block.
- @media screen and #{map-get($breakpoints, $name)} {
- @include grid($grid-gutters, $name);
- }
-
- }
-
- }
-
- }
-
- /// Resets browser styles.
- /// @param {string} $mode Mode (default is 'normalize').
- @mixin reset($mode: 'normalize') {
-
- @if $mode == 'normalize' {
-
- // normalize.css v3.0.2 | MIT License | git.io/normalize
- html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}
-
- }
- @else if $mode == 'full' {
-
- // meyerweb.com/eric/tools/css/reset v2.0 | 20110126 | License: none (public domain)
- html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block;}body{line-height:1;}ol,ul{list-style:none;}blockquote,q{quotes:none;}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none;}table{border-collapse:collapse;border-spacing:0;}body{-webkit-text-size-adjust:none}
-
- }
-
- }
-
- /// Vendorizes a declaration's property and/or value(s).
- /// @param {string} $property Property.
- /// @param {mixed} $value String/list of value(s).
- @mixin vendor($property, $value) {
-
- // Determine if property should expand.
- $expandProperty: index($vendor-properties, $property);
-
- // Determine if value should expand (and if so, add '-prefix-' placeholder).
- $expandValue: false;
-
- @each $x in $value {
- @each $y in $vendor-values {
- @if $y == str-slice($x, 1, str-length($y)) {
-
- $value: set-nth($value, index($value, $x), '-prefix-' + $x);
- $expandValue: true;
-
- }
- }
- }
-
- // Expand property?
- @if $expandProperty {
- @each $vendor in $vendor-prefixes {
- #{$vendor}#{$property}: #{str-replace-all($value, '-prefix-', $vendor)};
- }
- }
-
- // Expand just the value?
- @elseif $expandValue {
- @each $vendor in $vendor-prefixes {
- #{$property}: #{str-replace-all($value, '-prefix-', $vendor)};
- }
- }
-
- // Neither? Treat them as a normal declaration.
- @else {
- #{$property}: #{$value};
- }
-
- }
\ No newline at end of file
diff --git a/assets/sass/libs/_vendor.scss b/assets/sass/libs/_vendor.scss
new file mode 100644
index 0000000..6599a3f
--- /dev/null
+++ b/assets/sass/libs/_vendor.scss
@@ -0,0 +1,376 @@
+// vendor.scss v1.0 | @ajlkn | MIT licensed */
+
+// Vars.
+
+ /// Vendor prefixes.
+ /// @var {list}
+ $vendor-prefixes: (
+ '-moz-',
+ '-webkit-',
+ '-ms-',
+ ''
+ );
+
+ /// Properties that should be vendorized.
+ /// Data via caniuse.com, github.com/postcss/autoprefixer, and developer.mozilla.org
+ /// @var {list}
+ $vendor-properties: (
+
+ // Animation.
+ 'animation',
+ 'animation-delay',
+ 'animation-direction',
+ 'animation-duration',
+ 'animation-fill-mode',
+ 'animation-iteration-count',
+ 'animation-name',
+ 'animation-play-state',
+ 'animation-timing-function',
+
+ // Appearance.
+ 'appearance',
+
+ // Backdrop filter.
+ 'backdrop-filter',
+
+ // Background image options.
+ 'background-clip',
+ 'background-origin',
+ 'background-size',
+
+ // Box sizing.
+ 'box-sizing',
+
+ // Clip path.
+ 'clip-path',
+
+ // Filter effects.
+ 'filter',
+
+ // Flexbox.
+ 'align-content',
+ 'align-items',
+ 'align-self',
+ 'flex',
+ 'flex-basis',
+ 'flex-direction',
+ 'flex-flow',
+ 'flex-grow',
+ 'flex-shrink',
+ 'flex-wrap',
+ 'justify-content',
+ 'order',
+
+ // Font feature.
+ 'font-feature-settings',
+ 'font-language-override',
+ 'font-variant-ligatures',
+
+ // Font kerning.
+ 'font-kerning',
+
+ // Fragmented borders and backgrounds.
+ 'box-decoration-break',
+
+ // Grid layout.
+ 'grid-column',
+ 'grid-column-align',
+ 'grid-column-end',
+ 'grid-column-start',
+ 'grid-row',
+ 'grid-row-align',
+ 'grid-row-end',
+ 'grid-row-start',
+ 'grid-template-columns',
+ 'grid-template-rows',
+
+ // Hyphens.
+ 'hyphens',
+ 'word-break',
+
+ // Masks.
+ 'mask',
+ 'mask-border',
+ 'mask-border-outset',
+ 'mask-border-repeat',
+ 'mask-border-slice',
+ 'mask-border-source',
+ 'mask-border-width',
+ 'mask-clip',
+ 'mask-composite',
+ 'mask-image',
+ 'mask-origin',
+ 'mask-position',
+ 'mask-repeat',
+ 'mask-size',
+
+ // Multicolumn.
+ 'break-after',
+ 'break-before',
+ 'break-inside',
+ 'column-count',
+ 'column-fill',
+ 'column-gap',
+ 'column-rule',
+ 'column-rule-color',
+ 'column-rule-style',
+ 'column-rule-width',
+ 'column-span',
+ 'column-width',
+ 'columns',
+
+ // Object fit.
+ 'object-fit',
+ 'object-position',
+
+ // Regions.
+ 'flow-from',
+ 'flow-into',
+ 'region-fragment',
+
+ // Scroll snap points.
+ 'scroll-snap-coordinate',
+ 'scroll-snap-destination',
+ 'scroll-snap-points-x',
+ 'scroll-snap-points-y',
+ 'scroll-snap-type',
+
+ // Shapes.
+ 'shape-image-threshold',
+ 'shape-margin',
+ 'shape-outside',
+
+ // Tab size.
+ 'tab-size',
+
+ // Text align last.
+ 'text-align-last',
+
+ // Text decoration.
+ 'text-decoration-color',
+ 'text-decoration-line',
+ 'text-decoration-skip',
+ 'text-decoration-style',
+
+ // Text emphasis.
+ 'text-emphasis',
+ 'text-emphasis-color',
+ 'text-emphasis-position',
+ 'text-emphasis-style',
+
+ // Text size adjust.
+ 'text-size-adjust',
+
+ // Text spacing.
+ 'text-spacing',
+
+ // Transform.
+ 'transform',
+ 'transform-origin',
+
+ // Transform 3D.
+ 'backface-visibility',
+ 'perspective',
+ 'perspective-origin',
+ 'transform-style',
+
+ // Transition.
+ 'transition',
+ 'transition-delay',
+ 'transition-duration',
+ 'transition-property',
+ 'transition-timing-function',
+
+ // Unicode bidi.
+ 'unicode-bidi',
+
+ // User select.
+ 'user-select',
+
+ // Writing mode.
+ 'writing-mode',
+
+ );
+
+ /// Values that should be vendorized.
+ /// Data via caniuse.com, github.com/postcss/autoprefixer, and developer.mozilla.org
+ /// @var {list}
+ $vendor-values: (
+
+ // Cross fade.
+ 'cross-fade',
+
+ // Element function.
+ 'element',
+
+ // Filter function.
+ 'filter',
+
+ // Flexbox.
+ 'flex',
+ 'inline-flex',
+
+ // Grab cursors.
+ 'grab',
+ 'grabbing',
+
+ // Gradients.
+ 'linear-gradient',
+ 'repeating-linear-gradient',
+ 'radial-gradient',
+ 'repeating-radial-gradient',
+
+ // Grid layout.
+ 'grid',
+ 'inline-grid',
+
+ // Image set.
+ 'image-set',
+
+ // Intrinsic width.
+ 'max-content',
+ 'min-content',
+ 'fit-content',
+ 'fill',
+ 'fill-available',
+ 'stretch',
+
+ // Sticky position.
+ 'sticky',
+
+ // Transform.
+ 'transform',
+
+ // Zoom cursors.
+ 'zoom-in',
+ 'zoom-out',
+
+ );
+
+// Functions.
+
+ /// Removes a specific item from a list.
+ /// @author Hugo Giraudel
+ /// @param {list} $list List.
+ /// @param {integer} $index Index.
+ /// @return {list} Updated list.
+ @function remove-nth($list, $index) {
+
+ $result: null;
+
+ @if type-of($index) != number {
+ @warn "$index: #{quote($index)} is not a number for `remove-nth`.";
+ }
+ @else if $index == 0 {
+ @warn "List index 0 must be a non-zero integer for `remove-nth`.";
+ }
+ @else if abs($index) > length($list) {
+ @warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`.";
+ }
+ @else {
+
+ $result: ();
+ $index: if($index < 0, length($list) + $index + 1, $index);
+
+ @for $i from 1 through length($list) {
+
+ @if $i != $index {
+ $result: append($result, nth($list, $i));
+ }
+
+ }
+
+ }
+
+ @return $result;
+
+ }
+
+ /// Replaces a substring within another string.
+ /// @author Hugo Giraudel
+ /// @param {string} $string String.
+ /// @param {string} $search Substring.
+ /// @param {string} $replace Replacement.
+ /// @return {string} Updated string.
+ @function str-replace($string, $search, $replace: '') {
+
+ $index: str-index($string, $search);
+
+ @if $index {
+ @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
+ }
+
+ @return $string;
+
+ }
+
+ /// Replaces a substring within each string in a list.
+ /// @param {list} $strings List of strings.
+ /// @param {string} $search Substring.
+ /// @param {string} $replace Replacement.
+ /// @return {list} Updated list of strings.
+ @function str-replace-all($strings, $search, $replace: '') {
+
+ @each $string in $strings {
+ $strings: set-nth($strings, index($strings, $string), str-replace($string, $search, $replace));
+ }
+
+ @return $strings;
+
+ }
+
+// Mixins.
+
+ /// Wraps @content in vendorized keyframe blocks.
+ /// @param {string} $name Name.
+ @mixin keyframes($name) {
+
+ @-moz-keyframes #{$name} { @content; }
+ @-webkit-keyframes #{$name} { @content; }
+ @-ms-keyframes #{$name} { @content; }
+ @keyframes #{$name} { @content; }
+
+ }
+
+ /// Vendorizes a declaration's property and/or value(s).
+ /// @param {string} $property Property.
+ /// @param {mixed} $value String/list of value(s).
+ @mixin vendor($property, $value) {
+
+ // Determine if property should expand.
+ $expandProperty: index($vendor-properties, $property);
+
+ // Determine if value should expand (and if so, add '-prefix-' placeholder).
+ $expandValue: false;
+
+ @each $x in $value {
+ @each $y in $vendor-values {
+ @if $y == str-slice($x, 1, str-length($y)) {
+
+ $value: set-nth($value, index($value, $x), '-prefix-' + $x);
+ $expandValue: true;
+
+ }
+ }
+ }
+
+ // Expand property?
+ @if $expandProperty {
+ @each $vendor in $vendor-prefixes {
+ #{$vendor}#{$property}: #{str-replace-all($value, '-prefix-', $vendor)};
+ }
+ }
+
+ // Expand just the value?
+ @elseif $expandValue {
+ @each $vendor in $vendor-prefixes {
+ #{$property}: #{str-replace-all($value, '-prefix-', $vendor)};
+ }
+ }
+
+ // Neither? Treat them as a normal declaration.
+ @else {
+ #{$property}: #{$value};
+ }
+
+ }
\ No newline at end of file
diff --git a/assets/sass/main.scss b/assets/sass/main.scss
index 96b2df1..d62cc44 100644
--- a/assets/sass/main.scss
+++ b/assets/sass/main.scss
@@ -1,8 +1,10 @@
@import 'libs/vars';
@import 'libs/functions';
@import 'libs/mixins';
-@import 'libs/skel';
-@import 'font-awesome.min.css';
+@import 'libs/vendor';
+@import 'libs/breakpoints';
+@import 'libs/html-grid';
+@import 'fontawesome-all.min.css';
@import url('https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,300i,400,400i');
/*
@@ -11,20 +13,18 @@
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
*/
- @include skel-breakpoints((
- xlarge: '(max-width: 1680px)',
- large: '(max-width: 1280px)',
- medium: '(max-width: 980px)',
- small: '(max-width: 736px)',
- xsmall: '(max-width: 480px)',
- xxsmall: '(max-width: 360px)'
+// Breakpoints.
+
+ @include breakpoints((
+ xlarge: ( 1281px, 1680px ),
+ large: ( 981px, 1280px ),
+ medium: ( 737px, 980px ),
+ small: ( 481px, 736px ),
+ xsmall: ( 361px, 480px ),
+ xxsmall: ( null, 360px )
));
- @include skel-layout((
- reset: 'full',
- boxModel: 'border',
- grid: ( gutters: 2rem )
- ));
+// Mixins.
@mixin color($p) {
@include color-typography($p);
@@ -42,6 +42,8 @@
@include color-index($p);
}
+// Phone.
+
@mixin phone($image-width) {
@include vendor('flex-grow', '0');
@include vendor('flex-shrink', '0');
@@ -154,17 +156,21 @@
// Base.
+ @import 'base/reset';
@import 'base/page';
@import 'base/typography';
// Component.
+ @import 'components/row';
@import 'components/box';
@import 'components/button';
@import 'components/form';
@import 'components/icon';
@import 'components/image';
@import 'components/list';
+ @import 'components/actions';
+ @import 'components/icons';
@import 'components/section';
@import 'components/table';
@import 'components/banner';
diff --git a/assets/sass/noscript.scss b/assets/sass/noscript.scss
new file mode 100644
index 0000000..0f1e1c0
--- /dev/null
+++ b/assets/sass/noscript.scss
@@ -0,0 +1,207 @@
+@import 'libs/vars';
+@import 'libs/functions';
+@import 'libs/mixins';
+@import 'libs/vendor';
+@import 'libs/breakpoints';
+@import 'libs/html-grid';
+
+/*
+ Story by HTML5 UP
+ html5up.net | @ajlkn
+ Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
+*/
+
+/* Banner (transitions) */
+
+ .banner {
+
+ // Mixin.
+ @mixin transition-banner($event) {
+ $x: null;
+ $y: null;
+
+ @if ($event == 'load') {
+ $x: 'body.is-preload &';
+ $y: _duration(on-load);
+ }
+ @else if ($event == 'scroll') {
+ $x: '&.is-inactive';
+ $y: _duration(on-scroll);
+ }
+
+ // Content.
+ &.on#{$event}-content-fade-up {
+ .content {
+ @include vendor('transition', 'none');
+ }
+
+ #{$x} {
+ .content {
+ @include vendor('transform', 'none');
+ opacity: 1;
+ }
+ }
+ }
+
+ &.on#{$event}-content-fade-down {
+ .content {
+ @include vendor('transition', 'none');
+ }
+
+ #{$x} {
+ .content {
+ @include vendor('transform', 'none');
+ opacity: 1;
+ }
+ }
+ }
+
+ &.on#{$event}-content-fade-left {
+ .content {
+ @include vendor('transition', 'none');
+ }
+
+ #{$x} {
+ .content {
+ @include vendor('transform', 'none');
+ opacity: 1;
+ }
+ }
+ }
+
+ &.on#{$event}-content-fade-right {
+ .content {
+ @include vendor('transition', 'none');
+ }
+
+ #{$x} {
+ .content {
+ @include vendor('transform', 'none');
+ opacity: 1;
+ }
+ }
+ }
+
+ &.on#{$event}-content-fade-in {
+ .content {
+ @include vendor('transition', 'none');
+ }
+
+ #{$x} {
+ .content {
+ @include vendor('transform', 'none');
+ opacity: 1;
+ }
+ }
+ }
+
+ // Image.
+ &.on#{$event}-image-fade-up {
+ .image {
+ @include vendor('transition', 'none');
+
+ img {
+ @include vendor('transition', 'none');
+ }
+ }
+
+ #{$x} {
+ .image {
+ @include vendor('transform', 'none');
+ opacity: 1;
+
+ img {
+ opacity: 1;
+ }
+ }
+ }
+ }
+
+ &.on#{$event}-image-fade-down {
+ .image {
+ @include vendor('transition', 'none');
+
+ img {
+ @include vendor('transition', 'none');
+ }
+ }
+
+ #{$x} {
+ .image {
+ @include vendor('transform', 'none');
+ opacity: 1;
+
+ img {
+ opacity: 1;
+ }
+ }
+ }
+ }
+
+ &.on#{$event}-image-fade-left {
+ .image {
+ @include vendor('transition', 'none');
+
+ img {
+ @include vendor('transition', 'none');
+ }
+ }
+
+ #{$x} {
+ .image {
+ @include vendor('transform', 'none');
+ opacity: 1;
+
+ img {
+ opacity: 1;
+ }
+ }
+ }
+ }
+
+ &.on#{$event}-image-fade-right {
+ .image {
+ @include vendor('transition', 'none');
+
+ img {
+ @include vendor('transition', 'none');
+ }
+ }
+
+ #{$x} {
+ .image {
+ @include vendor('transform', 'none');
+ opacity: 1;
+
+ img {
+ opacity: 1;
+ }
+ }
+ }
+ }
+
+ &.on#{$event}-image-fade-in {
+ .image {
+ img {
+ @include vendor('transition', 'none');
+ }
+ }
+
+ #{$x} {
+ .image {
+ img {
+ opacity: 1;
+ }
+ }
+ }
+ }
+
+ }
+
+ // On Load.
+ @include transition-banner('load');
+
+ // On Scroll.
+ @include transition-banner('scroll');
+
+ }
\ No newline at end of file
diff --git a/assets/webfonts/fa-brands-400.eot b/assets/webfonts/fa-brands-400.eot
new file mode 100644
index 0000000..cba6c6c
Binary files /dev/null and b/assets/webfonts/fa-brands-400.eot differ
diff --git a/assets/webfonts/fa-brands-400.svg b/assets/webfonts/fa-brands-400.svg
new file mode 100644
index 0000000..b9881a4
--- /dev/null
+++ b/assets/webfonts/fa-brands-400.svg
@@ -0,0 +1,3717 @@
+
+
+
+
+Created by FontForge 20201107 at Wed Aug 4 12:25:29 2021
+ By Robert Madole
+Copyright (c) Font Awesome
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/webfonts/fa-brands-400.ttf b/assets/webfonts/fa-brands-400.ttf
new file mode 100644
index 0000000..8d75ded
Binary files /dev/null and b/assets/webfonts/fa-brands-400.ttf differ
diff --git a/assets/webfonts/fa-brands-400.woff b/assets/webfonts/fa-brands-400.woff
new file mode 100644
index 0000000..3375bef
Binary files /dev/null and b/assets/webfonts/fa-brands-400.woff differ
diff --git a/assets/webfonts/fa-brands-400.woff2 b/assets/webfonts/fa-brands-400.woff2
new file mode 100644
index 0000000..402f81c
Binary files /dev/null and b/assets/webfonts/fa-brands-400.woff2 differ
diff --git a/assets/webfonts/fa-regular-400.eot b/assets/webfonts/fa-regular-400.eot
new file mode 100644
index 0000000..a4e5989
Binary files /dev/null and b/assets/webfonts/fa-regular-400.eot differ
diff --git a/assets/webfonts/fa-regular-400.svg b/assets/webfonts/fa-regular-400.svg
new file mode 100644
index 0000000..463af27
--- /dev/null
+++ b/assets/webfonts/fa-regular-400.svg
@@ -0,0 +1,801 @@
+
+
+
+
+Created by FontForge 20201107 at Wed Aug 4 12:25:29 2021
+ By Robert Madole
+Copyright (c) Font Awesome
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/webfonts/fa-regular-400.ttf b/assets/webfonts/fa-regular-400.ttf
new file mode 100644
index 0000000..7157aaf
Binary files /dev/null and b/assets/webfonts/fa-regular-400.ttf differ
diff --git a/assets/webfonts/fa-regular-400.woff b/assets/webfonts/fa-regular-400.woff
new file mode 100644
index 0000000..ad077c6
Binary files /dev/null and b/assets/webfonts/fa-regular-400.woff differ
diff --git a/assets/webfonts/fa-regular-400.woff2 b/assets/webfonts/fa-regular-400.woff2
new file mode 100644
index 0000000..5632894
Binary files /dev/null and b/assets/webfonts/fa-regular-400.woff2 differ
diff --git a/assets/webfonts/fa-solid-900.eot b/assets/webfonts/fa-solid-900.eot
new file mode 100644
index 0000000..e994171
Binary files /dev/null and b/assets/webfonts/fa-solid-900.eot differ
diff --git a/assets/webfonts/fa-solid-900.svg b/assets/webfonts/fa-solid-900.svg
new file mode 100644
index 0000000..00296e9
--- /dev/null
+++ b/assets/webfonts/fa-solid-900.svg
@@ -0,0 +1,5034 @@
+
+
+
+
+Created by FontForge 20201107 at Wed Aug 4 12:25:29 2021
+ By Robert Madole
+Copyright (c) Font Awesome
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/webfonts/fa-solid-900.ttf b/assets/webfonts/fa-solid-900.ttf
new file mode 100644
index 0000000..25abf38
Binary files /dev/null and b/assets/webfonts/fa-solid-900.ttf differ
diff --git a/assets/webfonts/fa-solid-900.woff b/assets/webfonts/fa-solid-900.woff
new file mode 100644
index 0000000..23ee663
Binary files /dev/null and b/assets/webfonts/fa-solid-900.woff differ
diff --git a/assets/webfonts/fa-solid-900.woff2 b/assets/webfonts/fa-solid-900.woff2
new file mode 100644
index 0000000..2217164
Binary files /dev/null and b/assets/webfonts/fa-solid-900.woff2 differ
diff --git a/binary.html b/binary.html
index 5961aa4..010fdc6 100644
--- a/binary.html
+++ b/binary.html
@@ -8,40 +8,41 @@
The Computer's Identity - Binary Version
-
+
+
-
+
-
-
-
The Computer's Identity
-
Binary Version
+
+
+
The Computer's Identity
+
Binary Version
Binary describes a numbering scheme in which there are only two possible values for each digit: 0 and 1. The term also refers to any digital encoding/decoding system in which there are exactly two possible states. In digital data memory, storage, processing, and communications, the 0 and 1 values are sometimes called "low" and "high," respectively.A bit (short for binary digit) is the smallest unit of data on a computer; each bit has a single value of either 1 or 0. Executable (ready-to-run) programs are often identified as binary files and given a file name extension of ".bin.” Programmers often call executable files binaries.
-
Language Selection
-
Please select the language you would like to read in.
-
-
-
-
-
-
+
Language Selection
+
Please select the language you would like to read in.
+
+
+
+
+
+
-
-
-
-
01010100 01101000 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100101 01110010 00100111 01110011 00100000 01001001 01100100 01100101 01101110 01110100 01101001 01110100 01111001
+
+
+
+
01010100 01101000 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100101 01110010 00100111 01110011 00100000 01001001 01100100 01100101 01101110 01110100 01101001 01110100 01111001
01000100 01100001 01110110 01101001 01100100 00100000 01101001 01110011 00100000 01110100 01101000 01100101 00100000 01100010 01101001 01100111 01100111 01100101 01110010 00100000 01101111 01100110 00100000 01110100 01101000 01100101 00100000 01110100 01110111 01101111 00101100 00001010 01000001 01101110 01100100 00100000 01101001 01110011 00100000 01110100 01101000 01100101 00100000 01101100 01100101 01110011 01110011 00100000 01110000 01101111 01110111 01100101 01110010 01100110 01110101 01101100 00100000 01101111 01101110 01100101 00101100 00001010 01000111 01101111 01101100 01101001 01100001 01110100 01101000 00100111 01110011 00100000 01101001 01100100 01100101 01101110 01110100 01101001 01110100 01111001 00100000 01100011 01101000 01100001 01101110 01100111 01100101 01110011 00100000 01101111 01101110 00100000 01100001 00100000 01110010 01100101 01100111 01110101 01101100 01100001 01110010 00100000 01100010 01100001 01110011 01101001 01110011 00101100 00001010 01001000 01100101 00100000 01101001 01110011 00100000 00110011 00100000 01111001 01100101 01100001 01110010 01110011 00100000 01101111 01101100 01100100 00101100 00001010 01001001 00100000 01100111 01101111 01110100 00100000 01101000 01101001 01101101 00100000 01100001 01101110 01100100 00100000 01101101 01100001 01100100 01100101 00100000 01101000 01101001 01101101 00100000 01110111 01101000 01100101 01101110 00100000 01001001 00100000 01110011 01110100 01100001 01110010 01110100 01100101 01100100 00100000 01110101 01101110 01101001 00101100
01000101 01110110 01100101 01110010 01111001 00100000 01101101 01101111 01110010 01101110 01101001 01101110 01100111 00101100 00001010 01010100 01101000 01100101 00100000 01100010 01101100 01100001 01100011 01101011 00100000 01100010 01101111 01111000 00100000 01101001 01101110 00100000 01101101 01111001 00100000 01110010 01101111 01101111 01101101 00100000 01100010 01100101 01100101 01110000 01110011 00101100 00001010 01000001 01101110 01100100 00100000 01101001 01110100 00100000 01110111 01100001 01101011 01100101 01110011 00100000 01110101 01110000 00100000 01110111 01101000 01100101 01101110 00100000 01001001 00100000 01100100 01101111 00101100 00001010 0101010001101000 01100101 00100000 01100110 01100001 01101110 01110011 00100000 01110111 01101000 01101001 01110010 00100000 01100001 01101110 01100100 00100000 01110011 01110000 01101001 01101110 00100000 01110101 01110000 00101100 00001010 01010100 01101000 01100101 00100000 01101100 01101111 01110101 01100100 01100101 01110011 01110100 00100000 01110100 01101000 01101001 01101110 01100111 00100000 01101001 01101110 00100000 01101101 01111001 00100000 01110010 01101111 01101111 01101101 00101100 00001010 01001111 01110100 01101000 01100101 01110010 00100000 01110100 01101000 01100001 01101110 00100000 01101101 01111001 00100000 01100001 01101100 01100001 01110010 01101101 00101100
01000010 01110101 01110100 00100000 01101001 01110100 00100111 01110011 00100000 01101001 01100100 01100101 01101110 01110100 01101001 01110100 01111001 00101100 00001010 01001001 01110100 00100111 01110011 00100000 01101110 01100001 01101101 01100101 00101100 00100000 01100001 01100111 01100101 00100000 01100001 01101110 01100100 00100000 01101000 01101111 01100010 01100010 01101001 01100101 01110011 00101100 00001010 01001001 01110011 00100000 01100111 01100101 01101110 01100101 01110010 01100001 01101100 01101001 01110011 01100101 01100100 00101100 00001010 0101010001101111 00100000 01100101 01110110 01100101 01110010 01111001 01101111 01101110 01100101 00100000 01100010 01110101 01110100 00100000 01101101 01100101 00101100
@@ -60,30 +61,29 @@
01000100 01101111 01100101 01110011 00100000 01110100 01101000 01101001 01110011 00100000 01101110 01101111 01110100 00100000 01110011 01101111 01110101 01101110 01100100 00100000 01100110 01100001 01101101 01101001 01101100 01101001 01100001 01110010 00111111 00001010 01010011 01101111 01101101 01100101 01110100 01101000 01101001 01101110 01100111 00100000 01101111 01110010 00100000 01110011 01101111 01101101 01100101 01101111 01101110 01100101 00100000 01110100 01101000 01100001 01110100 00100000 01100010 01110010 01101001 01101110 01100111 01110011 00100000 01101010 01101111 01111001 00100000 01110100 01101111 00100000 01101101 01101001 01101100 01101100 01101001 01101111 01101110 01110011 00111111 00001010 01000001 01101110 01100100 00100000 01110011 01101111 01101101 01100101 01110100 01101000 01101001 01101110 01100111 00100000 01101111 01110010 00100000 01110011 01101111 01101101 01100101 01101111 01101110 01100101 00100000 01110100 01101000 01100001 01110100 00100000 01100111 01100101 01110100 01110011 00100000 01100001 01100010 01110101 01110011 01100101 01100100 00111111
01001001 00100000 01110100 01110010 01100101 01100001 01110100 00100000 01101101 01111001 00100000 01100011 01101111 01101101 01110000 01110101 01110100 01100101 01110010 01110011 00101100 00001010 01010100 01101000 01100101 00100000 01110011 01100001 01101101 01100101 00100000 01110111 01100001 01111001 00100000 01001001 00100000 01110100 01110010 01100101 01100001 01110100 00100000 01110000 01100101 01101111 01110000 01101100 01100101 00100000 01100001 01110010 01101111 01110101 01101110 01100100 00100000 01101101 01100101 00101100 00001010 01000010 01100101 01100011 01100001 01110101 01110011 01100101 00100000 01110100 01101000 01100101 00100000 01110111 01101111 01110010 01101100 01100100 00100000 01101110 01100101 01100101 01100100 01110011 00100000 01101100 01101111 01110110 01100101 00101100
+
+
+
-
-
+
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+