From 3e12fc31f0466452908a1ad717b56d3ed522a6dc Mon Sep 17 00:00:00 2001 From: Pier-Luc Cossette Date: Thu, 3 Aug 2023 13:42:36 -0400 Subject: [PATCH] Add natif lazy-load --- assets.json | 2 +- assets/scripts/config.js | 7 +- assets/scripts/globals.js | 6 + assets/scripts/modules/Load.js | 17 +- assets/scripts/modules/Scroll.js | 42 +- assets/scripts/utils/html.js | 129 +- assets/scripts/utils/image.js | 98 +- assets/styles/components/_image.scss | 20 + assets/styles/main.scss | 1 + www/assets/scripts/app.js | 2952 +++++++++++++++++++++++++- www/assets/scripts/app.js.map | 8 +- www/assets/styles/main.css | 1003 ++++++++- www/assets/styles/main.css.map | 2 +- www/images.html | 72 +- 14 files changed, 4196 insertions(+), 163 deletions(-) create mode 100644 assets/styles/components/_image.scss diff --git a/assets.json b/assets.json index a4a4dc41..b7c307e5 100644 --- a/assets.json +++ b/assets.json @@ -1,3 +1,3 @@ { - "version": 1690813628192 + "version": 1691082391092 } \ No newline at end of file diff --git a/assets/scripts/config.js b/assets/scripts/config.js index b5738c65..f997df27 100644 --- a/assets/scripts/config.js +++ b/assets/scripts/config.js @@ -29,9 +29,10 @@ const CSS_CLASS = Object.freeze({ LOADED: 'is-loaded', READY: 'is-ready', FONTS_LOADED: 'fonts-loaded', - LAZY_CONTAINER: 'c-lazy', - LAZY_LOADED: '-lazy-loaded', - // ... + IMAGE: "c-image", + IMAGE_LAZY_LOADED: "-lazy-loaded", + IMAGE_LAZY_LOADING: "-lazy-loading", + IMAGE_LAZY_ERROR: "-lazy-error", }) // Custom js events diff --git a/assets/scripts/globals.js b/assets/scripts/globals.js index 2cada306..43a5fe4c 100644 --- a/assets/scripts/globals.js +++ b/assets/scripts/globals.js @@ -1,5 +1,6 @@ import svg4everybody from 'svg4everybody'; import { ENV } from './config'; +import { triggerLazyloadCallbacks } from './utils/image'; // Dynamic imports for development mode only let gridHelper; @@ -20,4 +21,9 @@ export default function () { * Add grid helper */ gridHelper?.(); + + /** + * Trigger lazyload + */ + triggerLazyloadCallbacks(); } diff --git a/assets/scripts/modules/Load.js b/assets/scripts/modules/Load.js index 8ff708ef..adf54b2f 100644 --- a/assets/scripts/modules/Load.js +++ b/assets/scripts/modules/Load.js @@ -1,5 +1,6 @@ import { module } from 'modujs'; import modularLoad from 'modularload'; +import { resetLazyloadCallbacks, triggerLazyloadCallbacks } from "../utils/image"; export default class extends module { constructor(m) { @@ -7,16 +8,28 @@ export default class extends module { } init() { - const load = new modularLoad({ + this.load = new modularLoad({ enterDelay: 0, transitions: { customTransition: {} } }); - load.on('loaded', (transition, oldContainer, newContainer) => { + this.load.on('loaded', (transition, oldContainer, newContainer) => { this.call('destroy', oldContainer, 'app'); this.call('update', newContainer, 'app'); + + /** + * Trigger lazyload + */ + triggerLazyloadCallbacks(); + }); + + this.load.on("loading", () => { + /** + * Remove previous lazyload callbacks + */ + resetLazyloadCallbacks(); }); } } diff --git a/assets/scripts/modules/Scroll.js b/assets/scripts/modules/Scroll.js index 1bace458..618c2726 100644 --- a/assets/scripts/modules/Scroll.js +++ b/assets/scripts/modules/Scroll.js @@ -1,5 +1,4 @@ import { module } from 'modujs' -import { lazyLoadImage } from '../utils/image' import LocomotiveScroll from 'locomotive-scroll' export default class extends module { @@ -19,29 +18,6 @@ export default class extends module { // } } - /** - * Lazy load the related image. - * - * @see ../utils/image.js - * - * It is recommended to wrap your `` into an element with the - * CSS class name `.c-lazy`. The CSS class name modifier `.-lazy-loaded` - * will be applied on both the image and the parent wrapper. - * - * ```html - *
- * - *
- * ``` - * - * @param {LocomotiveScroll} args - The Locomotive Scroll instance. - */ - lazyLoad(args) { - lazyLoadImage(args.target, null, () => { - //callback - }) - } - scrollTo(params) { let { target, ...options } = params @@ -53,6 +29,24 @@ export default class extends module { this.scroll?.scrollTo(target, options) } + /** + * Observe new scroll elements + * + * @param $newContainer (HTMLElement) + */ + addScrollElements($newContainer) { + this.scroll?.addScrollElements($newContainer) + } + + /** + * Unobserve scroll elements + * + * @param $oldContainer (HTMLElement) + */ + removeScrollElements($oldContainer) { + this.scroll?.removeScrollElements($oldContainer) + } + destroy() { this.scroll.destroy(); } diff --git a/assets/scripts/utils/html.js b/assets/scripts/utils/html.js index 3b8c3d91..002ad7ef 100644 --- a/assets/scripts/utils/html.js +++ b/assets/scripts/utils/html.js @@ -4,15 +4,18 @@ * @return {string} escaped string */ -const escapeHtml = str => - str.replace(/[&<>'"]/g, tag => ({ - '&': '&', - '<': '<', - '>': '>', - "'": ''', - '"': '"' - }[tag])) - +const escapeHtml = (str) => + str.replace( + /[&<>'"]/g, + (tag) => + ({ + "&": "&", + "<": "<", + ">": ">", + "'": "'", + '"': """, + }[tag]) + ); /** * Unescape HTML string @@ -20,13 +23,13 @@ const escapeHtml = str => * @return {string} unescaped string */ -const unescapeHtml = str => - str.replace('&', '&') - .replace('<', '<') - .replace('>', '>') - .replace(''', "'") - .replace('"', '"') - +const unescapeHtml = (str) => + str + .replace("&", "&") + .replace("<", "<") + .replace(">", ">") + .replace("'", "'") + .replace(""", '"'); /** * Get element data attributes @@ -34,46 +37,41 @@ const unescapeHtml = str => * @return {array} node data */ -const getNodeData = node => { - +const getNodeData = (node) => { // All attributes - const attributes = node.attributes + const attributes = node.attributes; // Regex Pattern - const pattern = /^data\-(.+)$/ + const pattern = /^data\-(.+)$/; // Output - const data = {} + const data = {}; for (let i in attributes) { if (!attributes[i]) { - continue + continue; } // Attributes name (ex: data-module) - let name = attributes[i].name + let name = attributes[i].name; // This happens. if (!name) { - continue + continue; } - let match = name.match(pattern) + let match = name.match(pattern); if (!match) { - continue + continue; } // If this throws an error, you have some // serious problems in your HTML. - data[match[1]] = getData(node.getAttribute(name)) + data[match[1]] = getData(node.getAttribute(name)); } return data; - -} - - - +}; /** * Parse value to data type. @@ -83,32 +81,31 @@ const getNodeData = node => { * @return {mixed} value in its natural data type */ -const rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/ -const getData = data => { - if (data === 'true') { - return true +const rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/; +const getData = (data) => { + if (data === "true") { + return true; } - if (data === 'false') { - return false + if (data === "false") { + return false; } - if (data === 'null') { - return null + if (data === "null") { + return null; } // Only convert to a number if it doesn't change the string - if (data === +data+'') { - return +data + if (data === +data + "") { + return +data; } if (rbrace.test(data)) { - return JSON.parse(data) + return JSON.parse(data); } - return data -} - + return data; +}; /** * Returns an array containing all the parent nodes of the given node @@ -116,20 +113,45 @@ const getData = data => { * @return {array} parent nodes */ -const getParents = $el => { - +const getParents = ($el) => { // Set up a parent array - let parents = [] + let parents = []; // Push each parent element to the array for (; $el && $el !== document; $el = $el.parentNode) { - parents.push($el) + parents.push($el); } // Return our parent array - return parents -} + return parents; +}; + +// https://gomakethings.com/how-to-get-the-closest-parent-element-with-a-matching-selector-using-vanilla-javascript/ +const queryClosestParent = ($el, selector) => { + // Element.matches() polyfill + if (!Element.prototype.matches) { + Element.prototype.matches = + Element.prototype.matchesSelector || + Element.prototype.mozMatchesSelector || + Element.prototype.msMatchesSelector || + Element.prototype.oMatchesSelector || + Element.prototype.webkitMatchesSelector || + function (s) { + var matches = ( + this.document || this.ownerDocument + ).querySelectorAll(s), + i = matches.length; + while (--i >= 0 && matches.item(i) !== this) {} + return i > -1; + }; + } + // Get the closest matching element + for (; $el && $el !== document; $el = $el.parentNode) { + if ($el.matches(selector)) return $el; + } + return null; +}; export { escapeHtml, @@ -137,4 +159,5 @@ export { getNodeData, getData, getParents, -} + queryClosestParent, +}; diff --git a/assets/scripts/utils/image.js b/assets/scripts/utils/image.js index 51b06ce2..2ce5e718 100644 --- a/assets/scripts/utils/image.js +++ b/assets/scripts/utils/image.js @@ -1,4 +1,5 @@ import { CSS_CLASS } from '../config' +import { queryClosestParent } from './html' /** * Get an image meta data @@ -91,22 +92,111 @@ const lazyLoadImage = async ($el, url, callback) => { } requestAnimationFrame(() => { - let lazyParent = $el.closest(`.${CSS_CLASS.LAZY_CONTAINER}`) + let lazyParent = $el.closest(`.${CSS_CLASS.IMAGE}`) if(lazyParent) { - lazyParent.classList.add(CSS_CLASS.LAZY_LOADED) + lazyParent.classList.add(CSS_CLASS.IMAGE_LAZY_LOADED) lazyParent.style.backgroundImage = '' } - $el.classList.add(CSS_CLASS.LAZY_LOADED) + $el.classList.add(CSS_CLASS.IMAGE_LAZY_LOADED) callback?.() }) } +/** + * Lazyload Callbacks + * + */ +const lazyImageLoad = (e) => { + const $img = e.currentTarget; + const $parent = queryClosestParent($img, `.${CSS_CLASS.IMAGE}`); + + requestAnimationFrame(() => { + if ($parent) { + $parent.classList.remove(CSS_CLASS.IMAGE_LAZY_LOADING); + $parent.classList.add(CSS_CLASS.IMAGE_LAZY_LOADED); + } + + $img.classList.add(CSS_CLASS.IMAGE_LAZY_LOADED); + }); +}; + +const lazyImageError = (e) => { + const $img = e.currentTarget; + const $parent = queryClosestParent($img, `.${CSS_CLASS.IMAGE}`); + + requestAnimationFrame(() => { + if ($parent) { + $parent.classList.remove(CSS_CLASS.IMAGE_LAZY_LOADING); + $parent.classList.add(CSS_CLASS.IMAGE_LAZY_ERROR); + } + }); +}; + +/* Trigger Lazyload Callbacks */ +const triggerLazyloadCallbacks = ($lazyImagesArgs) => { + const $lazyImages = $lazyImagesArgs + ? $lazyImagesArgs + : document.querySelectorAll('[loading="lazy"]'); + + if ("loading" in HTMLImageElement.prototype) { + for (const $img of $lazyImages) { + const $parent = queryClosestParent( + $img, + `.${CSS_CLASS.IMAGE}` + ); + + + if (!$img.complete) { + if($parent) { + $parent.classList.add( + CSS_CLASS.IMAGE_LAZY_LOADING + ); + } + + $img.addEventListener("load", lazyImageLoad, { once: true }); + $img.addEventListener("error", lazyImageError, { once: true }); + } else { + if (!$img.complete) { + $parent.classList.add( + CSS_CLASS.IMAGE_LAZY_LOADED + ); + } + } + } + } else { + // if 'loading' supported + for (const $img of $lazyImages) { + const $parent = queryClosestParent( + $img, + `.${CSS_CLASS.IMAGE}` + ); + + if($parent) { + $parent.classList.add(CSS_CLASS.IMAGE_LAZY_LOADED); + } + } + } +}; + +/* Reset Lazyload Callbacks */ +const resetLazyloadCallbacks = () => { + if ("loading" in HTMLImageElement.prototype) { + const $lazyImages = document.querySelectorAll('[loading="lazy"]'); + for (const $img of $lazyImages) { + $img.removeEventListener("load", lazyImageLoad, { once: true }); + $img.removeEventListener("error", lazyImageError, { once: true }); + } + } +}; + export { getImageMetadata, loadImage, - lazyLoadImage + lazyLoadImage, + triggerLazyloadCallbacks, + resetLazyloadCallbacks } diff --git a/assets/styles/components/_image.scss b/assets/styles/components/_image.scss new file mode 100644 index 00000000..636a0303 --- /dev/null +++ b/assets/styles/components/_image.scss @@ -0,0 +1,20 @@ +// ========================================================================== +// Components / Image +// ========================================================================== + +.c-image { + +} + +.c-image_img { + + // Lazy loading styles + .c-image.-lazy-load & { + transition: opacity $speed $easing; + opacity: 0; + } + + .c-image.-lazy-loaded & { + opacity: 1; + } +} diff --git a/assets/styles/main.scss b/assets/styles/main.scss index f8e9a501..976db078 100644 --- a/assets/styles/main.scss +++ b/assets/styles/main.scss @@ -57,6 +57,7 @@ @import "components/heading"; @import "components/button"; @import "components/form"; +@import "components/image"; // Utilities // ========================================================================== diff --git a/www/assets/scripts/app.js b/www/assets/scripts/app.js index 4b8edc26..69a107e3 100644 --- a/www/assets/scripts/app.js +++ b/www/assets/scripts/app.js @@ -1,7 +1,2951 @@ -(()=>{var Xt=Object.create;var $=Object.defineProperty;var Zt=Object.getOwnPropertyDescriptor;var Kt=Object.getOwnPropertyNames,P=Object.getOwnPropertySymbols,Jt=Object.getPrototypeOf,Z=Object.prototype.hasOwnProperty,ht=Object.prototype.propertyIsEnumerable;var ct=(i,e,t)=>e in i?$(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,ut=(i,e)=>{for(var t in e||(e={}))Z.call(e,t)&&ct(i,t,e[t]);if(P)for(var t of P(e))ht.call(e,t)&&ct(i,t,e[t]);return i};var dt=(i,e)=>{var t={};for(var s in i)Z.call(i,s)&&e.indexOf(s)<0&&(t[s]=i[s]);if(i!=null&&P)for(var s of P(i))e.indexOf(s)<0&&ht.call(i,s)&&(t[s]=i[s]);return t};var Qt=(i,e)=>()=>(i&&(e=i(i=0)),e);var te=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports),ft=(i,e)=>{for(var t in e)$(i,t,{get:e[t],enumerable:!0})},ee=(i,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Kt(e))!Z.call(i,n)&&n!==t&&$(i,n,{get:()=>e[n],enumerable:!(s=Zt(e,n))||s.enumerable});return i};var se=(i,e,t)=>(t=i!=null?Xt(Jt(i)):{},ee(e||!i||!i.__esModule?$(t,"default",{value:i,enumerable:!0}):t,i));var y=(i,e,t)=>new Promise((s,n)=>{var r=a=>{try{l(t.next(a))}catch(c){n(c)}},o=a=>{try{l(t.throw(a))}catch(c){n(c)}},l=a=>a.done?s(a.value):Promise.resolve(a.value).then(r,o);l((t=t.apply(i,e)).next())});var Ft=te((xt,q)=>{(function(i,e){typeof define=="function"&&define.amd?define([],function(){return i.svg4everybody=e()}):typeof q=="object"&&q.exports?q.exports=e():i.svg4everybody=e()})(xt,function(){function i(n,r,o){if(o){var l=document.createDocumentFragment(),a=!r.hasAttribute("viewBox")&&o.getAttribute("viewBox");a&&r.setAttribute("viewBox",a);for(var c=o.cloneNode(!0);c.childNodes.length;)l.appendChild(c.firstChild);n.appendChild(l)}}function e(n){n.onreadystatechange=function(){if(n.readyState===4){var r=n._cachedDocument;r||(r=n._cachedDocument=document.implementation.createHTMLDocument(""),r.body.innerHTML=n.responseText,n._cachedTarget={}),n._embeds.splice(0).map(function(o){var l=n._cachedTarget[o.id];l||(l=n._cachedTarget[o.id]=r.getElementById(o.id)),i(o.parent,o.svg,l)})}},n.onreadystatechange()}function t(n){function r(){for(var O=0;O0)&&v(r,67)}var o,l=Object(n),a=/\bTrident\/[567]\b|\bMSIE (?:9|10)\.0\b/,c=/\bAppleWebKit\/(\d+)\b/,h=/\bEdge\/12\.(\d+)\b/,u=/\bEdge\/.(\d+)\b/,d=window.top!==window.self;o="polyfill"in l?l.polyfill:a.test(navigator.userAgent)||(navigator.userAgent.match(h)||[])[1]<10547||(navigator.userAgent.match(c)||[])[1]<537||u.test(navigator.userAgent)&&d;var f={},v=window.requestAnimationFrame||setTimeout,p=document.getElementsByTagName("use"),k=0;o&&r()}function s(n){for(var r=n;r.nodeName.toLowerCase()!=="svg"&&(r=r.parentNode););return r}return t})});var Nt={};ft(Nt,{gridHelper:()=>xe});function xe({gutterCssVar:i=Pe,marginCssVar:e=$e,rgbaColor:t=De}={}){let s=document.createElement("div");document.body.append(s),Ut(s,t),Fe(s,i,e),Ue(s,t)}function Fe(i,e,t){let s=i.style;s.zIndex="10000",s.position="fixed",s.top="0",s.left="0",s.display="flex",s.width="100%",s.height="100%",s.columnGap=`var(${e}, 0)`,s.paddingLeft=`var(${t}, 0)`,s.paddingRight=`var(${t}, 0)`,s.pointerEvents="none",s.visibility="hidden"}function Ut(i,e){i.innerHTML="";let t=Number(window.getComputedStyle(i).getPropertyValue("--grid-columns")),s;for(var n=0;n{n.key=="Control"?t=!0:t&&n.key=="g"&&(s?i.style.visibility="hidden":i.style.visibility="visible",s=!s)}),document.addEventListener("keyup",n=>{n.key=="Control"&&(t=!1)})}var Pe,$e,De,Wt=Qt(()=>{Pe="--grid-gutter",$e="--grid-margin",De="rgba(255, 0, 0, .1)"});function x(i){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?x=function(e){return typeof e}:x=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},x(i)}function pt(i,e){if(!(i instanceof e))throw new TypeError("Cannot call a class as a function")}function mt(i,e){for(var t=0;ti.length)&&(e=i.length);for(var t=0,s=new Array(e);tN,Load:()=>W,Scroll:()=>G});var J="production",Et=typeof window.orientation=="undefined",M=Object.freeze({NAME:J,IS_PROD:J==="production",IS_DEV:J==="development",IS_DESKTOP:Et,IS_MOBILE:!Et}),b=Object.freeze({LOADING:"is-loading",LOADED:"is-loaded",READY:"is-ready",FONTS_LOADED:"fonts-loaded",LAZY_CONTAINER:"c-lazy",LAZY_LOADED:"-lazy-loaded"}),wt=Object.freeze({RESIZE_END:"loco.resizeEnd"}),F=Object.freeze({EAGER:[{family:"Source Sans",style:"normal",weight:400},{family:"Source Sans",style:"normal",weight:700}]});var _t="fonts"in document;function ue(i,e){for(let[t,s]of Object.entries(e))switch(t){case"family":{if(U(i[t])!==s)return!1;break}case"weight":{if(i[t]!=s)return!1;break}default:{if(i[t]!==s)return!1;break}}return!0}function de(i,e){let t=U(i.family);return U(t)===e||e.endsWith(U(t))&&(e.match(i.weight)||e.match(i.style)),!0}function fe(i){let e=[];for(let t of document.fonts)ue(t,i)&&e.push(t);return e}function me(i){let e=[];for(let t of document.fonts)de(t,i)&&e.push(t);return e}function It(i){Array.isArray(i)||(i=[i]);let e=new Set;return i.forEach(t=>{if(t)switch(typeof t){case"string":e.add(...me(t));return;case"object":e.add(...fe(t));return}throw new TypeError("Expected font query to be font shorthand or font reference")}),[...e]}function Ot(i,e=!1){return y(this,null,function*(){var t;if(((t=i.size)!=null?t:i.length)===0)throw new TypeError("Expected at least one font");return yield ve([...i],e)})}function St(i){return y(this,null,function*(){return yield(i.status==="unloaded"?i.load():i.loaded).then(e=>e,e=>i)})}function ve(i,e=!1){return y(this,null,function*(){e&&console.group("[loadFonts:API]",i.length,"/",document.fonts.size);let t=[];for(let s of i)s instanceof FontFace?(document.fonts.has(s)||document.fonts.add(s),t.push(St(s))):t.push(...It(s).map(n=>St(n)));return e&&console.groupEnd(),yield Promise.all(t)})}function U(i){return i.replace(/['"]+/g,"")}function Ct(i){return y(this,null,function*(){let e=It(i);return yield Promise.all(e.map(t=>t.loaded))})}var N=class extends A{constructor(i){super(i)}init(){Ct(F.EAGER).then(i=>this.onFontsLoaded(i))}onFontsLoaded(i){console.log("Example: Eager Fonts Loaded!",i)}};function pe(i,e){if(!(i instanceof e))throw new TypeError("Cannot call a class as a function")}function At(i,e){for(var t=0;ti.length)&&(e=i.length);for(var t=0,s=new Array(e);t-1||(this.reset(),this.getStateOptions())}},{key:"reset",value:function(){this.isLoading&&(this.controller.abort(),this.isLoading=!1,this.controller=new AbortController),window.clearTimeout(this.enterTimeout),this.isInserted&&this.removeContainer(),this.classContainer=this.html,Object.assign(this,this.defaults,this.options)}},{key:"getClickOptions",value:function(t){this.transition=t.getAttribute("data-"+this.name),this.isUrl=t.getAttribute("data-"+this.name+"-url");var s=t.getAttribute("href"),n=t.getAttribute("target");if(n=="_blank"){window.open(s,"_blank");return}if(this.transition=="false"){window.location=s;return}this.setOptions(s,!0)}},{key:"getStateOptions",value:function(){this.transitionsHistory?this.transition=history.state:this.transition=!1;var t=window.location.href;this.setOptions(t)}},{key:"goTo",value:function(t,s,n){this.reset(),this.transition=s,this.isUrl=n,this.setOptions(t,!0)}},{key:"setOptions",value:function(t,s){var n="["+this.container+"]",r;this.transition&&this.transition!="true"&&(this.transitionContainer="["+this.container+'="'+this.transition+'"]',this.loadingClass=this.transitions[this.transition].loadingClass||this.loadingClass,this.loadedClass=this.transitions[this.transition].loadedClass||this.loadedClass,this.readyClass=this.transitions[this.transition].readyClass||this.readyClass,this.transitionsPrefix=this.transitions[this.transition].transitionsPrefix||this.transitionsPrefix,this.enterDelay=this.transitions[this.transition].enterDelay||this.enterDelay,this.exitDelay=this.transitions[this.transition].exitDelay||this.exitDelay,this.loadedDelay=this.transitions[this.transition].loadedDelay||this.loadedDelay,r=document.querySelector(this.transitionContainer)),r?(n=this.transitionContainer,this.oldContainer=r,this.classContainer=this.oldContainer.parentNode,this.subContainer||history.replaceState(this.transition,null,this.href),this.subContainer=!0):(this.oldContainer=document.querySelector(n),this.subContainer&&history.replaceState(this.prevTransition,null,this.href),this.subContainer=!1),this.href=t,this.parentContainer=this.oldContainer.parentNode,this.isUrl===""||this.isUrl!=null&&this.isUrl!="false"&&this.isUrl!=!1?history.pushState(this.transition,null,t):(this.oldContainer.classList.add("is-old"),this.setLoading(),this.startEnterDelay(),this.loadHref(t,n,s))}},{key:"setLoading",value:function(){this.classContainer.classList.remove(this.loadedClass,this.readyClass),this.classContainer.classList.add(this.loadingClass),this.classContainer.classList.remove(this.transitionsPrefix+this.prevTransition),this.transition&&this.classContainer.classList.add(this.transitionsPrefix+this.transition),this.subContainer||(this.prevTransition=this.transition);var t=new Event(this.namespace+"loading");window.dispatchEvent(t)}},{key:"startEnterDelay",value:function(){var t=this;this.enterTimeout=window.setTimeout(function(){t.isEntered=!0,t.isLoaded&&t.transitionContainers()},this.enterDelay)}},{key:"loadHref",value:function(t,s,n){var r=this;this.isLoading=!0;var o=this.controller.signal;fetch(t,{signal:o}).then(function(l){return l.text()}).then(function(l){n&&history.pushState(r.transition,null,t);var a=new DOMParser;r.data=a.parseFromString(l,"text/html"),r.newContainer=r.data.querySelector(s),r.newContainer.classList.add("is-new"),r.parentNewContainer=r.newContainer.parentNode,r.hideContainer(),r.parentContainer.insertBefore(r.newContainer,r.oldContainer),r.isInserted=!0,r.setSvgs(),r.isLoaded=!0,r.isEntered&&r.transitionContainers(),r.loadEls(r.newContainer),r.isLoading=!1}).catch(function(l){window.location=t})}},{key:"transitionContainers",value:function(){var t=this;this.setAttributes(),this.showContainer(),this.setLoaded(),setTimeout(function(){t.removeContainer(),t.setReady()},this.exitDelay)}},{key:"setSvgs",value:function(){if(this.isChrome){var t=this.newContainer.querySelectorAll("use");t.length&&t.forEach(function(s){var n=s.getAttribute("xlink:href");if(n)s.parentNode.innerHTML='';else{var r=s.getAttribute("href");r&&(s.parentNode.innerHTML='')}})}}},{key:"setAttributes",value:function(){var t=this,s=this.data.getElementsByTagName("title")[0],n=this.data.head.querySelector('meta[name="description"]'),r=document.head.querySelector('meta[name="description"]'),o,l;this.subContainer?(l=this.parentNewContainer,o=document.querySelector(this.transitionContainer).parentNode):(l=this.data.querySelector("html"),o=document.querySelector("html"));var a=Object.assign({},l.dataset);s&&(document.title=s.innerText),r&&n&&r.setAttribute("content",n.getAttribute("content")),a&&Object.entries(a).forEach(function(c){var h=ye(c,2),u=h[0],d=h[1];o.setAttribute("data-"+t.toDash(u),d)})}},{key:"toDash",value:function(t){return t.split(/(?=[A-Z])/).join("-").toLowerCase()}},{key:"hideContainer",value:function(){this.newContainer.style.visibility="hidden",this.newContainer.style.height=0,this.newContainer.style.overflow="hidden"}},{key:"showContainer",value:function(){this.newContainer.style.visibility="",this.newContainer.style.height="",this.newContainer.style.overflow=""}},{key:"loadEls",value:function(t){var s=this,n=[];this.loadAttributes.forEach(function(r){var o="data-"+s.name+"-"+r,l=t.querySelectorAll("["+o+"]");l.length&&l.forEach(function(a){var c=a.getAttribute(o);if(a.setAttribute(r,c),r=="src"||r=="srcset"){var h=new Promise(function(u){a.onload=function(){return u(a)}});n.push(h)}})}),Promise.all(n).then(function(r){var o=new Event(s.namespace+"images");window.dispatchEvent(o)})}},{key:"setLoaded",value:function(){var t=this;this.classContainer.classList.remove(this.loadingClass),setTimeout(function(){t.classContainer.classList.add(t.loadedClass)},this.loadedDelay);var s=new Event(this.namespace+"loaded");window.dispatchEvent(s)}},{key:"removeContainer",value:function(){this.parentContainer.removeChild(this.oldContainer),this.newContainer.classList.remove("is-new"),this.isInserted=!1}},{key:"setReady",value:function(){this.classContainer.classList.add(this.readyClass);var t=new Event(this.namespace+"ready");window.dispatchEvent(t)}},{key:"on",value:function(t,s){var n=this;window.addEventListener(this.namespace+t,function(){switch(t){case"loading":return s(n.transition,n.oldContainer);case"loaded":return s(n.transition,n.oldContainer,n.newContainer);case"ready":return s(n.transition,n.newContainer);default:return s()}},!1)}}]),i}(),Rt=_e;var W=class extends A{constructor(i){super(i)}init(){new Rt({enterDelay:0,transitions:{customTransition:{}}}).on("loaded",(e,t,s)=>{this.call("destroy",t,"app"),this.call("update",s,"app")})}};var Ie=i=>({url:i.src,width:i.naturalWidth,height:i.naturalHeight,ratio:i.naturalWidth/i.naturalHeight}),Oe=(i,e={})=>new Promise((t,s)=>{let n=new Image;e.crossOrigin&&(n.crossOrigin=e.crossOrigin);let r=()=>{t(ut({element:n},Ie(n)))};n.decode?(n.src=i,n.decode().then(r).catch(o=>{s(o)})):(n.onload=r,n.onerror=o=>{s(o)},n.src=i)}),Mt=[],kt=(i,e,t)=>y(void 0,null,function*(){let s=e||i.dataset.src,n=Mt.find(r=>r.url===s);if(!n){if(n=yield Oe(s),!n.url)return;Mt.push(n)}i.src!==s&&(i.tagName==="IMG"?i.src=n.url:i.style.backgroundImage=`url(${n.url})`,requestAnimationFrame(()=>{let r=i.closest(`.${b.LAZY_CONTAINER}`);r&&(r.classList.add(b.LAZY_LOADED),r.style.backgroundImage=""),i.classList.add(b.LAZY_LOADED),t==null||t()}))});function Q(){return Q=Object.assign?Object.assign.bind():function(i){for(var e=1;e=1;let o=s?1:this.easing(r);this.value=this.from+(this.to-this.from)*o}var n;(t=this.onUpdate)==null||t.call(this,this.value,{completed:s}),s&&this.stop()}stop(){this.isRunning=!1}fromTo(e,t,{lerp:s=.1,duration:n=1,easing:r=l=>l,onUpdate:o}){this.from=this.value=e,this.to=t,this.lerp=s,this.duration=n,this.easing=r,this.currentTime=0,this.isRunning=!0,this.onUpdate=o}};function Lt(i,e){let t;return function(){let s=arguments,n=this;clearTimeout(t),t=setTimeout(function(){i.apply(n,s)},e)}}var et=class{constructor(e,t){this.onWindowResize=()=>{this.width=window.innerWidth,this.height=window.innerHeight},this.onWrapperResize=()=>{this.width=this.wrapper.clientWidth,this.height=this.wrapper.clientHeight},this.onContentResize=()=>{let s=this.wrapper===window?document.documentElement:this.wrapper;this.scrollHeight=s.scrollHeight,this.scrollWidth=s.scrollWidth},this.wrapper=e,this.content=t,this.wrapper===window?(window.addEventListener("resize",this.onWindowResize,!1),this.onWindowResize()):(this.wrapperResizeObserver=new ResizeObserver(Lt(this.onWrapperResize,100)),this.wrapperResizeObserver.observe(this.wrapper),this.onWrapperResize()),this.contentResizeObserver=new ResizeObserver(Lt(this.onContentResize,100)),this.contentResizeObserver.observe(this.content),this.onContentResize()}destroy(){var e,t;window.removeEventListener("resize",this.onWindowResize,!1),(e=this.wrapperResizeObserver)==null||e.disconnect(),(t=this.contentResizeObserver)==null||t.disconnect()}get limit(){return{x:this.scrollWidth-this.width,y:this.scrollHeight-this.height}}},zt=()=>({events:{},emit(i,...e){let t=this.events[i]||[];for(let s=0,n=t.length;s{var s;this.events[i]=(s=this.events[i])==null?void 0:s.filter(n=>e!==n)}}}),st=class{constructor(e,{wheelMultiplier:t=1,touchMultiplier:s=2,normalizeWheel:n=!1}){this.onTouchStart=r=>{let{clientX:o,clientY:l}=r.targetTouches?r.targetTouches[0]:r;this.touchStart.x=o,this.touchStart.y=l,this.lastDelta={x:0,y:0}},this.onTouchMove=r=>{let{clientX:o,clientY:l}=r.targetTouches?r.targetTouches[0]:r,a=-(o-this.touchStart.x)*this.touchMultiplier,c=-(l-this.touchStart.y)*this.touchMultiplier;this.touchStart.x=o,this.touchStart.y=l,this.lastDelta={x:a,y:c},this.emitter.emit("scroll",{type:"touch",deltaX:a,deltaY:c,event:r})},this.onTouchEnd=r=>{this.emitter.emit("scroll",{type:"touch",inertia:!0,deltaX:this.lastDelta.x,deltaY:this.lastDelta.y,event:r})},this.onWheel=r=>{let{deltaX:o,deltaY:l}=r;this.normalizeWheel&&(o=j(-100,o,100),l=j(-100,l,100)),o*=this.wheelMultiplier,l*=this.wheelMultiplier,this.emitter.emit("scroll",{type:"wheel",deltaX:o,deltaY:l,event:r})},this.element=e,this.wheelMultiplier=t,this.touchMultiplier=s,this.normalizeWheel=n,this.touchStart={x:null,y:null},this.emitter=zt(),this.element.addEventListener("wheel",this.onWheel,{passive:!1}),this.element.addEventListener("touchstart",this.onTouchStart,{passive:!1}),this.element.addEventListener("touchmove",this.onTouchMove,{passive:!1}),this.element.addEventListener("touchend",this.onTouchEnd,{passive:!1})}on(e,t){return this.emitter.on(e,t)}destroy(){this.emitter.events={},this.element.removeEventListener("wheel",this.onWheel,{passive:!1}),this.element.removeEventListener("touchstart",this.onTouchStart,{passive:!1}),this.element.removeEventListener("touchmove",this.onTouchMove,{passive:!1}),this.element.removeEventListener("touchend",this.onTouchEnd,{passive:!1})}},H=class{constructor({direction:e,gestureDirection:t,mouseMultiplier:s,smooth:n,wrapper:r=window,content:o=document.documentElement,wheelEventsTarget:l=r,smoothWheel:a=n==null||n,smoothTouch:c=!1,syncTouch:h=!1,syncTouchLerp:u=.1,touchInertiaMultiplier:d=35,duration:f,easing:v=g=>Math.min(1,1.001-Math.pow(2,-10*g)),lerp:p=f?null:.1,infinite:k=!1,orientation:O=e!=null?e:"vertical",gestureOrientation:E=t!=null?t:"vertical",touchMultiplier:S=1,wheelMultiplier:_=s!=null?s:1,normalizeWheel:w=!1}={}){this.onVirtualScroll=({type:g,inertia:C,deltaX:I,deltaY:m,event:L})=>{if(L.ctrlKey)return;let z=g==="touch",qt=g==="wheel";if(this.options.gestureOrientation==="vertical"&&m===0||this.options.gestureOrientation==="horizontal"&&I===0||z&&this.options.gestureOrientation==="vertical"&&this.scroll===0&&!this.options.infinite&&m<=0||L.composedPath().find(X=>X==null||X.hasAttribute==null?void 0:X.hasAttribute("data-lenis-prevent")))return;if(this.isStopped||this.isLocked)return void L.preventDefault();if(this.isSmooth=(this.options.smoothTouch||this.options.syncTouch)&&z||this.options.smoothWheel&&qt,!this.isSmooth)return this.isScrolling=!1,void this.animate.stop();L.preventDefault();let R=m;this.options.gestureOrientation==="both"?R=Math.abs(m)>Math.abs(I)?m:I:this.options.gestureOrientation==="horizontal"&&(R=I);let Yt=z&&this.options.syncTouch,at=z&&C&&Math.abs(R)>1;at&&(R=this.velocity*this.options.touchInertiaMultiplier),this.scrollTo(this.targetScroll+R,Q({programmatic:!1},Yt&&{lerp:at?this.syncTouchLerp:.4}))},this.onScroll=()=>{if(!this.isScrolling){let g=this.animatedScroll;this.animatedScroll=this.targetScroll=this.actualScroll,this.velocity=0,this.direction=Math.sign(this.animatedScroll-g),this.emit()}},e&&console.warn("Lenis: `direction` option is deprecated, use `orientation` instead"),t&&console.warn("Lenis: `gestureDirection` option is deprecated, use `gestureOrientation` instead"),s&&console.warn("Lenis: `mouseMultiplier` option is deprecated, use `wheelMultiplier` instead"),n&&console.warn("Lenis: `smooth` option is deprecated, use `smoothWheel` instead"),window.lenisVersion="1.0.11",r!==document.documentElement&&r!==document.body||(r=window),this.options={wrapper:r,content:o,wheelEventsTarget:l,smoothWheel:a,smoothTouch:c,syncTouch:h,syncTouchLerp:u,touchInertiaMultiplier:d,duration:f,easing:v,lerp:p,infinite:k,gestureOrientation:E,orientation:O,touchMultiplier:S,wheelMultiplier:_,normalizeWheel:w},this.dimensions=new et(r,o),this.rootElement.classList.add("lenis"),this.velocity=0,this.isStopped=!1,this.isSmooth=a||c,this.isScrolling=!1,this.targetScroll=this.animatedScroll=this.actualScroll,this.animate=new tt,this.emitter=zt(),this.options.wrapper.addEventListener("scroll",this.onScroll,{passive:!1}),this.virtualScroll=new st(l,{touchMultiplier:S,wheelMultiplier:_,normalizeWheel:w}),this.virtualScroll.on("scroll",this.onVirtualScroll)}destroy(){this.emitter.events={},this.options.wrapper.removeEventListener("scroll",this.onScroll,{passive:!1}),this.virtualScroll.destroy()}on(e,t){return this.emitter.on(e,t)}off(e,t){var s;this.emitter.events[e]=(s=this.emitter.events[e])==null?void 0:s.filter(n=>t!==n)}setScroll(e){this.isHorizontal?this.rootElement.scrollLeft=e:this.rootElement.scrollTop=e}emit(){this.emitter.emit("scroll",this)}reset(){this.isLocked=!1,this.isScrolling=!1,this.velocity=0,this.animate.stop()}start(){this.isStopped=!1,this.reset()}stop(){this.isStopped=!0,this.animate.stop(),this.reset()}raf(e){let t=e-(this.time||e);this.time=e,this.animate.advance(.001*t)}scrollTo(e,{offset:t=0,immediate:s=!1,lock:n=!1,duration:r=this.options.duration,easing:o=this.options.easing,lerp:l=!r&&this.options.lerp,onComplete:a=null,force:c=!1,programmatic:h=!0}={}){if(!this.isStopped||c){if(["top","left","start"].includes(e))e=0;else if(["bottom","right","end"].includes(e))e=this.limit;else{var u;let d;if(typeof e=="string"?d=document.querySelector(e):(u=e)!=null&&u.nodeType&&(d=e),d){if(this.options.wrapper!==window){let v=this.options.wrapper.getBoundingClientRect();t-=this.isHorizontal?v.left:v.top}let f=d.getBoundingClientRect();e=(this.isHorizontal?f.left:f.top)+this.animatedScroll}}if(typeof e=="number"){if(e+=t,e=Math.round(e),this.options.infinite?h&&(this.targetScroll=this.animatedScroll=this.scroll):e=j(0,e,this.limit),s)return this.animatedScroll=this.targetScroll=e,this.setScroll(this.scroll),this.reset(),this.emit(),void(a==null||a());if(!h){if(e===this.targetScroll)return;this.targetScroll=e}this.animate.fromTo(this.animatedScroll,e,{duration:r,easing:o,lerp:l,onUpdate:(d,{completed:f})=>{n&&(this.isLocked=!0),this.isScrolling=!0,this.velocity=d-this.animatedScroll,this.direction=Math.sign(this.velocity),this.animatedScroll=d,this.setScroll(this.scroll),h&&(this.targetScroll=d),f&&(n&&(this.isLocked=!1),requestAnimationFrame(()=>{this.isScrolling=!1}),this.velocity=0,a==null||a()),this.emit()}})}}}get rootElement(){return this.options.wrapper===window?this.options.content:this.options.wrapper}get limit(){return this.isHorizontal?this.dimensions.limit.x:this.dimensions.limit.y}get isHorizontal(){return this.options.orientation==="horizontal"}get actualScroll(){return this.isHorizontal?this.rootElement.scrollLeft:this.rootElement.scrollTop}get scroll(){return this.options.infinite?function(e,t){let s=e%t;return(t>0&&s<0||t<0&&s>0)&&(s+=t),s}(this.animatedScroll,this.limit):this.animatedScroll}get progress(){return this.limit===0?1:this.scroll/this.limit}get isSmooth(){return this.__isSmooth}set isSmooth(e){this.__isSmooth!==e&&(this.rootElement.classList.toggle("lenis-smooth",e),this.__isSmooth=e)}get isScrolling(){return this.__isScrolling}set isScrolling(e){this.__isScrolling!==e&&(this.rootElement.classList.toggle("lenis-scrolling",e),this.__isScrolling=e)}get isStopped(){return this.__isStopped}set isStopped(e){this.__isStopped!==e&&(this.rootElement.classList.toggle("lenis-stopped",e),this.__isStopped=e)}};function it(){return it=Object.assign?Object.assign.bind():function(i){for(var e=1;e{s.forEach(n=>{let r=this.scrollElements.find(o=>o.$el===n.target);n.isIntersecting?(r&&(r.isAlreadyIntersected=!0),this._setInview(n)):r&&r.isAlreadyIntersected&&this._setOutOfView(n)})};this.observer=new IntersectionObserver(t,e);for(let s of this.scrollElements){let n=s.$el;this.observe(n)}}destroy(){this.observer.disconnect()}observe(e){e&&this.observer.observe(e)}unobserve(e){e&&this.observer.unobserve(e)}_setInview(e){let t=this.scrollElements.find(s=>s.$el===e.target);this.IORaf&&(t==null||t.setInteractivityOn()),!this.IORaf&&(t==null||t.setInview())}_setOutOfView(e){let t=this.scrollElements.find(s=>s.$el===e.target);this.IORaf&&(t==null||t.setInteractivityOff()),!this.IORaf&&(t==null||t.setOutOfView()),!(t!=null&&t.attributes.scrollRepeat)&&!this.IORaf&&this.unobserve(e.target)}};function Ce(i,e,t){return te?e:t}function Dt(i,e,t,s,n){let r=e-i,o=s-t;return t+((n-i)/r*o||0)}function Ae(i,e,t){return Dt(i,e,0,1,t)}function Pt(i,e){return i.reduce((t,s)=>Math.abs(s-e)0&&t<1&&this.setInview(),t===0&&this.setOutOfView(),t===1&&this.setOutOfView()}}_setCssProgress(e=0){this.$el.style.setProperty(Re,e.toString())}_setCustomEventProgress(e=0){let t=this.attributes.scrollEventProgress;if(!t)return;let s=new CustomEvent(t,{detail:{target:this.$el,progress:e}});window.dispatchEvent(s)}_getProgressModularModules(){if(!this.modularInstance)return;let e=Object.keys(this.$el.dataset).filter(s=>s.includes("module")),t=Object.entries(this.modularInstance.modules);if(e.length)for(let s of e){let n=this.$el.dataset[s];if(!n)return;for(let r of t){let[o,l]=r;n in l&&this.progressModularModules.push({moduleName:o,moduleId:n})}}}_getScrollCallFrom(){let e=Pt([this.intersection.start,this.intersection.end],this.currentScroll);return this.intersection.start===e?"start":"end"}_dispatchCall(e,t){var s,n;let r=(s=this.attributes.scrollCall)==null?void 0:s.split(","),o=(n=this.attributes)==null?void 0:n.scrollCallSelf;if(r&&r.length>1){var l;let[a,c,h]=r,u;o?u=this.$el.dataset[`module${c.trim()}`]:u=h,this.modularInstance&&this.modularInstance.call(a.trim(),{target:this.$el,way:e,from:t},c.trim(),(l=u)==null?void 0:l.trim())}else if(r){let[a]=r,c=new CustomEvent(a,{detail:{target:this.$el,way:e,from:t}});window.dispatchEvent(c)}}},ke=["scrollOffset","scrollPosition","scrollModuleProgress","scrollCssProgress","scrollEventProgress","scrollSpeed"],Le="-1px -1px -1px -1px",ze="100% 100% 100% 100%",rt=class{constructor({$el:e,modularInstance:t,triggerRootMargin:s,rafRootMargin:n,scrollOrientation:r}){if(this.$scrollContainer=void 0,this.modularInstance=void 0,this.triggerRootMargin=void 0,this.rafRootMargin=void 0,this.scrollElements=void 0,this.triggeredScrollElements=void 0,this.RAFScrollElements=void 0,this.scrollElementsToUpdate=void 0,this.IOTriggerInstance=void 0,this.IORafInstance=void 0,this.scrollOrientation=void 0,!e){console.error("Please provide a DOM Element as scrollContainer");return}this.$scrollContainer=e,this.modularInstance=t,this.scrollOrientation=r,this.triggerRootMargin=s!=null?s:Le,this.rafRootMargin=n!=null?n:ze,this.scrollElements=[],this.triggeredScrollElements=[],this.RAFScrollElements=[],this.scrollElementsToUpdate=[],this._init()}_init(){let e=this.$scrollContainer.querySelectorAll("[data-scroll]"),t=Array.from(e);this._subscribeScrollElements(t),this.IOTriggerInstance=new B({scrollElements:[...this.triggeredScrollElements],rootMargin:this.triggerRootMargin,IORaf:!1}),this.IORafInstance=new B({scrollElements:[...this.RAFScrollElements],rootMargin:this.rafRootMargin,IORaf:!0})}destroy(){this.IOTriggerInstance.destroy(),this.IORafInstance.destroy(),this._unsubscribeAllScrollElements()}onResize({currentScroll:e}){for(let t of this.RAFScrollElements)t.onResize({currentScroll:e})}onRender({currentScroll:e,smooth:t}){for(let s of this.scrollElementsToUpdate)s.onRender({currentScroll:e,smooth:t})}removeScrollElements(e){let t=e.querySelectorAll("[data-scroll]");if(t.length){for(let s=0;s-1&&(this.IOTriggerInstance.unobserve(n.$el),this.triggeredScrollElements.splice(s,1))}for(let s=0;s-1&&(this.IORafInstance.unobserve(n.$el),this.RAFScrollElements.splice(s,1))}t.forEach(s=>{let n=this.scrollElementsToUpdate.find(o=>o.$el===s),r=this.scrollElements.find(o=>o.$el===s);n&&this._unsubscribeElementUpdate(n),r&&(this.scrollElements=this.scrollElements.filter(o=>o.id!=r.id))})}}addScrollElements(e){let t=e.querySelectorAll("[data-scroll]"),s=[];this.scrollElements.forEach(l=>{s.push(l.id)});let r=Math.max(...s)+1,o=Array.from(t);this._subscribeScrollElements(o,r,!0)}_subscribeScrollElements(e,t=0,s=!1){for(let n=0;nt.id!=e.id)}_checkRafNeeded(e){let t=[...ke],s=n=>{t=t.filter(r=>r!=n)};if(e.dataset.scrollOffset){if(e.dataset.scrollOffset.split(",").map(r=>r.replace("%","").trim()).join(",")!="0,0")return!0;s("scrollOffset")}else s("scrollOffset");if(e.dataset.scrollPosition){if(e.dataset.scrollPosition.trim()!="top,bottom")return!0;s("scrollPosition")}else s("scrollPosition");if(e.dataset.scrollSpeed&&!isNaN(parseFloat(e.dataset.scrollSpeed)))return!0;s("scrollSpeed");for(let n of t)if(n in e.dataset)return!0;return!1}},ot=class{constructor({resizeElements:e,resizeCallback:t=()=>{}}){this.$resizeElements=void 0,this.isFirstObserve=void 0,this.observer=void 0,this.resizeCallback=void 0,this.$resizeElements=e,this.resizeCallback=t,this.isFirstObserve=!0,this._init()}_init(){let e=t=>{var s;!this.isFirstObserve&&((s=this.resizeCallback)==null||s.call(this)),this.isFirstObserve=!1};this.observer=new ResizeObserver(e);for(let t of this.$resizeElements)this.observer.observe(t)}destroy(){this.observer.disconnect()}},$t={wrapper:window,content:document.documentElement,lerp:.1,duration:1.2,orientation:"vertical",gestureOrientation:"vertical",smoothWheel:!0,smoothTouch:!1,wheelMultiplier:1,touchMultiplier:2,normalizeWheel:!0,easing:i=>Math.min(1,1.001-Math.pow(2,-10*i))},V=class{constructor({lenisOptions:e={},modularInstance:t,triggerRootMargin:s,rafRootMargin:n,autoResize:r=!0,autoStart:o=!0,scrollCallback:l=()=>{},initCustomTicker:a,destroyCustomTicker:c}={}){this.rafPlaying=void 0,this.lenisInstance=void 0,this.coreInstance=void 0,this.lenisOptions=void 0,this.modularInstance=void 0,this.triggerRootMargin=void 0,this.rafRootMargin=void 0,this.rafInstance=void 0,this.autoResize=void 0,this.autoStart=void 0,this.ROInstance=void 0,this.initCustomTicker=void 0,this.destroyCustomTicker=void 0,this._onRenderBind=void 0,this._onResizeBind=void 0,this._onScrollToBind=void 0,this.lenisOptions=it({},$t,e),Object.assign(this,{lenisOptions:e,modularInstance:t,triggerRootMargin:s,rafRootMargin:n,autoResize:r,autoStart:o,scrollCallback:l,initCustomTicker:a,destroyCustomTicker:c}),this._onRenderBind=this._onRender.bind(this),this._onScrollToBind=this._onScrollTo.bind(this),this._onResizeBind=this._onResize.bind(this),this.rafPlaying=!1,this._init()}_init(){var e;this.lenisInstance=new H({wrapper:this.lenisOptions.wrapper,content:this.lenisOptions.content,lerp:this.lenisOptions.lerp,duration:this.lenisOptions.duration,orientation:this.lenisOptions.orientation,gestureOrientation:this.lenisOptions.gestureOrientation,smoothWheel:this.lenisOptions.smoothWheel,smoothTouch:this.lenisOptions.smoothTouch,wheelMultiplier:this.lenisOptions.wheelMultiplier,touchMultiplier:this.lenisOptions.touchMultiplier,normalizeWheel:this.lenisOptions.normalizeWheel,easing:this.lenisOptions.easing}),(e=this.lenisInstance)==null||e.on("scroll",this.scrollCallback),document.documentElement.setAttribute("data-scroll-orientation",this.lenisInstance.options.orientation),requestAnimationFrame(()=>{this.coreInstance=new rt({$el:this.lenisInstance.rootElement,modularInstance:this.modularInstance,triggerRootMargin:this.triggerRootMargin,rafRootMargin:this.rafRootMargin,scrollOrientation:this.lenisInstance.options.orientation}),this._bindEvents(),this.initCustomTicker&&!this.destroyCustomTicker?console.warn("initCustomTicker callback is declared, but destroyCustomTicker is not. Please pay attention. It could cause trouble."):!this.initCustomTicker&&this.destroyCustomTicker&&console.warn("destroyCustomTicker callback is declared, but initCustomTicker is not. Please pay attention. It could cause trouble."),this.autoStart&&this.start()})}destroy(){this.stop(),this._unbindEvents(),this.lenisInstance.destroy(),this.coreInstance.destroy()}_bindEvents(){this._bindScrollToEvents(),this.autoResize&&("ResizeObserver"in window?this.ROInstance=new ot({resizeElements:[document.body],resizeCallback:this._onResizeBind}):window.addEventListener("resize",this._onResizeBind))}_unbindEvents(){this._unbindScrollToEvents(),this.autoResize&&("ResizeObserver"in window?this.ROInstance&&this.ROInstance.destroy():window.removeEventListener("resize",this._onResizeBind))}_bindScrollToEvents(e){let t=e||this.lenisInstance.rootElement,s=t==null?void 0:t.querySelectorAll("[data-scroll-to]");s!=null&&s.length&&s.forEach(n=>{n.addEventListener("click",this._onScrollToBind,!1)})}_unbindScrollToEvents(e){let t=e||this.lenisInstance.rootElement,s=t==null?void 0:t.querySelectorAll("[data-scroll-to]");s!=null&&s.length&&s.forEach(n=>{n.removeEventListener("click",this._onScrollToBind,!1)})}_onResize(){requestAnimationFrame(()=>{var e;(e=this.coreInstance)==null||e.onResize({currentScroll:this.lenisInstance.scroll})})}_onRender(){var e,t;(e=this.lenisInstance)==null||e.raf(Date.now()),(t=this.coreInstance)==null||t.onRender({currentScroll:this.lenisInstance.scroll,smooth:this.lenisInstance.isSmooth})}_onScrollTo(e){var t;e.preventDefault();let s=(t=e.currentTarget)!=null?t:null;if(!s)return;let n=s.getAttribute("data-scroll-to-href")||s.getAttribute("href"),r=s.getAttribute("data-scroll-to-offset")||0,o=s.getAttribute("data-scroll-to-duration")||this.lenisOptions.duration||$t.duration;n&&this.scrollTo(n,{offset:typeof r=="string"?parseInt(r):r,duration:typeof o=="string"?parseInt(o):o})}start(){this.rafPlaying||(this.rafPlaying=!0,this.initCustomTicker?this.initCustomTicker(this._onRenderBind):this._raf())}stop(){this.rafPlaying&&(this.rafPlaying=!1,this.destroyCustomTicker?this.destroyCustomTicker(this._onRenderBind):this.rafInstance&&cancelAnimationFrame(this.rafInstance))}removeScrollElements(e){var t;if(!e){console.error("Please provide a DOM Element as $oldContainer");return}this._unbindScrollToEvents(e),(t=this.coreInstance)==null||t.removeScrollElements(e)}addScrollElements(e){var t;if(!e){console.error("Please provide a DOM Element as $newContainer");return}(t=this.coreInstance)==null||t.addScrollElements(e),requestAnimationFrame(()=>{this._bindScrollToEvents(e)})}resize(){this._onResizeBind()}scrollTo(e,t){var s;(s=this.lenisInstance)==null||s.scrollTo(e,{offset:t==null?void 0:t.offset,lerp:t==null?void 0:t.lerp,duration:t==null?void 0:t.duration,immediate:t==null?void 0:t.immediate,lock:t==null?void 0:t.lock,force:t==null?void 0:t.force,easing:t==null?void 0:t.easing,onComplete:t==null?void 0:t.onComplete})}_raf(){this._onRenderBind(),this.rafInstance=requestAnimationFrame(()=>this._raf())}};var G=class extends A{constructor(i){super(i)}init(){this.scroll=new V({modularInstance:this})}lazyLoad(i){kt(i.target,null,()=>{})}scrollTo(i){var n;let s=i,{target:e}=s,t=dt(s,["target"]);t=Object.assign({duration:1},t),(n=this.scroll)==null||n.scrollTo(e,t)}destroy(){this.scroll.destroy()}};var jt=se(Ft(),1);var Y;y(void 0,null,function*(){if(M.IS_DEV){let i=yield Promise.resolve().then(()=>(Wt(),Nt));Y=i==null?void 0:i.gridHelper}});function Ht(){(0,jt.default)(),Y==null||Y()}var Bt=(i,e,t=!1)=>{let s=null;return(...n)=>{clearTimeout(s);let r=()=>{s=null,t||i(...n)};t&&!s&&i(...n),s=setTimeout(r,e)}};var T=document.documentElement,Es=document.body;var Vt=new bt({modules:lt});window.onload=i=>{let e=document.getElementById("main-css");e?e.isLoaded?Gt():e.addEventListener("load",t=>{Gt()}):console.warn('The "main-css" stylesheet not found')};function Gt(){Ht(),Vt.init(Vt),T.classList.add(b.LOADED),T.classList.add(b.READY),T.classList.remove(b.LOADING);let i=new CustomEvent(wt.RESIZE_END);window.addEventListener("resize",()=>{T.style.setProperty("--vw",`${document.documentElement.clientWidth*.01}px`),Bt(()=>{window.dispatchEvent(i)},200,!1)}),_t&&Ot(F.EAGER,M.IS_DEV).then(e=>{T.classList.add(b.FONTS_LOADED),M.IS_DEV&&(console.group("Eager fonts loaded!",e.length,"/",document.fonts.size),console.group("State of eager fonts:"),e.forEach(t=>console.log(t.family,t.style,t.weight,t.status)),console.groupEnd(),console.group("State of all fonts:"),document.fonts.forEach(t=>console.log(t.family,t.style,t.weight,t.status)),console.groupEnd())})}})(); +(() => { + var __create = Object.create; + var __defProp = Object.defineProperty; + var __getOwnPropDesc = Object.getOwnPropertyDescriptor; + var __getOwnPropNames = Object.getOwnPropertyNames; + var __getOwnPropSymbols = Object.getOwnPropertySymbols; + var __getProtoOf = Object.getPrototypeOf; + var __hasOwnProp = Object.prototype.hasOwnProperty; + var __propIsEnum = Object.prototype.propertyIsEnumerable; + var __objRest = (source, exclude) => { + var target = {}; + for (var prop in source) + if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) + target[prop] = source[prop]; + if (source != null && __getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(source)) { + if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop)) + target[prop] = source[prop]; + } + return target; + }; + var __esm = (fn, res) => function __init() { + return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; + }; + var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; + }; + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; + }; + var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod + )); + var __async = (__this, __arguments, generator) => { + return new Promise((resolve, reject) => { + var fulfilled = (value) => { + try { + step(generator.next(value)); + } catch (e2) { + reject(e2); + } + }; + var rejected = (value) => { + try { + step(generator.throw(value)); + } catch (e2) { + reject(e2); + } + }; + var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); + step((generator = generator.apply(__this, __arguments)).next()); + }); + }; + + // node_modules/svg4everybody/dist/svg4everybody.js + var require_svg4everybody = __commonJS({ + "node_modules/svg4everybody/dist/svg4everybody.js"(exports, module) { + !function(root, factory) { + "function" == typeof define && define.amd ? ( + // AMD. Register as an anonymous module unless amdModuleId is set + define([], function() { + return root.svg4everybody = factory(); + }) + ) : "object" == typeof module && module.exports ? ( + // Node. Does not work with strict CommonJS, but + // only CommonJS-like environments that support module.exports, + // like Node. + module.exports = factory() + ) : root.svg4everybody = factory(); + }(exports, function() { + function embed(parent, svg, target) { + if (target) { + var fragment = document.createDocumentFragment(), viewBox = !svg.hasAttribute("viewBox") && target.getAttribute("viewBox"); + viewBox && svg.setAttribute("viewBox", viewBox); + for (var clone = target.cloneNode(true); clone.childNodes.length; ) { + fragment.appendChild(clone.firstChild); + } + parent.appendChild(fragment); + } + } + function loadreadystatechange(xhr) { + xhr.onreadystatechange = function() { + if (4 === xhr.readyState) { + var cachedDocument = xhr._cachedDocument; + cachedDocument || (cachedDocument = xhr._cachedDocument = document.implementation.createHTMLDocument(""), cachedDocument.body.innerHTML = xhr.responseText, xhr._cachedTarget = {}), // clear the xhr embeds list and embed each item + xhr._embeds.splice(0).map(function(item) { + var target = xhr._cachedTarget[item.id]; + target || (target = xhr._cachedTarget[item.id] = cachedDocument.getElementById(item.id)), // embed the target into the svg + embed(item.parent, item.svg, target); + }); + } + }, // test the ready state change immediately + xhr.onreadystatechange(); + } + function svg4everybody2(rawopts) { + function oninterval() { + for (var index = 0; index < uses.length; ) { + var use = uses[index], parent = use.parentNode, svg = getSVGAncestor(parent), src = use.getAttribute("xlink:href") || use.getAttribute("href"); + if (!src && opts.attributeName && (src = use.getAttribute(opts.attributeName)), svg && src) { + if (polyfill) { + if (!opts.validate || opts.validate(src, svg, use)) { + parent.removeChild(use); + var srcSplit = src.split("#"), url = srcSplit.shift(), id = srcSplit.join("#"); + if (url.length) { + var xhr = requests[url]; + xhr || (xhr = requests[url] = new XMLHttpRequest(), xhr.open("GET", url), xhr.send(), xhr._embeds = []), // add the svg and id as an item to the xhr embeds list + xhr._embeds.push({ + parent, + svg, + id + }), // prepare the xhr ready state change event + loadreadystatechange(xhr); + } else { + embed(parent, svg, document.getElementById(id)); + } + } else { + ++index, ++numberOfSvgUseElementsToBypass; + } + } + } else { + ++index; + } + } + (!uses.length || uses.length - numberOfSvgUseElementsToBypass > 0) && requestAnimationFrame2(oninterval, 67); + } + var polyfill, opts = Object(rawopts), newerIEUA = /\bTrident\/[567]\b|\bMSIE (?:9|10)\.0\b/, webkitUA = /\bAppleWebKit\/(\d+)\b/, olderEdgeUA = /\bEdge\/12\.(\d+)\b/, edgeUA = /\bEdge\/.(\d+)\b/, inIframe = window.top !== window.self; + polyfill = "polyfill" in opts ? opts.polyfill : newerIEUA.test(navigator.userAgent) || (navigator.userAgent.match(olderEdgeUA) || [])[1] < 10547 || (navigator.userAgent.match(webkitUA) || [])[1] < 537 || edgeUA.test(navigator.userAgent) && inIframe; + var requests = {}, requestAnimationFrame2 = window.requestAnimationFrame || setTimeout, uses = document.getElementsByTagName("use"), numberOfSvgUseElementsToBypass = 0; + polyfill && oninterval(); + } + function getSVGAncestor(node) { + for (var svg = node; "svg" !== svg.nodeName.toLowerCase() && (svg = svg.parentNode); ) { + } + return svg; + } + return svg4everybody2; + }); + } + }); + + // assets/scripts/utils/grid-helper.js + var grid_helper_exports = {}; + __export(grid_helper_exports, { + gridHelper: () => gridHelper + }); + function gridHelper({ + gutterCssVar = GRID_HELPER_GUTTER_CSS_VAR, + marginCssVar = GRID_HELPER_MARGIN_CSS_VAR, + rgbaColor = GRID_HELPER_RGBA_COLOR + } = {}) { + const $gridContainer = document.createElement("div"); + document.body.append($gridContainer); + setGridHelperColumns($gridContainer, rgbaColor); + setGridHelperStyles($gridContainer, gutterCssVar, marginCssVar); + setGridEvents($gridContainer, rgbaColor); + } + function setGridHelperStyles($container, gutterCssVar, marginCssVar) { + const elStyles = $container.style; + elStyles.zIndex = "10000"; + elStyles.position = "fixed"; + elStyles.top = "0"; + elStyles.left = "0"; + elStyles.display = "flex"; + elStyles.width = "100%"; + elStyles.height = "100%"; + elStyles.columnGap = `var(${gutterCssVar}, 0)`; + elStyles.paddingLeft = `var(${marginCssVar}, 0)`; + elStyles.paddingRight = `var(${marginCssVar}, 0)`; + elStyles.pointerEvents = "none"; + elStyles.visibility = "hidden"; + } + function setGridHelperColumns($container, rgbaColor) { + $container.innerHTML = ""; + const columns = Number( + window.getComputedStyle($container).getPropertyValue("--grid-columns") + ); + let $col; + for (var i2 = 0; i2 < columns; i2++) { + $col = document.createElement("div"); + $col.style.flex = "1 1 0"; + $col.style.backgroundColor = rgbaColor; + $container.appendChild($col); + } + } + function setGridEvents($container, rgbaColor) { + window.addEventListener( + "resize", + setGridHelperColumns($container, rgbaColor) + ); + let ctrlDown = false; + let isActive = false; + document.addEventListener("keydown", (e2) => { + if (e2.key == "Control") { + ctrlDown = true; + } else { + if (ctrlDown && e2.key == "g") { + if (isActive) { + $container.style.visibility = "hidden"; + } else { + $container.style.visibility = "visible"; + } + isActive = !isActive; + } + } + }); + document.addEventListener("keyup", (e2) => { + if (e2.key == "Control") { + ctrlDown = false; + } + }); + } + var GRID_HELPER_GUTTER_CSS_VAR, GRID_HELPER_MARGIN_CSS_VAR, GRID_HELPER_RGBA_COLOR; + var init_grid_helper = __esm({ + "assets/scripts/utils/grid-helper.js"() { + GRID_HELPER_GUTTER_CSS_VAR = "--grid-gutter"; + GRID_HELPER_MARGIN_CSS_VAR = "--grid-margin"; + GRID_HELPER_RGBA_COLOR = "rgba(255, 0, 0, .1)"; + } + }); + + // node_modules/modujs/dist/main.esm.js + function _typeof(obj) { + "@babel/helpers - typeof"; + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function(obj2) { + return typeof obj2; + }; + } else { + _typeof = function(obj2) { + return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; + }; + } + return _typeof(obj); + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i2 = 0; i2 < props.length; i2++) { + var descriptor = props[i2]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) + descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) + _defineProperties(Constructor.prototype, protoProps); + if (staticProps) + _defineProperties(Constructor, staticProps); + return Constructor; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _slicedToArray(arr, i2) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i2) || _unsupportedIterableToArray(arr, i2) || _nonIterableRest(); + } + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); + } + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) + return _arrayLikeToArray(arr); + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) + return arr; + } + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) + return Array.from(iter); + } + function _iterableToArrayLimit(arr, i2) { + if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) + return; + var _arr = []; + var _n = true; + var _d = false; + var _e = void 0; + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i2 && _arr.length === i2) + break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) + _i["return"](); + } finally { + if (_d) + throw _e; + } + } + return _arr; + } + function _unsupportedIterableToArray(o2, minLen) { + if (!o2) + return; + if (typeof o2 === "string") + return _arrayLikeToArray(o2, minLen); + var n2 = Object.prototype.toString.call(o2).slice(8, -1); + if (n2 === "Object" && o2.constructor) + n2 = o2.constructor.name; + if (n2 === "Map" || n2 === "Set") + return Array.from(o2); + if (n2 === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n2)) + return _arrayLikeToArray(o2, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) + len = arr.length; + for (var i2 = 0, arr2 = new Array(len); i2 < len; i2++) + arr2[i2] = arr[i2]; + return arr2; + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + var _default = /* @__PURE__ */ function() { + function _default3(options) { + _classCallCheck(this, _default3); + this.mAttr = "data-" + options.dataName; + this.mCaptureEvents = ["mouseenter", "mouseleave"]; + this.el = options.el; + } + _createClass(_default3, [{ + key: "mInit", + value: function mInit(modules) { + var _this = this; + this.modules = modules; + this.mCheckEventTarget = this.mCheckEventTarget.bind(this); + if (this.events) { + Object.keys(this.events).forEach(function(event) { + return _this.mAddEvent(event); + }); + } + } + }, { + key: "mUpdate", + value: function mUpdate(modules) { + this.modules = modules; + } + }, { + key: "mDestroy", + value: function mDestroy() { + var _this2 = this; + if (this.events) { + Object.keys(this.events).forEach(function(event) { + return _this2.mRemoveEvent(event); + }); + } + } + }, { + key: "mAddEvent", + value: function mAddEvent(event) { + var capture = this.mCaptureEvents.includes(event) ? true : false; + this.el.addEventListener(event, this.mCheckEventTarget, capture); + } + }, { + key: "mRemoveEvent", + value: function mRemoveEvent(event) { + var capture = this.mCaptureEvents.includes(event) ? true : false; + this.el.removeEventListener(event, this.mCheckEventTarget, capture); + } + }, { + key: "mCheckEventTarget", + value: function mCheckEventTarget(e2) { + var event = this.events[e2.type]; + if (typeof event === "string") { + this[event](e2); + } else { + var data = "[" + this.mAttr + "]"; + var target = e2.target; + if (this.mCaptureEvents.includes(e2.type)) { + if (target.matches(data)) { + this.mCallEventMethod(e2, event, target); + } + } else { + while (target && target !== document) { + if (target.matches(data)) { + if (this.mCallEventMethod(e2, event, target) != "undefined") { + break; + } + } + target = target.parentNode; + } + } + } + } + }, { + key: "mCallEventMethod", + value: function mCallEventMethod(e2, event, target) { + var name = target.getAttribute(this.mAttr); + if (event.hasOwnProperty(name)) { + var method = event[name]; + if (!e2.hasOwnProperty("currentTarget")) { + Object.defineProperty(e2, "currentTarget", { + value: target + }); + } + if (!e2.hasOwnProperty("curTarget")) { + Object.defineProperty(e2, "curTarget", { + value: target + }); + } + this[method](e2); + } + } + }, { + key: "$", + value: function $(query, context) { + var classIndex = query.indexOf("."); + var idIndex = query.indexOf("#"); + var attrIndex = query.indexOf("["); + var indexes = [classIndex, idIndex, attrIndex].filter(function(index2) { + return index2 != -1; + }); + var index = false; + var name = query; + var more = ""; + var parent = this.el; + if (indexes.length) { + index = Math.min.apply(Math, _toConsumableArray(indexes)); + name = query.slice(0, index); + more = query.slice(index); + } + if (_typeof(context) == "object") { + parent = context; + } + return parent.querySelectorAll("[" + this.mAttr + "=" + name + "]" + more); + } + }, { + key: "parent", + value: function parent(query, context) { + var data = "[" + this.mAttr + "=" + query + "]"; + var parent2 = context.parentNode; + while (parent2 && parent2 !== document) { + if (parent2.matches(data)) { + return parent2; + } + parent2 = parent2.parentNode; + } + } + }, { + key: "getData", + value: function getData(name, context) { + var target = context || this.el; + return target.getAttribute(this.mAttr + "-" + name); + } + }, { + key: "setData", + value: function setData(name, value, context) { + var target = context || this.el; + return target.setAttribute(this.mAttr + "-" + name, value); + } + }, { + key: "call", + value: function call(func, args, mod, id) { + var _this3 = this; + if (args && !mod) { + mod = args; + args = false; + } + if (this.modules[mod]) { + if (id) { + if (this.modules[mod][id]) { + this.modules[mod][id][func](args); + } + } else { + Object.keys(this.modules[mod]).forEach(function(id2) { + _this3.modules[mod][id2][func](args); + }); + } + } + } + }, { + key: "on", + value: function on(e2, mod, func, id) { + var _this4 = this; + if (this.modules[mod]) { + if (id) { + this.modules[mod][id].el.addEventListener(e2, function(o2) { + return func(o2); + }); + } else { + Object.keys(this.modules[mod]).forEach(function(i2) { + _this4.modules[mod][i2].el.addEventListener(e2, function(o2) { + return func(o2); + }); + }); + } + } + } + }, { + key: "init", + value: function init2() { + } + }, { + key: "destroy", + value: function destroy() { + } + }]); + return _default3; + }(); + var _default$1 = /* @__PURE__ */ function() { + function _default3(options) { + _classCallCheck(this, _default3); + this.app; + this.modules = options.modules; + this.currentModules = {}; + this.activeModules = {}; + this.newModules = {}; + this.moduleId = 0; + } + _createClass(_default3, [{ + key: "init", + value: function init2(app2, scope) { + var _this = this; + var container = scope || document; + var elements = container.querySelectorAll("*"); + if (app2 && !this.app) { + this.app = app2; + } + this.activeModules["app"] = { + "app": this.app + }; + elements.forEach(function(el) { + Array.from(el.attributes).forEach(function(i2) { + if (i2.name.startsWith("data-module")) { + var moduleExists = false; + var dataName = i2.name.split("-").splice(2); + var moduleName = _this.toCamel(dataName); + if (_this.modules[moduleName]) { + moduleExists = true; + } else if (_this.modules[_this.toUpper(moduleName)]) { + moduleName = _this.toUpper(moduleName); + moduleExists = true; + } + if (moduleExists) { + var options = { + el, + name: moduleName, + dataName: dataName.join("-") + }; + var module = new _this.modules[moduleName](options); + var id = i2.value; + if (!id) { + _this.moduleId++; + id = "m" + _this.moduleId; + el.setAttribute(i2.name, id); + } + _this.addActiveModule(moduleName, id, module); + var moduleId = moduleName + "-" + id; + if (scope) { + _this.newModules[moduleId] = module; + } else { + _this.currentModules[moduleId] = module; + } + } + } + }); + }); + Object.entries(this.currentModules).forEach(function(_ref) { + var _ref2 = _slicedToArray(_ref, 2), id = _ref2[0], module = _ref2[1]; + if (scope) { + var split = id.split("-"); + var moduleName = split.shift(); + var moduleId = split.pop(); + _this.addActiveModule(moduleName, moduleId, module); + } else { + _this.initModule(module); + } + }); + } + }, { + key: "initModule", + value: function initModule(module) { + module.mInit(this.activeModules); + module.init(); + } + }, { + key: "addActiveModule", + value: function addActiveModule(name, id, module) { + if (this.activeModules[name]) { + Object.assign(this.activeModules[name], _defineProperty({}, id, module)); + } else { + this.activeModules[name] = _defineProperty({}, id, module); + } + } + }, { + key: "update", + value: function update(scope) { + var _this2 = this; + this.init(this.app, scope); + Object.entries(this.currentModules).forEach(function(_ref3) { + var _ref4 = _slicedToArray(_ref3, 2), id = _ref4[0], module = _ref4[1]; + module.mUpdate(_this2.activeModules); + }); + Object.entries(this.newModules).forEach(function(_ref5) { + var _ref6 = _slicedToArray(_ref5, 2), id = _ref6[0], module = _ref6[1]; + _this2.initModule(module); + }); + Object.assign(this.currentModules, this.newModules); + } + }, { + key: "destroy", + value: function destroy(scope) { + if (scope) { + this.destroyScope(scope); + } else { + this.destroyModules(); + } + } + }, { + key: "destroyScope", + value: function destroyScope(scope) { + var _this3 = this; + var elements = scope.querySelectorAll("*"); + elements.forEach(function(el) { + Array.from(el.attributes).forEach(function(i2) { + if (i2.name.startsWith("data-module")) { + var id = i2.value; + var dataName = i2.name.split("-").splice(2); + var moduleName = _this3.toCamel(dataName) + "-" + id; + var moduleExists = false; + if (_this3.currentModules[moduleName]) { + moduleExists = true; + } else if (_this3.currentModules[_this3.toUpper(moduleName)]) { + moduleName = _this3.toUpper(moduleName); + moduleExists = true; + } + if (moduleExists) { + _this3.destroyModule(_this3.currentModules[moduleName]); + delete _this3.currentModules[moduleName]; + } + } + }); + }); + this.activeModules = {}; + this.newModules = {}; + } + }, { + key: "destroyModules", + value: function destroyModules() { + var _this4 = this; + Object.entries(this.currentModules).forEach(function(_ref7) { + var _ref8 = _slicedToArray(_ref7, 2), id = _ref8[0], module = _ref8[1]; + _this4.destroyModule(module); + }); + this.currentModules = []; + } + }, { + key: "destroyModule", + value: function destroyModule(module) { + module.mDestroy(); + module.destroy(); + } + }, { + key: "toCamel", + value: function toCamel(arr) { + var _this5 = this; + return arr.reduce(function(a, b) { + return a + _this5.toUpper(b); + }); + } + }, { + key: "toUpper", + value: function toUpper(str) { + return str.charAt(0).toUpperCase() + str.slice(1); + } + }]); + return _default3; + }(); + var main_esm_default = _default$1; + + // assets/scripts/modules.js + var modules_exports = {}; + __export(modules_exports, { + Example: () => Example_default, + Load: () => Load_default, + Scroll: () => Scroll_default + }); + + // assets/scripts/config.js + var NODE_ENV = "development"; + var IS_DESKTOP = typeof window.orientation === "undefined"; + var ENV = Object.freeze({ + // Node environment + NAME: NODE_ENV, + IS_PROD: NODE_ENV === "production", + IS_DEV: NODE_ENV === "development", + // Device + IS_DESKTOP, + IS_MOBILE: !IS_DESKTOP + }); + var CSS_CLASS = Object.freeze({ + LOADING: "is-loading", + LOADED: "is-loaded", + READY: "is-ready", + FONTS_LOADED: "fonts-loaded", + IMAGE: "c-image", + IMAGE_LAZY_LOADED: "-lazy-loaded", + IMAGE_LAZY_LOADING: "-lazy-loading", + IMAGE_LAZY_ERROR: "-lazy-error" + }); + var CUSTOM_EVENT = Object.freeze({ + RESIZE_END: "loco.resizeEnd" + // ... + }); + var FONT = Object.freeze({ + EAGER: [ + { family: "Source Sans", style: "normal", weight: 400 }, + { family: "Source Sans", style: "normal", weight: 700 } + ] + }); + + // assets/scripts/utils/fonts.js + var isFontLoadingAPIAvailable = "fonts" in document; + function conformsToReference(font, criterion2) { + for (const [key, value] of Object.entries(criterion2)) { + switch (key) { + case "family": { + if (trim(font[key]) !== value) { + return false; + } + break; + } + case "weight": { + if (font[key] != value) { + return false; + } + break; + } + default: { + if (font[key] !== value) { + return false; + } + break; + } + } + } + return true; + } + function conformsToShorthand(font, criterion2) { + const family = trim(font.family); + if (trim(family) === criterion2) { + return true; + } + if (criterion2.endsWith(trim(family)) && (criterion2.match(font.weight) || criterion2.match(font.style))) { + return true; + } + return true; + } + function findManyByReference(search) { + const found = []; + for (const font of document.fonts) { + if (conformsToReference(font, search)) { + found.push(font); + } + } + return found; + } + function findManyByShorthand(search) { + const found = []; + for (const font of document.fonts) { + if (conformsToShorthand(font, search)) { + found.push(font); + } + } + return found; + } + function getMany(queries) { + if (!Array.isArray(queries)) { + queries = [queries]; + } + const found = /* @__PURE__ */ new Set(); + queries.forEach((search) => { + if (search) { + switch (typeof search) { + case "string": + found.add(...findManyByShorthand(search)); + return; + case "object": + found.add(...findManyByReference(search)); + return; + } + } + throw new TypeError( + "Expected font query to be font shorthand or font reference" + ); + }); + return [...found]; + } + function loadFonts(fontsToLoad, debug = false) { + return __async(this, null, function* () { + var _a; + if (((_a = fontsToLoad.size) != null ? _a : fontsToLoad.length) === 0) { + throw new TypeError( + "Expected at least one font" + ); + } + return yield loadFontsWithAPI([...fontsToLoad], debug); + }); + } + function loadFontFaceWithAPI(font) { + return __async(this, null, function* () { + return yield (font.status === "unloaded" ? font.load() : font.loaded).then((font2) => font2, (err) => font); + }); + } + function loadFontsWithAPI(fontsToLoad, debug = false) { + return __async(this, null, function* () { + debug && console.group("[loadFonts:API]", fontsToLoad.length, "/", document.fonts.size); + const fontsToBeLoaded = []; + for (const fontToLoad of fontsToLoad) { + if (fontToLoad instanceof FontFace) { + if (!document.fonts.has(fontToLoad)) { + document.fonts.add(fontToLoad); + } + fontsToBeLoaded.push( + loadFontFaceWithAPI(fontToLoad) + ); + } else { + fontsToBeLoaded.push( + ...getMany(fontToLoad).map((font) => loadFontFaceWithAPI(font)) + ); + } + } + debug && console.groupEnd(); + return yield Promise.all(fontsToBeLoaded); + }); + } + function trim(value) { + return value.replace(/['"]+/g, ""); + } + function whenReady(queries) { + return __async(this, null, function* () { + const fonts = getMany(queries); + return yield Promise.all(fonts.map((font) => font.loaded)); + }); + } + + // assets/scripts/modules/Example.js + var Example_default = class extends _default { + constructor(m) { + super(m); + } + init() { + whenReady(FONT.EAGER).then((fonts) => this.onFontsLoaded(fonts)); + } + onFontsLoaded(fonts) { + console.log("Example: Eager Fonts Loaded!", fonts); + } + }; + + // node_modules/modularload/dist/main.esm.js + function _classCallCheck2(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties2(target, props) { + for (var i2 = 0; i2 < props.length; i2++) { + var descriptor = props[i2]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) + descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass2(Constructor, protoProps, staticProps) { + if (protoProps) + _defineProperties2(Constructor.prototype, protoProps); + if (staticProps) + _defineProperties2(Constructor, staticProps); + return Constructor; + } + function _slicedToArray2(arr, i2) { + return _arrayWithHoles2(arr) || _iterableToArrayLimit2(arr, i2) || _unsupportedIterableToArray2(arr, i2) || _nonIterableRest2(); + } + function _arrayWithHoles2(arr) { + if (Array.isArray(arr)) + return arr; + } + function _iterableToArrayLimit2(arr, i2) { + var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; + if (_i == null) + return; + var _arr = []; + var _n = true; + var _d = false; + var _s, _e; + try { + for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i2 && _arr.length === i2) + break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) + _i["return"](); + } finally { + if (_d) + throw _e; + } + } + return _arr; + } + function _unsupportedIterableToArray2(o2, minLen) { + if (!o2) + return; + if (typeof o2 === "string") + return _arrayLikeToArray2(o2, minLen); + var n2 = Object.prototype.toString.call(o2).slice(8, -1); + if (n2 === "Object" && o2.constructor) + n2 = o2.constructor.name; + if (n2 === "Map" || n2 === "Set") + return Array.from(o2); + if (n2 === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n2)) + return _arrayLikeToArray2(o2, minLen); + } + function _arrayLikeToArray2(arr, len) { + if (len == null || len > arr.length) + len = arr.length; + for (var i2 = 0, arr2 = new Array(len); i2 < len; i2++) + arr2[i2] = arr[i2]; + return arr2; + } + function _nonIterableRest2() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + var _default2 = /* @__PURE__ */ function() { + function _default3(options) { + _classCallCheck2(this, _default3); + this.defaults = { + name: "load", + loadingClass: "is-loading", + loadedClass: "is-loaded", + readyClass: "is-ready", + transitionsPrefix: "is-", + transitionsHistory: true, + enterDelay: 0, + exitDelay: 0, + loadedDelay: 0, + isLoaded: false, + isEntered: false, + isUrl: false, + transitionContainer: null, + popstateIgnore: false + }; + Object.assign(this, this.defaults, options); + this.options = options; + this.namespace = "modular"; + this.html = document.documentElement; + this.href = window.location.href; + this.container = "data-" + this.name + "-container"; + this.subContainer = false; + this.prevTransition = null; + this.loadAttributes = ["src", "srcset", "style", "href"]; + this.isInserted = false; + this.isLoading = false; + this.enterTimeout = false; + this.controller = new AbortController(); + this.classContainer = this.html; + this.isChrome = navigator.userAgent.indexOf("Chrome") != -1 ? true : false; + this.init(); + } + _createClass2(_default3, [{ + key: "init", + value: function init2() { + var _this = this; + window.addEventListener("popstate", function(e2) { + return _this.checkState(e2); + }, false); + this.html.addEventListener("click", function(e2) { + return _this.checkClick(e2); + }, false); + this.loadEls(document); + } + }, { + key: "checkClick", + value: function checkClick(e2) { + if (!e2.ctrlKey && !e2.metaKey) { + var target = e2.target; + while (target && target !== document) { + if (target.matches("a") && target.getAttribute("download") == null) { + var href = target.getAttribute("href"); + if (!href.startsWith("#") && !href.startsWith("mailto:") && !href.startsWith("tel:")) { + e2.preventDefault(); + this.reset(); + this.getClickOptions(target); + } + break; + } + target = target.parentNode; + } + } + } + }, { + key: "checkState", + value: function checkState() { + if (typeof this.popstateIgnore === "string" && window.location.href.indexOf(this.popstateIgnore) > -1) { + return; + } + this.reset(); + this.getStateOptions(); + } + }, { + key: "reset", + value: function reset() { + if (this.isLoading) { + this.controller.abort(); + this.isLoading = false; + this.controller = new AbortController(); + } + window.clearTimeout(this.enterTimeout); + if (this.isInserted) { + this.removeContainer(); + } + this.classContainer = this.html; + Object.assign(this, this.defaults, this.options); + } + }, { + key: "getClickOptions", + value: function getClickOptions(link) { + this.transition = link.getAttribute("data-" + this.name); + this.isUrl = link.getAttribute("data-" + this.name + "-url"); + var href = link.getAttribute("href"); + var target = link.getAttribute("target"); + if (target == "_blank") { + window.open(href, "_blank"); + return; + } + if (this.transition == "false") { + window.location = href; + return; + } + this.setOptions(href, true); + } + }, { + key: "getStateOptions", + value: function getStateOptions() { + if (this.transitionsHistory) { + this.transition = history.state; + } else { + this.transition = false; + } + var href = window.location.href; + this.setOptions(href); + } + }, { + key: "goTo", + value: function goTo(href, transition, isUrl) { + this.reset(); + this.transition = transition; + this.isUrl = isUrl; + this.setOptions(href, true); + } + }, { + key: "setOptions", + value: function setOptions(href, push) { + var container = "[" + this.container + "]"; + var oldContainer; + if (this.transition && this.transition != "true") { + this.transitionContainer = "[" + this.container + '="' + this.transition + '"]'; + this.loadingClass = this.transitions[this.transition].loadingClass || this.loadingClass; + this.loadedClass = this.transitions[this.transition].loadedClass || this.loadedClass; + this.readyClass = this.transitions[this.transition].readyClass || this.readyClass; + this.transitionsPrefix = this.transitions[this.transition].transitionsPrefix || this.transitionsPrefix; + this.enterDelay = this.transitions[this.transition].enterDelay || this.enterDelay; + this.exitDelay = this.transitions[this.transition].exitDelay || this.exitDelay; + this.loadedDelay = this.transitions[this.transition].loadedDelay || this.loadedDelay; + oldContainer = document.querySelector(this.transitionContainer); + } + if (oldContainer) { + container = this.transitionContainer; + this.oldContainer = oldContainer; + this.classContainer = this.oldContainer.parentNode; + if (!this.subContainer) { + history.replaceState(this.transition, null, this.href); + } + this.subContainer = true; + } else { + this.oldContainer = document.querySelector(container); + if (this.subContainer) { + history.replaceState(this.prevTransition, null, this.href); + } + this.subContainer = false; + } + this.href = href; + this.parentContainer = this.oldContainer.parentNode; + if (this.isUrl === "" || this.isUrl != null && this.isUrl != "false" && this.isUrl != false) { + history.pushState(this.transition, null, href); + } else { + this.oldContainer.classList.add("is-old"); + this.setLoading(); + this.startEnterDelay(); + this.loadHref(href, container, push); + } + } + }, { + key: "setLoading", + value: function setLoading() { + this.classContainer.classList.remove(this.loadedClass, this.readyClass); + this.classContainer.classList.add(this.loadingClass); + this.classContainer.classList.remove(this.transitionsPrefix + this.prevTransition); + if (this.transition) { + this.classContainer.classList.add(this.transitionsPrefix + this.transition); + } + if (!this.subContainer) { + this.prevTransition = this.transition; + } + var loadingEvent = new Event(this.namespace + "loading"); + window.dispatchEvent(loadingEvent); + } + }, { + key: "startEnterDelay", + value: function startEnterDelay() { + var _this2 = this; + this.enterTimeout = window.setTimeout(function() { + _this2.isEntered = true; + if (_this2.isLoaded) { + _this2.transitionContainers(); + } + }, this.enterDelay); + } + }, { + key: "loadHref", + value: function loadHref(href, container, push) { + var _this3 = this; + this.isLoading = true; + var signal = this.controller.signal; + fetch(href, { + signal + }).then(function(response) { + return response.text(); + }).then(function(data) { + if (push) { + history.pushState(_this3.transition, null, href); + } + var parser = new DOMParser(); + _this3.data = parser.parseFromString(data, "text/html"); + _this3.newContainer = _this3.data.querySelector(container); + _this3.newContainer.classList.add("is-new"); + _this3.parentNewContainer = _this3.newContainer.parentNode; + _this3.hideContainer(); + _this3.parentContainer.insertBefore(_this3.newContainer, _this3.oldContainer); + _this3.isInserted = true; + _this3.setSvgs(); + _this3.isLoaded = true; + if (_this3.isEntered) { + _this3.transitionContainers(); + } + _this3.loadEls(_this3.newContainer); + _this3.isLoading = false; + })["catch"](function(err) { + window.location = href; + }); + } + }, { + key: "transitionContainers", + value: function transitionContainers() { + var _this4 = this; + this.setAttributes(); + this.showContainer(); + this.setLoaded(); + setTimeout(function() { + _this4.removeContainer(); + _this4.setReady(); + }, this.exitDelay); + } + }, { + key: "setSvgs", + value: function setSvgs() { + if (this.isChrome) { + var svgs = this.newContainer.querySelectorAll("use"); + if (svgs.length) { + svgs.forEach(function(svg) { + var xhref = svg.getAttribute("xlink:href"); + if (xhref) { + svg.parentNode.innerHTML = ''; + } else { + var href = svg.getAttribute("href"); + if (href) + svg.parentNode.innerHTML = ''; + } + }); + } + } + } + }, { + key: "setAttributes", + value: function setAttributes() { + var _this5 = this; + var title = this.data.getElementsByTagName("title")[0]; + var newDesc = this.data.head.querySelector('meta[name="description"]'); + var oldDesc = document.head.querySelector('meta[name="description"]'); + var container; + var newContainer; + if (this.subContainer) { + newContainer = this.parentNewContainer; + container = document.querySelector(this.transitionContainer).parentNode; + } else { + newContainer = this.data.querySelector("html"); + container = document.querySelector("html"); + } + var datas = Object.assign({}, newContainer.dataset); + if (title) + document.title = title.innerText; + if (oldDesc && newDesc) + oldDesc.setAttribute("content", newDesc.getAttribute("content")); + if (datas) { + Object.entries(datas).forEach(function(_ref) { + var _ref2 = _slicedToArray2(_ref, 2), key = _ref2[0], val = _ref2[1]; + container.setAttribute("data-" + _this5.toDash(key), val); + }); + } + } + }, { + key: "toDash", + value: function toDash(str) { + return str.split(/(?=[A-Z])/).join("-").toLowerCase(); + } + }, { + key: "hideContainer", + value: function hideContainer() { + this.newContainer.style.visibility = "hidden"; + this.newContainer.style.height = 0; + this.newContainer.style.overflow = "hidden"; + } + }, { + key: "showContainer", + value: function showContainer() { + this.newContainer.style.visibility = ""; + this.newContainer.style.height = ""; + this.newContainer.style.overflow = ""; + } + }, { + key: "loadEls", + value: function loadEls(container) { + var _this6 = this; + var promises = []; + this.loadAttributes.forEach(function(attr) { + var data = "data-" + _this6.name + "-" + attr; + var els = container.querySelectorAll("[" + data + "]"); + if (els.length) { + els.forEach(function(el) { + var elData = el.getAttribute(data); + el.setAttribute(attr, elData); + if (attr == "src" || attr == "srcset") { + var promise = new Promise(function(resolve) { + el.onload = function() { + return resolve(el); + }; + }); + promises.push(promise); + } + }); + } + }); + Promise.all(promises).then(function(val) { + var imagesEvent = new Event(_this6.namespace + "images"); + window.dispatchEvent(imagesEvent); + }); + } + }, { + key: "setLoaded", + value: function setLoaded() { + var _this7 = this; + this.classContainer.classList.remove(this.loadingClass); + setTimeout(function() { + _this7.classContainer.classList.add(_this7.loadedClass); + }, this.loadedDelay); + var loadedEvent = new Event(this.namespace + "loaded"); + window.dispatchEvent(loadedEvent); + } + }, { + key: "removeContainer", + value: function removeContainer() { + this.parentContainer.removeChild(this.oldContainer); + this.newContainer.classList.remove("is-new"); + this.isInserted = false; + } + }, { + key: "setReady", + value: function setReady() { + this.classContainer.classList.add(this.readyClass); + var readyEvent = new Event(this.namespace + "ready"); + window.dispatchEvent(readyEvent); + } + }, { + key: "on", + value: function on(event, func) { + var _this8 = this; + window.addEventListener(this.namespace + event, function() { + switch (event) { + case "loading": + return func(_this8.transition, _this8.oldContainer); + case "loaded": + return func(_this8.transition, _this8.oldContainer, _this8.newContainer); + case "ready": + return func(_this8.transition, _this8.newContainer); + default: + return func(); + } + }, false); + } + }]); + return _default3; + }(); + var main_esm_default2 = _default2; + + // assets/scripts/utils/html.js + var queryClosestParent = ($el, selector) => { + if (!Element.prototype.matches) { + Element.prototype.matches = Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector || function(s2) { + var matches = (this.document || this.ownerDocument).querySelectorAll(s2), i2 = matches.length; + while (--i2 >= 0 && matches.item(i2) !== this) { + } + return i2 > -1; + }; + } + for (; $el && $el !== document; $el = $el.parentNode) { + if ($el.matches(selector)) + return $el; + } + return null; + }; + + // assets/scripts/utils/image.js + var lazyImageLoad = (e2) => { + const $img = e2.currentTarget; + const $parent = queryClosestParent($img, `.${CSS_CLASS.IMAGE}`); + requestAnimationFrame(() => { + if ($parent) { + $parent.classList.remove(CSS_CLASS.IMAGE_LAZY_LOADING); + $parent.classList.add(CSS_CLASS.IMAGE_LAZY_LOADED); + } + $img.classList.add(CSS_CLASS.IMAGE_LAZY_LOADED); + }); + }; + var lazyImageError = (e2) => { + const $img = e2.currentTarget; + const $parent = queryClosestParent($img, `.${CSS_CLASS.IMAGE}`); + requestAnimationFrame(() => { + if ($parent) { + $parent.classList.remove(CSS_CLASS.IMAGE_LAZY_LOADING); + $parent.classList.add(CSS_CLASS.IMAGE_LAZY_ERROR); + } + }); + }; + var triggerLazyloadCallbacks = ($lazyImagesArgs) => { + const $lazyImages = $lazyImagesArgs ? $lazyImagesArgs : document.querySelectorAll('[loading="lazy"]'); + if ("loading" in HTMLImageElement.prototype) { + for (const $img of $lazyImages) { + const $parent = queryClosestParent( + $img, + `.${CSS_CLASS.IMAGE}` + ); + if (!$img.complete) { + if ($parent) { + $parent.classList.add( + CSS_CLASS.IMAGE_LAZY_LOADING + ); + } + $img.addEventListener("load", lazyImageLoad, { once: true }); + $img.addEventListener("error", lazyImageError, { once: true }); + } else { + if (!$img.complete) { + $parent.classList.add( + CSS_CLASS.IMAGE_LAZY_LOADED + ); + } + } + } + } else { + for (const $img of $lazyImages) { + const $parent = queryClosestParent( + $img, + `.${CSS_CLASS.IMAGE}` + ); + if ($parent) { + $parent.classList.add(CSS_CLASS.IMAGE_LAZY_LOADED); + } + } + } + }; + var resetLazyloadCallbacks = () => { + if ("loading" in HTMLImageElement.prototype) { + const $lazyImages = document.querySelectorAll('[loading="lazy"]'); + for (const $img of $lazyImages) { + $img.removeEventListener("load", lazyImageLoad, { once: true }); + $img.removeEventListener("error", lazyImageError, { once: true }); + } + } + }; + + // assets/scripts/modules/Load.js + var Load_default = class extends _default { + constructor(m) { + super(m); + } + init() { + this.load = new main_esm_default2({ + enterDelay: 0, + transitions: { + customTransition: {} + } + }); + this.load.on("loaded", (transition, oldContainer, newContainer) => { + this.call("destroy", oldContainer, "app"); + this.call("update", newContainer, "app"); + triggerLazyloadCallbacks(); + }); + this.load.on("loading", () => { + resetLazyloadCallbacks(); + }); + } + }; + + // node_modules/@studio-freight/lenis/dist/lenis.modern.mjs + function t() { + return t = Object.assign ? Object.assign.bind() : function(t2) { + for (var e2 = 1; e2 < arguments.length; e2++) { + var i2 = arguments[e2]; + for (var s2 in i2) + Object.prototype.hasOwnProperty.call(i2, s2) && (t2[s2] = i2[s2]); + } + return t2; + }, t.apply(this, arguments); + } + function e(t2, e2, i2) { + return Math.max(t2, Math.min(e2, i2)); + } + var i = class { + advance(t2) { + var i2; + if (!this.isRunning) + return; + let s2 = false; + if (this.lerp) + this.value = (1 - (o2 = this.lerp)) * this.value + o2 * this.to, Math.round(this.value) === this.to && (this.value = this.to, s2 = true); + else { + this.currentTime += t2; + const i3 = e(0, this.currentTime / this.duration, 1); + s2 = i3 >= 1; + const o3 = s2 ? 1 : this.easing(i3); + this.value = this.from + (this.to - this.from) * o3; + } + var o2; + null == (i2 = this.onUpdate) || i2.call(this, this.value, { completed: s2 }), s2 && this.stop(); + } + stop() { + this.isRunning = false; + } + fromTo(t2, e2, { lerp: i2 = 0.1, duration: s2 = 1, easing: o2 = (t3) => t3, onUpdate: n2 }) { + this.from = this.value = t2, this.to = e2, this.lerp = i2, this.duration = s2, this.easing = o2, this.currentTime = 0, this.isRunning = true, this.onUpdate = n2; + } + }; + function s(t2, e2) { + let i2; + return function() { + let s2 = arguments, o2 = this; + clearTimeout(i2), i2 = setTimeout(function() { + t2.apply(o2, s2); + }, e2); + }; + } + var o = class { + constructor(t2, e2) { + this.onWindowResize = () => { + this.width = window.innerWidth, this.height = window.innerHeight; + }, this.onWrapperResize = () => { + this.width = this.wrapper.clientWidth, this.height = this.wrapper.clientHeight; + }, this.onContentResize = () => { + const t3 = this.wrapper === window ? document.documentElement : this.wrapper; + this.scrollHeight = t3.scrollHeight, this.scrollWidth = t3.scrollWidth; + }, this.wrapper = t2, this.content = e2, this.wrapper === window ? (window.addEventListener("resize", this.onWindowResize, false), this.onWindowResize()) : (this.wrapperResizeObserver = new ResizeObserver(s(this.onWrapperResize, 100)), this.wrapperResizeObserver.observe(this.wrapper), this.onWrapperResize()), this.contentResizeObserver = new ResizeObserver(s(this.onContentResize, 100)), this.contentResizeObserver.observe(this.content), this.onContentResize(); + } + destroy() { + var t2, e2; + window.removeEventListener("resize", this.onWindowResize, false), null == (t2 = this.wrapperResizeObserver) || t2.disconnect(), null == (e2 = this.contentResizeObserver) || e2.disconnect(); + } + get limit() { + return { x: this.scrollWidth - this.width, y: this.scrollHeight - this.height }; + } + }; + var n = () => ({ events: {}, emit(t2, ...e2) { + let i2 = this.events[t2] || []; + for (let t3 = 0, s2 = i2.length; t3 < s2; t3++) + i2[t3](...e2); + }, on(t2, e2) { + var i2; + return (null == (i2 = this.events[t2]) ? void 0 : i2.push(e2)) || (this.events[t2] = [e2]), () => { + var i3; + this.events[t2] = null == (i3 = this.events[t2]) ? void 0 : i3.filter((t3) => e2 !== t3); + }; + } }); + var r = class { + constructor(t2, { wheelMultiplier: i2 = 1, touchMultiplier: s2 = 2, normalizeWheel: o2 = false }) { + this.onTouchStart = (t3) => { + const { clientX: e2, clientY: i3 } = t3.targetTouches ? t3.targetTouches[0] : t3; + this.touchStart.x = e2, this.touchStart.y = i3, this.lastDelta = { x: 0, y: 0 }; + }, this.onTouchMove = (t3) => { + const { clientX: e2, clientY: i3 } = t3.targetTouches ? t3.targetTouches[0] : t3, s3 = -(e2 - this.touchStart.x) * this.touchMultiplier, o3 = -(i3 - this.touchStart.y) * this.touchMultiplier; + this.touchStart.x = e2, this.touchStart.y = i3, this.lastDelta = { x: s3, y: o3 }, this.emitter.emit("scroll", { type: "touch", deltaX: s3, deltaY: o3, event: t3 }); + }, this.onTouchEnd = (t3) => { + this.emitter.emit("scroll", { type: "touch", inertia: true, deltaX: this.lastDelta.x, deltaY: this.lastDelta.y, event: t3 }); + }, this.onWheel = (t3) => { + let { deltaX: i3, deltaY: s3 } = t3; + this.normalizeWheel && (i3 = e(-100, i3, 100), s3 = e(-100, s3, 100)), i3 *= this.wheelMultiplier, s3 *= this.wheelMultiplier, this.emitter.emit("scroll", { type: "wheel", deltaX: i3, deltaY: s3, event: t3 }); + }, this.element = t2, this.wheelMultiplier = i2, this.touchMultiplier = s2, this.normalizeWheel = o2, this.touchStart = { x: null, y: null }, this.emitter = n(), this.element.addEventListener("wheel", this.onWheel, { passive: false }), this.element.addEventListener("touchstart", this.onTouchStart, { passive: false }), this.element.addEventListener("touchmove", this.onTouchMove, { passive: false }), this.element.addEventListener("touchend", this.onTouchEnd, { passive: false }); + } + on(t2, e2) { + return this.emitter.on(t2, e2); + } + destroy() { + this.emitter.events = {}, this.element.removeEventListener("wheel", this.onWheel, { passive: false }), this.element.removeEventListener("touchstart", this.onTouchStart, { passive: false }), this.element.removeEventListener("touchmove", this.onTouchMove, { passive: false }), this.element.removeEventListener("touchend", this.onTouchEnd, { passive: false }); + } + }; + var l = class { + constructor({ direction: e2, gestureDirection: s2, mouseMultiplier: l2, smooth: h, wrapper: a = window, content: c = document.documentElement, wheelEventsTarget: u = a, smoothWheel: p = null == h || h, smoothTouch: d = false, syncTouch: m = false, syncTouchLerp: v = 0.1, touchInertiaMultiplier: g = 35, duration: S, easing: w = (t2) => Math.min(1, 1.001 - Math.pow(2, -10 * t2)), lerp: f = S ? null : 0.1, infinite: y = false, orientation: T = null != e2 ? e2 : "vertical", gestureOrientation: z = null != s2 ? s2 : "vertical", touchMultiplier: M = 1, wheelMultiplier: E = null != l2 ? l2 : 1, normalizeWheel: L = false } = {}) { + this.onVirtualScroll = ({ type: e3, inertia: i2, deltaX: s3, deltaY: o2, event: n2 }) => { + if (n2.ctrlKey) + return; + const r2 = "touch" === e3, l3 = "wheel" === e3; + if ("vertical" === this.options.gestureOrientation && 0 === o2 || "horizontal" === this.options.gestureOrientation && 0 === s3 || r2 && "vertical" === this.options.gestureOrientation && 0 === this.scroll && !this.options.infinite && o2 <= 0) + return; + if (n2.composedPath().find((t2) => null == t2 || null == t2.hasAttribute ? void 0 : t2.hasAttribute("data-lenis-prevent"))) + return; + if (this.isStopped || this.isLocked) + return void n2.preventDefault(); + if (this.isSmooth = (this.options.smoothTouch || this.options.syncTouch) && r2 || this.options.smoothWheel && l3, !this.isSmooth) + return this.isScrolling = false, void this.animate.stop(); + n2.preventDefault(); + let h2 = o2; + "both" === this.options.gestureOrientation ? h2 = Math.abs(o2) > Math.abs(s3) ? o2 : s3 : "horizontal" === this.options.gestureOrientation && (h2 = s3); + const a2 = r2 && this.options.syncTouch, c2 = r2 && i2 && Math.abs(h2) > 1; + c2 && (h2 = this.velocity * this.options.touchInertiaMultiplier), this.scrollTo(this.targetScroll + h2, t({ programmatic: false }, a2 && { lerp: c2 ? this.syncTouchLerp : 0.4 })); + }, this.onScroll = () => { + if (!this.isScrolling) { + const t2 = this.animatedScroll; + this.animatedScroll = this.targetScroll = this.actualScroll, this.velocity = 0, this.direction = Math.sign(this.animatedScroll - t2), this.emit(); + } + }, e2 && console.warn("Lenis: `direction` option is deprecated, use `orientation` instead"), s2 && console.warn("Lenis: `gestureDirection` option is deprecated, use `gestureOrientation` instead"), l2 && console.warn("Lenis: `mouseMultiplier` option is deprecated, use `wheelMultiplier` instead"), h && console.warn("Lenis: `smooth` option is deprecated, use `smoothWheel` instead"), window.lenisVersion = "1.0.11", a !== document.documentElement && a !== document.body || (a = window), this.options = { wrapper: a, content: c, wheelEventsTarget: u, smoothWheel: p, smoothTouch: d, syncTouch: m, syncTouchLerp: v, touchInertiaMultiplier: g, duration: S, easing: w, lerp: f, infinite: y, gestureOrientation: z, orientation: T, touchMultiplier: M, wheelMultiplier: E, normalizeWheel: L }, this.dimensions = new o(a, c), this.rootElement.classList.add("lenis"), this.velocity = 0, this.isStopped = false, this.isSmooth = p || d, this.isScrolling = false, this.targetScroll = this.animatedScroll = this.actualScroll, this.animate = new i(), this.emitter = n(), this.options.wrapper.addEventListener("scroll", this.onScroll, { passive: false }), this.virtualScroll = new r(u, { touchMultiplier: M, wheelMultiplier: E, normalizeWheel: L }), this.virtualScroll.on("scroll", this.onVirtualScroll); + } + destroy() { + this.emitter.events = {}, this.options.wrapper.removeEventListener("scroll", this.onScroll, { passive: false }), this.virtualScroll.destroy(); + } + on(t2, e2) { + return this.emitter.on(t2, e2); + } + off(t2, e2) { + var i2; + this.emitter.events[t2] = null == (i2 = this.emitter.events[t2]) ? void 0 : i2.filter((t3) => e2 !== t3); + } + setScroll(t2) { + this.isHorizontal ? this.rootElement.scrollLeft = t2 : this.rootElement.scrollTop = t2; + } + emit() { + this.emitter.emit("scroll", this); + } + reset() { + this.isLocked = false, this.isScrolling = false, this.velocity = 0, this.animate.stop(); + } + start() { + this.isStopped = false, this.reset(); + } + stop() { + this.isStopped = true, this.animate.stop(), this.reset(); + } + raf(t2) { + const e2 = t2 - (this.time || t2); + this.time = t2, this.animate.advance(1e-3 * e2); + } + scrollTo(t2, { offset: i2 = 0, immediate: s2 = false, lock: o2 = false, duration: n2 = this.options.duration, easing: r2 = this.options.easing, lerp: l2 = !n2 && this.options.lerp, onComplete: h = null, force: a = false, programmatic: c = true } = {}) { + if (!this.isStopped || a) { + if (["top", "left", "start"].includes(t2)) + t2 = 0; + else if (["bottom", "right", "end"].includes(t2)) + t2 = this.limit; + else { + var u; + let e2; + if ("string" == typeof t2 ? e2 = document.querySelector(t2) : null != (u = t2) && u.nodeType && (e2 = t2), e2) { + if (this.options.wrapper !== window) { + const t3 = this.options.wrapper.getBoundingClientRect(); + i2 -= this.isHorizontal ? t3.left : t3.top; + } + const s3 = e2.getBoundingClientRect(); + t2 = (this.isHorizontal ? s3.left : s3.top) + this.animatedScroll; + } + } + if ("number" == typeof t2) { + if (t2 += i2, t2 = Math.round(t2), this.options.infinite ? c && (this.targetScroll = this.animatedScroll = this.scroll) : t2 = e(0, t2, this.limit), s2) + return this.animatedScroll = this.targetScroll = t2, this.setScroll(this.scroll), this.reset(), this.emit(), void (null == h || h()); + if (!c) { + if (t2 === this.targetScroll) + return; + this.targetScroll = t2; + } + this.animate.fromTo(this.animatedScroll, t2, { duration: n2, easing: r2, lerp: l2, onUpdate: (t3, { completed: e2 }) => { + o2 && (this.isLocked = true), this.isScrolling = true, this.velocity = t3 - this.animatedScroll, this.direction = Math.sign(this.velocity), this.animatedScroll = t3, this.setScroll(this.scroll), c && (this.targetScroll = t3), e2 && (o2 && (this.isLocked = false), requestAnimationFrame(() => { + this.isScrolling = false; + }), this.velocity = 0, null == h || h()), this.emit(); + } }); + } + } + } + get rootElement() { + return this.options.wrapper === window ? this.options.content : this.options.wrapper; + } + get limit() { + return this.isHorizontal ? this.dimensions.limit.x : this.dimensions.limit.y; + } + get isHorizontal() { + return "horizontal" === this.options.orientation; + } + get actualScroll() { + return this.isHorizontal ? this.rootElement.scrollLeft : this.rootElement.scrollTop; + } + get scroll() { + return this.options.infinite ? function(t2, e2) { + let i2 = t2 % e2; + return (e2 > 0 && i2 < 0 || e2 < 0 && i2 > 0) && (i2 += e2), i2; + }(this.animatedScroll, this.limit) : this.animatedScroll; + } + get progress() { + return 0 === this.limit ? 1 : this.scroll / this.limit; + } + get isSmooth() { + return this.__isSmooth; + } + set isSmooth(t2) { + this.__isSmooth !== t2 && (this.rootElement.classList.toggle("lenis-smooth", t2), this.__isSmooth = t2); + } + get isScrolling() { + return this.__isScrolling; + } + set isScrolling(t2) { + this.__isScrolling !== t2 && (this.rootElement.classList.toggle("lenis-scrolling", t2), this.__isScrolling = t2); + } + get isStopped() { + return this.__isStopped; + } + set isStopped(t2) { + this.__isStopped !== t2 && (this.rootElement.classList.toggle("lenis-stopped", t2), this.__isStopped = t2); + } + }; + + // node_modules/locomotive-scroll/dist/locomotive-scroll.modern.mjs + function _extends() { + _extends = Object.assign ? Object.assign.bind() : function(target) { + for (var i2 = 1; i2 < arguments.length; i2++) { + var source = arguments[i2]; + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + return target; + }; + return _extends.apply(this, arguments); + } + var IO = class { + constructor({ + scrollElements, + rootMargin = "-1px -1px -1px -1px", + IORaf + }) { + this.scrollElements = void 0; + this.rootMargin = void 0; + this.IORaf = void 0; + this.observer = void 0; + this.scrollElements = scrollElements; + this.rootMargin = rootMargin; + this.IORaf = IORaf; + this._init(); + } + /** + * Lifecyle - Initialize Intersection Observer. + * + * @private + */ + _init() { + const observerOptions = { + rootMargin: this.rootMargin + }; + const onIntersect = (entries) => { + entries.forEach((entry) => { + const $targetItem = this.scrollElements.find((item) => item.$el === entry.target); + if (entry.isIntersecting) { + $targetItem && ($targetItem.isAlreadyIntersected = true); + this._setInview(entry); + } else if ($targetItem && $targetItem.isAlreadyIntersected) { + this._setOutOfView(entry); + } + }); + }; + this.observer = new IntersectionObserver(onIntersect, observerOptions); + for (const scrollElement of this.scrollElements) { + const $scrollElement = scrollElement.$el; + this.observe($scrollElement); + } + } + /** + * Lifecyle - Destroy Intersection Observer. + */ + destroy() { + this.observer.disconnect(); + } + /** + * Subscribe element to the Intersection Observer. + * + * @param {HTMLElement} $scrollElement - DOM Element to observe. + */ + observe($scrollElement) { + if (!$scrollElement) { + return; + } + this.observer.observe($scrollElement); + } + /** + * Unsubscribe element to the Intersection Observer. + * + * @param {HTMLElement} $scrollElement - DOM Element to unobserve. + */ + unobserve($scrollElement) { + if (!$scrollElement) { + return; + } + this.observer.unobserve($scrollElement); + } + /** + * Find ScrollElementReference instance and trigger inview callbacks. + * + * @private + * + * @param {IntersectionObserverEntry} entry - DOM Element to observe. + */ + _setInview(entry) { + const scrollElement = this.scrollElements.find((scrollElement2) => scrollElement2.$el === entry.target); + this.IORaf && (scrollElement == null ? void 0 : scrollElement.setInteractivityOn()); + !this.IORaf && (scrollElement == null ? void 0 : scrollElement.setInview()); + } + /** + * Find ScrollElementReference instance and trigger out of view callbacks. + * + * @private + * + * @param {IntersectionObserverEntry} entry - DOM Element to observe. + */ + _setOutOfView(entry) { + const scrollElement = this.scrollElements.find((scrollElement2) => scrollElement2.$el === entry.target); + this.IORaf && (scrollElement == null ? void 0 : scrollElement.setInteractivityOff()); + !this.IORaf && (scrollElement == null ? void 0 : scrollElement.setOutOfView()); + if (!(scrollElement != null && scrollElement.attributes.scrollRepeat) && !this.IORaf) { + this.unobserve(entry.target); + } + } + }; + function clamp(min, max, value) { + return value < min ? min : value > max ? max : value; + } + function mapRange(inMin, inMax, outMin, outMax, value) { + const inRange = inMax - inMin; + const outRange = outMax - outMin; + return outMin + ((value - inMin) / inRange * outRange || 0); + } + function normalize(min, max, value) { + return mapRange(min, max, 0, 1, value); + } + function closestNumber(array, target) { + return array.reduce((prev, curr) => { + return Math.abs(curr - target) < Math.abs(prev - target) ? curr : prev; + }); + } + var INVIEW_CLASS = "is-inview"; + var PROGRESS_CSS_VAR = "--progress"; + var PROGRESS_MODULAR_METHOD = "onScrollProgress"; + var ScrollElement = class { + constructor({ + $el, + id, + modularInstance, + subscribeElementUpdateFn, + unsubscribeElementUpdateFn, + needRaf, + scrollOrientation + }) { + var _this$$el$dataset$scr, _this$$el$dataset$scr2, _this$$el$dataset$scr3, _this$$el$dataset$scr4, _this$$el$dataset$scr5; + this.$el = void 0; + this.id = void 0; + this.needRaf = void 0; + this.attributes = void 0; + this.scrollOrientation = void 0; + this.isAlreadyIntersected = void 0; + this.intersection = void 0; + this.metrics = void 0; + this.currentScroll = void 0; + this.translateValue = void 0; + this.progress = void 0; + this.lastProgress = void 0; + this.modularInstance = void 0; + this.progressModularModules = void 0; + this.isInview = void 0; + this.isInteractive = void 0; + this.isInFold = void 0; + this.isFirstResize = void 0; + this.subscribeElementUpdateFn = void 0; + this.unsubscribeElementUpdateFn = void 0; + this.$el = $el; + this.id = id; + this.needRaf = needRaf; + this.scrollOrientation = scrollOrientation; + this.modularInstance = modularInstance; + this.subscribeElementUpdateFn = subscribeElementUpdateFn; + this.unsubscribeElementUpdateFn = unsubscribeElementUpdateFn; + this.attributes = { + scrollClass: (_this$$el$dataset$scr = this.$el.dataset["scrollClass"]) != null ? _this$$el$dataset$scr : INVIEW_CLASS, + scrollOffset: (_this$$el$dataset$scr2 = this.$el.dataset["scrollOffset"]) != null ? _this$$el$dataset$scr2 : "0,0", + scrollPosition: (_this$$el$dataset$scr3 = this.$el.dataset["scrollPosition"]) != null ? _this$$el$dataset$scr3 : "start,end", + scrollModuleProgress: this.$el.dataset["scrollModuleProgress"] != null, + scrollCssProgress: this.$el.dataset["scrollCssProgress"] != null, + scrollEventProgress: (_this$$el$dataset$scr4 = this.$el.dataset["scrollEventProgress"]) != null ? _this$$el$dataset$scr4 : null, + scrollSpeed: this.$el.dataset["scrollSpeed"] != null ? parseFloat(this.$el.dataset["scrollSpeed"]) : null, + scrollRepeat: this.$el.dataset["scrollRepeat"] != null, + scrollCall: (_this$$el$dataset$scr5 = this.$el.dataset["scrollCall"]) != null ? _this$$el$dataset$scr5 : null, + scrollCallSelf: this.$el.dataset["scrollCallSelf"] != null, + scrollIgnoreFold: this.$el.dataset["scrollIgnoreFold"] != null, + scrollEnableTouchSpeed: this.$el.dataset["scrollEnableTouchSpeed"] != null + }; + this.intersection = { + start: 0, + end: 0 + }; + this.metrics = { + offsetStart: 0, + offsetEnd: 0, + bcr: {} + }; + this.currentScroll = this.scrollOrientation === "vertical" ? window.scrollY : window.scrollX; + this.translateValue = 0; + this.progress = 0; + this.lastProgress = null; + this.progressModularModules = []; + this.isInview = false; + this.isInteractive = false; + this.isAlreadyIntersected = false; + this.isInFold = false; + this.isFirstResize = true; + this._init(); + } + /** + * Lifecyle - Initialize progress tracking. + * + * @private + */ + _init() { + if (!this.needRaf) { + return; + } + if (this.modularInstance && this.attributes.scrollModuleProgress) { + this._getProgressModularModules(); + } + this._resize(); + } + /** + * Callback - Resize callback + */ + onResize({ + currentScroll + }) { + this.currentScroll = currentScroll; + this._resize(); + } + /** + * Callback - RAF callback + */ + onRender({ + currentScroll, + smooth + }) { + const wSize = this.scrollOrientation === "vertical" ? window.innerHeight : window.innerWidth; + this.currentScroll = currentScroll; + this._computeProgress(); + if (this.attributes.scrollSpeed && !isNaN(this.attributes.scrollSpeed)) { + if (!this.attributes.scrollEnableTouchSpeed && !smooth) { + if (this.translateValue) { + this.$el.style.transform = `translate3d(0, 0, 0)`; + } + this.translateValue = 0; + } else { + if (this.isInFold) { + const progress = Math.max(0, this.progress); + this.translateValue = progress * wSize * this.attributes.scrollSpeed * -1; + } else { + const progress = mapRange(0, 1, -1, 1, this.progress); + this.translateValue = progress * wSize * this.attributes.scrollSpeed * -1; + } + this.$el.style.transform = this.scrollOrientation === "vertical" ? `translate3d(0, ${this.translateValue}px, 0)` : `translate3d(${this.translateValue}px, 0, 0)`; + } + } + } + /** + * Inview callback + */ + setInview() { + if (this.isInview) { + return; + } + this.isInview = true; + this.$el.classList.add(this.attributes.scrollClass); + const way = "enter"; + const from = this._getScrollCallFrom(); + this.attributes.scrollCall && this._dispatchCall(way, from); + } + /** + * Out of view callback + */ + setOutOfView() { + if (!(this.isInview && this.attributes.scrollRepeat)) { + return; + } + this.isInview = false; + this.$el.classList.remove(this.attributes.scrollClass); + const way = "leave"; + const from = this._getScrollCallFrom(); + this.attributes.scrollCall && this._dispatchCall(way, from); + } + /** + * Switch interactivity on to subscribe the instance to the RAF + * and start calculations. + */ + setInteractivityOn() { + if (this.isInteractive) { + return; + } + this.isInteractive = true; + this.subscribeElementUpdateFn(this); + } + /** + * Switch interactivity off to unsubscribe the instance to the RAF + * and stop calculations. + */ + setInteractivityOff() { + if (!this.isInteractive) { + return; + } + this.isInteractive = false; + this.unsubscribeElementUpdateFn(this); + this.lastProgress != null && this._computeProgress(closestNumber([0, 1], this.lastProgress)); + } + /** + * Resize method that compute the element's values. + * + * @private + */ + _resize() { + this.metrics.bcr = this.$el.getBoundingClientRect(); + this._computeMetrics(); + this._computeIntersection(); + if (this.isFirstResize) { + this.isFirstResize = false; + if (this.isInFold) { + this.setInview(); + } + } + } + /** + * Compute element's offsets and determine if the element is in fold. + * + * @private + */ + _computeMetrics() { + const { + top, + left, + height, + width + } = this.metrics.bcr; + const wSize = this.scrollOrientation === "vertical" ? window.innerHeight : window.innerWidth; + const metricsStart = this.scrollOrientation === "vertical" ? top : left; + const metricsSize = this.scrollOrientation === "vertical" ? height : width; + this.metrics.offsetStart = this.currentScroll + metricsStart - this.translateValue; + this.metrics.offsetEnd = this.metrics.offsetStart + metricsSize; + if (this.metrics.offsetStart < wSize && !this.attributes.scrollIgnoreFold) { + this.isInFold = true; + } else { + this.isInFold = false; + } + } + /** + * Compute intersection values depending on the context. + * + * @private + */ + _computeIntersection() { + const wSize = this.scrollOrientation === "vertical" ? window.innerHeight : window.innerWidth; + const metricsSize = this.scrollOrientation === "vertical" ? this.metrics.bcr.height : this.metrics.bcr.width; + const offset = this.attributes.scrollOffset.split(","); + const offsetStart = offset[0] != void 0 ? offset[0].trim() : "0"; + const offsetEnd = offset[1] != void 0 ? offset[1].trim() : "0"; + const scrollPosition = this.attributes.scrollPosition.split(","); + let scrollPositionStart = scrollPosition[0] != void 0 ? scrollPosition[0].trim() : "start"; + const scrollPositionEnd = scrollPosition[1] != void 0 ? scrollPosition[1].trim() : "end"; + const viewportStart = offsetStart.includes("%") ? wSize * parseInt(offsetStart.replace("%", "").trim()) * 0.01 : parseInt(offsetStart); + const viewportEnd = offsetEnd.includes("%") ? wSize * parseInt(offsetEnd.replace("%", "").trim()) * 0.01 : parseInt(offsetEnd); + if (this.isInFold) { + scrollPositionStart = "fold"; + } + switch (scrollPositionStart) { + case "start": + this.intersection.start = this.metrics.offsetStart - wSize + viewportStart; + break; + case "middle": + this.intersection.start = this.metrics.offsetStart - wSize + viewportStart + metricsSize * 0.5; + break; + case "end": + this.intersection.start = this.metrics.offsetStart - wSize + viewportStart + metricsSize; + break; + case "fold": + this.intersection.start = 0; + break; + default: + this.intersection.start = this.metrics.offsetStart - wSize + viewportStart; + break; + } + switch (scrollPositionEnd) { + case "start": + this.intersection.end = this.metrics.offsetStart - viewportEnd; + break; + case "middle": + this.intersection.end = this.metrics.offsetStart - viewportEnd + metricsSize * 0.5; + break; + case "end": + this.intersection.end = this.metrics.offsetStart - viewportEnd + metricsSize; + break; + default: + this.intersection.end = this.metrics.offsetStart - viewportEnd + metricsSize; + break; + } + if (this.intersection.end <= this.intersection.start) { + switch (scrollPositionEnd) { + case "start": + this.intersection.end = this.intersection.start + 1; + break; + case "middle": + this.intersection.end = this.intersection.start + metricsSize * 0.5; + break; + case "end": + this.intersection.end = this.intersection.start + metricsSize; + break; + default: + this.intersection.end = this.intersection.start + 1; + break; + } + } + } + /** + * Compute the scroll progress of the element depending + * on its intersection values. + * + * @private + * + * @param {number} [forcedProgress] - Value to force progress. + */ + _computeProgress(forcedProgress) { + const progress = forcedProgress != null ? forcedProgress : clamp(0, 1, normalize(this.intersection.start, this.intersection.end, this.currentScroll)); + this.progress = progress; + if (progress != this.lastProgress) { + this.lastProgress = progress; + this.attributes.scrollCssProgress && this._setCssProgress(progress); + this.attributes.scrollEventProgress && this._setCustomEventProgress(progress); + if (this.attributes.scrollModuleProgress) { + for (const modularModules of this.progressModularModules) { + this.modularInstance && this.modularInstance.call(PROGRESS_MODULAR_METHOD, progress, modularModules.moduleName, modularModules.moduleId); + } + } + progress > 0 && progress < 1 && this.setInview(); + progress === 0 && this.setOutOfView(); + progress === 1 && this.setOutOfView(); + } + } + /** + * Set the element's progress to a specific css variable. + * + * @private + * + * @param {number} [currentProgress] - Progress value. + */ + _setCssProgress(currentProgress = 0) { + this.$el.style.setProperty(PROGRESS_CSS_VAR, currentProgress.toString()); + } + /** + * Set the element's progress to the custom event listeners. + * + * @private + * + * @param {number} [currentProgress] - Progress value. + */ + _setCustomEventProgress(currentProgress = 0) { + const customEventName = this.attributes.scrollEventProgress; + if (!customEventName) + return; + const customEvent = new CustomEvent(customEventName, { + detail: { + target: this.$el, + progress: currentProgress + } + }); + window.dispatchEvent(customEvent); + } + /** + * Get modular modules that can listen the element's progress. + * + * @private + */ + _getProgressModularModules() { + if (!this.modularInstance) { + return; + } + const modulesIdNames = Object.keys(this.$el.dataset).filter((key) => key.includes("module")); + const modules = Object.entries(this.modularInstance.modules); + if (!modulesIdNames.length) { + return; + } + for (const modulesIdName of modulesIdNames) { + const moduleId = this.$el.dataset[modulesIdName]; + if (!moduleId) { + return; + } + for (const module of modules) { + const [moduleName, moduleObj] = module; + if (moduleId in moduleObj) { + this.progressModularModules.push({ + moduleName, + moduleId + }); + } + } + } + } + /** + * Function to get scroll call from. + * + * @private + */ + _getScrollCallFrom() { + const closestIntersectionValue = closestNumber([this.intersection.start, this.intersection.end], this.currentScroll); + return this.intersection.start === closestIntersectionValue ? "start" : "end"; + } + /** + * Function to dispatch a custom event or call a modular callback. + * + * @private + * + * @param {scrollCallWay} way - Enter or leave. + * @param {scrollCallFrom} from - Start or end. + */ + _dispatchCall(way, from) { + var _this$attributes$scro, _this$attributes; + const callParameters = (_this$attributes$scro = this.attributes.scrollCall) == null ? void 0 : _this$attributes$scro.split(","); + const callSelf = (_this$attributes = this.attributes) == null ? void 0 : _this$attributes.scrollCallSelf; + if (callParameters && callParameters.length > 1) { + var _targetModuleId; + const [func, moduleName, moduleId] = callParameters; + let targetModuleId; + if (callSelf) { + targetModuleId = this.$el.dataset[`module${moduleName.trim()}`]; + } else { + targetModuleId = moduleId; + } + this.modularInstance && this.modularInstance.call(func.trim(), { + target: this.$el, + way, + from + }, moduleName.trim(), (_targetModuleId = targetModuleId) == null ? void 0 : _targetModuleId.trim()); + } else if (callParameters) { + const [customEventName] = callParameters; + const customEvent = new CustomEvent(customEventName, { + detail: { + target: this.$el, + way, + from + } + }); + window.dispatchEvent(customEvent); + } + } + }; + var ATTRIBUTES_THAT_NEED_RAF = ["scrollOffset", "scrollPosition", "scrollModuleProgress", "scrollCssProgress", "scrollEventProgress", "scrollSpeed"]; + var TRIGGER_ROOT_MARGIN = "-1px -1px -1px -1px"; + var RAF_ROOT_MARGIN = "100% 100% 100% 100%"; + var Core = class { + constructor({ + $el, + modularInstance, + triggerRootMargin, + rafRootMargin, + scrollOrientation + }) { + this.$scrollContainer = void 0; + this.modularInstance = void 0; + this.triggerRootMargin = void 0; + this.rafRootMargin = void 0; + this.scrollElements = void 0; + this.triggeredScrollElements = void 0; + this.RAFScrollElements = void 0; + this.scrollElementsToUpdate = void 0; + this.IOTriggerInstance = void 0; + this.IORafInstance = void 0; + this.scrollOrientation = void 0; + if (!$el) { + console.error("Please provide a DOM Element as scrollContainer"); + return; + } + this.$scrollContainer = $el; + this.modularInstance = modularInstance; + this.scrollOrientation = scrollOrientation; + this.triggerRootMargin = triggerRootMargin != null ? triggerRootMargin : TRIGGER_ROOT_MARGIN; + this.rafRootMargin = rafRootMargin != null ? rafRootMargin : RAF_ROOT_MARGIN; + this.scrollElements = []; + this.triggeredScrollElements = []; + this.RAFScrollElements = []; + this.scrollElementsToUpdate = []; + this._init(); + } + /** + * Lifecyle - Initialize the core. + * + * @private + */ + _init() { + const $scrollElements = this.$scrollContainer.querySelectorAll("[data-scroll]"); + const $scrollElementsArr = Array.from($scrollElements); + this._subscribeScrollElements($scrollElementsArr); + this.IOTriggerInstance = new IO({ + scrollElements: [...this.triggeredScrollElements], + rootMargin: this.triggerRootMargin, + IORaf: false + }); + this.IORafInstance = new IO({ + scrollElements: [...this.RAFScrollElements], + rootMargin: this.rafRootMargin, + IORaf: true + }); + } + /** + * Lifecyle - Destroy core. + */ + destroy() { + this.IOTriggerInstance.destroy(); + this.IORafInstance.destroy(); + this._unsubscribeAllScrollElements(); + } + /** + * Callback - Resize callback. + */ + onResize({ + currentScroll + }) { + for (const scrollElement of this.RAFScrollElements) { + scrollElement.onResize({ + currentScroll + }); + } + } + /** + * Callback - RAF callback. + */ + onRender({ + currentScroll, + smooth + }) { + for (const scrollElement of this.scrollElementsToUpdate) { + scrollElement.onRender({ + currentScroll, + smooth + }); + } + } + /** + * Remove items from lists of scroll elements and compute all new values. + * + * @param {HTMLElement} $oldContainer - HTMLElement that contains data-scroll elements to unsubscribe + */ + removeScrollElements($oldContainer) { + const $scrollElementsToRemove = $oldContainer.querySelectorAll("[data-scroll]"); + if (!$scrollElementsToRemove.length) + return; + for (let index = 0; index < this.triggeredScrollElements.length; index++) { + const scrollElement = this.triggeredScrollElements[index]; + const $scrollElementsToRemoveArr = Array.from($scrollElementsToRemove); + if ($scrollElementsToRemoveArr.indexOf(scrollElement.$el) > -1) { + this.IOTriggerInstance.unobserve(scrollElement.$el); + this.triggeredScrollElements.splice(index, 1); + } + } + for (let index = 0; index < this.RAFScrollElements.length; index++) { + const scrollElement = this.RAFScrollElements[index]; + const $scrollElementsToRemoveArr = Array.from($scrollElementsToRemove); + if ($scrollElementsToRemoveArr.indexOf(scrollElement.$el) > -1) { + this.IORafInstance.unobserve(scrollElement.$el); + this.RAFScrollElements.splice(index, 1); + } + } + $scrollElementsToRemove.forEach(($scrollElement) => { + const targetScrollElementToUpdate = this.scrollElementsToUpdate.find((scrollElement) => scrollElement.$el === $scrollElement); + const targetScrollElement = this.scrollElements.find((scrollElement) => scrollElement.$el === $scrollElement); + if (targetScrollElementToUpdate) { + this._unsubscribeElementUpdate(targetScrollElementToUpdate); + } + if (targetScrollElement) { + this.scrollElements = this.scrollElements.filter((scrollElementItem) => scrollElementItem.id != targetScrollElement.id); + } + }); + } + /** + * Add items to lists of scroll elements and compute all new values. + * + * @param {HTMLElement} $newContainer - HTMLElement that contains data-scroll elements to subscribe + */ + addScrollElements($newContainer) { + const $scrollElements = $newContainer.querySelectorAll("[data-scroll]"); + const ids = []; + this.scrollElements.forEach((scrollElement) => { + ids.push(scrollElement.id); + }); + const maxID = Math.max(...ids); + const fromIndex = maxID + 1; + const $scrollElementsArr = Array.from($scrollElements); + this._subscribeScrollElements($scrollElementsArr, fromIndex, true); + } + /** + * Create a ScrollElement instance for each elements with + * `data-scroll` attribute. + * + * @private + * + * @param {HTMLElement[]} $scrollElements - List of elements that need + * to be regarded. + */ + _subscribeScrollElements($scrollElements, fromIndex = 0, toObserve = false) { + for (let index = 0; index < $scrollElements.length; index++) { + const $scrollElement = $scrollElements[index]; + const needRaf = this._checkRafNeeded($scrollElement); + const scrollElementInstance = new ScrollElement({ + $el: $scrollElement, + id: fromIndex + index, + scrollOrientation: this.scrollOrientation, + modularInstance: this.modularInstance, + subscribeElementUpdateFn: this._subscribeElementUpdate.bind(this), + unsubscribeElementUpdateFn: this._unsubscribeElementUpdate.bind(this), + needRaf + }); + this.scrollElements.push(scrollElementInstance); + if (needRaf) { + this.RAFScrollElements.push(scrollElementInstance); + if (toObserve) { + this.IORafInstance.scrollElements.push(scrollElementInstance); + this.IORafInstance.observe(scrollElementInstance.$el); + } + } else { + this.triggeredScrollElements.push(scrollElementInstance); + if (toObserve) { + this.IOTriggerInstance.scrollElements.push(scrollElementInstance); + this.IOTriggerInstance.observe(scrollElementInstance.$el); + } + } + } + } + /** + * Clear all ScrollElement arrays. + * + * @private + */ + _unsubscribeAllScrollElements() { + this.scrollElements = []; + this.RAFScrollElements = []; + this.triggeredScrollElements = []; + this.scrollElementsToUpdate = []; + } + /** + * Subscribe ScrollElement instance that needs to be updated. + * + * @private + * + * @param {ScrollElement} scrollElement - ScrollElement instance inview + * that needs to be updated. + */ + _subscribeElementUpdate(scrollElement) { + this.scrollElementsToUpdate.push(scrollElement); + } + /** + * Unscribe ScrollElement instance that doesn't need to be updated. + * + * @private + * + * @param {ScrollElement} scrollElement - The updated ScrollElement instance + * out of view now. + */ + _unsubscribeElementUpdate(scrollElement) { + this.scrollElementsToUpdate = this.scrollElementsToUpdate.filter((scrollElementToUpdate) => scrollElementToUpdate.id != scrollElement.id); + } + /** + * Check if a DOM Element need a requestAnimationFrame to be used. + * + * @private + * + * @param {HTMLElement} $scrollElement - The element that needs to be checked. + * + * @returns {boolean} + */ + _checkRafNeeded($scrollElement) { + let attributesThatNeedRaf = [...ATTRIBUTES_THAT_NEED_RAF]; + const removeAttribute = (attributeToRemove) => { + attributesThatNeedRaf = attributesThatNeedRaf.filter((attribute) => attribute != attributeToRemove); + }; + if ($scrollElement.dataset.scrollOffset) { + const value = $scrollElement.dataset.scrollOffset.split(",").map((test) => test.replace("%", "").trim()).join(","); + if (value != "0,0") { + return true; + } else { + removeAttribute("scrollOffset"); + } + } else { + removeAttribute("scrollOffset"); + } + if ($scrollElement.dataset.scrollPosition) { + const value = $scrollElement.dataset.scrollPosition.trim(); + if (value != "top,bottom") { + return true; + } else { + removeAttribute("scrollPosition"); + } + } else { + removeAttribute("scrollPosition"); + } + if ($scrollElement.dataset.scrollSpeed && !isNaN(parseFloat($scrollElement.dataset.scrollSpeed))) { + return true; + } else { + removeAttribute("scrollSpeed"); + } + for (const attribute of attributesThatNeedRaf) { + if (attribute in $scrollElement.dataset) { + return true; + } + } + return false; + } + }; + var RO = class { + constructor({ + resizeElements, + resizeCallback = () => { + } + }) { + this.$resizeElements = void 0; + this.isFirstObserve = void 0; + this.observer = void 0; + this.resizeCallback = void 0; + this.$resizeElements = resizeElements; + this.resizeCallback = resizeCallback; + this.isFirstObserve = true; + this._init(); + } + /** + * Lifecyle - Initialize Resize Observer. + * + * @private + */ + _init() { + const onResize = (entries) => { + var _this$resizeCallback; + !this.isFirstObserve && ((_this$resizeCallback = this.resizeCallback) == null ? void 0 : _this$resizeCallback.call(this)); + this.isFirstObserve = false; + }; + this.observer = new ResizeObserver(onResize); + for (const $resizeElement of this.$resizeElements) { + this.observer.observe($resizeElement); + } + } + /** + * Lifecyle - Destroy Resize Observer. + */ + destroy() { + this.observer.disconnect(); + } + }; + var defaultLenisOptions = { + wrapper: window, + content: document.documentElement, + lerp: 0.1, + duration: 1.2, + orientation: "vertical", + gestureOrientation: "vertical", + smoothWheel: true, + smoothTouch: false, + wheelMultiplier: 1, + touchMultiplier: 2, + normalizeWheel: true, + easing: (t2) => Math.min(1, 1.001 - Math.pow(2, -10 * t2)) + // https://www.desmos.com/calculator/brs54l4xou + }; + var LocomotiveScroll = class { + constructor({ + lenisOptions = {}, + modularInstance, + triggerRootMargin, + rafRootMargin, + autoResize = true, + autoStart = true, + scrollCallback = () => { + }, + initCustomTicker, + destroyCustomTicker + } = {}) { + this.rafPlaying = void 0; + this.lenisInstance = void 0; + this.coreInstance = void 0; + this.lenisOptions = void 0; + this.modularInstance = void 0; + this.triggerRootMargin = void 0; + this.rafRootMargin = void 0; + this.rafInstance = void 0; + this.autoResize = void 0; + this.autoStart = void 0; + this.ROInstance = void 0; + this.initCustomTicker = void 0; + this.destroyCustomTicker = void 0; + this._onRenderBind = void 0; + this._onResizeBind = void 0; + this._onScrollToBind = void 0; + this.lenisOptions = _extends({}, defaultLenisOptions, lenisOptions); + Object.assign(this, { + lenisOptions, + modularInstance, + triggerRootMargin, + rafRootMargin, + autoResize, + autoStart, + scrollCallback, + initCustomTicker, + destroyCustomTicker + }); + this._onRenderBind = this._onRender.bind(this); + this._onScrollToBind = this._onScrollTo.bind(this); + this._onResizeBind = this._onResize.bind(this); + this.rafPlaying = false; + this._init(); + } + /** + * Lifecyle - Initialize instance. + * + * @private + */ + _init() { + var _this$lenisInstance; + this.lenisInstance = new l({ + wrapper: this.lenisOptions.wrapper, + content: this.lenisOptions.content, + lerp: this.lenisOptions.lerp, + duration: this.lenisOptions.duration, + orientation: this.lenisOptions.orientation, + gestureOrientation: this.lenisOptions.gestureOrientation, + smoothWheel: this.lenisOptions.smoothWheel, + smoothTouch: this.lenisOptions.smoothTouch, + wheelMultiplier: this.lenisOptions.wheelMultiplier, + touchMultiplier: this.lenisOptions.touchMultiplier, + normalizeWheel: this.lenisOptions.normalizeWheel, + easing: this.lenisOptions.easing + }); + (_this$lenisInstance = this.lenisInstance) == null ? void 0 : _this$lenisInstance.on("scroll", this.scrollCallback); + document.documentElement.setAttribute("data-scroll-orientation", this.lenisInstance.options.orientation); + requestAnimationFrame(() => { + this.coreInstance = new Core({ + $el: this.lenisInstance.rootElement, + modularInstance: this.modularInstance, + triggerRootMargin: this.triggerRootMargin, + rafRootMargin: this.rafRootMargin, + scrollOrientation: this.lenisInstance.options.orientation + }); + this._bindEvents(); + if (this.initCustomTicker && !this.destroyCustomTicker) { + console.warn("initCustomTicker callback is declared, but destroyCustomTicker is not. Please pay attention. It could cause trouble."); + } else if (!this.initCustomTicker && this.destroyCustomTicker) { + console.warn("destroyCustomTicker callback is declared, but initCustomTicker is not. Please pay attention. It could cause trouble."); + } + this.autoStart && this.start(); + }); + } + /** + * Lifecyle - Destroy instance. + */ + destroy() { + this.stop(); + this._unbindEvents(); + this.lenisInstance.destroy(); + this.coreInstance.destroy(); + } + /** + * Events - Subscribe events to listen. + */ + _bindEvents() { + this._bindScrollToEvents(); + if (this.autoResize) { + if ("ResizeObserver" in window) { + this.ROInstance = new RO({ + resizeElements: [document.body], + resizeCallback: this._onResizeBind + }); + } else { + window.addEventListener("resize", this._onResizeBind); + } + } + } + /** + * Events - Unsubscribe listened events. + */ + _unbindEvents() { + this._unbindScrollToEvents(); + if (this.autoResize) { + if ("ResizeObserver" in window) { + this.ROInstance && this.ROInstance.destroy(); + } else { + window.removeEventListener("resize", this._onResizeBind); + } + } + } + /** + * Events - Subscribe scrollTo events to listen. + */ + _bindScrollToEvents($container) { + const $rootContainer = $container ? $container : this.lenisInstance.rootElement; + const $scrollToElements = $rootContainer == null ? void 0 : $rootContainer.querySelectorAll("[data-scroll-to]"); + ($scrollToElements == null ? void 0 : $scrollToElements.length) && $scrollToElements.forEach(($el) => { + $el.addEventListener("click", this._onScrollToBind, false); + }); + } + /** + * Events - Unsubscribe scrollTo listened events. + */ + _unbindScrollToEvents($container) { + const $rootContainer = $container ? $container : this.lenisInstance.rootElement; + const $scrollToElements = $rootContainer == null ? void 0 : $rootContainer.querySelectorAll("[data-scroll-to]"); + ($scrollToElements == null ? void 0 : $scrollToElements.length) && $scrollToElements.forEach(($el) => { + $el.removeEventListener("click", this._onScrollToBind, false); + }); + } + /** + * Callback - Resize callback. + */ + _onResize() { + requestAnimationFrame(() => { + var _this$coreInstance; + (_this$coreInstance = this.coreInstance) == null ? void 0 : _this$coreInstance.onResize({ + currentScroll: this.lenisInstance.scroll + }); + }); + } + /** + * Callback - Render callback. + */ + _onRender() { + var _this$lenisInstance2, _this$coreInstance2; + (_this$lenisInstance2 = this.lenisInstance) == null ? void 0 : _this$lenisInstance2.raf(Date.now()); + (_this$coreInstance2 = this.coreInstance) == null ? void 0 : _this$coreInstance2.onRender({ + currentScroll: this.lenisInstance.scroll, + smooth: this.lenisInstance.isSmooth + }); + } + /** + * Callback - Scroll To callback. + */ + _onScrollTo(event) { + var _event$currentTarget; + event.preventDefault(); + const $target = (_event$currentTarget = event.currentTarget) != null ? _event$currentTarget : null; + if (!$target) + return; + const target = $target.getAttribute("data-scroll-to-href") || $target.getAttribute("href"); + const offset = $target.getAttribute("data-scroll-to-offset") || 0; + const duration = $target.getAttribute("data-scroll-to-duration") || this.lenisOptions.duration || defaultLenisOptions.duration; + target && this.scrollTo(target, { + offset: typeof offset === "string" ? parseInt(offset) : offset, + duration: typeof duration === "string" ? parseInt(duration) : duration + }); + } + /** + * Start RequestAnimationFrame that active Lenis smooth and scroll progress. + */ + start() { + if (this.rafPlaying) { + return; + } + this.rafPlaying = true; + this.initCustomTicker ? this.initCustomTicker(this._onRenderBind) : this._raf(); + } + /** + * Stop RequestAnimationFrame that active Lenis smooth and scroll progress. + */ + stop() { + if (!this.rafPlaying) { + return; + } + this.rafPlaying = false; + this.destroyCustomTicker ? this.destroyCustomTicker(this._onRenderBind) : this.rafInstance && cancelAnimationFrame(this.rafInstance); + } + /** + * Remove old scroll elements items and rebuild ScrollElements instances. + */ + removeScrollElements($oldContainer) { + var _this$coreInstance3; + if (!$oldContainer) { + console.error("Please provide a DOM Element as $oldContainer"); + return; + } + this._unbindScrollToEvents($oldContainer); + (_this$coreInstance3 = this.coreInstance) == null ? void 0 : _this$coreInstance3.removeScrollElements($oldContainer); + } + /** + * Add new scroll elements items and rebuild ScrollElements instances. + */ + addScrollElements($newContainer) { + var _this$coreInstance4; + if (!$newContainer) { + console.error("Please provide a DOM Element as $newContainer"); + return; + } + (_this$coreInstance4 = this.coreInstance) == null ? void 0 : _this$coreInstance4.addScrollElements($newContainer); + requestAnimationFrame(() => { + this._bindScrollToEvents($newContainer); + }); + } + /** + * Trigger resize callback. + */ + resize() { + this._onResizeBind(); + } + /** + * Trigger scroll to callback. + */ + scrollTo(target, options) { + var _this$lenisInstance3; + (_this$lenisInstance3 = this.lenisInstance) == null ? void 0 : _this$lenisInstance3.scrollTo(target, { + offset: options == null ? void 0 : options.offset, + lerp: options == null ? void 0 : options.lerp, + duration: options == null ? void 0 : options.duration, + immediate: options == null ? void 0 : options.immediate, + lock: options == null ? void 0 : options.lock, + force: options == null ? void 0 : options.force, + easing: options == null ? void 0 : options.easing, + onComplete: options == null ? void 0 : options.onComplete + }); + } + /** + * RequestAnimationFrame that active Lenis smooth and scroll progress. + * + * @private + * + */ + _raf() { + this._onRenderBind(); + this.rafInstance = requestAnimationFrame(() => this._raf()); + } + }; + + // assets/scripts/modules/Scroll.js + var Scroll_default = class extends _default { + constructor(m) { + super(m); + } + init() { + this.scroll = new LocomotiveScroll({ + modularInstance: this + }); + } + scrollTo(params) { + var _b; + let _a = params, { target } = _a, options = __objRest(_a, ["target"]); + options = Object.assign({ + // Defaults + duration: 1 + }, options); + (_b = this.scroll) == null ? void 0 : _b.scrollTo(target, options); + } + /** + * Observe new scroll elements + * + * @param $newContainer (HTMLElement) + */ + addScrollElements($newContainer) { + var _a; + (_a = this.scroll) == null ? void 0 : _a.addScrollElements($newContainer); + } + /** + * Unobserve scroll elements + * + * @param $oldContainer (HTMLElement) + */ + removeScrollElements($oldContainer) { + var _a; + (_a = this.scroll) == null ? void 0 : _a.removeScrollElements($oldContainer); + } + destroy() { + this.scroll.destroy(); + } + }; + + // assets/scripts/globals.js + var import_svg4everybody = __toESM(require_svg4everybody(), 1); + var gridHelper2; + (() => __async(void 0, null, function* () { + if (ENV.IS_DEV) { + const gridHelperModule = yield Promise.resolve().then(() => (init_grid_helper(), grid_helper_exports)); + gridHelper2 = gridHelperModule == null ? void 0 : gridHelperModule.gridHelper; + } + }))(); + function globals_default() { + (0, import_svg4everybody.default)(); + gridHelper2 == null ? void 0 : gridHelper2(); + triggerLazyloadCallbacks(); + } + + // assets/scripts/utils/tickers.js + var debounce = (callback, delay, immediate = false) => { + let timeout = null; + return (...args) => { + clearTimeout(timeout); + const later = () => { + timeout = null; + if (!immediate) { + callback(...args); + } + }; + if (immediate && !timeout) { + callback(...args); + } + timeout = setTimeout(later, delay); + }; + }; + + // assets/scripts/utils/dom.js + var $html = document.documentElement; + var $body = document.body; + + // assets/scripts/app.js + var app = new main_esm_default({ + modules: modules_exports + }); + window.onload = (event) => { + const $style = document.getElementById("main-css"); + if ($style) { + if ($style.isLoaded) { + init(); + } else { + $style.addEventListener("load", (event2) => { + init(); + }); + } + } else { + console.warn('The "main-css" stylesheet not found'); + } + }; + function init() { + globals_default(); + app.init(app); + $html.classList.add(CSS_CLASS.LOADED); + $html.classList.add(CSS_CLASS.READY); + $html.classList.remove(CSS_CLASS.LOADING); + const resizeEndEvent = new CustomEvent(CUSTOM_EVENT.RESIZE_END); + window.addEventListener("resize", () => { + $html.style.setProperty("--vw", `${document.documentElement.clientWidth * 0.01}px`); + debounce(() => { + window.dispatchEvent(resizeEndEvent); + }, 200, false); + }); + if (isFontLoadingAPIAvailable) { + loadFonts(FONT.EAGER, ENV.IS_DEV).then((eagerFonts) => { + $html.classList.add(CSS_CLASS.FONTS_LOADED); + if (ENV.IS_DEV) { + console.group("Eager fonts loaded!", eagerFonts.length, "/", document.fonts.size); + console.group("State of eager fonts:"); + eagerFonts.forEach((font) => console.log( + font.family, + font.style, + font.weight, + font.status + /*, font*/ + )); + console.groupEnd(); + console.group("State of all fonts:"); + document.fonts.forEach((font) => console.log( + font.family, + font.style, + font.weight, + font.status + /*, font*/ + )); + console.groupEnd(); + } + }); + } + } +})(); /*! Bundled license information: svg4everybody/dist/svg4everybody.js: diff --git a/www/assets/scripts/app.js.map b/www/assets/scripts/app.js.map index 17933690..c024c8bc 100644 --- a/www/assets/scripts/app.js.map +++ b/www/assets/scripts/app.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["../../../node_modules/svg4everybody/dist/svg4everybody.js", "../../../assets/scripts/utils/grid-helper.js", "../../../node_modules/modujs/dist/main.esm.js", "../../../assets/scripts/modules.js", "../../../assets/scripts/config.js", "../../../assets/scripts/utils/fonts.js", "../../../assets/scripts/modules/Example.js", "../../../node_modules/modularload/dist/main.esm.js", "../../../assets/scripts/modules/Load.js", "../../../assets/scripts/utils/image.js", "../../../node_modules/@studio-freight/lenis/src/maths.js", "../../../node_modules/@studio-freight/lenis/src/animate.js", "../../../node_modules/@studio-freight/lenis/src/debounce.js", "../../../node_modules/@studio-freight/lenis/src/dimensions.js", "../../../node_modules/@studio-freight/lenis/src/nanoevents.js", "../../../node_modules/@studio-freight/lenis/src/virtual-scroll.js", "../../../node_modules/@studio-freight/lenis/src/index.js", "../../../node_modules/locomotive-scroll/src/core/IO.ts", "../../../node_modules/locomotive-scroll/src/utils/maths.ts", "../../../node_modules/locomotive-scroll/src/core/ScrollElement.ts", "../../../node_modules/locomotive-scroll/src/core/Core.ts", "../../../node_modules/locomotive-scroll/src/core/RO.ts", "../../../node_modules/locomotive-scroll/src/index.ts", "../../../assets/scripts/modules/Scroll.js", "../../../assets/scripts/globals.js", "../../../assets/scripts/utils/tickers.js", "../../../assets/scripts/utils/dom.js", "../../../assets/scripts/app.js"], - "sourcesContent": ["!function(root, factory) {\n \"function\" == typeof define && define.amd ? // AMD. Register as an anonymous module unless amdModuleId is set\n define([], function() {\n return root.svg4everybody = factory();\n }) : \"object\" == typeof module && module.exports ? // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory() : root.svg4everybody = factory();\n}(this, function() {\n /*! svg4everybody v2.1.9 | github.com/jonathantneal/svg4everybody */\n function embed(parent, svg, target) {\n // if the target exists\n if (target) {\n // create a document fragment to hold the contents of the target\n var fragment = document.createDocumentFragment(), viewBox = !svg.hasAttribute(\"viewBox\") && target.getAttribute(\"viewBox\");\n // conditionally set the viewBox on the svg\n viewBox && svg.setAttribute(\"viewBox\", viewBox);\n // copy the contents of the clone into the fragment\n for (// clone the target\n var clone = target.cloneNode(!0); clone.childNodes.length; ) {\n fragment.appendChild(clone.firstChild);\n }\n // append the fragment into the svg\n parent.appendChild(fragment);\n }\n }\n function loadreadystatechange(xhr) {\n // listen to changes in the request\n xhr.onreadystatechange = function() {\n // if the request is ready\n if (4 === xhr.readyState) {\n // get the cached html document\n var cachedDocument = xhr._cachedDocument;\n // ensure the cached html document based on the xhr response\n cachedDocument || (cachedDocument = xhr._cachedDocument = document.implementation.createHTMLDocument(\"\"), \n cachedDocument.body.innerHTML = xhr.responseText, xhr._cachedTarget = {}), // clear the xhr embeds list and embed each item\n xhr._embeds.splice(0).map(function(item) {\n // get the cached target\n var target = xhr._cachedTarget[item.id];\n // ensure the cached target\n target || (target = xhr._cachedTarget[item.id] = cachedDocument.getElementById(item.id)), \n // embed the target into the svg\n embed(item.parent, item.svg, target);\n });\n }\n }, // test the ready state change immediately\n xhr.onreadystatechange();\n }\n function svg4everybody(rawopts) {\n function oninterval() {\n // while the index exists in the live collection\n for (// get the cached index\n var index = 0; index < uses.length; ) {\n // get the current \n var use = uses[index], parent = use.parentNode, svg = getSVGAncestor(parent), src = use.getAttribute(\"xlink:href\") || use.getAttribute(\"href\");\n if (!src && opts.attributeName && (src = use.getAttribute(opts.attributeName)), \n svg && src) {\n if (polyfill) {\n if (!opts.validate || opts.validate(src, svg, use)) {\n // remove the element\n parent.removeChild(use);\n // parse the src and get the url and id\n var srcSplit = src.split(\"#\"), url = srcSplit.shift(), id = srcSplit.join(\"#\");\n // if the link is external\n if (url.length) {\n // get the cached xhr request\n var xhr = requests[url];\n // ensure the xhr request exists\n xhr || (xhr = requests[url] = new XMLHttpRequest(), xhr.open(\"GET\", url), xhr.send(), \n xhr._embeds = []), // add the svg and id as an item to the xhr embeds list\n xhr._embeds.push({\n parent: parent,\n svg: svg,\n id: id\n }), // prepare the xhr ready state change event\n loadreadystatechange(xhr);\n } else {\n // embed the local id into the svg\n embed(parent, svg, document.getElementById(id));\n }\n } else {\n // increase the index when the previous value was not \"valid\"\n ++index, ++numberOfSvgUseElementsToBypass;\n }\n }\n } else {\n // increase the index when the previous value was not \"valid\"\n ++index;\n }\n }\n // continue the interval\n (!uses.length || uses.length - numberOfSvgUseElementsToBypass > 0) && requestAnimationFrame(oninterval, 67);\n }\n var polyfill, opts = Object(rawopts), newerIEUA = /\\bTrident\\/[567]\\b|\\bMSIE (?:9|10)\\.0\\b/, webkitUA = /\\bAppleWebKit\\/(\\d+)\\b/, olderEdgeUA = /\\bEdge\\/12\\.(\\d+)\\b/, edgeUA = /\\bEdge\\/.(\\d+)\\b/, inIframe = window.top !== window.self;\n polyfill = \"polyfill\" in opts ? opts.polyfill : newerIEUA.test(navigator.userAgent) || (navigator.userAgent.match(olderEdgeUA) || [])[1] < 10547 || (navigator.userAgent.match(webkitUA) || [])[1] < 537 || edgeUA.test(navigator.userAgent) && inIframe;\n // create xhr requests object\n var requests = {}, requestAnimationFrame = window.requestAnimationFrame || setTimeout, uses = document.getElementsByTagName(\"use\"), numberOfSvgUseElementsToBypass = 0;\n // conditionally start the interval if the polyfill is active\n polyfill && oninterval();\n }\n function getSVGAncestor(node) {\n for (var svg = node; \"svg\" !== svg.nodeName.toLowerCase() && (svg = svg.parentNode); ) {}\n return svg;\n }\n return svg4everybody;\n});", "/**\n * Grid Helper\n *\n * Provides a grid based on the design guidelines and is helpful for web integration.\n *\n * - `Control + g` to toggle the grid\n *\n */\n\n/**\n * @typedef {Object} GridHelperReference\n *\n * @property {string} [gutterCssVar=GRID_HELPER_GUTTER_CSS_VAR] - CSS variable used to define grid gutters.\n * @property {string} [marginCssVar=GRID_HELPER_MARGIN_CSS_VAR] - CSS variable used to define grid margins.\n * @property {string} [rgbaColor=GRID_HELPER_RGBA_COLOR] - RGBA color for the grid appearence.\n */\n\nconst GRID_HELPER_GUTTER_CSS_VAR = '--grid-gutter';\nconst GRID_HELPER_MARGIN_CSS_VAR = '--grid-margin';\nconst GRID_HELPER_RGBA_COLOR = 'rgba(255, 0, 0, .1)';\n\n/**\n * Create a grid helper\n *\n * @param {GridHelperReference}\n *\n */\nfunction gridHelper({\n gutterCssVar = GRID_HELPER_GUTTER_CSS_VAR,\n marginCssVar = GRID_HELPER_MARGIN_CSS_VAR,\n rgbaColor = GRID_HELPER_RGBA_COLOR,\n} = {}) {\n // Set grid container\n const $gridContainer = document.createElement('div');\n document.body.append($gridContainer);\n\n // Set grid appearence\n setGridHelperColumns($gridContainer, rgbaColor);\n setGridHelperStyles($gridContainer, gutterCssVar, marginCssVar);\n\n // Set grid interactivity\n setGridEvents($gridContainer, rgbaColor);\n}\n\n/**\n * Set grid container styles\n *\n * @param {HTMLElement} $container - DOM Element that contains a list of generated columns\n * @param {string} gutterCssVar - CSS variable used to define grid gutters.\n * @param {string} marginCssVar - CSS variable used to define grid margins.\n *\n */\nfunction setGridHelperStyles($container, gutterCssVar, marginCssVar) {\n const elStyles = $container.style;\n elStyles.zIndex = '10000';\n elStyles.position = 'fixed';\n elStyles.top = '0';\n elStyles.left = '0';\n elStyles.display = 'flex';\n elStyles.width = '100%';\n elStyles.height = '100%';\n elStyles.columnGap = `var(${gutterCssVar}, 0)`;\n elStyles.paddingLeft = `var(${marginCssVar}, 0)`;\n elStyles.paddingRight = `var(${marginCssVar}, 0)`;\n elStyles.pointerEvents = 'none';\n elStyles.visibility = 'hidden';\n}\n\n/**\n * Set grid columns\n *\n * @param {HTMLElement} $container - DOM Element that will contain a list of generated columns\n * @param {string} rgbaColor - RGBA color to stylize the generated columns\n *\n */\nfunction setGridHelperColumns($container, rgbaColor) {\n // Clear columns\n $container.innerHTML = '';\n\n // Loop through columns\n const columns = Number(\n window.getComputedStyle($container).getPropertyValue('--grid-columns')\n );\n\n let $col;\n for (var i = 0; i < columns; i++) {\n $col = document.createElement('div');\n $col.style.flex = '1 1 0';\n $col.style.backgroundColor = rgbaColor;\n $container.appendChild($col);\n }\n}\n\n/**\n * Set grid events\n *\n * Resize to rebuild columns\n * Keydown/Keyup to toggle the grid display\n *\n * @param {HTMLElement} $container - DOM Element that contains a list of generated columns\n * @param {string} rgbaColor - RGBA color to stylize the generated columns\n *\n */\nfunction setGridEvents($container, rgbaColor) {\n // Handle resize\n window.addEventListener(\n 'resize',\n setGridHelperColumns($container, rgbaColor)\n );\n\n // Toggle grid\n let ctrlDown = false;\n let isActive = false;\n\n document.addEventListener('keydown', (e) => {\n if (e.key == 'Control') {\n ctrlDown = true;\n } else {\n if (ctrlDown && e.key == 'g') {\n if (isActive) {\n $container.style.visibility = 'hidden';\n } else {\n $container.style.visibility = 'visible';\n }\n\n isActive = !isActive;\n }\n }\n });\n\n document.addEventListener('keyup', (e) => {\n if (e.key == 'Control') {\n ctrlDown = false;\n }\n });\n}\n\nexport { gridHelper };\n", "function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar _default = /*#__PURE__*/function () {\n function _default(options) {\n _classCallCheck(this, _default);\n\n this.mAttr = 'data-' + options.dataName;\n this.mCaptureEvents = ['mouseenter', 'mouseleave'];\n this.el = options.el;\n }\n\n _createClass(_default, [{\n key: \"mInit\",\n value: function mInit(modules) {\n var _this = this;\n\n this.modules = modules;\n this.mCheckEventTarget = this.mCheckEventTarget.bind(this);\n\n if (this.events) {\n Object.keys(this.events).forEach(function (event) {\n return _this.mAddEvent(event);\n });\n }\n }\n }, {\n key: \"mUpdate\",\n value: function mUpdate(modules) {\n this.modules = modules;\n }\n }, {\n key: \"mDestroy\",\n value: function mDestroy() {\n var _this2 = this;\n\n if (this.events) {\n Object.keys(this.events).forEach(function (event) {\n return _this2.mRemoveEvent(event);\n });\n }\n }\n }, {\n key: \"mAddEvent\",\n value: function mAddEvent(event) {\n var capture = this.mCaptureEvents.includes(event) ? true : false;\n this.el.addEventListener(event, this.mCheckEventTarget, capture);\n }\n }, {\n key: \"mRemoveEvent\",\n value: function mRemoveEvent(event) {\n var capture = this.mCaptureEvents.includes(event) ? true : false;\n this.el.removeEventListener(event, this.mCheckEventTarget, capture);\n }\n }, {\n key: \"mCheckEventTarget\",\n value: function mCheckEventTarget(e) {\n var event = this.events[e.type];\n\n if (typeof event === \"string\") {\n this[event](e);\n } else {\n var data = '[' + this.mAttr + ']';\n var target = e.target;\n\n if (this.mCaptureEvents.includes(e.type)) {\n if (target.matches(data)) {\n this.mCallEventMethod(e, event, target);\n }\n } else {\n while (target && target !== document) {\n if (target.matches(data)) {\n if (this.mCallEventMethod(e, event, target) != 'undefined') {\n break;\n }\n }\n\n target = target.parentNode;\n }\n }\n }\n }\n }, {\n key: \"mCallEventMethod\",\n value: function mCallEventMethod(e, event, target) {\n var name = target.getAttribute(this.mAttr);\n\n if (event.hasOwnProperty(name)) {\n var method = event[name];\n\n if (!e.hasOwnProperty('currentTarget')) {\n Object.defineProperty(e, 'currentTarget', {\n value: target\n });\n }\n\n if (!e.hasOwnProperty('curTarget')) {\n Object.defineProperty(e, 'curTarget', {\n value: target\n }); // For IE 11\n }\n\n this[method](e);\n }\n }\n }, {\n key: \"$\",\n value: function $(query, context) {\n var classIndex = query.indexOf('.');\n var idIndex = query.indexOf('#');\n var attrIndex = query.indexOf('[');\n var indexes = [classIndex, idIndex, attrIndex].filter(function (index) {\n return index != -1;\n });\n var index = false;\n var name = query;\n var more = '';\n var parent = this.el;\n\n if (indexes.length) {\n index = Math.min.apply(Math, _toConsumableArray(indexes));\n name = query.slice(0, index);\n more = query.slice(index);\n }\n\n if (_typeof(context) == 'object') {\n parent = context;\n }\n\n return parent.querySelectorAll('[' + this.mAttr + '=' + name + ']' + more);\n }\n }, {\n key: \"parent\",\n value: function parent(query, context) {\n var data = '[' + this.mAttr + '=' + query + ']';\n var parent = context.parentNode;\n\n while (parent && parent !== document) {\n if (parent.matches(data)) {\n return parent;\n }\n\n parent = parent.parentNode;\n }\n }\n }, {\n key: \"getData\",\n value: function getData(name, context) {\n var target = context || this.el;\n return target.getAttribute(this.mAttr + '-' + name);\n }\n }, {\n key: \"setData\",\n value: function setData(name, value, context) {\n var target = context || this.el;\n return target.setAttribute(this.mAttr + '-' + name, value);\n }\n }, {\n key: \"call\",\n value: function call(func, args, mod, id) {\n var _this3 = this;\n\n if (args && !mod) {\n mod = args;\n args = false;\n }\n\n if (this.modules[mod]) {\n if (id) {\n if (this.modules[mod][id]) {\n this.modules[mod][id][func](args);\n }\n } else {\n Object.keys(this.modules[mod]).forEach(function (id) {\n _this3.modules[mod][id][func](args);\n });\n }\n }\n }\n }, {\n key: \"on\",\n value: function on(e, mod, func, id) {\n var _this4 = this;\n\n if (this.modules[mod]) {\n if (id) {\n this.modules[mod][id].el.addEventListener(e, function (o) {\n return func(o);\n });\n } else {\n Object.keys(this.modules[mod]).forEach(function (i) {\n _this4.modules[mod][i].el.addEventListener(e, function (o) {\n return func(o);\n });\n });\n }\n }\n }\n }, {\n key: \"init\",\n value: function init() {}\n }, {\n key: \"destroy\",\n value: function destroy() {}\n }]);\n\n return _default;\n}();\n\nvar _default$1 = /*#__PURE__*/function () {\n function _default(options) {\n _classCallCheck(this, _default);\n\n this.app;\n this.modules = options.modules;\n this.currentModules = {};\n this.activeModules = {};\n this.newModules = {};\n this.moduleId = 0;\n }\n\n _createClass(_default, [{\n key: \"init\",\n value: function init(app, scope) {\n var _this = this;\n\n var container = scope || document;\n var elements = container.querySelectorAll('*');\n\n if (app && !this.app) {\n this.app = app;\n }\n\n this.activeModules['app'] = {\n 'app': this.app\n };\n elements.forEach(function (el) {\n Array.from(el.attributes).forEach(function (i) {\n if (i.name.startsWith('data-module')) {\n var moduleExists = false;\n var dataName = i.name.split('-').splice(2);\n\n var moduleName = _this.toCamel(dataName);\n\n if (_this.modules[moduleName]) {\n moduleExists = true;\n } else if (_this.modules[_this.toUpper(moduleName)]) {\n moduleName = _this.toUpper(moduleName);\n moduleExists = true;\n }\n\n if (moduleExists) {\n var options = {\n el: el,\n name: moduleName,\n dataName: dataName.join('-')\n };\n var module = new _this.modules[moduleName](options);\n var id = i.value;\n\n if (!id) {\n _this.moduleId++;\n id = 'm' + _this.moduleId;\n el.setAttribute(i.name, id);\n }\n\n _this.addActiveModule(moduleName, id, module);\n\n var moduleId = moduleName + '-' + id;\n\n if (scope) {\n _this.newModules[moduleId] = module;\n } else {\n _this.currentModules[moduleId] = module;\n }\n }\n }\n });\n });\n Object.entries(this.currentModules).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n id = _ref2[0],\n module = _ref2[1];\n\n if (scope) {\n var split = id.split('-');\n var moduleName = split.shift();\n var moduleId = split.pop();\n\n _this.addActiveModule(moduleName, moduleId, module);\n } else {\n _this.initModule(module);\n }\n });\n }\n }, {\n key: \"initModule\",\n value: function initModule(module) {\n module.mInit(this.activeModules);\n module.init();\n }\n }, {\n key: \"addActiveModule\",\n value: function addActiveModule(name, id, module) {\n if (this.activeModules[name]) {\n Object.assign(this.activeModules[name], _defineProperty({}, id, module));\n } else {\n this.activeModules[name] = _defineProperty({}, id, module);\n }\n }\n }, {\n key: \"update\",\n value: function update(scope) {\n var _this2 = this;\n\n this.init(this.app, scope);\n Object.entries(this.currentModules).forEach(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n id = _ref4[0],\n module = _ref4[1];\n\n module.mUpdate(_this2.activeModules);\n });\n Object.entries(this.newModules).forEach(function (_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n id = _ref6[0],\n module = _ref6[1];\n\n _this2.initModule(module);\n });\n Object.assign(this.currentModules, this.newModules);\n }\n }, {\n key: \"destroy\",\n value: function destroy(scope) {\n if (scope) {\n this.destroyScope(scope);\n } else {\n this.destroyModules();\n }\n }\n }, {\n key: \"destroyScope\",\n value: function destroyScope(scope) {\n var _this3 = this;\n\n var elements = scope.querySelectorAll('*');\n elements.forEach(function (el) {\n Array.from(el.attributes).forEach(function (i) {\n if (i.name.startsWith('data-module')) {\n var id = i.value;\n var dataName = i.name.split('-').splice(2);\n var moduleName = _this3.toCamel(dataName) + '-' + id;\n var moduleExists = false;\n\n if (_this3.currentModules[moduleName]) {\n moduleExists = true;\n } else if (_this3.currentModules[_this3.toUpper(moduleName)]) {\n moduleName = _this3.toUpper(moduleName);\n moduleExists = true;\n }\n\n if (moduleExists) {\n _this3.destroyModule(_this3.currentModules[moduleName]);\n\n delete _this3.currentModules[moduleName];\n }\n }\n });\n });\n this.activeModules = {};\n this.newModules = {};\n }\n }, {\n key: \"destroyModules\",\n value: function destroyModules() {\n var _this4 = this;\n\n Object.entries(this.currentModules).forEach(function (_ref7) {\n var _ref8 = _slicedToArray(_ref7, 2),\n id = _ref8[0],\n module = _ref8[1];\n\n _this4.destroyModule(module);\n });\n this.currentModules = [];\n }\n }, {\n key: \"destroyModule\",\n value: function destroyModule(module) {\n module.mDestroy();\n module.destroy();\n }\n }, {\n key: \"toCamel\",\n value: function toCamel(arr) {\n var _this5 = this;\n\n return arr.reduce(function (a, b) {\n return a + _this5.toUpper(b);\n });\n }\n }, {\n key: \"toUpper\",\n value: function toUpper(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n }\n }]);\n\n return _default;\n}();\n\nexport default _default$1;\nexport { _default as module };\n", "export {default as Example} from './modules/Example';\nexport {default as Load} from './modules/Load';\nexport {default as Scroll} from './modules/Scroll';\n", "/**\n * > When using the esBuild API, all `process.env.NODE_ENV` expressions\n * > are automatically defined to `\"production\"` if all minification\n * > options are enabled and `\"development\"` otherwise. This only happens\n * > if `process`, `process.env`, and `process.env.NODE_ENV` are not already\n * > defined. This substitution is necessary to avoid code crashing instantly\n * > (since `process` is a Node API, not a web API).\n * > \u2014 https://esbuild.github.io/api/#platform\n */\n\nconst NODE_ENV = process.env.NODE_ENV\nconst IS_DESKTOP = typeof window.orientation === 'undefined'\n\n// Main environment variables\nconst ENV = Object.freeze({\n // Node environment\n NAME: NODE_ENV,\n IS_PROD: NODE_ENV === 'production',\n IS_DEV: NODE_ENV === 'development',\n\n // Device\n IS_DESKTOP,\n IS_MOBILE: !IS_DESKTOP,\n})\n\n// Main CSS classes used within the project\nconst CSS_CLASS = Object.freeze({\n LOADING: 'is-loading',\n LOADED: 'is-loaded',\n READY: 'is-ready',\n FONTS_LOADED: 'fonts-loaded',\n LAZY_CONTAINER: 'c-lazy',\n LAZY_LOADED: '-lazy-loaded',\n // ...\n})\n\n// Custom js events\nconst CUSTOM_EVENT = Object.freeze({\n RESIZE_END: 'loco.resizeEnd',\n // ...\n})\n\n// Fonts parameters\nconst FONT = Object.freeze({\n EAGER: [\n { family: 'Source Sans', style: 'normal', weight: 400 },\n { family: 'Source Sans', style: 'normal', weight: 700 },\n ],\n})\n\nexport {\n ENV,\n CSS_CLASS,\n CUSTOM_EVENT,\n FONT,\n}\n", "/**\n * Font Faces\n *\n * Provides utilities to facilitate interactions with the CSS Font Loading API.\n *\n * Features functions to:\n *\n * - Retrieve one or more `FontFace` instances based on a font search query.\n * - Check if a `FontFace` instance matches a font search query.\n * - Eagerly load fonts that match a font search query.\n * - Wait until fonts that match a font search query are loaded.\n *\n * References:\n *\n * - {@link https://developer.mozilla.org/en-US/docs/Web/API/CSS_Font_Loading_API}\n */\n\n/**\n * @typedef {Object} FontFaceReference\n *\n * @property {string} family - The name used to identify the font in our CSS.\n * @property {string} [style] - The style used by the font in our CSS.\n * @property {string} [weight] - The weight used by the font in our CSS.\n */\n\nconst isFontLoadingAPIAvailable = ('fonts' in document);\n\n/**\n * Determines if the given font matches the given `FontFaceReference`.\n *\n * @param {FontFace} font - The font to inspect.\n * @param {FontFaceReference} criterion - The object of property values to match.\n *\n * @returns {boolean}\n */\nfunction conformsToReference(font, criterion)\n{\n for (const [ key, value ] of Object.entries(criterion)) {\n switch (key) {\n case 'family': {\n if (trim(font[key]) !== value) {\n return false;\n }\n break;\n }\n\n case 'weight': {\n /**\n * Note concerning font weights:\n * Loose equality (`==`) is used to compare numeric weights,\n * a number (`400`) and a numeric string (`\"400\"`).\n * Comparison between numeric and keyword values is neglected.\n *\n * @link https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight#common_weight_name_mapping\n */\n if (font[key] != value) {\n return false;\n }\n break;\n }\n\n default: {\n if (font[key] !== value) {\n return false;\n }\n break;\n }\n }\n }\n\n return true;\n}\n\n/**\n * Determines if the given font matches the given font shorthand.\n *\n * @param {FontFace} font - The font to inspect.\n * @param {string} criterion - The font shorthand to match.\n *\n * @returns {boolean}\n */\nfunction conformsToShorthand(font, criterion)\n{\n const family = trim(font.family);\n\n if (trim(family) === criterion) {\n return true;\n }\n\n if (\n criterion.endsWith(trim(family)) && (\n criterion.match(font.weight) ||\n criterion.match(font.style)\n )\n ) {\n return true;\n }\n\n return true;\n}\n\n/**\n * Determines if the given font matches any of the given criteria.\n *\n * @param {FontFace} font - The font to inspect.\n * @param {FontFaceReference[]} criteria - A list of objects with property values to match.\n *\n * @returns {boolean}\n */\nfunction conformsToAnyReference(font, criteria)\n{\n for (const criterion of criteria) {\n if (conformsToReference(font, criterion)) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Returns an iterator of all `FontFace` from `document.fonts` that satisfy\n * the provided `FontFaceReference`.\n *\n * @param {FontFaceReference} font\n *\n * @returns {FontFace[]}\n */\nfunction findManyByReference(search)\n{\n const found = [];\n\n for (const font of document.fonts) {\n if (conformsToReference(font, search)) {\n found.push(font);\n }\n }\n\n return found;\n}\n\n/**\n * Returns an iterator of all `FontFace` from `document.fonts` that satisfy\n * the provided font shorthand.\n *\n * @param {string} font\n *\n * @returns {FontFace[]}\n */\nfunction findManyByShorthand(search)\n{\n const found = [];\n\n for (const font of document.fonts) {\n if (conformsToShorthand(font, search)) {\n found.push(font);\n }\n }\n\n return found;\n}\n\n/**\n * Returns the first `FontFace` from `document.fonts` that satisfies\n * the provided `FontFaceReference`.\n *\n * @param {FontFaceReference} font\n *\n * @returns {?FontFace}\n */\nfunction findOneByReference(search)\n{\n for (const font of document.fonts) {\n if (conformsToReference(font, criterion)) {\n return font;\n }\n }\n\n return null;\n}\n\n/**\n * Returns the first `FontFace` from `document.fonts` that satisfies\n * the provided font shorthand.\n *\n * Examples:\n *\n * - \"Roboto\"\n * - \"italic bold 16px Roboto\"\n *\n * @param {string} font\n *\n * @returns {?FontFace}\n */\nfunction findOneByShorthand(search)\n{\n for (const font of document.fonts) {\n if (conformsToShorthand(font, search)) {\n return font;\n }\n }\n\n return null;\n}\n\n/**\n * Returns a `FontFace` from `document.fonts` that satisfies\n * the provided query.\n *\n * @param {FontFaceReference|string} font - Either:\n * - a `FontFaceReference` object\n * - a font family name\n * - a font specification, for example \"italic bold 16px Roboto\"\n *\n * @returns {?FontFace}\n *\n * @throws {TypeError}\n */\nfunction getAny(search) {\n if (search) {\n switch (typeof search) {\n case 'string':\n return findOneByShorthand(search);\n\n case 'object':\n return findOneByReference(search);\n }\n }\n\n throw new TypeError(\n 'Expected font query to be font shorthand or font reference'\n );\n}\n\n/**\n * Returns an iterator of all `FontFace` from `document.fonts` that satisfy\n * the provided queries.\n *\n * @param {FontFaceReference|string|(FontFaceReference|string)[]} queries\n *\n * @returns {FontFace[]}\n *\n * @throws {TypeError}\n */\nfunction getMany(queries) {\n if (!Array.isArray(queries)) {\n queries = [ queries ];\n }\n\n const found = new Set();\n\n queries.forEach((search) => {\n if (search) {\n switch (typeof search) {\n case 'string':\n found.add(...findManyByShorthand(search));\n return;\n\n case 'object':\n found.add(...findManyByReference(search));\n return;\n }\n }\n\n throw new TypeError(\n 'Expected font query to be font shorthand or font reference'\n );\n })\n\n return [ ...found ];\n}\n\n/**\n * Determines if a font face is registered.\n *\n * @param {FontFace|FontFaceReference|string} search - Either:\n * - a `FontFace` instance\n * - a `FontFaceReference` object\n * - a font family name\n * - a font specification, for example \"italic bold 16px Roboto\"\n *\n * @returns {boolean}\n */\nfunction hasAny(search) {\n if (search instanceof FontFace) {\n return document.fonts.has(search);\n }\n\n return getAny(search) != null;\n}\n\n/**\n * Eagerly load fonts.\n *\n * Most user agents only fetch and load fonts when they are first needed\n * (\"lazy loaded\"), which can result in a perceptible delay.\n *\n * This function will \"eager load\" the fonts.\n *\n * @param {(FontFace|FontFaceReference)[]} fontsToLoad - List of fonts to load.\n * @param {boolean} [debug] - If TRUE, log details to the console.\n *\n * @returns {Promise}\n */\nasync function loadFonts(fontsToLoad, debug = false)\n{\n if ((fontsToLoad.size ?? fontsToLoad.length) === 0) {\n throw new TypeError(\n 'Expected at least one font'\n );\n }\n\n return await loadFontsWithAPI([ ...fontsToLoad ], debug);\n}\n\n/**\n * Eagerly load a font using `FontFaceSet` API.\n *\n * @param {FontFace} font\n *\n * @returns {Promise}\n */\nasync function loadFontFaceWithAPI(font)\n{\n return await (font.status === 'unloaded'\n ? font.load()\n : font.loaded\n ).then((font) => font, (err) => font)\n}\n\n/**\n * Eagerly load fonts using `FontFaceSet` API.\n *\n * @param {FontFaceReference[]} fontsToLoad\n * @param {boolean} [debug]\n *\n * @returns {Promise}\n */\nasync function loadFontsWithAPI(fontsToLoad, debug = false)\n{\n debug && console.group('[loadFonts:API]', fontsToLoad.length, '/', document.fonts.size);\n\n const fontsToBeLoaded = [];\n\n for (const fontToLoad of fontsToLoad) {\n if (fontToLoad instanceof FontFace) {\n if (!document.fonts.has(fontToLoad)) {\n document.fonts.add(fontToLoad);\n }\n\n fontsToBeLoaded.push(\n loadFontFaceWithAPI(fontToLoad)\n );\n } else {\n fontsToBeLoaded.push(\n ...getMany(fontToLoad).map((font) => loadFontFaceWithAPI(font))\n );\n }\n }\n\n debug && console.groupEnd();\n\n return await Promise.all(fontsToBeLoaded);\n}\n\n/**\n * Removes quotes from the the string.\n *\n * When a `@font-face` is declared, the font family is sometimes\n * defined in quotes which end up included in the `FontFace` instance.\n *\n * @param {string} value\n *\n * @returns {string}\n */\nfunction trim(value) {\n return value.replace(/['\"]+/g, '');\n}\n\n/**\n * Returns a Promise that resolves with the specified fonts\n * when they are done loading or failed.\n *\n * @param {FontFaceReference|string|(FontFaceReference|string)[]} queries\n *\n * @returns {Promise}\n */\nasync function whenReady(queries)\n{\n const fonts = getMany(queries);\n\n return await Promise.all(fonts.map((font) => font.loaded));\n}\n\nexport {\n getAny,\n getMany,\n hasAny,\n isFontLoadingAPIAvailable,\n loadFonts,\n whenReady,\n}\n", "import { module } from 'modujs';\nimport { FONT } from '../config';\nimport { whenReady } from '../utils/fonts';\n\nexport default class extends module {\n constructor(m) {\n super(m);\n }\n\n init() {\n whenReady(FONT.EAGER).then((fonts) => this.onFontsLoaded(fonts));\n }\n\n onFontsLoaded(fonts) {\n console.log('Example: Eager Fonts Loaded!', fonts)\n }\n}\n", "function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar _default = /*#__PURE__*/function () {\n function _default(options) {\n _classCallCheck(this, _default);\n\n this.defaults = {\n name: 'load',\n loadingClass: 'is-loading',\n loadedClass: 'is-loaded',\n readyClass: 'is-ready',\n transitionsPrefix: 'is-',\n transitionsHistory: true,\n enterDelay: 0,\n exitDelay: 0,\n loadedDelay: 0,\n isLoaded: false,\n isEntered: false,\n isUrl: false,\n transitionContainer: null,\n popstateIgnore: false\n };\n Object.assign(this, this.defaults, options);\n this.options = options;\n this.namespace = 'modular';\n this.html = document.documentElement;\n this.href = window.location.href;\n this.container = 'data-' + this.name + '-container';\n this.subContainer = false;\n this.prevTransition = null;\n this.loadAttributes = ['src', 'srcset', 'style', 'href'];\n this.isInserted = false;\n this.isLoading = false;\n this.enterTimeout = false;\n this.controller = new AbortController();\n this.classContainer = this.html;\n this.isChrome = navigator.userAgent.indexOf(\"Chrome\") != -1 ? true : false;\n this.init();\n }\n\n _createClass(_default, [{\n key: \"init\",\n value: function init() {\n var _this = this;\n\n window.addEventListener('popstate', function (e) {\n return _this.checkState(e);\n }, false);\n this.html.addEventListener('click', function (e) {\n return _this.checkClick(e);\n }, false);\n this.loadEls(document);\n }\n }, {\n key: \"checkClick\",\n value: function checkClick(e) {\n if (!e.ctrlKey && !e.metaKey) {\n var target = e.target;\n\n while (target && target !== document) {\n if (target.matches('a') && target.getAttribute('download') == null) {\n var href = target.getAttribute('href');\n\n if (!href.startsWith('#') && !href.startsWith('mailto:') && !href.startsWith('tel:')) {\n e.preventDefault();\n this.reset();\n this.getClickOptions(target);\n }\n\n break;\n }\n\n target = target.parentNode;\n }\n }\n }\n }, {\n key: \"checkState\",\n value: function checkState() {\n if (typeof this.popstateIgnore === 'string' && window.location.href.indexOf(this.popstateIgnore) > -1) {\n return;\n }\n\n this.reset();\n this.getStateOptions();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.isLoading) {\n this.controller.abort();\n this.isLoading = false;\n this.controller = new AbortController();\n }\n\n window.clearTimeout(this.enterTimeout);\n\n if (this.isInserted) {\n this.removeContainer();\n }\n\n this.classContainer = this.html;\n Object.assign(this, this.defaults, this.options);\n }\n }, {\n key: \"getClickOptions\",\n value: function getClickOptions(link) {\n this.transition = link.getAttribute('data-' + this.name);\n this.isUrl = link.getAttribute('data-' + this.name + '-url');\n var href = link.getAttribute('href');\n var target = link.getAttribute('target');\n\n if (target == '_blank') {\n window.open(href, '_blank');\n return;\n }\n\n if (this.transition == 'false') {\n window.location = href;\n return;\n }\n\n this.setOptions(href, true);\n }\n }, {\n key: \"getStateOptions\",\n value: function getStateOptions() {\n if (this.transitionsHistory) {\n this.transition = history.state;\n } else {\n this.transition = false;\n }\n\n var href = window.location.href;\n this.setOptions(href);\n }\n }, {\n key: \"goTo\",\n value: function goTo(href, transition, isUrl) {\n this.reset();\n this.transition = transition;\n this.isUrl = isUrl;\n this.setOptions(href, true);\n }\n }, {\n key: \"setOptions\",\n value: function setOptions(href, push) {\n var container = '[' + this.container + ']';\n var oldContainer;\n\n if (this.transition && this.transition != 'true') {\n this.transitionContainer = '[' + this.container + '=\"' + this.transition + '\"]';\n this.loadingClass = this.transitions[this.transition].loadingClass || this.loadingClass;\n this.loadedClass = this.transitions[this.transition].loadedClass || this.loadedClass;\n this.readyClass = this.transitions[this.transition].readyClass || this.readyClass;\n this.transitionsPrefix = this.transitions[this.transition].transitionsPrefix || this.transitionsPrefix;\n this.enterDelay = this.transitions[this.transition].enterDelay || this.enterDelay;\n this.exitDelay = this.transitions[this.transition].exitDelay || this.exitDelay;\n this.loadedDelay = this.transitions[this.transition].loadedDelay || this.loadedDelay;\n oldContainer = document.querySelector(this.transitionContainer);\n }\n\n if (oldContainer) {\n container = this.transitionContainer;\n this.oldContainer = oldContainer;\n this.classContainer = this.oldContainer.parentNode;\n\n if (!this.subContainer) {\n history.replaceState(this.transition, null, this.href);\n }\n\n this.subContainer = true;\n } else {\n this.oldContainer = document.querySelector(container);\n\n if (this.subContainer) {\n history.replaceState(this.prevTransition, null, this.href);\n }\n\n this.subContainer = false;\n }\n\n this.href = href;\n this.parentContainer = this.oldContainer.parentNode;\n\n if (this.isUrl === '' || this.isUrl != null && this.isUrl != 'false' && this.isUrl != false) {\n history.pushState(this.transition, null, href);\n } else {\n this.oldContainer.classList.add('is-old');\n this.setLoading();\n this.startEnterDelay();\n this.loadHref(href, container, push);\n }\n }\n }, {\n key: \"setLoading\",\n value: function setLoading() {\n this.classContainer.classList.remove(this.loadedClass, this.readyClass);\n this.classContainer.classList.add(this.loadingClass);\n this.classContainer.classList.remove(this.transitionsPrefix + this.prevTransition);\n\n if (this.transition) {\n this.classContainer.classList.add(this.transitionsPrefix + this.transition);\n }\n\n if (!this.subContainer) {\n this.prevTransition = this.transition;\n }\n\n var loadingEvent = new Event(this.namespace + 'loading');\n window.dispatchEvent(loadingEvent);\n }\n }, {\n key: \"startEnterDelay\",\n value: function startEnterDelay() {\n var _this2 = this;\n\n this.enterTimeout = window.setTimeout(function () {\n _this2.isEntered = true;\n\n if (_this2.isLoaded) {\n _this2.transitionContainers();\n }\n }, this.enterDelay);\n }\n }, {\n key: \"loadHref\",\n value: function loadHref(href, container, push) {\n var _this3 = this;\n\n this.isLoading = true;\n var signal = this.controller.signal;\n fetch(href, {\n signal: signal\n }).then(function (response) {\n return response.text();\n }).then(function (data) {\n if (push) {\n history.pushState(_this3.transition, null, href);\n }\n\n var parser = new DOMParser();\n _this3.data = parser.parseFromString(data, 'text/html');\n _this3.newContainer = _this3.data.querySelector(container);\n\n _this3.newContainer.classList.add('is-new');\n\n _this3.parentNewContainer = _this3.newContainer.parentNode;\n\n _this3.hideContainer();\n\n _this3.parentContainer.insertBefore(_this3.newContainer, _this3.oldContainer);\n\n _this3.isInserted = true;\n\n _this3.setSvgs();\n\n _this3.isLoaded = true;\n\n if (_this3.isEntered) {\n _this3.transitionContainers();\n }\n\n _this3.loadEls(_this3.newContainer);\n\n _this3.isLoading = false;\n })[\"catch\"](function (err) {\n window.location = href;\n });\n }\n }, {\n key: \"transitionContainers\",\n value: function transitionContainers() {\n var _this4 = this;\n\n this.setAttributes();\n this.showContainer();\n this.setLoaded();\n setTimeout(function () {\n _this4.removeContainer();\n\n _this4.setReady();\n }, this.exitDelay);\n }\n }, {\n key: \"setSvgs\",\n value: function setSvgs() {\n if (this.isChrome) {\n var svgs = this.newContainer.querySelectorAll('use');\n\n if (svgs.length) {\n svgs.forEach(function (svg) {\n var xhref = svg.getAttribute('xlink:href');\n\n if (xhref) {\n svg.parentNode.innerHTML = '';\n } else {\n var href = svg.getAttribute('href');\n if (href) svg.parentNode.innerHTML = '';\n }\n });\n }\n }\n }\n }, {\n key: \"setAttributes\",\n value: function setAttributes() {\n var _this5 = this;\n\n var title = this.data.getElementsByTagName('title')[0];\n var newDesc = this.data.head.querySelector('meta[name=\"description\"]');\n var oldDesc = document.head.querySelector('meta[name=\"description\"]');\n var container;\n var newContainer;\n\n if (this.subContainer) {\n newContainer = this.parentNewContainer;\n container = document.querySelector(this.transitionContainer).parentNode;\n } else {\n newContainer = this.data.querySelector('html');\n container = document.querySelector('html');\n }\n\n var datas = Object.assign({}, newContainer.dataset);\n if (title) document.title = title.innerText;\n if (oldDesc && newDesc) oldDesc.setAttribute('content', newDesc.getAttribute('content'));\n\n if (datas) {\n Object.entries(datas).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n val = _ref2[1];\n\n container.setAttribute('data-' + _this5.toDash(key), val);\n });\n }\n }\n }, {\n key: \"toDash\",\n value: function toDash(str) {\n return str.split(/(?=[A-Z])/).join('-').toLowerCase();\n }\n }, {\n key: \"hideContainer\",\n value: function hideContainer() {\n this.newContainer.style.visibility = 'hidden';\n this.newContainer.style.height = 0;\n this.newContainer.style.overflow = 'hidden';\n }\n }, {\n key: \"showContainer\",\n value: function showContainer() {\n this.newContainer.style.visibility = '';\n this.newContainer.style.height = '';\n this.newContainer.style.overflow = '';\n }\n }, {\n key: \"loadEls\",\n value: function loadEls(container) {\n var _this6 = this;\n\n var promises = [];\n this.loadAttributes.forEach(function (attr) {\n var data = 'data-' + _this6.name + '-' + attr;\n var els = container.querySelectorAll('[' + data + ']');\n\n if (els.length) {\n els.forEach(function (el) {\n var elData = el.getAttribute(data);\n el.setAttribute(attr, elData);\n\n if (attr == 'src' || attr == 'srcset') {\n var promise = new Promise(function (resolve) {\n el.onload = function () {\n return resolve(el);\n };\n });\n promises.push(promise);\n }\n });\n }\n });\n Promise.all(promises).then(function (val) {\n var imagesEvent = new Event(_this6.namespace + 'images');\n window.dispatchEvent(imagesEvent);\n });\n }\n }, {\n key: \"setLoaded\",\n value: function setLoaded() {\n var _this7 = this;\n\n this.classContainer.classList.remove(this.loadingClass);\n setTimeout(function () {\n _this7.classContainer.classList.add(_this7.loadedClass);\n }, this.loadedDelay);\n var loadedEvent = new Event(this.namespace + 'loaded');\n window.dispatchEvent(loadedEvent);\n }\n }, {\n key: \"removeContainer\",\n value: function removeContainer() {\n this.parentContainer.removeChild(this.oldContainer);\n this.newContainer.classList.remove('is-new');\n this.isInserted = false;\n }\n }, {\n key: \"setReady\",\n value: function setReady() {\n this.classContainer.classList.add(this.readyClass);\n var readyEvent = new Event(this.namespace + 'ready');\n window.dispatchEvent(readyEvent);\n }\n }, {\n key: \"on\",\n value: function on(event, func) {\n var _this8 = this;\n\n window.addEventListener(this.namespace + event, function () {\n switch (event) {\n case 'loading':\n return func(_this8.transition, _this8.oldContainer);\n\n case 'loaded':\n return func(_this8.transition, _this8.oldContainer, _this8.newContainer);\n\n case 'ready':\n return func(_this8.transition, _this8.newContainer);\n\n default:\n return func();\n }\n }, false);\n }\n }]);\n\n return _default;\n}();\n\nexport default _default;\n", "import { module } from 'modujs';\nimport modularLoad from 'modularload';\n\nexport default class extends module {\n constructor(m) {\n super(m);\n }\n\n init() {\n const load = new modularLoad({\n enterDelay: 0,\n transitions: {\n customTransition: {}\n }\n });\n\n load.on('loaded', (transition, oldContainer, newContainer) => {\n this.call('destroy', oldContainer, 'app');\n this.call('update', newContainer, 'app');\n });\n }\n}\n", "import { CSS_CLASS } from '../config'\n\n/**\n * Get an image meta data\n *\n * @param {HTMLImageElement} $img - The image element.\n * @return {object} The given image meta data\n */\n\nconst getImageMetadata = $img => ({\n url: $img.src,\n width: $img.naturalWidth,\n height: $img.naturalHeight,\n ratio: $img.naturalWidth / $img.naturalHeight,\n})\n\n\n/**\n * Load the given image.\n *\n * @param {string} url - The URI to lazy load into $el.\n * @param {object} options - An object of options\n * @return {void}\n */\n\nconst loadImage = (url, options = {}) => {\n return new Promise((resolve, reject) => {\n const $img = new Image()\n\n if (options.crossOrigin) {\n $img.crossOrigin = options.crossOrigin\n }\n\n const loadCallback = () => {\n resolve({\n element: $img,\n ...getImageMetadata($img),\n })\n }\n\n if($img.decode) {\n $img.src = url\n $img.decode().then(loadCallback).catch(e => {\n reject(e)\n })\n } else {\n $img.onload = loadCallback\n $img.onerror = (e) => {\n reject(e)\n }\n $img.src = url\n }\n })\n}\n\n\n/**\n * Lazy load the given image.\n *\n * @param {HTMLImageElement} $el - The image element.\n * @param {?string} url - The URI to lazy load into $el.\n * If falsey, the value of the `data-src` attribute on $el will be used as the URI.\n * @param {?function} callback - A function to call when the image is loaded.\n * @return {void}\n */\n\nconst LAZY_LOADED_IMAGES = []\nconst lazyLoadImage = async ($el, url, callback) => {\n let src = url ? url : $el.dataset.src\n\n let loadedImage = LAZY_LOADED_IMAGES.find(image => image.url === src)\n\n if (!loadedImage) {\n loadedImage = await loadImage(src)\n\n if (!loadedImage.url) {\n return\n }\n\n LAZY_LOADED_IMAGES.push(loadedImage)\n }\n\n if($el.src === src) {\n return\n }\n\n if ($el.tagName === 'IMG') {\n $el.src = loadedImage.url\n } else {\n $el.style.backgroundImage = `url(${loadedImage.url})`\n }\n\n requestAnimationFrame(() => {\n let lazyParent = $el.closest(`.${CSS_CLASS.LAZY_CONTAINER}`)\n\n if(lazyParent) {\n lazyParent.classList.add(CSS_CLASS.LAZY_LOADED)\n lazyParent.style.backgroundImage = ''\n }\n\n $el.classList.add(CSS_CLASS.LAZY_LOADED)\n\n callback?.()\n })\n}\n\n\nexport {\n getImageMetadata,\n loadImage,\n lazyLoadImage\n}\n", "// Clamp a value between a minimum and maximum value\nexport function clamp(min, input, max) {\n return Math.max(min, Math.min(input, max))\n}\n\n// Truncate a floating-point number to a specified number of decimal places\nexport function truncate(value, decimals = 0) {\n return parseFloat(value.toFixed(decimals))\n}\n\n// Linearly interpolate between two values using an amount (0 <= amt <= 1)\nexport function lerp(start, end, amt) {\n return (1 - amt) * start + amt * end\n}\n\n// Calculate the modulo of the dividend and divisor while keeping the result within the same sign as the divisor\nexport function clampedModulo(dividend, divisor) {\n let remainder = dividend % divisor\n\n // If the remainder and divisor have different signs, adjust the remainder\n if ((divisor > 0 && remainder < 0) || (divisor < 0 && remainder > 0)) {\n remainder += divisor\n }\n\n return remainder\n}\n", "import { clamp, lerp } from './maths'\n\n// Animate class to handle value animations with lerping or easing\nexport class Animate {\n // Advance the animation by the given delta time\n advance(deltaTime) {\n if (!this.isRunning) return\n\n let completed = false\n\n if (this.lerp) {\n this.value = lerp(this.value, this.to, this.lerp)\n if (Math.round(this.value) === this.to) {\n this.value = this.to\n completed = true\n }\n } else {\n this.currentTime += deltaTime\n const linearProgress = clamp(0, this.currentTime / this.duration, 1)\n\n completed = linearProgress >= 1\n const easedProgress = completed ? 1 : this.easing(linearProgress)\n this.value = this.from + (this.to - this.from) * easedProgress\n }\n\n // Call the onUpdate callback with the current value and completed status\n this.onUpdate?.(this.value, { completed })\n\n if (completed) {\n this.stop()\n }\n }\n\n // Stop the animation\n stop() {\n this.isRunning = false\n }\n\n // Set up the animation from a starting value to an ending value\n // with optional parameters for lerping, duration, easing, and onUpdate callback\n fromTo(from, to, { lerp = 0.1, duration = 1, easing = (t) => t, onUpdate }) {\n this.from = this.value = from\n this.to = to\n this.lerp = lerp\n this.duration = duration\n this.easing = easing\n this.currentTime = 0\n this.isRunning = true\n\n this.onUpdate = onUpdate\n }\n}\n", "export function debounce(callback, delay) {\n let timer\n return function () {\n let args = arguments\n let context = this\n clearTimeout(timer)\n timer = setTimeout(function () {\n callback.apply(context, args)\n }, delay)\n }\n}\n", "import { debounce } from './debounce'\n\nexport class Dimensions {\n constructor(wrapper, content) {\n this.wrapper = wrapper\n this.content = content\n\n if (this.wrapper === window) {\n window.addEventListener('resize', this.onWindowResize, false)\n this.onWindowResize()\n } else {\n this.wrapperResizeObserver = new ResizeObserver(\n debounce(this.onWrapperResize, 100)\n )\n this.wrapperResizeObserver.observe(this.wrapper)\n this.onWrapperResize()\n }\n\n this.contentResizeObserver = new ResizeObserver(\n debounce(this.onContentResize, 100)\n )\n this.contentResizeObserver.observe(this.content)\n this.onContentResize()\n }\n\n onWindowResize = () => {\n this.width = window.innerWidth\n this.height = window.innerHeight\n }\n\n destroy() {\n window.removeEventListener('resize', this.onWindowResize, false)\n\n this.wrapperResizeObserver?.disconnect()\n this.contentResizeObserver?.disconnect()\n }\n\n onWrapperResize = () => {\n this.width = this.wrapper.clientWidth\n this.height = this.wrapper.clientHeight\n }\n\n onContentResize = () => {\n const element =\n this.wrapper === window ? document.documentElement : this.wrapper\n this.scrollHeight = element.scrollHeight\n this.scrollWidth = element.scrollWidth\n }\n\n get limit() {\n return {\n x: this.scrollWidth - this.width,\n y: this.scrollHeight - this.height,\n }\n }\n}\n", "export let createNanoEvents = () => ({\n events: {},\n\n // Emit an event with the provided arguments\n emit(event, ...args) {\n let callbacks = this.events[event] || []\n for (let i = 0, length = callbacks.length; i < length; i++) {\n callbacks[i](...args)\n }\n },\n\n // Register a callback for the specified event\n on(event, cb) {\n // Add the callback to the event's callback list, or create a new list with the callback\n this.events[event]?.push(cb) || (this.events[event] = [cb])\n\n // Return an unsubscribe function\n return () => {\n this.events[event] = this.events[event]?.filter((i) => cb !== i)\n }\n },\n})\n", "import { clamp } from './maths'\nimport { createNanoEvents } from './nanoevents'\n\nexport class VirtualScroll {\n constructor(\n element,\n { wheelMultiplier = 1, touchMultiplier = 2, normalizeWheel = false }\n ) {\n this.element = element\n this.wheelMultiplier = wheelMultiplier\n this.touchMultiplier = touchMultiplier\n this.normalizeWheel = normalizeWheel\n\n this.touchStart = {\n x: null,\n y: null,\n }\n\n this.emitter = createNanoEvents()\n\n this.element.addEventListener('wheel', this.onWheel, { passive: false })\n this.element.addEventListener('touchstart', this.onTouchStart, {\n passive: false,\n })\n this.element.addEventListener('touchmove', this.onTouchMove, {\n passive: false,\n })\n this.element.addEventListener('touchend', this.onTouchEnd, {\n passive: false,\n })\n }\n\n // Add an event listener for the given event and callback\n on(event, callback) {\n return this.emitter.on(event, callback)\n }\n\n // Remove all event listeners and clean up\n destroy() {\n this.emitter.events = {}\n\n this.element.removeEventListener('wheel', this.onWheel, {\n passive: false,\n })\n this.element.removeEventListener('touchstart', this.onTouchStart, {\n passive: false,\n })\n this.element.removeEventListener('touchmove', this.onTouchMove, {\n passive: false,\n })\n this.element.removeEventListener('touchend', this.onTouchEnd, {\n passive: false,\n })\n }\n\n // Event handler for 'touchstart' event\n onTouchStart = (event) => {\n const { clientX, clientY } = event.targetTouches\n ? event.targetTouches[0]\n : event\n\n this.touchStart.x = clientX\n this.touchStart.y = clientY\n\n this.lastDelta = {\n x: 0,\n y: 0,\n }\n }\n\n // Event handler for 'touchmove' event\n onTouchMove = (event) => {\n const { clientX, clientY } = event.targetTouches\n ? event.targetTouches[0]\n : event\n\n const deltaX = -(clientX - this.touchStart.x) * this.touchMultiplier\n const deltaY = -(clientY - this.touchStart.y) * this.touchMultiplier\n\n this.touchStart.x = clientX\n this.touchStart.y = clientY\n\n this.lastDelta = {\n x: deltaX,\n y: deltaY,\n }\n\n this.emitter.emit('scroll', {\n type: 'touch',\n deltaX,\n deltaY,\n event,\n })\n }\n\n onTouchEnd = (event) => {\n this.emitter.emit('scroll', {\n type: 'touch',\n inertia: true,\n deltaX: this.lastDelta.x,\n deltaY: this.lastDelta.y,\n event,\n })\n }\n\n // Event handler for 'wheel' event\n onWheel = (event) => {\n let { deltaX, deltaY } = event\n\n if (this.normalizeWheel) {\n deltaX = clamp(-100, deltaX, 100)\n deltaY = clamp(-100, deltaY, 100)\n }\n\n deltaX *= this.wheelMultiplier\n deltaY *= this.wheelMultiplier\n\n this.emitter.emit('scroll', { type: 'wheel', deltaX, deltaY, event })\n }\n}\n", "import { version } from '../package.json'\nimport { Animate } from './animate'\nimport { Dimensions } from './dimensions'\nimport { clamp, clampedModulo } from './maths'\nimport { createNanoEvents } from './nanoevents'\nimport { VirtualScroll } from './virtual-scroll'\n\n// Technical explaination\n// - listen to 'wheel' events\n// - prevent 'wheel' event to prevent scroll\n// - normalize wheel delta\n// - add delta to targetScroll\n// - animate scroll to targetScroll (smooth context)\n// - if animation is not running, listen to 'scroll' events (native context)\n\nexport default class Lenis {\n // isScrolling = true when scroll is animating\n // isStopped = true if user should not be able to scroll - enable/disable programatically\n // isSmooth = true if scroll should be animated\n // isLocked = same as isStopped but enabled/disabled when scroll reaches target\n\n /**\n * @typedef {(t: number) => number} EasingFunction\n * @typedef {'vertical' | 'horizontal'} Orientation\n * @typedef {'vertical' | 'horizontal' | 'both'} GestureOrientation\n *\n * @typedef LenisOptions\n * @property {Orientation} [direction]\n * @property {GestureOrientation} [gestureDirection]\n * @property {number} [mouseMultiplier]\n * @property {boolean} [smooth]\n *\n * @property {Window | HTMLElement} [wrapper]\n * @property {HTMLElement} [content]\n * @property {Window | HTMLElement} [wheelEventsTarget]\n * @property {boolean} [smoothWheel]\n * @property {boolean} [smoothTouch]\n * @property {boolean} [syncTouch]\n * @property {number} [syncTouchLerp]\n * @property {number} [touchInertiaMultiplier]\n * @property {number} [duration]\n * @property {EasingFunction} [easing]\n * @property {number} [lerp]\n * @property {boolean} [infinite]\n * @property {Orientation} [orientation]\n * @property {GestureOrientation} [gestureOrientation]\n * @property {number} [touchMultiplier]\n * @property {number} [wheelMultiplier]\n * @property {boolean} [normalizeWheel]\n *\n * @param {LenisOptions}\n */\n constructor({\n //--legacy options--//\n direction,\n gestureDirection,\n mouseMultiplier,\n smooth,\n //--legacy options--//\n wrapper = window,\n content = document.documentElement,\n wheelEventsTarget = wrapper,\n smoothWheel = smooth ?? true,\n smoothTouch = false,\n syncTouch = false,\n syncTouchLerp = 0.1,\n touchInertiaMultiplier = 35,\n duration, // in seconds\n easing = (t) => Math.min(1, 1.001 - Math.pow(2, -10 * t)),\n lerp = duration ? null : 0.1,\n infinite = false,\n orientation = direction ?? 'vertical', // vertical, horizontal\n gestureOrientation = gestureDirection ?? 'vertical', // vertical, horizontal, both\n touchMultiplier = 1,\n wheelMultiplier = mouseMultiplier ?? 1,\n normalizeWheel = false,\n } = {}) {\n // warn about legacy options\n if (direction) {\n console.warn(\n 'Lenis: `direction` option is deprecated, use `orientation` instead'\n )\n }\n if (gestureDirection) {\n console.warn(\n 'Lenis: `gestureDirection` option is deprecated, use `gestureOrientation` instead'\n )\n }\n if (mouseMultiplier) {\n console.warn(\n 'Lenis: `mouseMultiplier` option is deprecated, use `wheelMultiplier` instead'\n )\n }\n if (smooth) {\n console.warn(\n 'Lenis: `smooth` option is deprecated, use `smoothWheel` instead'\n )\n }\n\n window.lenisVersion = version\n\n // if wrapper is html or body, fallback to window\n if (wrapper === document.documentElement || wrapper === document.body) {\n wrapper = window\n }\n\n this.options = {\n wrapper,\n content,\n wheelEventsTarget,\n smoothWheel,\n smoothTouch,\n syncTouch,\n syncTouchLerp,\n touchInertiaMultiplier,\n duration,\n easing,\n lerp,\n infinite,\n gestureOrientation,\n orientation,\n touchMultiplier,\n wheelMultiplier,\n normalizeWheel,\n }\n\n this.dimensions = new Dimensions(wrapper, content)\n this.rootElement.classList.add('lenis')\n\n this.velocity = 0\n this.isStopped = false\n this.isSmooth = smoothWheel || smoothTouch\n this.isScrolling = false\n this.targetScroll = this.animatedScroll = this.actualScroll\n this.animate = new Animate()\n this.emitter = createNanoEvents()\n\n this.options.wrapper.addEventListener('scroll', this.onScroll, {\n passive: false,\n })\n\n this.virtualScroll = new VirtualScroll(wheelEventsTarget, {\n touchMultiplier,\n wheelMultiplier,\n normalizeWheel,\n })\n this.virtualScroll.on('scroll', this.onVirtualScroll)\n }\n\n destroy() {\n this.emitter.events = {}\n\n this.options.wrapper.removeEventListener('scroll', this.onScroll, {\n passive: false,\n })\n\n this.virtualScroll.destroy()\n }\n\n on(event, callback) {\n return this.emitter.on(event, callback)\n }\n\n off(event, callback) {\n this.emitter.events[event] = this.emitter.events[event]?.filter(\n (i) => callback !== i\n )\n }\n\n setScroll(scroll) {\n // apply scroll value immediately\n if (this.isHorizontal) {\n this.rootElement.scrollLeft = scroll\n } else {\n this.rootElement.scrollTop = scroll\n }\n }\n\n onVirtualScroll = ({ type, inertia, deltaX, deltaY, event }) => {\n // keep zoom feature\n if (event.ctrlKey) return\n\n const isTouch = type === 'touch'\n const isWheel = type === 'wheel'\n\n if (\n (this.options.gestureOrientation === 'vertical' && deltaY === 0) || // trackpad previous/next page gesture\n (this.options.gestureOrientation === 'horizontal' && deltaX === 0) ||\n (isTouch &&\n this.options.gestureOrientation === 'vertical' &&\n this.scroll === 0 &&\n !this.options.infinite &&\n deltaY <= 0) // touch pull to refresh\n )\n return\n\n // catch if scrolling on nested scroll elements\n if (\n !!event\n .composedPath()\n .find((node) => node?.hasAttribute?.('data-lenis-prevent'))\n )\n return\n\n if (this.isStopped || this.isLocked) {\n event.preventDefault()\n return\n }\n\n this.isSmooth =\n ((this.options.smoothTouch || this.options.syncTouch) && isTouch) ||\n (this.options.smoothWheel && isWheel)\n\n if (!this.isSmooth) {\n this.isScrolling = false\n this.animate.stop()\n return\n }\n\n event.preventDefault()\n\n let delta = deltaY\n if (this.options.gestureOrientation === 'both') {\n delta = Math.abs(deltaY) > Math.abs(deltaX) ? deltaY : deltaX\n } else if (this.options.gestureOrientation === 'horizontal') {\n delta = deltaX\n }\n\n const syncTouch = isTouch && this.options.syncTouch\n const hasTouchInertia = isTouch && inertia && Math.abs(delta) > 1\n if (hasTouchInertia) {\n delta = this.velocity * this.options.touchInertiaMultiplier\n }\n\n this.scrollTo(this.targetScroll + delta, {\n programmatic: false,\n ...(syncTouch && {\n lerp: hasTouchInertia ? this.syncTouchLerp : 0.4, // should be 1 but had to leave 0.4 for iOS.....\n }),\n })\n }\n\n emit() {\n this.emitter.emit('scroll', this)\n }\n\n onScroll = () => {\n if (!this.isScrolling) {\n const lastScroll = this.animatedScroll\n this.animatedScroll = this.targetScroll = this.actualScroll\n this.velocity = 0\n this.direction = Math.sign(this.animatedScroll - lastScroll)\n this.emit()\n }\n }\n\n reset() {\n this.isLocked = false\n this.isScrolling = false\n this.velocity = 0\n this.animate.stop()\n }\n\n start() {\n this.isStopped = false\n\n this.reset()\n }\n\n stop() {\n this.isStopped = true\n this.animate.stop()\n\n this.reset()\n }\n\n raf(time) {\n const deltaTime = time - (this.time || time)\n this.time = time\n\n this.animate.advance(deltaTime * 0.001)\n }\n\n scrollTo(\n target,\n {\n offset = 0,\n immediate = false,\n lock = false,\n duration = this.options.duration,\n easing = this.options.easing,\n lerp = !duration && this.options.lerp,\n onComplete = null,\n force = false, // scroll even if stopped\n programmatic = true, // called from outside of the class\n } = {}\n ) {\n if (this.isStopped && !force) return\n\n // keywords\n if (['top', 'left', 'start'].includes(target)) {\n target = 0\n } else if (['bottom', 'right', 'end'].includes(target)) {\n target = this.limit\n } else {\n let node\n\n if (typeof target === 'string') {\n // CSS selector\n node = document.querySelector(target)\n } else if (target?.nodeType) {\n // Node element\n node = target\n }\n\n if (node) {\n if (this.options.wrapper !== window) {\n // nested scroll offset correction\n const wrapperRect = this.options.wrapper.getBoundingClientRect()\n offset -= this.isHorizontal ? wrapperRect.left : wrapperRect.top\n }\n\n const rect = node.getBoundingClientRect()\n\n target =\n (this.isHorizontal ? rect.left : rect.top) + this.animatedScroll\n }\n }\n\n if (typeof target !== 'number') return\n\n target += offset\n target = Math.round(target)\n\n if (this.options.infinite) {\n if (programmatic) {\n this.targetScroll = this.animatedScroll = this.scroll\n }\n } else {\n target = clamp(0, target, this.limit)\n }\n\n if (immediate) {\n this.animatedScroll = this.targetScroll = target\n this.setScroll(this.scroll)\n this.reset()\n this.emit()\n onComplete?.()\n return\n }\n\n if (!programmatic) {\n if (target === this.targetScroll) return\n\n this.targetScroll = target\n }\n\n this.animate.fromTo(this.animatedScroll, target, {\n duration,\n easing,\n lerp,\n onUpdate: (value, { completed }) => {\n // started\n if (lock) this.isLocked = true\n this.isScrolling = true\n\n // updated\n this.velocity = value - this.animatedScroll\n this.direction = Math.sign(this.velocity)\n\n this.animatedScroll = value\n this.setScroll(this.scroll)\n\n if (programmatic) {\n // wheel during programmatic should stop it\n this.targetScroll = value\n }\n\n // completed\n if (completed) {\n if (lock) this.isLocked = false\n requestAnimationFrame(() => {\n //avoid double scroll event\n this.isScrolling = false\n })\n this.velocity = 0\n onComplete?.()\n }\n\n this.emit()\n },\n })\n }\n\n get rootElement() {\n return this.options.wrapper === window\n ? this.options.content\n : this.options.wrapper\n }\n\n get limit() {\n return this.isHorizontal ? this.dimensions.limit.x : this.dimensions.limit.y\n }\n\n get isHorizontal() {\n return this.options.orientation === 'horizontal'\n }\n\n get actualScroll() {\n // value browser takes into account\n return this.isHorizontal\n ? this.rootElement.scrollLeft\n : this.rootElement.scrollTop\n }\n\n get scroll() {\n return this.options.infinite\n ? clampedModulo(this.animatedScroll, this.limit)\n : this.animatedScroll\n }\n\n get progress() {\n // avoid progress to be NaN\n return this.limit === 0 ? 1 : this.scroll / this.limit\n }\n\n get isSmooth() {\n return this.__isSmooth\n }\n\n set isSmooth(value) {\n if (this.__isSmooth !== value) {\n this.rootElement.classList.toggle('lenis-smooth', value)\n this.__isSmooth = value\n }\n }\n\n get isScrolling() {\n return this.__isScrolling\n }\n\n set isScrolling(value) {\n if (this.__isScrolling !== value) {\n this.rootElement.classList.toggle('lenis-scrolling', value)\n this.__isScrolling = value\n }\n }\n\n get isStopped() {\n return this.__isStopped\n }\n\n set isStopped(value) {\n if (this.__isStopped !== value) {\n this.rootElement.classList.toggle('lenis-stopped', value)\n this.__isStopped = value\n }\n }\n}\n", "/**\n * Intersection Observer\n *\n * Detecting visibility of an element in the viewport.\n *\n * Features functions to:\n *\n * - Trigger inview/outOfView callbacks\n * - If the element has a requestAnimationFrame dependency, set interactivy status for the ScrollElement Class\n *\n * References:\n *\n * - {@link https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API}\n */\n\nimport { IIOOptions } from '../types';\nimport ScrollElement from './ScrollElement';\n\nexport default class IO {\n public scrollElements: ScrollElement[];\n private rootMargin: string;\n private IORaf: boolean;\n private observer!: IntersectionObserver;\n\n constructor({\n scrollElements,\n rootMargin = '-1px -1px -1px -1px',\n IORaf,\n }: IIOOptions) {\n // Parameters\n this.scrollElements = scrollElements;\n this.rootMargin = rootMargin;\n this.IORaf = IORaf;\n\n // Init\n this._init();\n }\n\n /**\n * Lifecyle - Initialize Intersection Observer.\n *\n * @private\n */\n private _init() {\n // Options\n const observerOptions = {\n rootMargin: this.rootMargin,\n };\n\n // Callback\n const onIntersect = (entries: IntersectionObserverEntry[]) => {\n entries.forEach((entry) => {\n const $targetItem: ScrollElement | undefined =\n this.scrollElements.find(\n (item) => item.$el === entry.target\n );\n\n if (entry.isIntersecting) {\n $targetItem && ($targetItem.isAlreadyIntersected = true);\n this._setInview(entry);\n } else if ($targetItem && $targetItem.isAlreadyIntersected) {\n this._setOutOfView(entry);\n }\n });\n };\n\n // Instance\n this.observer = new IntersectionObserver(onIntersect, observerOptions);\n\n // Observe each default elements\n for (const scrollElement of this.scrollElements) {\n const $scrollElement = scrollElement.$el;\n this.observe($scrollElement);\n }\n }\n\n /**\n * Lifecyle - Destroy Intersection Observer.\n */\n public destroy() {\n this.observer.disconnect();\n }\n\n /**\n * Subscribe element to the Intersection Observer.\n *\n * @param {HTMLElement} $scrollElement - DOM Element to observe.\n */\n public observe($scrollElement: HTMLElement) {\n if (!$scrollElement) {\n return;\n }\n\n this.observer.observe($scrollElement);\n }\n\n /**\n * Unsubscribe element to the Intersection Observer.\n *\n * @param {HTMLElement} $scrollElement - DOM Element to unobserve.\n */\n public unobserve($scrollElement: HTMLElement) {\n if (!$scrollElement) {\n return;\n }\n\n this.observer.unobserve($scrollElement);\n }\n\n /**\n * Find ScrollElementReference instance and trigger inview callbacks.\n *\n * @private\n *\n * @param {IntersectionObserverEntry} entry - DOM Element to observe.\n */\n private _setInview(entry: IntersectionObserverEntry) {\n const scrollElement = this.scrollElements.find(\n (scrollElement) => scrollElement.$el === entry.target\n );\n\n this.IORaf && scrollElement?.setInteractivityOn();\n !this.IORaf && scrollElement?.setInview();\n }\n\n /**\n * Find ScrollElementReference instance and trigger out of view callbacks.\n *\n * @private\n *\n * @param {IntersectionObserverEntry} entry - DOM Element to observe.\n */\n private _setOutOfView(entry: IntersectionObserverEntry) {\n const scrollElement = this.scrollElements.find(\n (scrollElement) => scrollElement.$el === entry.target\n );\n\n this.IORaf && scrollElement?.setInteractivityOff();\n !this.IORaf && scrollElement?.setOutOfView();\n\n // Unobserve if element doesn't have repeat attribute\n if (!scrollElement?.attributes.scrollRepeat && !this.IORaf) {\n this.unobserve(entry.target as HTMLElement);\n }\n }\n}\n", "// https://greensock.com/docs/v3/GSAP/gsap.utils\n\n/**\n * Clamp a value to fit within a specific range (ex: clamp(0, 100, -12) --> 0).\n *\n * @param {number} min - Minimum value expected.\n * @param {number} max - Maximum value expected.\n * @param {number} value - Current value.\n *\n * @returns {number} - Clamped value.\n */\nexport function clamp(min: number, max: number, value: number): number {\n return value < min ? min : value > max ? max : value;\n}\n\n/**\n * Map one range to another (ex: mapRange(-10, 10, 0, 100, 5) --> 75).\n *\n * @param {number} inMin - Current minimum value.\n * @param {number} inMax - Current maximum value.\n * @param {number} outMin - Maximum value expected.\n * @param {number} outMax - Maximum value expected.\n * @param {number} value - Current value.\n *\n * @returns {number} - New value that should be between minimum value expected and maximum value.\n */\nexport function mapRange(\n inMin: number,\n inMax: number,\n outMin: number,\n outMax: number,\n value: number\n): number {\n const inRange = inMax - inMin;\n const outRange = outMax - outMin;\n return outMin + (((value - inMin) / inRange) * outRange || 0);\n}\n\n/**\n * Map a number within a range to a progress between 0 to 1 (ex: normalize(100, 200, 150) --> 0.5).\n *\n * @param {number} min - Current minimum value.\n * @param {number} max - Current maximum value.\n * @param {number} value - Current value.\n *\n * @returns {number} - New value that should be between 0 and 1.\n */\nexport function normalize(min: number, max: number, value: number): number {\n return mapRange(min, max, 0, 1, value);\n}\n\n/**\n * Get closest number from an array.\n *\n * @param {number[]} array - Numbers array.\n * @param {number} target - Reference value.\n *\n * @returns {number} - Closest number.\n */\nexport function closestNumber(array: number[], target: number): number {\n return array.reduce((prev, curr) => {\n return Math.abs(curr - target) < Math.abs(prev - target) ? curr : prev;\n });\n}\n", "/**\n * Scroll Element\n *\n * Give tools to compute element progress in the viewport and triggers callbacks to animate it.\n *\n * Features functions to:\n *\n * - scrollClass - Add a custom class when the element is intersected by the offset\n * - scrollOffset - Determine offsets to intersect the element\n * - scrollPosition - Determine the element positions to consider an element as intersected.\n * - scrollModuleProgress - Send scroll progress to modular module that have a specific method (PROGRESS_MODULAR_METHOD)\n * - scrollCssProgress - Add a specific css variable (PROGRESS_CSS_VAR) that store the scroll progress\n * - scrollEventProgress - Send scroll progress to custom event listeners.\n * - scrollSpeed - Add a scroll multiplicator to create a parallax effect\n * - scrollRepeat - Repeat the option to trigger animation each time the element is intersected\n * - scrollCall - Call a custom event or a modular callback when the element is intersected\n */\n\nimport {\n IModular,\n IScrollElementOptions,\n IScrollElementAttributes,\n IScrollElementIntersection,\n IScrollElementMetrics,\n IProgressModularModules,\n IScrollElementCallbacksValues,\n scrollCallWay,\n scrollCallFrom,\n scrollOrientation,\n} from '../types';\nimport { clamp, closestNumber, normalize, mapRange } from '../utils/maths';\n\n/** Constants */\nconst INVIEW_CLASS = 'is-inview';\nconst PROGRESS_CSS_VAR = '--progress';\nconst PROGRESS_MODULAR_METHOD = 'onScrollProgress';\n\nexport default class ScrollElement {\n public $el: HTMLElement;\n public id: number;\n public needRaf: boolean;\n public attributes: IScrollElementAttributes;\n public scrollOrientation: scrollOrientation;\n public isAlreadyIntersected: boolean;\n\n private intersection: IScrollElementIntersection;\n private metrics: IScrollElementMetrics;\n private currentScroll: number;\n private translateValue: number;\n private progress: number;\n private lastProgress: number | null;\n private modularInstance?: IModular;\n private progressModularModules: IProgressModularModules[];\n private isInview: boolean;\n private isInteractive: boolean;\n private isInFold: boolean;\n private isFirstResize: boolean;\n\n private subscribeElementUpdateFn: (scrollElement: ScrollElement) => void;\n private unsubscribeElementUpdateFn: (scrollElement: ScrollElement) => void;\n\n constructor({\n $el,\n id,\n modularInstance,\n subscribeElementUpdateFn,\n unsubscribeElementUpdateFn,\n needRaf,\n scrollOrientation,\n }: IScrollElementOptions) {\n // Scroll DOM element\n this.$el = $el;\n // Unique ID\n this.id = id;\n // RAF option\n this.needRaf = needRaf;\n // Scroll Direction\n this.scrollOrientation = scrollOrientation;\n // Modular.js\n this.modularInstance = modularInstance;\n // Parent's callbacks\n this.subscribeElementUpdateFn = subscribeElementUpdateFn;\n this.unsubscribeElementUpdateFn = unsubscribeElementUpdateFn;\n\n // Attributes\n this.attributes = {\n scrollClass: this.$el.dataset['scrollClass'] ?? INVIEW_CLASS,\n scrollOffset: this.$el.dataset['scrollOffset'] ?? '0,0',\n scrollPosition: this.$el.dataset['scrollPosition'] ?? 'start,end',\n scrollModuleProgress:\n this.$el.dataset['scrollModuleProgress'] != null,\n scrollCssProgress: this.$el.dataset['scrollCssProgress'] != null,\n scrollEventProgress:\n this.$el.dataset['scrollEventProgress'] ?? null,\n scrollSpeed:\n this.$el.dataset['scrollSpeed'] != null\n ? parseFloat(this.$el.dataset['scrollSpeed'])\n : null,\n scrollRepeat: this.$el.dataset['scrollRepeat'] != null,\n scrollCall: this.$el.dataset['scrollCall'] ?? null,\n scrollCallSelf: this.$el.dataset['scrollCallSelf'] != null,\n scrollIgnoreFold: this.$el.dataset['scrollIgnoreFold'] != null,\n scrollEnableTouchSpeed:\n this.$el.dataset['scrollEnableTouchSpeed'] != null,\n };\n\n // Limits\n this.intersection = {\n start: 0,\n end: 0,\n };\n\n // Metrics\n this.metrics = {\n offsetStart: 0,\n offsetEnd: 0,\n bcr: {} as DOMRect,\n };\n\n // Scroll Values\n this.currentScroll =\n this.scrollOrientation === 'vertical'\n ? window.scrollY\n : window.scrollX;\n\n // Parallax\n this.translateValue = 0;\n\n // Progress\n this.progress = 0;\n this.lastProgress = null;\n this.progressModularModules = [];\n\n // Inview\n this.isInview = false;\n this.isInteractive = false;\n this.isAlreadyIntersected = false;\n this.isInFold = false;\n this.isFirstResize = true;\n\n // Init\n this._init();\n }\n\n /**\n * Lifecyle - Initialize progress tracking.\n *\n * @private\n */\n private _init() {\n if (!this.needRaf) {\n return;\n }\n\n // Prepare modules progress\n if (this.modularInstance && this.attributes.scrollModuleProgress) {\n this._getProgressModularModules();\n }\n\n // First resize to compute all values\n this._resize();\n }\n\n /**\n * Callback - Resize callback\n */\n public onResize({ currentScroll }: IScrollElementCallbacksValues) {\n this.currentScroll = currentScroll;\n this._resize();\n }\n\n /**\n * Callback - RAF callback\n */\n public onRender({ currentScroll, smooth }: IScrollElementCallbacksValues) {\n const wSize =\n this.scrollOrientation === 'vertical'\n ? window.innerHeight\n : window.innerWidth;\n this.currentScroll = currentScroll;\n this._computeProgress();\n\n // Parallax\n if (\n this.attributes.scrollSpeed &&\n !isNaN(this.attributes.scrollSpeed)\n ) {\n // if touch detected or smooth disabled\n if (!this.attributes.scrollEnableTouchSpeed && !smooth) {\n if (this.translateValue) {\n this.$el.style.transform = `translate3d(0, 0, 0)`;\n }\n this.translateValue = 0;\n\n // if mousewheel or smooth enabled\n } else {\n // Check fold condition\n if (this.isInFold) {\n const progress = Math.max(0, this.progress);\n this.translateValue =\n progress * wSize * this.attributes.scrollSpeed * -1;\n } else {\n const progress = mapRange(0, 1, -1, 1, this.progress);\n this.translateValue =\n progress * wSize * this.attributes.scrollSpeed * -1;\n }\n\n this.$el.style.transform =\n this.scrollOrientation === 'vertical'\n ? `translate3d(0, ${this.translateValue}px, 0)`\n : `translate3d(${this.translateValue}px, 0, 0)`;\n }\n }\n }\n\n /**\n * Inview callback\n */\n public setInview() {\n if (this.isInview) {\n return;\n }\n\n this.isInview = true;\n this.$el.classList.add(this.attributes.scrollClass);\n\n const way: scrollCallWay = 'enter';\n const from: scrollCallFrom = this._getScrollCallFrom();\n this.attributes.scrollCall && this._dispatchCall(way, from);\n }\n\n /**\n * Out of view callback\n */\n public setOutOfView() {\n if (!(this.isInview && this.attributes.scrollRepeat)) {\n return;\n }\n\n this.isInview = false;\n this.$el.classList.remove(this.attributes.scrollClass);\n\n const way: scrollCallWay = 'leave';\n const from: scrollCallFrom = this._getScrollCallFrom();\n this.attributes.scrollCall && this._dispatchCall(way, from);\n }\n\n /**\n * Switch interactivity on to subscribe the instance to the RAF\n * and start calculations.\n */\n public setInteractivityOn() {\n if (this.isInteractive) {\n return;\n }\n\n this.isInteractive = true;\n this.subscribeElementUpdateFn(this);\n }\n\n /**\n * Switch interactivity off to unsubscribe the instance to the RAF\n * and stop calculations.\n */\n public setInteractivityOff() {\n if (!this.isInteractive) {\n return;\n }\n\n this.isInteractive = false;\n this.unsubscribeElementUpdateFn(this);\n\n // Force progress to progress limit when the element is out\n this.lastProgress != null &&\n this._computeProgress(closestNumber([0, 1], this.lastProgress));\n }\n\n /**\n * Resize method that compute the element's values.\n *\n * @private\n */\n private _resize() {\n this.metrics.bcr = this.$el.getBoundingClientRect();\n this._computeMetrics();\n this._computeIntersection();\n\n // First resize logic\n if (this.isFirstResize) {\n this.isFirstResize = false;\n // Dispatch default call if the element is in fold.\n if (this.isInFold) {\n this.setInview();\n }\n }\n }\n\n /**\n * Compute element's offsets and determine if the element is in fold.\n *\n * @private\n */\n private _computeMetrics() {\n const { top, left, height, width } = this.metrics.bcr;\n const wSize =\n this.scrollOrientation === 'vertical'\n ? window.innerHeight\n : window.innerWidth;\n const metricsStart = this.scrollOrientation === 'vertical' ? top : left;\n const metricsSize =\n this.scrollOrientation === 'vertical' ? height : width;\n\n this.metrics.offsetStart =\n this.currentScroll + metricsStart - this.translateValue;\n this.metrics.offsetEnd = this.metrics.offsetStart + metricsSize;\n\n if (\n this.metrics.offsetStart < wSize &&\n !this.attributes.scrollIgnoreFold\n ) {\n this.isInFold = true;\n } else {\n this.isInFold = false;\n }\n }\n\n /**\n * Compute intersection values depending on the context.\n *\n * @private\n */\n private _computeIntersection() {\n // Window size\n const wSize =\n this.scrollOrientation === 'vertical'\n ? window.innerHeight\n : window.innerWidth;\n\n // Metrics size\n const metricsSize =\n this.scrollOrientation === 'vertical'\n ? this.metrics.bcr.height\n : this.metrics.bcr.width;\n\n // Offset\n const offset = this.attributes.scrollOffset.split(',');\n const offsetStart = offset[0] != undefined ? offset[0].trim() : '0';\n const offsetEnd = offset[1] != undefined ? offset[1].trim() : '0';\n\n // Positions\n const scrollPosition = this.attributes.scrollPosition.split(',');\n let scrollPositionStart =\n scrollPosition[0] != undefined ? scrollPosition[0].trim() : 'start';\n const scrollPositionEnd =\n scrollPosition[1] != undefined ? scrollPosition[1].trim() : 'end';\n\n // Viewport\n const viewportStart = offsetStart.includes('%')\n ? wSize * parseInt(offsetStart.replace('%', '').trim()) * 0.01\n : parseInt(offsetStart);\n const viewportEnd = offsetEnd.includes('%')\n ? wSize * parseInt(offsetEnd.replace('%', '').trim()) * 0.01\n : parseInt(offsetEnd);\n\n // Fold exception\n if (this.isInFold) {\n scrollPositionStart = 'fold';\n }\n\n // Define Intersection Start\n switch (scrollPositionStart) {\n case 'start':\n this.intersection.start =\n this.metrics.offsetStart - wSize + viewportStart;\n break;\n\n case 'middle':\n this.intersection.start =\n this.metrics.offsetStart -\n wSize +\n viewportStart +\n metricsSize * 0.5;\n break;\n\n case 'end':\n this.intersection.start =\n this.metrics.offsetStart -\n wSize +\n viewportStart +\n metricsSize;\n break;\n\n case 'fold':\n this.intersection.start = 0;\n break;\n\n default:\n this.intersection.start =\n this.metrics.offsetStart - wSize + viewportStart;\n break;\n }\n\n // Define Intersection End\n switch (scrollPositionEnd) {\n case 'start':\n this.intersection.end = this.metrics.offsetStart - viewportEnd;\n break;\n\n case 'middle':\n this.intersection.end =\n this.metrics.offsetStart - viewportEnd + metricsSize * 0.5;\n break;\n\n case 'end':\n this.intersection.end =\n this.metrics.offsetStart - viewportEnd + metricsSize;\n break;\n\n default:\n this.intersection.end =\n this.metrics.offsetStart - viewportEnd + metricsSize;\n break;\n }\n\n // Avoid to have the end < the start intersection >\n if (this.intersection.end <= this.intersection.start) {\n switch (scrollPositionEnd) {\n case 'start':\n this.intersection.end = this.intersection.start + 1;\n break;\n\n case 'middle':\n this.intersection.end =\n this.intersection.start + metricsSize * 0.5;\n break;\n\n case 'end':\n this.intersection.end =\n this.intersection.start + metricsSize;\n break;\n\n default:\n this.intersection.end = this.intersection.start + 1;\n break;\n }\n }\n }\n\n /**\n * Compute the scroll progress of the element depending\n * on its intersection values.\n *\n * @private\n *\n * @param {number} [forcedProgress] - Value to force progress.\n */\n private _computeProgress(forcedProgress?: number) {\n // Progress\n const progress =\n forcedProgress ??\n clamp(\n 0,\n 1,\n normalize(\n this.intersection.start,\n this.intersection.end,\n this.currentScroll\n )\n );\n\n this.progress = progress;\n\n if (progress != this.lastProgress) {\n this.lastProgress = progress;\n\n // Set the element's progress to the css variable\n this.attributes.scrollCssProgress && this._setCssProgress(progress);\n\n // Set the element's progress to the custom event listeners\n this.attributes.scrollEventProgress &&\n this._setCustomEventProgress(progress);\n\n // Set the element's progress to inline modules\n if (this.attributes.scrollModuleProgress) {\n for (const modularModules of this.progressModularModules) {\n this.modularInstance &&\n this.modularInstance.call(\n PROGRESS_MODULAR_METHOD,\n progress,\n modularModules.moduleName,\n modularModules.moduleId\n );\n }\n }\n\n // Logic to trigger the inview/out of view callbacks\n progress > 0 && progress < 1 && this.setInview();\n progress === 0 && this.setOutOfView();\n progress === 1 && this.setOutOfView();\n }\n }\n\n /**\n * Set the element's progress to a specific css variable.\n *\n * @private\n *\n * @param {number} [currentProgress] - Progress value.\n */\n _setCssProgress(currentProgress = 0) {\n this.$el.style.setProperty(\n PROGRESS_CSS_VAR,\n currentProgress.toString()\n );\n }\n\n /**\n * Set the element's progress to the custom event listeners.\n *\n * @private\n *\n * @param {number} [currentProgress] - Progress value.\n */\n _setCustomEventProgress(currentProgress = 0) {\n const customEventName = this.attributes.scrollEventProgress;\n\n if (!customEventName) return;\n\n const customEvent = new CustomEvent(customEventName, {\n detail: {\n target: this.$el,\n progress: currentProgress,\n },\n });\n window.dispatchEvent(customEvent);\n }\n\n /**\n * Get modular modules that can listen the element's progress.\n *\n * @private\n */\n _getProgressModularModules() {\n if (!this.modularInstance) {\n return;\n }\n\n const modulesIdNames = Object.keys(this.$el.dataset).filter((key) =>\n key.includes('module')\n );\n const modules: any[] = Object.entries(this.modularInstance.modules);\n\n if (!modulesIdNames.length) {\n return;\n }\n\n for (const modulesIdName of modulesIdNames) {\n const moduleId = this.$el.dataset[modulesIdName];\n\n if (!moduleId) {\n return;\n }\n\n for (const module of modules) {\n const [moduleName, moduleObj] = module;\n\n if (moduleId in moduleObj) {\n this.progressModularModules.push({\n moduleName,\n moduleId,\n });\n }\n }\n }\n }\n\n /**\n * Function to get scroll call from.\n *\n * @private\n */\n _getScrollCallFrom(): scrollCallFrom {\n const closestIntersectionValue = closestNumber(\n [this.intersection.start, this.intersection.end],\n this.currentScroll\n );\n return this.intersection.start === closestIntersectionValue\n ? 'start'\n : 'end';\n }\n\n /**\n * Function to dispatch a custom event or call a modular callback.\n *\n * @private\n *\n * @param {scrollCallWay} way - Enter or leave.\n * @param {scrollCallFrom} from - Start or end.\n */\n _dispatchCall(way: scrollCallWay, from: scrollCallFrom) {\n const callParameters = this.attributes.scrollCall?.split(',');\n const callSelf = this.attributes?.scrollCallSelf;\n\n if (callParameters && callParameters.length > 1) {\n // Using Modular.js (https://github.com/modularorg/modularjs)\n const [func, moduleName, moduleId] = callParameters;\n let targetModuleId;\n\n // If the module is set on the scroll element\n if (callSelf) {\n targetModuleId = this.$el.dataset[`module${moduleName.trim()}`];\n } else {\n targetModuleId = moduleId;\n }\n\n this.modularInstance &&\n this.modularInstance.call(\n func.trim(),\n {\n target: this.$el,\n way,\n from,\n },\n moduleName.trim(),\n targetModuleId?.trim()\n );\n } else if (callParameters) {\n // Using CustomEvent API (https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent)\n const [customEventName] = callParameters;\n const customEvent = new CustomEvent(customEventName, {\n detail: {\n target: this.$el,\n way,\n from,\n },\n });\n window.dispatchEvent(customEvent);\n }\n }\n}\n", "/**\n * Integrates Lenis with Locomotive's built-in animation system\n */\n\nimport {\n CoreOptions,\n IModular,\n IScrollElementCallbacksValues,\n scrollOrientation,\n} from '../types';\nimport IO from './IO';\nimport ScrollElement from './ScrollElement';\n\n/** Defined attributes that need a requestAnimationFrame */\nconst ATTRIBUTES_THAT_NEED_RAF = [\n 'scrollOffset',\n 'scrollPosition',\n 'scrollModuleProgress',\n 'scrollCssProgress',\n 'scrollEventProgress',\n 'scrollSpeed',\n];\n\n/** Default root margins */\nconst TRIGGER_ROOT_MARGIN = '-1px -1px -1px -1px';\nconst RAF_ROOT_MARGIN = '100% 100% 100% 100%'; // Add 100vh top/bottom && 100vw left/right to use a biggest value with data-scroll-speed\n\nexport default class Core {\n private $scrollContainer!: HTMLElement;\n private modularInstance?: IModular;\n private triggerRootMargin!: string;\n private rafRootMargin!: string;\n private scrollElements!: ScrollElement[];\n private triggeredScrollElements!: ScrollElement[];\n private RAFScrollElements!: ScrollElement[];\n private scrollElementsToUpdate!: ScrollElement[];\n private IOTriggerInstance!: IO;\n private IORafInstance!: IO;\n private scrollOrientation!: scrollOrientation;\n\n constructor({\n $el,\n modularInstance,\n triggerRootMargin,\n rafRootMargin,\n scrollOrientation,\n }: CoreOptions) {\n if (!$el) {\n console.error('Please provide a DOM Element as scrollContainer');\n return;\n }\n\n // Scroll container\n this.$scrollContainer = $el;\n\n // Modular.js\n this.modularInstance = modularInstance;\n\n // Scroll Direction\n this.scrollOrientation = scrollOrientation;\n\n // IO Margins\n this.triggerRootMargin = triggerRootMargin ?? TRIGGER_ROOT_MARGIN;\n this.rafRootMargin = rafRootMargin ?? RAF_ROOT_MARGIN;\n\n // ScrollElements arrays\n this.scrollElements = [];\n this.triggeredScrollElements = [];\n this.RAFScrollElements = [];\n this.scrollElementsToUpdate = [];\n\n\n // Init\n this._init();\n }\n\n /**\n * Lifecyle - Initialize the core.\n *\n * @private\n */\n private _init() {\n const $scrollElements =\n this.$scrollContainer.querySelectorAll('[data-scroll]');\n\n const $scrollElementsArr = Array.from($scrollElements) as HTMLElement[]\n this._subscribeScrollElements($scrollElementsArr);\n\n // Trigger IO\n this.IOTriggerInstance = new IO({\n scrollElements: [...this.triggeredScrollElements],\n rootMargin: this.triggerRootMargin,\n IORaf: false,\n });\n\n // Raf IO\n this.IORafInstance = new IO({\n scrollElements: [...this.RAFScrollElements],\n rootMargin: this.rafRootMargin,\n IORaf: true,\n });\n }\n\n /**\n * Lifecyle - Destroy core.\n */\n public destroy() {\n this.IOTriggerInstance.destroy();\n this.IORafInstance.destroy();\n this._unsubscribeAllScrollElements();\n }\n\n /**\n * Callback - Resize callback.\n */\n onResize({ currentScroll }: IScrollElementCallbacksValues) {\n for (const scrollElement of this.RAFScrollElements) {\n scrollElement.onResize({\n currentScroll,\n } as IScrollElementCallbacksValues);\n }\n }\n\n /**\n * Callback - RAF callback.\n */\n onRender({ currentScroll, smooth }: IScrollElementCallbacksValues) {\n for (const scrollElement of this.scrollElementsToUpdate) {\n scrollElement.onRender({\n currentScroll,\n smooth,\n } as IScrollElementCallbacksValues);\n }\n }\n\n /**\n * Remove items from lists of scroll elements and compute all new values.\n *\n * @param {HTMLElement} $oldContainer - HTMLElement that contains data-scroll elements to unsubscribe\n */\n removeScrollElements($oldContainer: HTMLElement) {\n const $scrollElementsToRemove =\n $oldContainer.querySelectorAll('[data-scroll]');\n\n if (!$scrollElementsToRemove.length) return;\n\n // 1. Remove from IO\n for (let index = 0; index < this.triggeredScrollElements.length; index++) {\n const scrollElement = this.triggeredScrollElements[index];\n const $scrollElementsToRemoveArr = Array.from($scrollElementsToRemove) as HTMLElement []\n if ($scrollElementsToRemoveArr.indexOf(scrollElement.$el) > -1) {\n this.IOTriggerInstance.unobserve(scrollElement.$el);\n this.triggeredScrollElements.splice(index, 1);\n }\n }\n\n for (let index = 0; index < this.RAFScrollElements.length; index++) {\n const scrollElement = this.RAFScrollElements[index];\n const $scrollElementsToRemoveArr = Array.from($scrollElementsToRemove) as HTMLElement []\n if ($scrollElementsToRemoveArr.indexOf(scrollElement.$el) > -1) {\n this.IORafInstance.unobserve(scrollElement.$el);\n this.RAFScrollElements.splice(index, 1);\n }\n }\n\n // 2. Remove from scrollElementsToUpdate[] and scrollElements[]\n $scrollElementsToRemove.forEach(($scrollElement) => {\n const targetScrollElementToUpdate =\n this.scrollElementsToUpdate.find(\n (scrollElement) => scrollElement.$el === $scrollElement\n );\n const targetScrollElement = this.scrollElements.find(\n (scrollElement) => scrollElement.$el === $scrollElement\n );\n\n if (targetScrollElementToUpdate) {\n this._unsubscribeElementUpdate(targetScrollElementToUpdate);\n }\n if (targetScrollElement) {\n this.scrollElements = this.scrollElements.filter(\n (scrollElementItem) =>\n scrollElementItem.id != targetScrollElement.id\n );\n }\n });\n }\n\n /**\n * Add items to lists of scroll elements and compute all new values.\n *\n * @param {HTMLElement} $newContainer - HTMLElement that contains data-scroll elements to subscribe\n */\n addScrollElements($newContainer: HTMLElement) {\n // 3. Rebuild ScrollElements\n const $scrollElements = $newContainer.querySelectorAll('[data-scroll]');\n\n // 4. Get max scrollElement.id\n const ids: number[] = [];\n this.scrollElements.forEach((scrollElement) => {\n ids.push(scrollElement.id);\n });\n const maxID = Math.max(...ids);\n const fromIndex = maxID + 1;\n const $scrollElementsArr = Array.from($scrollElements) as HTMLElement[]\n this._subscribeScrollElements(\n $scrollElementsArr,\n fromIndex,\n true\n );\n }\n\n /**\n * Create a ScrollElement instance for each elements with\n * `data-scroll` attribute.\n *\n * @private\n *\n * @param {HTMLElement[]} $scrollElements - List of elements that need\n * to be regarded.\n */\n _subscribeScrollElements(\n $scrollElements: HTMLElement[],\n fromIndex = 0,\n toObserve = false\n ) {\n // For each scroll element create a ScrollElement instance\n for (let index = 0; index < $scrollElements.length; index++) {\n const $scrollElement = $scrollElements[index];\n const needRaf = this._checkRafNeeded($scrollElement);\n\n const scrollElementInstance = new ScrollElement({\n $el: $scrollElement,\n id: fromIndex + index,\n scrollOrientation: this.scrollOrientation,\n modularInstance: this.modularInstance,\n subscribeElementUpdateFn:\n this._subscribeElementUpdate.bind(this),\n unsubscribeElementUpdateFn:\n this._unsubscribeElementUpdate.bind(this),\n needRaf,\n });\n\n // Push to common array\n this.scrollElements.push(scrollElementInstance);\n\n // Push to specific array\n if (needRaf) {\n this.RAFScrollElements.push(scrollElementInstance);\n\n // Dynamic observe item\n if (toObserve) {\n this.IORafInstance.scrollElements.push(\n scrollElementInstance\n );\n this.IORafInstance.observe(scrollElementInstance.$el);\n }\n } else {\n this.triggeredScrollElements.push(scrollElementInstance);\n\n // Dynamic observe item\n if (toObserve) {\n this.IOTriggerInstance.scrollElements.push(\n scrollElementInstance\n );\n this.IOTriggerInstance.observe(scrollElementInstance.$el);\n }\n }\n }\n }\n\n /**\n * Clear all ScrollElement arrays.\n *\n * @private\n */\n _unsubscribeAllScrollElements() {\n this.scrollElements = [];\n this.RAFScrollElements = [];\n this.triggeredScrollElements = [];\n this.scrollElementsToUpdate = [];\n }\n\n /**\n * Subscribe ScrollElement instance that needs to be updated.\n *\n * @private\n *\n * @param {ScrollElement} scrollElement - ScrollElement instance inview\n * that needs to be updated.\n */\n _subscribeElementUpdate(scrollElement: ScrollElement) {\n this.scrollElementsToUpdate.push(scrollElement);\n }\n\n /**\n * Unscribe ScrollElement instance that doesn't need to be updated.\n *\n * @private\n *\n * @param {ScrollElement} scrollElement - The updated ScrollElement instance\n * out of view now.\n */\n _unsubscribeElementUpdate(scrollElement: ScrollElement) {\n this.scrollElementsToUpdate = this.scrollElementsToUpdate.filter(\n (scrollElementToUpdate) =>\n scrollElementToUpdate.id != scrollElement.id\n );\n }\n\n /**\n * Check if a DOM Element need a requestAnimationFrame to be used.\n *\n * @private\n *\n * @param {HTMLElement} $scrollElement - The element that needs to be checked.\n *\n * @returns {boolean}\n */\n _checkRafNeeded($scrollElement: HTMLElement) {\n let attributesThatNeedRaf = [...ATTRIBUTES_THAT_NEED_RAF];\n\n // Remove utils\n const removeAttribute = (attributeToRemove: string) => {\n attributesThatNeedRaf = attributesThatNeedRaf.filter(\n (attribute) => attribute != attributeToRemove\n );\n };\n\n // 1. Check scroll offset values\n if ($scrollElement.dataset.scrollOffset) {\n const value = $scrollElement.dataset.scrollOffset\n .split(',')\n .map((test) => test.replace('%', '').trim())\n .join(',');\n if (value != '0,0') {\n return true;\n } else {\n removeAttribute('scrollOffset');\n }\n } else {\n removeAttribute('scrollOffset');\n }\n\n // 2. Check scroll position values\n if ($scrollElement.dataset.scrollPosition) {\n const value = $scrollElement.dataset.scrollPosition.trim();\n if (value != 'top,bottom') {\n return true;\n } else {\n removeAttribute('scrollPosition');\n }\n } else {\n removeAttribute('scrollPosition');\n }\n\n // 3. Check scroll speed values\n if (\n $scrollElement.dataset.scrollSpeed &&\n !isNaN(parseFloat($scrollElement.dataset.scrollSpeed))\n ) {\n return true;\n } else {\n removeAttribute('scrollSpeed');\n }\n\n // 4. Check others attributes\n for (const attribute of attributesThatNeedRaf) {\n if (attribute in $scrollElement.dataset) {\n return true;\n }\n }\n\n return false;\n }\n}\n", "/**\n * Resize Observer\n *\n * The Resize Observer API provides a performant mechanism by which code can monitor an element for changes to its size,\n * with notifications being delivered to the observer each time the size changes.\n *\n * Features functions to:\n *\n * - Trigger the resize callback if the specified element's size change.\n *\n * References:\n *\n * - {@link https://developer.mozilla.org/en-US/docs/Web/API/Resize_Observer_API}\n */\n\nimport { IROOptions } from '../types';\n\nexport default class RO {\n private $resizeElements: HTMLElement[];\n private isFirstObserve: boolean;\n private observer!: ResizeObserver;\n private resizeCallback: () => void;\n\n constructor({ resizeElements, resizeCallback = () => {} }: IROOptions) {\n // Parameters\n this.$resizeElements = resizeElements;\n this.resizeCallback = resizeCallback;\n\n // Flags\n this.isFirstObserve = true;\n\n // Init\n this._init();\n }\n\n /**\n * Lifecyle - Initialize Resize Observer.\n *\n * @private\n */\n private _init() {\n // Callback\n const onResize = (entries: ResizeObserverEntry[]) => {\n !this.isFirstObserve && this.resizeCallback?.();\n this.isFirstObserve = false;\n };\n\n // Instance\n this.observer = new ResizeObserver(onResize);\n\n // Observe each default elements\n for (const $resizeElement of this.$resizeElements) {\n this.observer.observe($resizeElement);\n }\n }\n\n /**\n * Lifecyle - Destroy Resize Observer.\n */\n public destroy() {\n this.observer.disconnect();\n }\n}\n", "//@ts-ignore\nimport Lenis from '@studio-freight/lenis';\nimport Core from './core/Core';\nimport RO from './core/RO';\nimport {\n ILenisOptions,\n ILenisScrollToOptions,\n ILenisScrollValues,\n ILocomotiveScrollOptions,\n IModular,\n lenisTargetScrollTo,\n} from './types';\n\n/**\n * @type {ILenisOptions}\n */\nconst defaultLenisOptions: ILenisOptions = {\n wrapper: window,\n content: document.documentElement,\n lerp: 0.1,\n duration: 1.2,\n orientation: 'vertical',\n gestureOrientation: 'vertical',\n smoothWheel: true,\n smoothTouch: false,\n wheelMultiplier: 1,\n touchMultiplier: 2,\n normalizeWheel: true,\n easing: (t) => Math.min(1, 1.001 - Math.pow(2, -10 * t)), // https://www.desmos.com/calculator/brs54l4xou\n};\n\n/**\n * Locomotive Scroll\n *\n * Detection of elements in viewport & smooth scrolling with parallax.\n *\n * Inspired by\n * {@link https://github.com/locomotivemtl/locomotive-scroll locomotive-scroll.js}\n * and built around\n * {@link https://github.com/studio-freight/lenis lenis.js}.\n */\n\nexport default class LocomotiveScroll {\n public rafPlaying: boolean;\n\n private lenisInstance: any;\n private coreInstance: any;\n\n private lenisOptions: ILenisOptions;\n private modularInstance?: IModular;\n private triggerRootMargin?: string;\n private rafRootMargin?: string;\n private rafInstance?: any;\n private autoResize?: boolean;\n private autoStart?: boolean;\n private ROInstance?: RO;\n private scrollCallback?(scrollValues: ILenisScrollValues): void;\n private initCustomTicker?: (render: () => void) => void;\n private destroyCustomTicker?: (render: () => void) => void;\n private _onRenderBind: () => void;\n private _onResizeBind: () => void;\n private _onScrollToBind: (event: MouseEvent) => void;\n\n constructor({\n lenisOptions = {},\n modularInstance,\n triggerRootMargin,\n rafRootMargin,\n autoResize = true,\n autoStart = true,\n scrollCallback = () => {},\n initCustomTicker,\n destroyCustomTicker,\n }: ILocomotiveScrollOptions = {}) {\n // Arguments\n this.lenisOptions = { ...defaultLenisOptions, ...lenisOptions };\n\n Object.assign(this, {\n lenisOptions,\n modularInstance,\n triggerRootMargin,\n rafRootMargin,\n autoResize,\n autoStart,\n scrollCallback,\n initCustomTicker,\n destroyCustomTicker,\n });\n\n // Binding\n this._onRenderBind = this._onRender.bind(this);\n this._onScrollToBind = this._onScrollTo.bind(this);\n this._onResizeBind = this._onResize.bind(this);\n\n // Data\n this.rafPlaying = false;\n\n // Init\n this._init();\n }\n\n /**\n * Lifecyle - Initialize instance.\n *\n * @private\n */\n private _init(): void {\n // Create Lenis instance\n this.lenisInstance = new Lenis({\n wrapper: this.lenisOptions.wrapper,\n content: this.lenisOptions.content,\n lerp: this.lenisOptions.lerp,\n duration: this.lenisOptions.duration,\n orientation: this.lenisOptions.orientation,\n gestureOrientation: this.lenisOptions.gestureOrientation,\n smoothWheel: this.lenisOptions.smoothWheel,\n smoothTouch: this.lenisOptions.smoothTouch,\n wheelMultiplier: this.lenisOptions.wheelMultiplier,\n touchMultiplier: this.lenisOptions.touchMultiplier,\n normalizeWheel: this.lenisOptions.normalizeWheel,\n easing: this.lenisOptions.easing,\n });\n this.lenisInstance?.on('scroll', this.scrollCallback);\n\n // Add scroll direction attribute on body\n document.documentElement.setAttribute(\n 'data-scroll-orientation',\n this.lenisInstance.options.orientation\n );\n\n requestAnimationFrame(() => {\n // Create Core Instance\n this.coreInstance = new Core({\n $el: this.lenisInstance.rootElement,\n modularInstance: this.modularInstance,\n triggerRootMargin: this.triggerRootMargin,\n rafRootMargin: this.rafRootMargin,\n scrollOrientation: this.lenisInstance.options.orientation,\n });\n\n // Bind Events\n this._bindEvents();\n\n // RAF warning\n if (this.initCustomTicker && !this.destroyCustomTicker) {\n console.warn(\n 'initCustomTicker callback is declared, but destroyCustomTicker is not. Please pay attention. It could cause trouble.'\n );\n } else if (!this.initCustomTicker && this.destroyCustomTicker) {\n console.warn(\n 'destroyCustomTicker callback is declared, but initCustomTicker is not. Please pay attention. It could cause trouble.'\n );\n }\n\n // Start RAF\n this.autoStart && this.start();\n });\n }\n\n /**\n * Lifecyle - Destroy instance.\n */\n public destroy(): void {\n // Stop raf\n this.stop();\n // Unbind Events\n this._unbindEvents();\n // Destroy Lenis\n this.lenisInstance.destroy();\n // Destroy Core\n this.coreInstance.destroy();\n }\n\n /**\n * Events - Subscribe events to listen.\n */\n private _bindEvents() {\n this._bindScrollToEvents();\n\n if (this.autoResize) {\n if ('ResizeObserver' in window) {\n this.ROInstance = new RO({\n resizeElements: [document.body],\n resizeCallback: this._onResizeBind,\n });\n } else {\n (window as any).addEventListener('resize', this._onResizeBind);\n }\n }\n }\n\n /**\n * Events - Unsubscribe listened events.\n */\n private _unbindEvents() {\n this._unbindScrollToEvents();\n\n if (this.autoResize) {\n if ('ResizeObserver' in window) {\n this.ROInstance && this.ROInstance.destroy();\n } else {\n (window as any).removeEventListener(\n 'resize',\n this._onResizeBind\n );\n }\n }\n }\n\n /**\n * Events - Subscribe scrollTo events to listen.\n */\n private _bindScrollToEvents($container?: HTMLElement) {\n const $rootContainer = $container\n ? $container\n : this.lenisInstance.rootElement;\n const $scrollToElements =\n $rootContainer?.querySelectorAll('[data-scroll-to]');\n\n $scrollToElements?.length &&\n $scrollToElements.forEach(($el: HTMLElement): void => {\n $el.addEventListener('click', this._onScrollToBind, false);\n });\n }\n\n /**\n * Events - Unsubscribe scrollTo listened events.\n */\n private _unbindScrollToEvents($container?: HTMLElement) {\n const $rootContainer = $container\n ? $container\n : this.lenisInstance.rootElement;\n const $scrollToElements =\n $rootContainer?.querySelectorAll('[data-scroll-to]');\n $scrollToElements?.length &&\n $scrollToElements.forEach(($el: HTMLElement) => {\n $el.removeEventListener('click', this._onScrollToBind, false);\n });\n }\n\n /**\n * Callback - Resize callback.\n */\n private _onResize() {\n // Waiting the next frame to get the new current scroll value return by Lenis\n requestAnimationFrame(() => {\n this.coreInstance?.onResize({\n currentScroll: this.lenisInstance.scroll,\n });\n });\n }\n\n /**\n * Callback - Render callback.\n */\n private _onRender() {\n this.lenisInstance?.raf(Date.now());\n\n this.coreInstance?.onRender({\n currentScroll: this.lenisInstance.scroll,\n smooth: this.lenisInstance.isSmooth,\n });\n }\n\n /**\n * Callback - Scroll To callback.\n */\n private _onScrollTo(event: MouseEvent) {\n event.preventDefault();\n const $target = (event.currentTarget as HTMLElement) ?? null;\n if (!$target) return;\n const target =\n $target.getAttribute('data-scroll-to-href') ||\n $target.getAttribute('href');\n const offset = $target.getAttribute('data-scroll-to-offset') || 0;\n const duration =\n $target.getAttribute('data-scroll-to-duration') ||\n this.lenisOptions.duration ||\n defaultLenisOptions.duration;\n\n target &&\n this.scrollTo(target, {\n offset: typeof offset === 'string' ? parseInt(offset) : offset,\n duration:\n typeof duration === 'string'\n ? parseInt(duration)\n : duration,\n });\n }\n\n /**\n * Start RequestAnimationFrame that active Lenis smooth and scroll progress.\n */\n public start(): void {\n if (this.rafPlaying) {\n return;\n }\n\n this.rafPlaying = true;\n this.initCustomTicker\n ? this.initCustomTicker(this._onRenderBind)\n : this._raf();\n }\n\n /**\n * Stop RequestAnimationFrame that active Lenis smooth and scroll progress.\n */\n public stop(): void {\n if (!this.rafPlaying) {\n return;\n }\n\n this.rafPlaying = false;\n this.destroyCustomTicker\n ? this.destroyCustomTicker(this._onRenderBind)\n : this.rafInstance && cancelAnimationFrame(this.rafInstance);\n }\n\n /**\n * Remove old scroll elements items and rebuild ScrollElements instances.\n */\n public removeScrollElements($oldContainer: HTMLElement): void {\n if (!$oldContainer) {\n console.error('Please provide a DOM Element as $oldContainer');\n return;\n }\n\n this._unbindScrollToEvents($oldContainer);\n this.coreInstance?.removeScrollElements($oldContainer);\n }\n\n /**\n * Add new scroll elements items and rebuild ScrollElements instances.\n */\n public addScrollElements($newContainer: HTMLElement): void {\n if (!$newContainer) {\n console.error('Please provide a DOM Element as $newContainer');\n return;\n }\n\n this.coreInstance?.addScrollElements($newContainer);\n requestAnimationFrame(() => {\n this._bindScrollToEvents($newContainer);\n });\n }\n\n /**\n * Trigger resize callback.\n */\n public resize(): void {\n this._onResizeBind();\n }\n\n /**\n * Trigger scroll to callback.\n */\n public scrollTo(\n target: lenisTargetScrollTo,\n options?: ILenisScrollToOptions\n ): void {\n this.lenisInstance?.scrollTo(target, {\n offset: options?.offset,\n lerp: options?.lerp,\n duration: options?.duration,\n immediate: options?.immediate,\n lock: options?.lock,\n force: options?.force,\n easing: options?.easing,\n onComplete: options?.onComplete,\n });\n }\n\n /**\n * RequestAnimationFrame that active Lenis smooth and scroll progress.\n *\n * @private\n *\n */\n private _raf() {\n this._onRenderBind();\n this.rafInstance = requestAnimationFrame(() => this._raf());\n }\n}\n", "import { module } from 'modujs'\nimport { lazyLoadImage } from '../utils/image'\nimport LocomotiveScroll from 'locomotive-scroll'\n\nexport default class extends module {\n constructor(m) {\n super(m);\n }\n\n init() {\n this.scroll = new LocomotiveScroll({\n modularInstance: this,\n })\n\n // // Force scroll to top\n // if (history.scrollRestoration) {\n // history.scrollRestoration = 'manual'\n // window.scrollTo(0, 0)\n // }\n }\n\n /**\n * Lazy load the related image.\n *\n * @see ../utils/image.js\n *\n * It is recommended to wrap your `` into an element with the\n * CSS class name `.c-lazy`. The CSS class name modifier `.-lazy-loaded`\n * will be applied on both the image and the parent wrapper.\n *\n * ```html\n *
\n * \"\"\n *
\n * ```\n *\n * @param {LocomotiveScroll} args - The Locomotive Scroll instance.\n */\n lazyLoad(args) {\n lazyLoadImage(args.target, null, () => {\n //callback\n })\n }\n\n scrollTo(params) {\n let { target, ...options } = params\n\n options = Object.assign({\n // Defaults\n duration: 1,\n }, options)\n\n this.scroll?.scrollTo(target, options)\n }\n\n destroy() {\n this.scroll.destroy();\n }\n}\n", "import svg4everybody from 'svg4everybody';\nimport { ENV } from './config';\n\n// Dynamic imports for development mode only\nlet gridHelper;\n(async () => {\n if (ENV.IS_DEV) {\n const gridHelperModule = await import('./utils/grid-helper');\n gridHelper = gridHelperModule?.gridHelper;\n }\n})();\n\nexport default function () {\n /**\n * Use external SVG spritemaps\n */\n svg4everybody();\n\n /**\n * Add grid helper\n */\n gridHelper?.();\n}\n", "/**\n * Creates a debounced function.\n *\n * A debounced function delays invoking `callback` until after\n * `delay` milliseconds have elapsed since the last time the\n * debounced function was invoked.\n *\n * Useful for behaviour that should only happen _before_ or\n * _after_ an event has stopped occurring.\n *\n * @template {function} T\n *\n * @param {T} callback - The function to debounce.\n * @param {number} delay - The number of milliseconds to wait.\n * @param {boolean} [immediate] -\n * If `true`, `callback` is invoked before `delay`.\n * If `false`, `callback` is invoked after `delay`.\n * @return {function} The new debounced function.\n */\n\nconst debounce = (callback, delay, immediate = false) => {\n let timeout = null\n\n return (...args) => {\n clearTimeout(timeout)\n\n const later = () => {\n timeout = null\n if (!immediate) {\n callback(...args)\n }\n }\n\n if (immediate && !timeout) {\n callback(...args)\n }\n\n timeout = setTimeout(later, delay)\n }\n}\n\n\n/**\n * Creates a throttled function.\n *\n * A throttled function invokes `callback` at most once per every\n * `delay` milliseconds.\n *\n * Useful for rate-limiting an event that occurs in quick succession.\n *\n * @template {function} T\n *\n * @param {T} callback - The function to throttle.\n * @param {number} delay - The number of milliseconds to wait.\n * @return {function} The new throttled function.\n */\n\nconst throttle = (callback, delay) => {\n let timeout = false\n\n return (...args) => {\n if (!timeout) {\n timeout = true\n\n callback(...args)\n\n setTimeout(() => {\n timeout = false\n }, delay)\n }\n }\n}\n\n\nexport {\n debounce,\n throttle\n}\n", "const $html = document.documentElement\nconst $body = document.body\n\nexport {\n $html,\n $body,\n}\n", "import modular from 'modujs';\nimport * as modules from './modules';\nimport globals from './globals';\nimport { debounce } from './utils/tickers'\nimport { $html } from './utils/dom';\nimport { ENV, FONT, CUSTOM_EVENT, CSS_CLASS } from './config'\nimport { isFontLoadingAPIAvailable, loadFonts } from './utils/fonts';\n\nconst app = new modular({\n modules: modules,\n});\n\nwindow.onload = (event) => {\n const $style = document.getElementById('main-css');\n\n if ($style) {\n if ($style.isLoaded) {\n init();\n } else {\n $style.addEventListener('load', (event) => {\n init();\n });\n }\n } else {\n console.warn('The \"main-css\" stylesheet not found');\n }\n};\n\nfunction init() {\n globals();\n\n app.init(app);\n\n $html.classList.add(CSS_CLASS.LOADED);\n $html.classList.add(CSS_CLASS.READY);\n $html.classList.remove(CSS_CLASS.LOADING);\n\n // Bind window resize event with default vars\n const resizeEndEvent = new CustomEvent(CUSTOM_EVENT.RESIZE_END)\n window.addEventListener('resize', () => {\n $html.style.setProperty('--vw', `${document.documentElement.clientWidth * 0.01}px`)\n debounce(() => {\n window.dispatchEvent(resizeEndEvent)\n }, 200, false)\n })\n\n /**\n * Eagerly load the following fonts.\n */\n if (isFontLoadingAPIAvailable) {\n loadFonts(FONT.EAGER, ENV.IS_DEV).then((eagerFonts) => {\n $html.classList.add(CSS_CLASS.FONTS_LOADED);\n\n if (ENV.IS_DEV) {\n console.group('Eager fonts loaded!', eagerFonts.length, '/', document.fonts.size);\n console.group('State of eager fonts:')\n eagerFonts.forEach((font) => console.log(font.family, font.style, font.weight, font.status/*, font*/))\n console.groupEnd()\n console.group('State of all fonts:')\n document.fonts.forEach((font) => console.log(font.family, font.style, font.weight, font.status/*, font*/))\n console.groupEnd()\n }\n });\n }\n}\n"], - "mappings": "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", - "names": ["require_svg4everybody", "__commonJSMin", "exports", "module", "root", "factory", "embed", "parent", "svg", "target", "fragment", "viewBox", "clone", "loadreadystatechange", "xhr", "cachedDocument", "item", "svg4everybody", "rawopts", "oninterval", "index", "uses", "use", "getSVGAncestor", "src", "opts", "polyfill", "srcSplit", "url", "id", "requests", "numberOfSvgUseElementsToBypass", "requestAnimationFrame", "newerIEUA", "webkitUA", "olderEdgeUA", "edgeUA", "inIframe", "node", "grid_helper_exports", "__export", "gridHelper", "gutterCssVar", "GRID_HELPER_GUTTER_CSS_VAR", "marginCssVar", "GRID_HELPER_MARGIN_CSS_VAR", "rgbaColor", "GRID_HELPER_RGBA_COLOR", "$gridContainer", "setGridHelperColumns", "setGridHelperStyles", "setGridEvents", "$container", "elStyles", "columns", "$col", "i", "ctrlDown", "isActive", "e", "init_grid_helper", "__esmMin", "_typeof", "obj", "_classCallCheck", "instance", "Constructor", "_defineProperties", "target", "props", "i", "descriptor", "_createClass", "protoProps", "staticProps", "_defineProperty", "key", "value", "_slicedToArray", "arr", "_arrayWithHoles", "_iterableToArrayLimit", "_unsupportedIterableToArray", "_nonIterableRest", "_toConsumableArray", "_arrayWithoutHoles", "_iterableToArray", "_nonIterableSpread", "_arrayLikeToArray", "iter", "_arr", "_n", "_d", "_e", "_i", "_s", "err", "o", "minLen", "n", "len", "arr2", "_default", "options", "modules", "_this", "event", "_this2", "capture", "e", "data", "name", "method", "query", "context", "classIndex", "idIndex", "attrIndex", "indexes", "index", "more", "parent", "func", "args", "mod", "id", "_this3", "_this4", "_default$1", "app", "scope", "container", "elements", "el", "moduleExists", "dataName", "moduleName", "module", "moduleId", "_ref", "_ref2", "split", "_ref3", "_ref4", "_ref5", "_ref6", "_ref7", "_ref8", "_this5", "a", "b", "str", "main_esm_default", "modules_exports", "__export", "Example_default", "Load_default", "Scroll_default", "NODE_ENV", "IS_DESKTOP", "ENV", "CSS_CLASS", "CUSTOM_EVENT", "FONT", "isFontLoadingAPIAvailable", "conformsToReference", "font", "criterion", "key", "value", "trim", "conformsToShorthand", "family", "findManyByReference", "search", "found", "font", "conformsToReference", "findManyByShorthand", "conformsToShorthand", "getMany", "queries", "found", "search", "findManyByShorthand", "findManyByReference", "loadFonts", "fontsToLoad", "debug", "__async", "_a", "loadFontsWithAPI", "loadFontFaceWithAPI", "font", "err", "fontsToBeLoaded", "fontToLoad", "getMany", "trim", "value", "whenReady", "queries", "fonts", "Example_default", "_default", "m", "whenReady", "FONT", "fonts", "_classCallCheck", "instance", "Constructor", "_defineProperties", "target", "props", "i", "descriptor", "_createClass", "protoProps", "staticProps", "_slicedToArray", "arr", "_arrayWithHoles", "_iterableToArrayLimit", "_unsupportedIterableToArray", "_nonIterableRest", "_i", "_arr", "_n", "_d", "_s", "_e", "err", "o", "minLen", "_arrayLikeToArray", "n", "len", "arr2", "_default", "options", "_this", "e", "href", "link", "transition", "isUrl", "push", "container", "oldContainer", "loadingEvent", "_this2", "_this3", "signal", "response", "data", "parser", "_this4", "svgs", "svg", "xhref", "_this5", "title", "newDesc", "oldDesc", "newContainer", "datas", "_ref", "_ref2", "key", "val", "str", "_this6", "promises", "attr", "els", "el", "elData", "promise", "resolve", "imagesEvent", "_this7", "loadedEvent", "readyEvent", "event", "func", "_this8", "main_esm_default", "Load_default", "_default", "m", "main_esm_default", "transition", "oldContainer", "newContainer", "getImageMetadata", "$img", "loadImage", "url", "options", "resolve", "reject", "loadCallback", "__spreadValues", "e", "LAZY_LOADED_IMAGES", "lazyLoadImage", "$el", "callback", "__async", "src", "loadedImage", "image", "lazyParent", "CSS_CLASS", "clamp", "min", "input", "max", "Math", "Animate", "advance", "deltaTime", "_this$onUpdate", "this", "isRunning", "completed", "lerp", "value", "amt", "to", "round", "currentTime", "linearProgress", "duration", "easedProgress", "easing", "from", "onUpdate", "call", "stop", "fromTo", "t", "debounce", "callback", "delay", "timer", "args", "arguments", "context", "clearTimeout", "setTimeout", "apply", "Dimensions", "constructor", "wrapper", "content", "onWindowResize", "width", "window", "innerWidth", "height", "innerHeight", "onWrapperResize", "clientWidth", "clientHeight", "onContentResize", "element", "document", "documentElement", "scrollHeight", "scrollWidth", "addEventListener", "wrapperResizeObserver", "ResizeObserver", "observe", "contentResizeObserver", "destroy", "_this$wrapperResizeOb", "_this$contentResizeOb", "removeEventListener", "disconnect", "limit", "x", "y", "createNanoEvents", "events", "emit", "event", "callbacks", "i", "length", "on", "cb", "_this$events$event", "push", "_this$events$event2", "filter", "VirtualScroll", "wheelMultiplier", "touchMultiplier", "normalizeWheel", "onTouchStart", "clientX", "clientY", "targetTouches", "touchStart", "lastDelta", "onTouchMove", "deltaX", "deltaY", "emitter", "type", "onTouchEnd", "inertia", "onWheel", "passive", "Lenis", "direction", "gestureDirection", "mouseMultiplier", "smooth", "wheelEventsTarget", "smoothWheel", "smoothTouch", "syncTouch", "syncTouchLerp", "touchInertiaMultiplier", "pow", "infinite", "orientation", "gestureOrientation", "onVirtualScroll", "ctrlKey", "isTouch", "isWheel", "options", "scroll", "composedPath", "find", "node", "hasAttribute", "isStopped", "isLocked", "preventDefault", "isSmooth", "isScrolling", "animate", "delta", "abs", "hasTouchInertia", "velocity", "scrollTo", "targetScroll", "_extends", "programmatic", "onScroll", "lastScroll", "animatedScroll", "actualScroll", "sign", "console", "warn", "lenisVersion", "body", "dimensions", "rootElement", "classList", "add", "virtualScroll", "off", "_this$emitter$events$", "setScroll", "isHorizontal", "scrollLeft", "scrollTop", "reset", "start", "raf", "time", "target", "offset", "immediate", "lock", "onComplete", "force", "includes", "_target", "querySelector", "nodeType", "wrapperRect", "getBoundingClientRect", "left", "top", "rect", "requestAnimationFrame", "dividend", "divisor", "remainder", "progress", "__isSmooth", "toggle", "__isScrolling", "__isStopped", "IO", "constructor", "scrollElements", "rootMargin", "IORaf", "observer", "_init", "observerOptions", "onIntersect", "entries", "forEach", "entry", "$targetItem", "find", "item", "$el", "target", "isIntersecting", "isAlreadyIntersected", "_setInview", "_setOutOfView", "IntersectionObserver", "scrollElement", "$scrollElement", "observe", "destroy", "disconnect", "unobserve", "setInteractivityOn", "setInview", "setInteractivityOff", "setOutOfView", "attributes", "scrollRepeat", "clamp", "min", "max", "value", "mapRange", "inMin", "inMax", "outMin", "outMax", "inRange", "outRange", "normalize", "closestNumber", "array", "reduce", "prev", "curr", "Math", "abs", "INVIEW_CLASS", "PROGRESS_CSS_VAR", "PROGRESS_MODULAR_METHOD", "ScrollElement", "id", "modularInstance", "subscribeElementUpdateFn", "unsubscribeElementUpdateFn", "needRaf", "scrollOrientation", "_this$$el$dataset$scr", "_this$$el$dataset$scr2", "_this$$el$dataset$scr3", "_this$$el$dataset$scr4", "_this$$el$dataset$scr5", "intersection", "metrics", "currentScroll", "translateValue", "progress", "lastProgress", "progressModularModules", "isInview", "isInteractive", "isInFold", "isFirstResize", "scrollClass", "dataset", "scrollOffset", "scrollPosition", "scrollModuleProgress", "scrollCssProgress", "scrollEventProgress", "scrollSpeed", "parseFloat", "scrollCall", "scrollCallSelf", "scrollIgnoreFold", "scrollEnableTouchSpeed", "start", "end", "offsetStart", "offsetEnd", "bcr", "window", "scrollY", "scrollX", "_getProgressModularModules", "_resize", "onResize", "onRender", "smooth", "wSize", "innerHeight", "innerWidth", "_computeProgress", "isNaN", "style", "transform", "classList", "add", "way", "from", "_getScrollCallFrom", "_dispatchCall", "remove", "getBoundingClientRect", "_computeMetrics", "_computeIntersection", "top", "left", "height", "width", "metricsStart", "metricsSize", "offset", "split", "undefined", "trim", "scrollPositionStart", "scrollPositionEnd", "viewportStart", "includes", "parseInt", "replace", "viewportEnd", "forcedProgress", "_setCssProgress", "_setCustomEventProgress", "modularModules", "call", "moduleName", "moduleId", "currentProgress", "setProperty", "toString", "customEventName", "customEvent", "CustomEvent", "detail", "dispatchEvent", "modulesIdNames", "Object", "keys", "filter", "key", "modules", "length", "modulesIdName", "module", "moduleObj", "push", "closestIntersectionValue", "_this$attributes$scro", "_this$attributes", "callParameters", "callSelf", "_targetModuleId", "func", "targetModuleId", "ATTRIBUTES_THAT_NEED_RAF", "TRIGGER_ROOT_MARGIN", "RAF_ROOT_MARGIN", "Core", "triggerRootMargin", "rafRootMargin", "$scrollContainer", "triggeredScrollElements", "RAFScrollElements", "scrollElementsToUpdate", "IOTriggerInstance", "IORafInstance", "console", "error", "$scrollElements", "querySelectorAll", "$scrollElementsArr", "Array", "_subscribeScrollElements", "_unsubscribeAllScrollElements", "removeScrollElements", "$oldContainer", "$scrollElementsToRemove", "index", "indexOf", "splice", "targetScrollElementToUpdate", "targetScrollElement", "_unsubscribeElementUpdate", "scrollElementItem", "addScrollElements", "$newContainer", "ids", "fromIndex", "toObserve", "_checkRafNeeded", "scrollElementInstance", "_subscribeElementUpdate", "bind", "scrollElementToUpdate", "attributesThatNeedRaf", "removeAttribute", "attributeToRemove", "attribute", "map", "test", "join", "RO", "resizeElements", "resizeCallback", "$resizeElements", "isFirstObserve", "_this$resizeCallback", "ResizeObserver", "$resizeElement", "defaultLenisOptions", "wrapper", "content", "document", "documentElement", "lerp", "duration", "orientation", "gestureOrientation", "smoothWheel", "smoothTouch", "wheelMultiplier", "touchMultiplier", "normalizeWheel", "easing", "t", "pow", "LocomotiveScroll", "lenisOptions", "autoResize", "autoStart", "scrollCallback", "initCustomTicker", "destroyCustomTicker", "rafPlaying", "lenisInstance", "coreInstance", "rafInstance", "ROInstance", "_onRenderBind", "_onResizeBind", "_onScrollToBind", "_extends", "assign", "_onRender", "_onScrollTo", "_onResize", "_this$lenisInstance", "Lenis", "on", "setAttribute", "options", "requestAnimationFrame", "rootElement", "_bindEvents", "warn", "stop", "_unbindEvents", "_bindScrollToEvents", "body", "addEventListener", "_unbindScrollToEvents", "removeEventListener", "$container", "$rootContainer", "$scrollToElements", "_this$coreInstance", "scroll", "_this$lenisInstance2", "_this$coreInstance2", "raf", "Date", "now", "isSmooth", "event", "_event$currentTarget", "preventDefault", "$target", "currentTarget", "getAttribute", "scrollTo", "_raf", "cancelAnimationFrame", "_this$coreInstance3", "_this$coreInstance4", "resize", "_this$lenisInstance3", "immediate", "lock", "force", "onComplete", "Scroll_default", "_default", "m", "LocomotiveScroll", "args", "lazyLoadImage", "params", "_b", "_a", "target", "options", "__objRest", "import_svg4everybody", "gridHelper", "__async", "ENV", "gridHelperModule", "globals_default", "svg4everybody", "debounce", "callback", "delay", "immediate", "timeout", "args", "later", "$html", "$body", "app", "main_esm_default", "modules_exports", "event", "$style", "init", "globals_default", "$html", "CSS_CLASS", "resizeEndEvent", "CUSTOM_EVENT", "debounce", "isFontLoadingAPIAvailable", "loadFonts", "FONT", "ENV", "eagerFonts", "font"] + "sources": ["../../../node_modules/svg4everybody/dist/svg4everybody.js", "../../../assets/scripts/utils/grid-helper.js", "../../../node_modules/modujs/dist/main.esm.js", "../../../assets/scripts/modules.js", "../../../assets/scripts/config.js", "../../../assets/scripts/utils/fonts.js", "../../../assets/scripts/modules/Example.js", "../../../node_modules/modularload/dist/main.esm.js", "../../../assets/scripts/utils/html.js", "../../../assets/scripts/utils/image.js", "../../../assets/scripts/modules/Load.js", "../../../node_modules/@studio-freight/lenis/src/maths.js", "../../../node_modules/@studio-freight/lenis/src/animate.js", "../../../node_modules/@studio-freight/lenis/src/debounce.js", "../../../node_modules/@studio-freight/lenis/src/dimensions.js", "../../../node_modules/@studio-freight/lenis/src/nanoevents.js", "../../../node_modules/@studio-freight/lenis/src/virtual-scroll.js", "../../../node_modules/@studio-freight/lenis/src/index.js", "../../../node_modules/locomotive-scroll/src/core/IO.ts", "../../../node_modules/locomotive-scroll/src/utils/maths.ts", "../../../node_modules/locomotive-scroll/src/core/ScrollElement.ts", "../../../node_modules/locomotive-scroll/src/core/Core.ts", "../../../node_modules/locomotive-scroll/src/core/RO.ts", "../../../node_modules/locomotive-scroll/src/index.ts", "../../../assets/scripts/modules/Scroll.js", "../../../assets/scripts/globals.js", "../../../assets/scripts/utils/tickers.js", "../../../assets/scripts/utils/dom.js", "../../../assets/scripts/app.js"], + "sourcesContent": ["!function(root, factory) {\n \"function\" == typeof define && define.amd ? // AMD. Register as an anonymous module unless amdModuleId is set\n define([], function() {\n return root.svg4everybody = factory();\n }) : \"object\" == typeof module && module.exports ? // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory() : root.svg4everybody = factory();\n}(this, function() {\n /*! svg4everybody v2.1.9 | github.com/jonathantneal/svg4everybody */\n function embed(parent, svg, target) {\n // if the target exists\n if (target) {\n // create a document fragment to hold the contents of the target\n var fragment = document.createDocumentFragment(), viewBox = !svg.hasAttribute(\"viewBox\") && target.getAttribute(\"viewBox\");\n // conditionally set the viewBox on the svg\n viewBox && svg.setAttribute(\"viewBox\", viewBox);\n // copy the contents of the clone into the fragment\n for (// clone the target\n var clone = target.cloneNode(!0); clone.childNodes.length; ) {\n fragment.appendChild(clone.firstChild);\n }\n // append the fragment into the svg\n parent.appendChild(fragment);\n }\n }\n function loadreadystatechange(xhr) {\n // listen to changes in the request\n xhr.onreadystatechange = function() {\n // if the request is ready\n if (4 === xhr.readyState) {\n // get the cached html document\n var cachedDocument = xhr._cachedDocument;\n // ensure the cached html document based on the xhr response\n cachedDocument || (cachedDocument = xhr._cachedDocument = document.implementation.createHTMLDocument(\"\"), \n cachedDocument.body.innerHTML = xhr.responseText, xhr._cachedTarget = {}), // clear the xhr embeds list and embed each item\n xhr._embeds.splice(0).map(function(item) {\n // get the cached target\n var target = xhr._cachedTarget[item.id];\n // ensure the cached target\n target || (target = xhr._cachedTarget[item.id] = cachedDocument.getElementById(item.id)), \n // embed the target into the svg\n embed(item.parent, item.svg, target);\n });\n }\n }, // test the ready state change immediately\n xhr.onreadystatechange();\n }\n function svg4everybody(rawopts) {\n function oninterval() {\n // while the index exists in the live collection\n for (// get the cached index\n var index = 0; index < uses.length; ) {\n // get the current \n var use = uses[index], parent = use.parentNode, svg = getSVGAncestor(parent), src = use.getAttribute(\"xlink:href\") || use.getAttribute(\"href\");\n if (!src && opts.attributeName && (src = use.getAttribute(opts.attributeName)), \n svg && src) {\n if (polyfill) {\n if (!opts.validate || opts.validate(src, svg, use)) {\n // remove the element\n parent.removeChild(use);\n // parse the src and get the url and id\n var srcSplit = src.split(\"#\"), url = srcSplit.shift(), id = srcSplit.join(\"#\");\n // if the link is external\n if (url.length) {\n // get the cached xhr request\n var xhr = requests[url];\n // ensure the xhr request exists\n xhr || (xhr = requests[url] = new XMLHttpRequest(), xhr.open(\"GET\", url), xhr.send(), \n xhr._embeds = []), // add the svg and id as an item to the xhr embeds list\n xhr._embeds.push({\n parent: parent,\n svg: svg,\n id: id\n }), // prepare the xhr ready state change event\n loadreadystatechange(xhr);\n } else {\n // embed the local id into the svg\n embed(parent, svg, document.getElementById(id));\n }\n } else {\n // increase the index when the previous value was not \"valid\"\n ++index, ++numberOfSvgUseElementsToBypass;\n }\n }\n } else {\n // increase the index when the previous value was not \"valid\"\n ++index;\n }\n }\n // continue the interval\n (!uses.length || uses.length - numberOfSvgUseElementsToBypass > 0) && requestAnimationFrame(oninterval, 67);\n }\n var polyfill, opts = Object(rawopts), newerIEUA = /\\bTrident\\/[567]\\b|\\bMSIE (?:9|10)\\.0\\b/, webkitUA = /\\bAppleWebKit\\/(\\d+)\\b/, olderEdgeUA = /\\bEdge\\/12\\.(\\d+)\\b/, edgeUA = /\\bEdge\\/.(\\d+)\\b/, inIframe = window.top !== window.self;\n polyfill = \"polyfill\" in opts ? opts.polyfill : newerIEUA.test(navigator.userAgent) || (navigator.userAgent.match(olderEdgeUA) || [])[1] < 10547 || (navigator.userAgent.match(webkitUA) || [])[1] < 537 || edgeUA.test(navigator.userAgent) && inIframe;\n // create xhr requests object\n var requests = {}, requestAnimationFrame = window.requestAnimationFrame || setTimeout, uses = document.getElementsByTagName(\"use\"), numberOfSvgUseElementsToBypass = 0;\n // conditionally start the interval if the polyfill is active\n polyfill && oninterval();\n }\n function getSVGAncestor(node) {\n for (var svg = node; \"svg\" !== svg.nodeName.toLowerCase() && (svg = svg.parentNode); ) {}\n return svg;\n }\n return svg4everybody;\n});", "/**\n * Grid Helper\n *\n * Provides a grid based on the design guidelines and is helpful for web integration.\n *\n * - `Control + g` to toggle the grid\n *\n */\n\n/**\n * @typedef {Object} GridHelperReference\n *\n * @property {string} [gutterCssVar=GRID_HELPER_GUTTER_CSS_VAR] - CSS variable used to define grid gutters.\n * @property {string} [marginCssVar=GRID_HELPER_MARGIN_CSS_VAR] - CSS variable used to define grid margins.\n * @property {string} [rgbaColor=GRID_HELPER_RGBA_COLOR] - RGBA color for the grid appearence.\n */\n\nconst GRID_HELPER_GUTTER_CSS_VAR = '--grid-gutter';\nconst GRID_HELPER_MARGIN_CSS_VAR = '--grid-margin';\nconst GRID_HELPER_RGBA_COLOR = 'rgba(255, 0, 0, .1)';\n\n/**\n * Create a grid helper\n *\n * @param {GridHelperReference}\n *\n */\nfunction gridHelper({\n gutterCssVar = GRID_HELPER_GUTTER_CSS_VAR,\n marginCssVar = GRID_HELPER_MARGIN_CSS_VAR,\n rgbaColor = GRID_HELPER_RGBA_COLOR,\n} = {}) {\n // Set grid container\n const $gridContainer = document.createElement('div');\n document.body.append($gridContainer);\n\n // Set grid appearence\n setGridHelperColumns($gridContainer, rgbaColor);\n setGridHelperStyles($gridContainer, gutterCssVar, marginCssVar);\n\n // Set grid interactivity\n setGridEvents($gridContainer, rgbaColor);\n}\n\n/**\n * Set grid container styles\n *\n * @param {HTMLElement} $container - DOM Element that contains a list of generated columns\n * @param {string} gutterCssVar - CSS variable used to define grid gutters.\n * @param {string} marginCssVar - CSS variable used to define grid margins.\n *\n */\nfunction setGridHelperStyles($container, gutterCssVar, marginCssVar) {\n const elStyles = $container.style;\n elStyles.zIndex = '10000';\n elStyles.position = 'fixed';\n elStyles.top = '0';\n elStyles.left = '0';\n elStyles.display = 'flex';\n elStyles.width = '100%';\n elStyles.height = '100%';\n elStyles.columnGap = `var(${gutterCssVar}, 0)`;\n elStyles.paddingLeft = `var(${marginCssVar}, 0)`;\n elStyles.paddingRight = `var(${marginCssVar}, 0)`;\n elStyles.pointerEvents = 'none';\n elStyles.visibility = 'hidden';\n}\n\n/**\n * Set grid columns\n *\n * @param {HTMLElement} $container - DOM Element that will contain a list of generated columns\n * @param {string} rgbaColor - RGBA color to stylize the generated columns\n *\n */\nfunction setGridHelperColumns($container, rgbaColor) {\n // Clear columns\n $container.innerHTML = '';\n\n // Loop through columns\n const columns = Number(\n window.getComputedStyle($container).getPropertyValue('--grid-columns')\n );\n\n let $col;\n for (var i = 0; i < columns; i++) {\n $col = document.createElement('div');\n $col.style.flex = '1 1 0';\n $col.style.backgroundColor = rgbaColor;\n $container.appendChild($col);\n }\n}\n\n/**\n * Set grid events\n *\n * Resize to rebuild columns\n * Keydown/Keyup to toggle the grid display\n *\n * @param {HTMLElement} $container - DOM Element that contains a list of generated columns\n * @param {string} rgbaColor - RGBA color to stylize the generated columns\n *\n */\nfunction setGridEvents($container, rgbaColor) {\n // Handle resize\n window.addEventListener(\n 'resize',\n setGridHelperColumns($container, rgbaColor)\n );\n\n // Toggle grid\n let ctrlDown = false;\n let isActive = false;\n\n document.addEventListener('keydown', (e) => {\n if (e.key == 'Control') {\n ctrlDown = true;\n } else {\n if (ctrlDown && e.key == 'g') {\n if (isActive) {\n $container.style.visibility = 'hidden';\n } else {\n $container.style.visibility = 'visible';\n }\n\n isActive = !isActive;\n }\n }\n });\n\n document.addEventListener('keyup', (e) => {\n if (e.key == 'Control') {\n ctrlDown = false;\n }\n });\n}\n\nexport { gridHelper };\n", "function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar _default = /*#__PURE__*/function () {\n function _default(options) {\n _classCallCheck(this, _default);\n\n this.mAttr = 'data-' + options.dataName;\n this.mCaptureEvents = ['mouseenter', 'mouseleave'];\n this.el = options.el;\n }\n\n _createClass(_default, [{\n key: \"mInit\",\n value: function mInit(modules) {\n var _this = this;\n\n this.modules = modules;\n this.mCheckEventTarget = this.mCheckEventTarget.bind(this);\n\n if (this.events) {\n Object.keys(this.events).forEach(function (event) {\n return _this.mAddEvent(event);\n });\n }\n }\n }, {\n key: \"mUpdate\",\n value: function mUpdate(modules) {\n this.modules = modules;\n }\n }, {\n key: \"mDestroy\",\n value: function mDestroy() {\n var _this2 = this;\n\n if (this.events) {\n Object.keys(this.events).forEach(function (event) {\n return _this2.mRemoveEvent(event);\n });\n }\n }\n }, {\n key: \"mAddEvent\",\n value: function mAddEvent(event) {\n var capture = this.mCaptureEvents.includes(event) ? true : false;\n this.el.addEventListener(event, this.mCheckEventTarget, capture);\n }\n }, {\n key: \"mRemoveEvent\",\n value: function mRemoveEvent(event) {\n var capture = this.mCaptureEvents.includes(event) ? true : false;\n this.el.removeEventListener(event, this.mCheckEventTarget, capture);\n }\n }, {\n key: \"mCheckEventTarget\",\n value: function mCheckEventTarget(e) {\n var event = this.events[e.type];\n\n if (typeof event === \"string\") {\n this[event](e);\n } else {\n var data = '[' + this.mAttr + ']';\n var target = e.target;\n\n if (this.mCaptureEvents.includes(e.type)) {\n if (target.matches(data)) {\n this.mCallEventMethod(e, event, target);\n }\n } else {\n while (target && target !== document) {\n if (target.matches(data)) {\n if (this.mCallEventMethod(e, event, target) != 'undefined') {\n break;\n }\n }\n\n target = target.parentNode;\n }\n }\n }\n }\n }, {\n key: \"mCallEventMethod\",\n value: function mCallEventMethod(e, event, target) {\n var name = target.getAttribute(this.mAttr);\n\n if (event.hasOwnProperty(name)) {\n var method = event[name];\n\n if (!e.hasOwnProperty('currentTarget')) {\n Object.defineProperty(e, 'currentTarget', {\n value: target\n });\n }\n\n if (!e.hasOwnProperty('curTarget')) {\n Object.defineProperty(e, 'curTarget', {\n value: target\n }); // For IE 11\n }\n\n this[method](e);\n }\n }\n }, {\n key: \"$\",\n value: function $(query, context) {\n var classIndex = query.indexOf('.');\n var idIndex = query.indexOf('#');\n var attrIndex = query.indexOf('[');\n var indexes = [classIndex, idIndex, attrIndex].filter(function (index) {\n return index != -1;\n });\n var index = false;\n var name = query;\n var more = '';\n var parent = this.el;\n\n if (indexes.length) {\n index = Math.min.apply(Math, _toConsumableArray(indexes));\n name = query.slice(0, index);\n more = query.slice(index);\n }\n\n if (_typeof(context) == 'object') {\n parent = context;\n }\n\n return parent.querySelectorAll('[' + this.mAttr + '=' + name + ']' + more);\n }\n }, {\n key: \"parent\",\n value: function parent(query, context) {\n var data = '[' + this.mAttr + '=' + query + ']';\n var parent = context.parentNode;\n\n while (parent && parent !== document) {\n if (parent.matches(data)) {\n return parent;\n }\n\n parent = parent.parentNode;\n }\n }\n }, {\n key: \"getData\",\n value: function getData(name, context) {\n var target = context || this.el;\n return target.getAttribute(this.mAttr + '-' + name);\n }\n }, {\n key: \"setData\",\n value: function setData(name, value, context) {\n var target = context || this.el;\n return target.setAttribute(this.mAttr + '-' + name, value);\n }\n }, {\n key: \"call\",\n value: function call(func, args, mod, id) {\n var _this3 = this;\n\n if (args && !mod) {\n mod = args;\n args = false;\n }\n\n if (this.modules[mod]) {\n if (id) {\n if (this.modules[mod][id]) {\n this.modules[mod][id][func](args);\n }\n } else {\n Object.keys(this.modules[mod]).forEach(function (id) {\n _this3.modules[mod][id][func](args);\n });\n }\n }\n }\n }, {\n key: \"on\",\n value: function on(e, mod, func, id) {\n var _this4 = this;\n\n if (this.modules[mod]) {\n if (id) {\n this.modules[mod][id].el.addEventListener(e, function (o) {\n return func(o);\n });\n } else {\n Object.keys(this.modules[mod]).forEach(function (i) {\n _this4.modules[mod][i].el.addEventListener(e, function (o) {\n return func(o);\n });\n });\n }\n }\n }\n }, {\n key: \"init\",\n value: function init() {}\n }, {\n key: \"destroy\",\n value: function destroy() {}\n }]);\n\n return _default;\n}();\n\nvar _default$1 = /*#__PURE__*/function () {\n function _default(options) {\n _classCallCheck(this, _default);\n\n this.app;\n this.modules = options.modules;\n this.currentModules = {};\n this.activeModules = {};\n this.newModules = {};\n this.moduleId = 0;\n }\n\n _createClass(_default, [{\n key: \"init\",\n value: function init(app, scope) {\n var _this = this;\n\n var container = scope || document;\n var elements = container.querySelectorAll('*');\n\n if (app && !this.app) {\n this.app = app;\n }\n\n this.activeModules['app'] = {\n 'app': this.app\n };\n elements.forEach(function (el) {\n Array.from(el.attributes).forEach(function (i) {\n if (i.name.startsWith('data-module')) {\n var moduleExists = false;\n var dataName = i.name.split('-').splice(2);\n\n var moduleName = _this.toCamel(dataName);\n\n if (_this.modules[moduleName]) {\n moduleExists = true;\n } else if (_this.modules[_this.toUpper(moduleName)]) {\n moduleName = _this.toUpper(moduleName);\n moduleExists = true;\n }\n\n if (moduleExists) {\n var options = {\n el: el,\n name: moduleName,\n dataName: dataName.join('-')\n };\n var module = new _this.modules[moduleName](options);\n var id = i.value;\n\n if (!id) {\n _this.moduleId++;\n id = 'm' + _this.moduleId;\n el.setAttribute(i.name, id);\n }\n\n _this.addActiveModule(moduleName, id, module);\n\n var moduleId = moduleName + '-' + id;\n\n if (scope) {\n _this.newModules[moduleId] = module;\n } else {\n _this.currentModules[moduleId] = module;\n }\n }\n }\n });\n });\n Object.entries(this.currentModules).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n id = _ref2[0],\n module = _ref2[1];\n\n if (scope) {\n var split = id.split('-');\n var moduleName = split.shift();\n var moduleId = split.pop();\n\n _this.addActiveModule(moduleName, moduleId, module);\n } else {\n _this.initModule(module);\n }\n });\n }\n }, {\n key: \"initModule\",\n value: function initModule(module) {\n module.mInit(this.activeModules);\n module.init();\n }\n }, {\n key: \"addActiveModule\",\n value: function addActiveModule(name, id, module) {\n if (this.activeModules[name]) {\n Object.assign(this.activeModules[name], _defineProperty({}, id, module));\n } else {\n this.activeModules[name] = _defineProperty({}, id, module);\n }\n }\n }, {\n key: \"update\",\n value: function update(scope) {\n var _this2 = this;\n\n this.init(this.app, scope);\n Object.entries(this.currentModules).forEach(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n id = _ref4[0],\n module = _ref4[1];\n\n module.mUpdate(_this2.activeModules);\n });\n Object.entries(this.newModules).forEach(function (_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n id = _ref6[0],\n module = _ref6[1];\n\n _this2.initModule(module);\n });\n Object.assign(this.currentModules, this.newModules);\n }\n }, {\n key: \"destroy\",\n value: function destroy(scope) {\n if (scope) {\n this.destroyScope(scope);\n } else {\n this.destroyModules();\n }\n }\n }, {\n key: \"destroyScope\",\n value: function destroyScope(scope) {\n var _this3 = this;\n\n var elements = scope.querySelectorAll('*');\n elements.forEach(function (el) {\n Array.from(el.attributes).forEach(function (i) {\n if (i.name.startsWith('data-module')) {\n var id = i.value;\n var dataName = i.name.split('-').splice(2);\n var moduleName = _this3.toCamel(dataName) + '-' + id;\n var moduleExists = false;\n\n if (_this3.currentModules[moduleName]) {\n moduleExists = true;\n } else if (_this3.currentModules[_this3.toUpper(moduleName)]) {\n moduleName = _this3.toUpper(moduleName);\n moduleExists = true;\n }\n\n if (moduleExists) {\n _this3.destroyModule(_this3.currentModules[moduleName]);\n\n delete _this3.currentModules[moduleName];\n }\n }\n });\n });\n this.activeModules = {};\n this.newModules = {};\n }\n }, {\n key: \"destroyModules\",\n value: function destroyModules() {\n var _this4 = this;\n\n Object.entries(this.currentModules).forEach(function (_ref7) {\n var _ref8 = _slicedToArray(_ref7, 2),\n id = _ref8[0],\n module = _ref8[1];\n\n _this4.destroyModule(module);\n });\n this.currentModules = [];\n }\n }, {\n key: \"destroyModule\",\n value: function destroyModule(module) {\n module.mDestroy();\n module.destroy();\n }\n }, {\n key: \"toCamel\",\n value: function toCamel(arr) {\n var _this5 = this;\n\n return arr.reduce(function (a, b) {\n return a + _this5.toUpper(b);\n });\n }\n }, {\n key: \"toUpper\",\n value: function toUpper(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n }\n }]);\n\n return _default;\n}();\n\nexport default _default$1;\nexport { _default as module };\n", "export {default as Example} from './modules/Example';\nexport {default as Load} from './modules/Load';\nexport {default as Scroll} from './modules/Scroll';\n", "/**\n * > When using the esBuild API, all `process.env.NODE_ENV` expressions\n * > are automatically defined to `\"production\"` if all minification\n * > options are enabled and `\"development\"` otherwise. This only happens\n * > if `process`, `process.env`, and `process.env.NODE_ENV` are not already\n * > defined. This substitution is necessary to avoid code crashing instantly\n * > (since `process` is a Node API, not a web API).\n * > \u2014 https://esbuild.github.io/api/#platform\n */\n\nconst NODE_ENV = process.env.NODE_ENV\nconst IS_DESKTOP = typeof window.orientation === 'undefined'\n\n// Main environment variables\nconst ENV = Object.freeze({\n // Node environment\n NAME: NODE_ENV,\n IS_PROD: NODE_ENV === 'production',\n IS_DEV: NODE_ENV === 'development',\n\n // Device\n IS_DESKTOP,\n IS_MOBILE: !IS_DESKTOP,\n})\n\n// Main CSS classes used within the project\nconst CSS_CLASS = Object.freeze({\n LOADING: 'is-loading',\n LOADED: 'is-loaded',\n READY: 'is-ready',\n FONTS_LOADED: 'fonts-loaded',\n IMAGE: \"c-image\",\n IMAGE_LAZY_LOADED: \"-lazy-loaded\",\n IMAGE_LAZY_LOADING: \"-lazy-loading\",\n IMAGE_LAZY_ERROR: \"-lazy-error\",\n})\n\n// Custom js events\nconst CUSTOM_EVENT = Object.freeze({\n RESIZE_END: 'loco.resizeEnd',\n // ...\n})\n\n// Fonts parameters\nconst FONT = Object.freeze({\n EAGER: [\n { family: 'Source Sans', style: 'normal', weight: 400 },\n { family: 'Source Sans', style: 'normal', weight: 700 },\n ],\n})\n\nexport {\n ENV,\n CSS_CLASS,\n CUSTOM_EVENT,\n FONT,\n}\n", "/**\n * Font Faces\n *\n * Provides utilities to facilitate interactions with the CSS Font Loading API.\n *\n * Features functions to:\n *\n * - Retrieve one or more `FontFace` instances based on a font search query.\n * - Check if a `FontFace` instance matches a font search query.\n * - Eagerly load fonts that match a font search query.\n * - Wait until fonts that match a font search query are loaded.\n *\n * References:\n *\n * - {@link https://developer.mozilla.org/en-US/docs/Web/API/CSS_Font_Loading_API}\n */\n\n/**\n * @typedef {Object} FontFaceReference\n *\n * @property {string} family - The name used to identify the font in our CSS.\n * @property {string} [style] - The style used by the font in our CSS.\n * @property {string} [weight] - The weight used by the font in our CSS.\n */\n\nconst isFontLoadingAPIAvailable = ('fonts' in document);\n\n/**\n * Determines if the given font matches the given `FontFaceReference`.\n *\n * @param {FontFace} font - The font to inspect.\n * @param {FontFaceReference} criterion - The object of property values to match.\n *\n * @returns {boolean}\n */\nfunction conformsToReference(font, criterion)\n{\n for (const [ key, value ] of Object.entries(criterion)) {\n switch (key) {\n case 'family': {\n if (trim(font[key]) !== value) {\n return false;\n }\n break;\n }\n\n case 'weight': {\n /**\n * Note concerning font weights:\n * Loose equality (`==`) is used to compare numeric weights,\n * a number (`400`) and a numeric string (`\"400\"`).\n * Comparison between numeric and keyword values is neglected.\n *\n * @link https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight#common_weight_name_mapping\n */\n if (font[key] != value) {\n return false;\n }\n break;\n }\n\n default: {\n if (font[key] !== value) {\n return false;\n }\n break;\n }\n }\n }\n\n return true;\n}\n\n/**\n * Determines if the given font matches the given font shorthand.\n *\n * @param {FontFace} font - The font to inspect.\n * @param {string} criterion - The font shorthand to match.\n *\n * @returns {boolean}\n */\nfunction conformsToShorthand(font, criterion)\n{\n const family = trim(font.family);\n\n if (trim(family) === criterion) {\n return true;\n }\n\n if (\n criterion.endsWith(trim(family)) && (\n criterion.match(font.weight) ||\n criterion.match(font.style)\n )\n ) {\n return true;\n }\n\n return true;\n}\n\n/**\n * Determines if the given font matches any of the given criteria.\n *\n * @param {FontFace} font - The font to inspect.\n * @param {FontFaceReference[]} criteria - A list of objects with property values to match.\n *\n * @returns {boolean}\n */\nfunction conformsToAnyReference(font, criteria)\n{\n for (const criterion of criteria) {\n if (conformsToReference(font, criterion)) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Returns an iterator of all `FontFace` from `document.fonts` that satisfy\n * the provided `FontFaceReference`.\n *\n * @param {FontFaceReference} font\n *\n * @returns {FontFace[]}\n */\nfunction findManyByReference(search)\n{\n const found = [];\n\n for (const font of document.fonts) {\n if (conformsToReference(font, search)) {\n found.push(font);\n }\n }\n\n return found;\n}\n\n/**\n * Returns an iterator of all `FontFace` from `document.fonts` that satisfy\n * the provided font shorthand.\n *\n * @param {string} font\n *\n * @returns {FontFace[]}\n */\nfunction findManyByShorthand(search)\n{\n const found = [];\n\n for (const font of document.fonts) {\n if (conformsToShorthand(font, search)) {\n found.push(font);\n }\n }\n\n return found;\n}\n\n/**\n * Returns the first `FontFace` from `document.fonts` that satisfies\n * the provided `FontFaceReference`.\n *\n * @param {FontFaceReference} font\n *\n * @returns {?FontFace}\n */\nfunction findOneByReference(search)\n{\n for (const font of document.fonts) {\n if (conformsToReference(font, criterion)) {\n return font;\n }\n }\n\n return null;\n}\n\n/**\n * Returns the first `FontFace` from `document.fonts` that satisfies\n * the provided font shorthand.\n *\n * Examples:\n *\n * - \"Roboto\"\n * - \"italic bold 16px Roboto\"\n *\n * @param {string} font\n *\n * @returns {?FontFace}\n */\nfunction findOneByShorthand(search)\n{\n for (const font of document.fonts) {\n if (conformsToShorthand(font, search)) {\n return font;\n }\n }\n\n return null;\n}\n\n/**\n * Returns a `FontFace` from `document.fonts` that satisfies\n * the provided query.\n *\n * @param {FontFaceReference|string} font - Either:\n * - a `FontFaceReference` object\n * - a font family name\n * - a font specification, for example \"italic bold 16px Roboto\"\n *\n * @returns {?FontFace}\n *\n * @throws {TypeError}\n */\nfunction getAny(search) {\n if (search) {\n switch (typeof search) {\n case 'string':\n return findOneByShorthand(search);\n\n case 'object':\n return findOneByReference(search);\n }\n }\n\n throw new TypeError(\n 'Expected font query to be font shorthand or font reference'\n );\n}\n\n/**\n * Returns an iterator of all `FontFace` from `document.fonts` that satisfy\n * the provided queries.\n *\n * @param {FontFaceReference|string|(FontFaceReference|string)[]} queries\n *\n * @returns {FontFace[]}\n *\n * @throws {TypeError}\n */\nfunction getMany(queries) {\n if (!Array.isArray(queries)) {\n queries = [ queries ];\n }\n\n const found = new Set();\n\n queries.forEach((search) => {\n if (search) {\n switch (typeof search) {\n case 'string':\n found.add(...findManyByShorthand(search));\n return;\n\n case 'object':\n found.add(...findManyByReference(search));\n return;\n }\n }\n\n throw new TypeError(\n 'Expected font query to be font shorthand or font reference'\n );\n })\n\n return [ ...found ];\n}\n\n/**\n * Determines if a font face is registered.\n *\n * @param {FontFace|FontFaceReference|string} search - Either:\n * - a `FontFace` instance\n * - a `FontFaceReference` object\n * - a font family name\n * - a font specification, for example \"italic bold 16px Roboto\"\n *\n * @returns {boolean}\n */\nfunction hasAny(search) {\n if (search instanceof FontFace) {\n return document.fonts.has(search);\n }\n\n return getAny(search) != null;\n}\n\n/**\n * Eagerly load fonts.\n *\n * Most user agents only fetch and load fonts when they are first needed\n * (\"lazy loaded\"), which can result in a perceptible delay.\n *\n * This function will \"eager load\" the fonts.\n *\n * @param {(FontFace|FontFaceReference)[]} fontsToLoad - List of fonts to load.\n * @param {boolean} [debug] - If TRUE, log details to the console.\n *\n * @returns {Promise}\n */\nasync function loadFonts(fontsToLoad, debug = false)\n{\n if ((fontsToLoad.size ?? fontsToLoad.length) === 0) {\n throw new TypeError(\n 'Expected at least one font'\n );\n }\n\n return await loadFontsWithAPI([ ...fontsToLoad ], debug);\n}\n\n/**\n * Eagerly load a font using `FontFaceSet` API.\n *\n * @param {FontFace} font\n *\n * @returns {Promise}\n */\nasync function loadFontFaceWithAPI(font)\n{\n return await (font.status === 'unloaded'\n ? font.load()\n : font.loaded\n ).then((font) => font, (err) => font)\n}\n\n/**\n * Eagerly load fonts using `FontFaceSet` API.\n *\n * @param {FontFaceReference[]} fontsToLoad\n * @param {boolean} [debug]\n *\n * @returns {Promise}\n */\nasync function loadFontsWithAPI(fontsToLoad, debug = false)\n{\n debug && console.group('[loadFonts:API]', fontsToLoad.length, '/', document.fonts.size);\n\n const fontsToBeLoaded = [];\n\n for (const fontToLoad of fontsToLoad) {\n if (fontToLoad instanceof FontFace) {\n if (!document.fonts.has(fontToLoad)) {\n document.fonts.add(fontToLoad);\n }\n\n fontsToBeLoaded.push(\n loadFontFaceWithAPI(fontToLoad)\n );\n } else {\n fontsToBeLoaded.push(\n ...getMany(fontToLoad).map((font) => loadFontFaceWithAPI(font))\n );\n }\n }\n\n debug && console.groupEnd();\n\n return await Promise.all(fontsToBeLoaded);\n}\n\n/**\n * Removes quotes from the the string.\n *\n * When a `@font-face` is declared, the font family is sometimes\n * defined in quotes which end up included in the `FontFace` instance.\n *\n * @param {string} value\n *\n * @returns {string}\n */\nfunction trim(value) {\n return value.replace(/['\"]+/g, '');\n}\n\n/**\n * Returns a Promise that resolves with the specified fonts\n * when they are done loading or failed.\n *\n * @param {FontFaceReference|string|(FontFaceReference|string)[]} queries\n *\n * @returns {Promise}\n */\nasync function whenReady(queries)\n{\n const fonts = getMany(queries);\n\n return await Promise.all(fonts.map((font) => font.loaded));\n}\n\nexport {\n getAny,\n getMany,\n hasAny,\n isFontLoadingAPIAvailable,\n loadFonts,\n whenReady,\n}\n", "import { module } from 'modujs';\nimport { FONT } from '../config';\nimport { whenReady } from '../utils/fonts';\n\nexport default class extends module {\n constructor(m) {\n super(m);\n }\n\n init() {\n whenReady(FONT.EAGER).then((fonts) => this.onFontsLoaded(fonts));\n }\n\n onFontsLoaded(fonts) {\n console.log('Example: Eager Fonts Loaded!', fonts)\n }\n}\n", "function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar _default = /*#__PURE__*/function () {\n function _default(options) {\n _classCallCheck(this, _default);\n\n this.defaults = {\n name: 'load',\n loadingClass: 'is-loading',\n loadedClass: 'is-loaded',\n readyClass: 'is-ready',\n transitionsPrefix: 'is-',\n transitionsHistory: true,\n enterDelay: 0,\n exitDelay: 0,\n loadedDelay: 0,\n isLoaded: false,\n isEntered: false,\n isUrl: false,\n transitionContainer: null,\n popstateIgnore: false\n };\n Object.assign(this, this.defaults, options);\n this.options = options;\n this.namespace = 'modular';\n this.html = document.documentElement;\n this.href = window.location.href;\n this.container = 'data-' + this.name + '-container';\n this.subContainer = false;\n this.prevTransition = null;\n this.loadAttributes = ['src', 'srcset', 'style', 'href'];\n this.isInserted = false;\n this.isLoading = false;\n this.enterTimeout = false;\n this.controller = new AbortController();\n this.classContainer = this.html;\n this.isChrome = navigator.userAgent.indexOf(\"Chrome\") != -1 ? true : false;\n this.init();\n }\n\n _createClass(_default, [{\n key: \"init\",\n value: function init() {\n var _this = this;\n\n window.addEventListener('popstate', function (e) {\n return _this.checkState(e);\n }, false);\n this.html.addEventListener('click', function (e) {\n return _this.checkClick(e);\n }, false);\n this.loadEls(document);\n }\n }, {\n key: \"checkClick\",\n value: function checkClick(e) {\n if (!e.ctrlKey && !e.metaKey) {\n var target = e.target;\n\n while (target && target !== document) {\n if (target.matches('a') && target.getAttribute('download') == null) {\n var href = target.getAttribute('href');\n\n if (!href.startsWith('#') && !href.startsWith('mailto:') && !href.startsWith('tel:')) {\n e.preventDefault();\n this.reset();\n this.getClickOptions(target);\n }\n\n break;\n }\n\n target = target.parentNode;\n }\n }\n }\n }, {\n key: \"checkState\",\n value: function checkState() {\n if (typeof this.popstateIgnore === 'string' && window.location.href.indexOf(this.popstateIgnore) > -1) {\n return;\n }\n\n this.reset();\n this.getStateOptions();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.isLoading) {\n this.controller.abort();\n this.isLoading = false;\n this.controller = new AbortController();\n }\n\n window.clearTimeout(this.enterTimeout);\n\n if (this.isInserted) {\n this.removeContainer();\n }\n\n this.classContainer = this.html;\n Object.assign(this, this.defaults, this.options);\n }\n }, {\n key: \"getClickOptions\",\n value: function getClickOptions(link) {\n this.transition = link.getAttribute('data-' + this.name);\n this.isUrl = link.getAttribute('data-' + this.name + '-url');\n var href = link.getAttribute('href');\n var target = link.getAttribute('target');\n\n if (target == '_blank') {\n window.open(href, '_blank');\n return;\n }\n\n if (this.transition == 'false') {\n window.location = href;\n return;\n }\n\n this.setOptions(href, true);\n }\n }, {\n key: \"getStateOptions\",\n value: function getStateOptions() {\n if (this.transitionsHistory) {\n this.transition = history.state;\n } else {\n this.transition = false;\n }\n\n var href = window.location.href;\n this.setOptions(href);\n }\n }, {\n key: \"goTo\",\n value: function goTo(href, transition, isUrl) {\n this.reset();\n this.transition = transition;\n this.isUrl = isUrl;\n this.setOptions(href, true);\n }\n }, {\n key: \"setOptions\",\n value: function setOptions(href, push) {\n var container = '[' + this.container + ']';\n var oldContainer;\n\n if (this.transition && this.transition != 'true') {\n this.transitionContainer = '[' + this.container + '=\"' + this.transition + '\"]';\n this.loadingClass = this.transitions[this.transition].loadingClass || this.loadingClass;\n this.loadedClass = this.transitions[this.transition].loadedClass || this.loadedClass;\n this.readyClass = this.transitions[this.transition].readyClass || this.readyClass;\n this.transitionsPrefix = this.transitions[this.transition].transitionsPrefix || this.transitionsPrefix;\n this.enterDelay = this.transitions[this.transition].enterDelay || this.enterDelay;\n this.exitDelay = this.transitions[this.transition].exitDelay || this.exitDelay;\n this.loadedDelay = this.transitions[this.transition].loadedDelay || this.loadedDelay;\n oldContainer = document.querySelector(this.transitionContainer);\n }\n\n if (oldContainer) {\n container = this.transitionContainer;\n this.oldContainer = oldContainer;\n this.classContainer = this.oldContainer.parentNode;\n\n if (!this.subContainer) {\n history.replaceState(this.transition, null, this.href);\n }\n\n this.subContainer = true;\n } else {\n this.oldContainer = document.querySelector(container);\n\n if (this.subContainer) {\n history.replaceState(this.prevTransition, null, this.href);\n }\n\n this.subContainer = false;\n }\n\n this.href = href;\n this.parentContainer = this.oldContainer.parentNode;\n\n if (this.isUrl === '' || this.isUrl != null && this.isUrl != 'false' && this.isUrl != false) {\n history.pushState(this.transition, null, href);\n } else {\n this.oldContainer.classList.add('is-old');\n this.setLoading();\n this.startEnterDelay();\n this.loadHref(href, container, push);\n }\n }\n }, {\n key: \"setLoading\",\n value: function setLoading() {\n this.classContainer.classList.remove(this.loadedClass, this.readyClass);\n this.classContainer.classList.add(this.loadingClass);\n this.classContainer.classList.remove(this.transitionsPrefix + this.prevTransition);\n\n if (this.transition) {\n this.classContainer.classList.add(this.transitionsPrefix + this.transition);\n }\n\n if (!this.subContainer) {\n this.prevTransition = this.transition;\n }\n\n var loadingEvent = new Event(this.namespace + 'loading');\n window.dispatchEvent(loadingEvent);\n }\n }, {\n key: \"startEnterDelay\",\n value: function startEnterDelay() {\n var _this2 = this;\n\n this.enterTimeout = window.setTimeout(function () {\n _this2.isEntered = true;\n\n if (_this2.isLoaded) {\n _this2.transitionContainers();\n }\n }, this.enterDelay);\n }\n }, {\n key: \"loadHref\",\n value: function loadHref(href, container, push) {\n var _this3 = this;\n\n this.isLoading = true;\n var signal = this.controller.signal;\n fetch(href, {\n signal: signal\n }).then(function (response) {\n return response.text();\n }).then(function (data) {\n if (push) {\n history.pushState(_this3.transition, null, href);\n }\n\n var parser = new DOMParser();\n _this3.data = parser.parseFromString(data, 'text/html');\n _this3.newContainer = _this3.data.querySelector(container);\n\n _this3.newContainer.classList.add('is-new');\n\n _this3.parentNewContainer = _this3.newContainer.parentNode;\n\n _this3.hideContainer();\n\n _this3.parentContainer.insertBefore(_this3.newContainer, _this3.oldContainer);\n\n _this3.isInserted = true;\n\n _this3.setSvgs();\n\n _this3.isLoaded = true;\n\n if (_this3.isEntered) {\n _this3.transitionContainers();\n }\n\n _this3.loadEls(_this3.newContainer);\n\n _this3.isLoading = false;\n })[\"catch\"](function (err) {\n window.location = href;\n });\n }\n }, {\n key: \"transitionContainers\",\n value: function transitionContainers() {\n var _this4 = this;\n\n this.setAttributes();\n this.showContainer();\n this.setLoaded();\n setTimeout(function () {\n _this4.removeContainer();\n\n _this4.setReady();\n }, this.exitDelay);\n }\n }, {\n key: \"setSvgs\",\n value: function setSvgs() {\n if (this.isChrome) {\n var svgs = this.newContainer.querySelectorAll('use');\n\n if (svgs.length) {\n svgs.forEach(function (svg) {\n var xhref = svg.getAttribute('xlink:href');\n\n if (xhref) {\n svg.parentNode.innerHTML = '';\n } else {\n var href = svg.getAttribute('href');\n if (href) svg.parentNode.innerHTML = '';\n }\n });\n }\n }\n }\n }, {\n key: \"setAttributes\",\n value: function setAttributes() {\n var _this5 = this;\n\n var title = this.data.getElementsByTagName('title')[0];\n var newDesc = this.data.head.querySelector('meta[name=\"description\"]');\n var oldDesc = document.head.querySelector('meta[name=\"description\"]');\n var container;\n var newContainer;\n\n if (this.subContainer) {\n newContainer = this.parentNewContainer;\n container = document.querySelector(this.transitionContainer).parentNode;\n } else {\n newContainer = this.data.querySelector('html');\n container = document.querySelector('html');\n }\n\n var datas = Object.assign({}, newContainer.dataset);\n if (title) document.title = title.innerText;\n if (oldDesc && newDesc) oldDesc.setAttribute('content', newDesc.getAttribute('content'));\n\n if (datas) {\n Object.entries(datas).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n val = _ref2[1];\n\n container.setAttribute('data-' + _this5.toDash(key), val);\n });\n }\n }\n }, {\n key: \"toDash\",\n value: function toDash(str) {\n return str.split(/(?=[A-Z])/).join('-').toLowerCase();\n }\n }, {\n key: \"hideContainer\",\n value: function hideContainer() {\n this.newContainer.style.visibility = 'hidden';\n this.newContainer.style.height = 0;\n this.newContainer.style.overflow = 'hidden';\n }\n }, {\n key: \"showContainer\",\n value: function showContainer() {\n this.newContainer.style.visibility = '';\n this.newContainer.style.height = '';\n this.newContainer.style.overflow = '';\n }\n }, {\n key: \"loadEls\",\n value: function loadEls(container) {\n var _this6 = this;\n\n var promises = [];\n this.loadAttributes.forEach(function (attr) {\n var data = 'data-' + _this6.name + '-' + attr;\n var els = container.querySelectorAll('[' + data + ']');\n\n if (els.length) {\n els.forEach(function (el) {\n var elData = el.getAttribute(data);\n el.setAttribute(attr, elData);\n\n if (attr == 'src' || attr == 'srcset') {\n var promise = new Promise(function (resolve) {\n el.onload = function () {\n return resolve(el);\n };\n });\n promises.push(promise);\n }\n });\n }\n });\n Promise.all(promises).then(function (val) {\n var imagesEvent = new Event(_this6.namespace + 'images');\n window.dispatchEvent(imagesEvent);\n });\n }\n }, {\n key: \"setLoaded\",\n value: function setLoaded() {\n var _this7 = this;\n\n this.classContainer.classList.remove(this.loadingClass);\n setTimeout(function () {\n _this7.classContainer.classList.add(_this7.loadedClass);\n }, this.loadedDelay);\n var loadedEvent = new Event(this.namespace + 'loaded');\n window.dispatchEvent(loadedEvent);\n }\n }, {\n key: \"removeContainer\",\n value: function removeContainer() {\n this.parentContainer.removeChild(this.oldContainer);\n this.newContainer.classList.remove('is-new');\n this.isInserted = false;\n }\n }, {\n key: \"setReady\",\n value: function setReady() {\n this.classContainer.classList.add(this.readyClass);\n var readyEvent = new Event(this.namespace + 'ready');\n window.dispatchEvent(readyEvent);\n }\n }, {\n key: \"on\",\n value: function on(event, func) {\n var _this8 = this;\n\n window.addEventListener(this.namespace + event, function () {\n switch (event) {\n case 'loading':\n return func(_this8.transition, _this8.oldContainer);\n\n case 'loaded':\n return func(_this8.transition, _this8.oldContainer, _this8.newContainer);\n\n case 'ready':\n return func(_this8.transition, _this8.newContainer);\n\n default:\n return func();\n }\n }, false);\n }\n }]);\n\n return _default;\n}();\n\nexport default _default;\n", "/**\n * Escape HTML string\n * @param {string} str - string to escape\n * @return {string} escaped string\n */\n\nconst escapeHtml = (str) =>\n str.replace(\n /[&<>'\"]/g,\n (tag) =>\n ({\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n \"'\": \"'\",\n '\"': \""\",\n }[tag])\n );\n\n/**\n * Unescape HTML string\n * @param {string} str - string to unescape\n * @return {string} unescaped string\n */\n\nconst unescapeHtml = (str) =>\n str\n .replace(\"&\", \"&\")\n .replace(\"<\", \"<\")\n .replace(\">\", \">\")\n .replace(\"'\", \"'\")\n .replace(\""\", '\"');\n\n/**\n * Get element data attributes\n * @param {HTMLElement} node - node element\n * @return {array} node data\n */\n\nconst getNodeData = (node) => {\n // All attributes\n const attributes = node.attributes;\n\n // Regex Pattern\n const pattern = /^data\\-(.+)$/;\n\n // Output\n const data = {};\n\n for (let i in attributes) {\n if (!attributes[i]) {\n continue;\n }\n\n // Attributes name (ex: data-module)\n let name = attributes[i].name;\n\n // This happens.\n if (!name) {\n continue;\n }\n\n let match = name.match(pattern);\n if (!match) {\n continue;\n }\n\n // If this throws an error, you have some\n // serious problems in your HTML.\n data[match[1]] = getData(node.getAttribute(name));\n }\n\n return data;\n};\n\n/**\n * Parse value to data type.\n *\n * @link https://github.com/jquery/jquery/blob/3.1.1/src/data.js\n * @param {string} data - value to convert\n * @return {mixed} value in its natural data type\n */\n\nconst rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/;\nconst getData = (data) => {\n if (data === \"true\") {\n return true;\n }\n\n if (data === \"false\") {\n return false;\n }\n\n if (data === \"null\") {\n return null;\n }\n\n // Only convert to a number if it doesn't change the string\n if (data === +data + \"\") {\n return +data;\n }\n\n if (rbrace.test(data)) {\n return JSON.parse(data);\n }\n\n return data;\n};\n\n/**\n * Returns an array containing all the parent nodes of the given node\n * @param {HTMLElement} $el - DOM Element\n * @return {array} parent nodes\n */\n\nconst getParents = ($el) => {\n // Set up a parent array\n let parents = [];\n\n // Push each parent element to the array\n for (; $el && $el !== document; $el = $el.parentNode) {\n parents.push($el);\n }\n\n // Return our parent array\n return parents;\n};\n\n// https://gomakethings.com/how-to-get-the-closest-parent-element-with-a-matching-selector-using-vanilla-javascript/\nconst queryClosestParent = ($el, selector) => {\n // Element.matches() polyfill\n if (!Element.prototype.matches) {\n Element.prototype.matches =\n Element.prototype.matchesSelector ||\n Element.prototype.mozMatchesSelector ||\n Element.prototype.msMatchesSelector ||\n Element.prototype.oMatchesSelector ||\n Element.prototype.webkitMatchesSelector ||\n function (s) {\n var matches = (\n this.document || this.ownerDocument\n ).querySelectorAll(s),\n i = matches.length;\n while (--i >= 0 && matches.item(i) !== this) {}\n return i > -1;\n };\n }\n\n // Get the closest matching element\n for (; $el && $el !== document; $el = $el.parentNode) {\n if ($el.matches(selector)) return $el;\n }\n return null;\n};\n\nexport {\n escapeHtml,\n unescapeHtml,\n getNodeData,\n getData,\n getParents,\n queryClosestParent,\n};\n", "import { CSS_CLASS } from '../config'\nimport { queryClosestParent } from './html'\n\n/**\n * Get an image meta data\n *\n * @param {HTMLImageElement} $img - The image element.\n * @return {object} The given image meta data\n */\n\nconst getImageMetadata = $img => ({\n url: $img.src,\n width: $img.naturalWidth,\n height: $img.naturalHeight,\n ratio: $img.naturalWidth / $img.naturalHeight,\n})\n\n\n/**\n * Load the given image.\n *\n * @param {string} url - The URI to lazy load into $el.\n * @param {object} options - An object of options\n * @return {void}\n */\n\nconst loadImage = (url, options = {}) => {\n return new Promise((resolve, reject) => {\n const $img = new Image()\n\n if (options.crossOrigin) {\n $img.crossOrigin = options.crossOrigin\n }\n\n const loadCallback = () => {\n resolve({\n element: $img,\n ...getImageMetadata($img),\n })\n }\n\n if($img.decode) {\n $img.src = url\n $img.decode().then(loadCallback).catch(e => {\n reject(e)\n })\n } else {\n $img.onload = loadCallback\n $img.onerror = (e) => {\n reject(e)\n }\n $img.src = url\n }\n })\n}\n\n\n/**\n * Lazy load the given image.\n *\n * @param {HTMLImageElement} $el - The image element.\n * @param {?string} url - The URI to lazy load into $el.\n * If falsey, the value of the `data-src` attribute on $el will be used as the URI.\n * @param {?function} callback - A function to call when the image is loaded.\n * @return {void}\n */\n\nconst LAZY_LOADED_IMAGES = []\nconst lazyLoadImage = async ($el, url, callback) => {\n let src = url ? url : $el.dataset.src\n\n let loadedImage = LAZY_LOADED_IMAGES.find(image => image.url === src)\n\n if (!loadedImage) {\n loadedImage = await loadImage(src)\n\n if (!loadedImage.url) {\n return\n }\n\n LAZY_LOADED_IMAGES.push(loadedImage)\n }\n\n if($el.src === src) {\n return\n }\n\n if ($el.tagName === 'IMG') {\n $el.src = loadedImage.url\n } else {\n $el.style.backgroundImage = `url(${loadedImage.url})`\n }\n\n requestAnimationFrame(() => {\n let lazyParent = $el.closest(`.${CSS_CLASS.IMAGE}`)\n\n if(lazyParent) {\n lazyParent.classList.add(CSS_CLASS.IMAGE_LAZY_LOADED)\n lazyParent.style.backgroundImage = ''\n }\n\n $el.classList.add(CSS_CLASS.IMAGE_LAZY_LOADED)\n\n callback?.()\n })\n}\n\n/**\n * Lazyload Callbacks\n *\n */\nconst lazyImageLoad = (e) => {\n const $img = e.currentTarget;\n const $parent = queryClosestParent($img, `.${CSS_CLASS.IMAGE}`);\n\n requestAnimationFrame(() => {\n if ($parent) {\n $parent.classList.remove(CSS_CLASS.IMAGE_LAZY_LOADING);\n $parent.classList.add(CSS_CLASS.IMAGE_LAZY_LOADED);\n }\n\n $img.classList.add(CSS_CLASS.IMAGE_LAZY_LOADED);\n });\n};\n\nconst lazyImageError = (e) => {\n const $img = e.currentTarget;\n const $parent = queryClosestParent($img, `.${CSS_CLASS.IMAGE}`);\n\n requestAnimationFrame(() => {\n if ($parent) {\n $parent.classList.remove(CSS_CLASS.IMAGE_LAZY_LOADING);\n $parent.classList.add(CSS_CLASS.IMAGE_LAZY_ERROR);\n }\n });\n};\n\n/* Trigger Lazyload Callbacks */\nconst triggerLazyloadCallbacks = ($lazyImagesArgs) => {\n const $lazyImages = $lazyImagesArgs\n ? $lazyImagesArgs\n : document.querySelectorAll('[loading=\"lazy\"]');\n\n if (\"loading\" in HTMLImageElement.prototype) {\n for (const $img of $lazyImages) {\n const $parent = queryClosestParent(\n $img,\n `.${CSS_CLASS.IMAGE}`\n );\n\n\n if (!$img.complete) {\n if($parent) {\n $parent.classList.add(\n CSS_CLASS.IMAGE_LAZY_LOADING\n );\n }\n\n $img.addEventListener(\"load\", lazyImageLoad, { once: true });\n $img.addEventListener(\"error\", lazyImageError, { once: true });\n } else {\n if (!$img.complete) {\n $parent.classList.add(\n CSS_CLASS.IMAGE_LAZY_LOADED\n );\n }\n }\n }\n } else {\n // if 'loading' supported\n for (const $img of $lazyImages) {\n const $parent = queryClosestParent(\n $img,\n `.${CSS_CLASS.IMAGE}`\n );\n\n if($parent) {\n $parent.classList.add(CSS_CLASS.IMAGE_LAZY_LOADED);\n }\n }\n }\n};\n\n/* Reset Lazyload Callbacks */\nconst resetLazyloadCallbacks = () => {\n if (\"loading\" in HTMLImageElement.prototype) {\n const $lazyImages = document.querySelectorAll('[loading=\"lazy\"]');\n for (const $img of $lazyImages) {\n $img.removeEventListener(\"load\", lazyImageLoad, { once: true });\n $img.removeEventListener(\"error\", lazyImageError, { once: true });\n }\n }\n};\n\n\nexport {\n getImageMetadata,\n loadImage,\n lazyLoadImage,\n triggerLazyloadCallbacks,\n resetLazyloadCallbacks\n}\n", "import { module } from 'modujs';\nimport modularLoad from 'modularload';\nimport { resetLazyloadCallbacks, triggerLazyloadCallbacks } from \"../utils/image\";\n\nexport default class extends module {\n constructor(m) {\n super(m);\n }\n\n init() {\n this.load = new modularLoad({\n enterDelay: 0,\n transitions: {\n customTransition: {}\n }\n });\n\n this.load.on('loaded', (transition, oldContainer, newContainer) => {\n this.call('destroy', oldContainer, 'app');\n this.call('update', newContainer, 'app');\n\n /**\n * Trigger lazyload\n */\n triggerLazyloadCallbacks();\n });\n\n this.load.on(\"loading\", () => {\n /**\n * Remove previous lazyload callbacks\n */\n resetLazyloadCallbacks();\n });\n }\n}\n", "// Clamp a value between a minimum and maximum value\nexport function clamp(min, input, max) {\n return Math.max(min, Math.min(input, max))\n}\n\n// Truncate a floating-point number to a specified number of decimal places\nexport function truncate(value, decimals = 0) {\n return parseFloat(value.toFixed(decimals))\n}\n\n// Linearly interpolate between two values using an amount (0 <= amt <= 1)\nexport function lerp(start, end, amt) {\n return (1 - amt) * start + amt * end\n}\n\n// Calculate the modulo of the dividend and divisor while keeping the result within the same sign as the divisor\nexport function clampedModulo(dividend, divisor) {\n let remainder = dividend % divisor\n\n // If the remainder and divisor have different signs, adjust the remainder\n if ((divisor > 0 && remainder < 0) || (divisor < 0 && remainder > 0)) {\n remainder += divisor\n }\n\n return remainder\n}\n", "import { clamp, lerp } from './maths'\n\n// Animate class to handle value animations with lerping or easing\nexport class Animate {\n // Advance the animation by the given delta time\n advance(deltaTime) {\n if (!this.isRunning) return\n\n let completed = false\n\n if (this.lerp) {\n this.value = lerp(this.value, this.to, this.lerp)\n if (Math.round(this.value) === this.to) {\n this.value = this.to\n completed = true\n }\n } else {\n this.currentTime += deltaTime\n const linearProgress = clamp(0, this.currentTime / this.duration, 1)\n\n completed = linearProgress >= 1\n const easedProgress = completed ? 1 : this.easing(linearProgress)\n this.value = this.from + (this.to - this.from) * easedProgress\n }\n\n // Call the onUpdate callback with the current value and completed status\n this.onUpdate?.(this.value, { completed })\n\n if (completed) {\n this.stop()\n }\n }\n\n // Stop the animation\n stop() {\n this.isRunning = false\n }\n\n // Set up the animation from a starting value to an ending value\n // with optional parameters for lerping, duration, easing, and onUpdate callback\n fromTo(from, to, { lerp = 0.1, duration = 1, easing = (t) => t, onUpdate }) {\n this.from = this.value = from\n this.to = to\n this.lerp = lerp\n this.duration = duration\n this.easing = easing\n this.currentTime = 0\n this.isRunning = true\n\n this.onUpdate = onUpdate\n }\n}\n", "export function debounce(callback, delay) {\n let timer\n return function () {\n let args = arguments\n let context = this\n clearTimeout(timer)\n timer = setTimeout(function () {\n callback.apply(context, args)\n }, delay)\n }\n}\n", "import { debounce } from './debounce'\n\nexport class Dimensions {\n constructor(wrapper, content) {\n this.wrapper = wrapper\n this.content = content\n\n if (this.wrapper === window) {\n window.addEventListener('resize', this.onWindowResize, false)\n this.onWindowResize()\n } else {\n this.wrapperResizeObserver = new ResizeObserver(\n debounce(this.onWrapperResize, 100)\n )\n this.wrapperResizeObserver.observe(this.wrapper)\n this.onWrapperResize()\n }\n\n this.contentResizeObserver = new ResizeObserver(\n debounce(this.onContentResize, 100)\n )\n this.contentResizeObserver.observe(this.content)\n this.onContentResize()\n }\n\n onWindowResize = () => {\n this.width = window.innerWidth\n this.height = window.innerHeight\n }\n\n destroy() {\n window.removeEventListener('resize', this.onWindowResize, false)\n\n this.wrapperResizeObserver?.disconnect()\n this.contentResizeObserver?.disconnect()\n }\n\n onWrapperResize = () => {\n this.width = this.wrapper.clientWidth\n this.height = this.wrapper.clientHeight\n }\n\n onContentResize = () => {\n const element =\n this.wrapper === window ? document.documentElement : this.wrapper\n this.scrollHeight = element.scrollHeight\n this.scrollWidth = element.scrollWidth\n }\n\n get limit() {\n return {\n x: this.scrollWidth - this.width,\n y: this.scrollHeight - this.height,\n }\n }\n}\n", "export let createNanoEvents = () => ({\n events: {},\n\n // Emit an event with the provided arguments\n emit(event, ...args) {\n let callbacks = this.events[event] || []\n for (let i = 0, length = callbacks.length; i < length; i++) {\n callbacks[i](...args)\n }\n },\n\n // Register a callback for the specified event\n on(event, cb) {\n // Add the callback to the event's callback list, or create a new list with the callback\n this.events[event]?.push(cb) || (this.events[event] = [cb])\n\n // Return an unsubscribe function\n return () => {\n this.events[event] = this.events[event]?.filter((i) => cb !== i)\n }\n },\n})\n", "import { clamp } from './maths'\nimport { createNanoEvents } from './nanoevents'\n\nexport class VirtualScroll {\n constructor(\n element,\n { wheelMultiplier = 1, touchMultiplier = 2, normalizeWheel = false }\n ) {\n this.element = element\n this.wheelMultiplier = wheelMultiplier\n this.touchMultiplier = touchMultiplier\n this.normalizeWheel = normalizeWheel\n\n this.touchStart = {\n x: null,\n y: null,\n }\n\n this.emitter = createNanoEvents()\n\n this.element.addEventListener('wheel', this.onWheel, { passive: false })\n this.element.addEventListener('touchstart', this.onTouchStart, {\n passive: false,\n })\n this.element.addEventListener('touchmove', this.onTouchMove, {\n passive: false,\n })\n this.element.addEventListener('touchend', this.onTouchEnd, {\n passive: false,\n })\n }\n\n // Add an event listener for the given event and callback\n on(event, callback) {\n return this.emitter.on(event, callback)\n }\n\n // Remove all event listeners and clean up\n destroy() {\n this.emitter.events = {}\n\n this.element.removeEventListener('wheel', this.onWheel, {\n passive: false,\n })\n this.element.removeEventListener('touchstart', this.onTouchStart, {\n passive: false,\n })\n this.element.removeEventListener('touchmove', this.onTouchMove, {\n passive: false,\n })\n this.element.removeEventListener('touchend', this.onTouchEnd, {\n passive: false,\n })\n }\n\n // Event handler for 'touchstart' event\n onTouchStart = (event) => {\n const { clientX, clientY } = event.targetTouches\n ? event.targetTouches[0]\n : event\n\n this.touchStart.x = clientX\n this.touchStart.y = clientY\n\n this.lastDelta = {\n x: 0,\n y: 0,\n }\n }\n\n // Event handler for 'touchmove' event\n onTouchMove = (event) => {\n const { clientX, clientY } = event.targetTouches\n ? event.targetTouches[0]\n : event\n\n const deltaX = -(clientX - this.touchStart.x) * this.touchMultiplier\n const deltaY = -(clientY - this.touchStart.y) * this.touchMultiplier\n\n this.touchStart.x = clientX\n this.touchStart.y = clientY\n\n this.lastDelta = {\n x: deltaX,\n y: deltaY,\n }\n\n this.emitter.emit('scroll', {\n type: 'touch',\n deltaX,\n deltaY,\n event,\n })\n }\n\n onTouchEnd = (event) => {\n this.emitter.emit('scroll', {\n type: 'touch',\n inertia: true,\n deltaX: this.lastDelta.x,\n deltaY: this.lastDelta.y,\n event,\n })\n }\n\n // Event handler for 'wheel' event\n onWheel = (event) => {\n let { deltaX, deltaY } = event\n\n if (this.normalizeWheel) {\n deltaX = clamp(-100, deltaX, 100)\n deltaY = clamp(-100, deltaY, 100)\n }\n\n deltaX *= this.wheelMultiplier\n deltaY *= this.wheelMultiplier\n\n this.emitter.emit('scroll', { type: 'wheel', deltaX, deltaY, event })\n }\n}\n", "import { version } from '../package.json'\nimport { Animate } from './animate'\nimport { Dimensions } from './dimensions'\nimport { clamp, clampedModulo } from './maths'\nimport { createNanoEvents } from './nanoevents'\nimport { VirtualScroll } from './virtual-scroll'\n\n// Technical explaination\n// - listen to 'wheel' events\n// - prevent 'wheel' event to prevent scroll\n// - normalize wheel delta\n// - add delta to targetScroll\n// - animate scroll to targetScroll (smooth context)\n// - if animation is not running, listen to 'scroll' events (native context)\n\nexport default class Lenis {\n // isScrolling = true when scroll is animating\n // isStopped = true if user should not be able to scroll - enable/disable programatically\n // isSmooth = true if scroll should be animated\n // isLocked = same as isStopped but enabled/disabled when scroll reaches target\n\n /**\n * @typedef {(t: number) => number} EasingFunction\n * @typedef {'vertical' | 'horizontal'} Orientation\n * @typedef {'vertical' | 'horizontal' | 'both'} GestureOrientation\n *\n * @typedef LenisOptions\n * @property {Orientation} [direction]\n * @property {GestureOrientation} [gestureDirection]\n * @property {number} [mouseMultiplier]\n * @property {boolean} [smooth]\n *\n * @property {Window | HTMLElement} [wrapper]\n * @property {HTMLElement} [content]\n * @property {Window | HTMLElement} [wheelEventsTarget]\n * @property {boolean} [smoothWheel]\n * @property {boolean} [smoothTouch]\n * @property {boolean} [syncTouch]\n * @property {number} [syncTouchLerp]\n * @property {number} [touchInertiaMultiplier]\n * @property {number} [duration]\n * @property {EasingFunction} [easing]\n * @property {number} [lerp]\n * @property {boolean} [infinite]\n * @property {Orientation} [orientation]\n * @property {GestureOrientation} [gestureOrientation]\n * @property {number} [touchMultiplier]\n * @property {number} [wheelMultiplier]\n * @property {boolean} [normalizeWheel]\n *\n * @param {LenisOptions}\n */\n constructor({\n //--legacy options--//\n direction,\n gestureDirection,\n mouseMultiplier,\n smooth,\n //--legacy options--//\n wrapper = window,\n content = document.documentElement,\n wheelEventsTarget = wrapper,\n smoothWheel = smooth ?? true,\n smoothTouch = false,\n syncTouch = false,\n syncTouchLerp = 0.1,\n touchInertiaMultiplier = 35,\n duration, // in seconds\n easing = (t) => Math.min(1, 1.001 - Math.pow(2, -10 * t)),\n lerp = duration ? null : 0.1,\n infinite = false,\n orientation = direction ?? 'vertical', // vertical, horizontal\n gestureOrientation = gestureDirection ?? 'vertical', // vertical, horizontal, both\n touchMultiplier = 1,\n wheelMultiplier = mouseMultiplier ?? 1,\n normalizeWheel = false,\n } = {}) {\n // warn about legacy options\n if (direction) {\n console.warn(\n 'Lenis: `direction` option is deprecated, use `orientation` instead'\n )\n }\n if (gestureDirection) {\n console.warn(\n 'Lenis: `gestureDirection` option is deprecated, use `gestureOrientation` instead'\n )\n }\n if (mouseMultiplier) {\n console.warn(\n 'Lenis: `mouseMultiplier` option is deprecated, use `wheelMultiplier` instead'\n )\n }\n if (smooth) {\n console.warn(\n 'Lenis: `smooth` option is deprecated, use `smoothWheel` instead'\n )\n }\n\n window.lenisVersion = version\n\n // if wrapper is html or body, fallback to window\n if (wrapper === document.documentElement || wrapper === document.body) {\n wrapper = window\n }\n\n this.options = {\n wrapper,\n content,\n wheelEventsTarget,\n smoothWheel,\n smoothTouch,\n syncTouch,\n syncTouchLerp,\n touchInertiaMultiplier,\n duration,\n easing,\n lerp,\n infinite,\n gestureOrientation,\n orientation,\n touchMultiplier,\n wheelMultiplier,\n normalizeWheel,\n }\n\n this.dimensions = new Dimensions(wrapper, content)\n this.rootElement.classList.add('lenis')\n\n this.velocity = 0\n this.isStopped = false\n this.isSmooth = smoothWheel || smoothTouch\n this.isScrolling = false\n this.targetScroll = this.animatedScroll = this.actualScroll\n this.animate = new Animate()\n this.emitter = createNanoEvents()\n\n this.options.wrapper.addEventListener('scroll', this.onScroll, {\n passive: false,\n })\n\n this.virtualScroll = new VirtualScroll(wheelEventsTarget, {\n touchMultiplier,\n wheelMultiplier,\n normalizeWheel,\n })\n this.virtualScroll.on('scroll', this.onVirtualScroll)\n }\n\n destroy() {\n this.emitter.events = {}\n\n this.options.wrapper.removeEventListener('scroll', this.onScroll, {\n passive: false,\n })\n\n this.virtualScroll.destroy()\n }\n\n on(event, callback) {\n return this.emitter.on(event, callback)\n }\n\n off(event, callback) {\n this.emitter.events[event] = this.emitter.events[event]?.filter(\n (i) => callback !== i\n )\n }\n\n setScroll(scroll) {\n // apply scroll value immediately\n if (this.isHorizontal) {\n this.rootElement.scrollLeft = scroll\n } else {\n this.rootElement.scrollTop = scroll\n }\n }\n\n onVirtualScroll = ({ type, inertia, deltaX, deltaY, event }) => {\n // keep zoom feature\n if (event.ctrlKey) return\n\n const isTouch = type === 'touch'\n const isWheel = type === 'wheel'\n\n if (\n (this.options.gestureOrientation === 'vertical' && deltaY === 0) || // trackpad previous/next page gesture\n (this.options.gestureOrientation === 'horizontal' && deltaX === 0) ||\n (isTouch &&\n this.options.gestureOrientation === 'vertical' &&\n this.scroll === 0 &&\n !this.options.infinite &&\n deltaY <= 0) // touch pull to refresh\n )\n return\n\n // catch if scrolling on nested scroll elements\n if (\n !!event\n .composedPath()\n .find((node) => node?.hasAttribute?.('data-lenis-prevent'))\n )\n return\n\n if (this.isStopped || this.isLocked) {\n event.preventDefault()\n return\n }\n\n this.isSmooth =\n ((this.options.smoothTouch || this.options.syncTouch) && isTouch) ||\n (this.options.smoothWheel && isWheel)\n\n if (!this.isSmooth) {\n this.isScrolling = false\n this.animate.stop()\n return\n }\n\n event.preventDefault()\n\n let delta = deltaY\n if (this.options.gestureOrientation === 'both') {\n delta = Math.abs(deltaY) > Math.abs(deltaX) ? deltaY : deltaX\n } else if (this.options.gestureOrientation === 'horizontal') {\n delta = deltaX\n }\n\n const syncTouch = isTouch && this.options.syncTouch\n const hasTouchInertia = isTouch && inertia && Math.abs(delta) > 1\n if (hasTouchInertia) {\n delta = this.velocity * this.options.touchInertiaMultiplier\n }\n\n this.scrollTo(this.targetScroll + delta, {\n programmatic: false,\n ...(syncTouch && {\n lerp: hasTouchInertia ? this.syncTouchLerp : 0.4, // should be 1 but had to leave 0.4 for iOS.....\n }),\n })\n }\n\n emit() {\n this.emitter.emit('scroll', this)\n }\n\n onScroll = () => {\n if (!this.isScrolling) {\n const lastScroll = this.animatedScroll\n this.animatedScroll = this.targetScroll = this.actualScroll\n this.velocity = 0\n this.direction = Math.sign(this.animatedScroll - lastScroll)\n this.emit()\n }\n }\n\n reset() {\n this.isLocked = false\n this.isScrolling = false\n this.velocity = 0\n this.animate.stop()\n }\n\n start() {\n this.isStopped = false\n\n this.reset()\n }\n\n stop() {\n this.isStopped = true\n this.animate.stop()\n\n this.reset()\n }\n\n raf(time) {\n const deltaTime = time - (this.time || time)\n this.time = time\n\n this.animate.advance(deltaTime * 0.001)\n }\n\n scrollTo(\n target,\n {\n offset = 0,\n immediate = false,\n lock = false,\n duration = this.options.duration,\n easing = this.options.easing,\n lerp = !duration && this.options.lerp,\n onComplete = null,\n force = false, // scroll even if stopped\n programmatic = true, // called from outside of the class\n } = {}\n ) {\n if (this.isStopped && !force) return\n\n // keywords\n if (['top', 'left', 'start'].includes(target)) {\n target = 0\n } else if (['bottom', 'right', 'end'].includes(target)) {\n target = this.limit\n } else {\n let node\n\n if (typeof target === 'string') {\n // CSS selector\n node = document.querySelector(target)\n } else if (target?.nodeType) {\n // Node element\n node = target\n }\n\n if (node) {\n if (this.options.wrapper !== window) {\n // nested scroll offset correction\n const wrapperRect = this.options.wrapper.getBoundingClientRect()\n offset -= this.isHorizontal ? wrapperRect.left : wrapperRect.top\n }\n\n const rect = node.getBoundingClientRect()\n\n target =\n (this.isHorizontal ? rect.left : rect.top) + this.animatedScroll\n }\n }\n\n if (typeof target !== 'number') return\n\n target += offset\n target = Math.round(target)\n\n if (this.options.infinite) {\n if (programmatic) {\n this.targetScroll = this.animatedScroll = this.scroll\n }\n } else {\n target = clamp(0, target, this.limit)\n }\n\n if (immediate) {\n this.animatedScroll = this.targetScroll = target\n this.setScroll(this.scroll)\n this.reset()\n this.emit()\n onComplete?.()\n return\n }\n\n if (!programmatic) {\n if (target === this.targetScroll) return\n\n this.targetScroll = target\n }\n\n this.animate.fromTo(this.animatedScroll, target, {\n duration,\n easing,\n lerp,\n onUpdate: (value, { completed }) => {\n // started\n if (lock) this.isLocked = true\n this.isScrolling = true\n\n // updated\n this.velocity = value - this.animatedScroll\n this.direction = Math.sign(this.velocity)\n\n this.animatedScroll = value\n this.setScroll(this.scroll)\n\n if (programmatic) {\n // wheel during programmatic should stop it\n this.targetScroll = value\n }\n\n // completed\n if (completed) {\n if (lock) this.isLocked = false\n requestAnimationFrame(() => {\n //avoid double scroll event\n this.isScrolling = false\n })\n this.velocity = 0\n onComplete?.()\n }\n\n this.emit()\n },\n })\n }\n\n get rootElement() {\n return this.options.wrapper === window\n ? this.options.content\n : this.options.wrapper\n }\n\n get limit() {\n return this.isHorizontal ? this.dimensions.limit.x : this.dimensions.limit.y\n }\n\n get isHorizontal() {\n return this.options.orientation === 'horizontal'\n }\n\n get actualScroll() {\n // value browser takes into account\n return this.isHorizontal\n ? this.rootElement.scrollLeft\n : this.rootElement.scrollTop\n }\n\n get scroll() {\n return this.options.infinite\n ? clampedModulo(this.animatedScroll, this.limit)\n : this.animatedScroll\n }\n\n get progress() {\n // avoid progress to be NaN\n return this.limit === 0 ? 1 : this.scroll / this.limit\n }\n\n get isSmooth() {\n return this.__isSmooth\n }\n\n set isSmooth(value) {\n if (this.__isSmooth !== value) {\n this.rootElement.classList.toggle('lenis-smooth', value)\n this.__isSmooth = value\n }\n }\n\n get isScrolling() {\n return this.__isScrolling\n }\n\n set isScrolling(value) {\n if (this.__isScrolling !== value) {\n this.rootElement.classList.toggle('lenis-scrolling', value)\n this.__isScrolling = value\n }\n }\n\n get isStopped() {\n return this.__isStopped\n }\n\n set isStopped(value) {\n if (this.__isStopped !== value) {\n this.rootElement.classList.toggle('lenis-stopped', value)\n this.__isStopped = value\n }\n }\n}\n", "/**\n * Intersection Observer\n *\n * Detecting visibility of an element in the viewport.\n *\n * Features functions to:\n *\n * - Trigger inview/outOfView callbacks\n * - If the element has a requestAnimationFrame dependency, set interactivy status for the ScrollElement Class\n *\n * References:\n *\n * - {@link https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API}\n */\n\nimport { IIOOptions } from '../types';\nimport ScrollElement from './ScrollElement';\n\nexport default class IO {\n public scrollElements: ScrollElement[];\n private rootMargin: string;\n private IORaf: boolean;\n private observer!: IntersectionObserver;\n\n constructor({\n scrollElements,\n rootMargin = '-1px -1px -1px -1px',\n IORaf,\n }: IIOOptions) {\n // Parameters\n this.scrollElements = scrollElements;\n this.rootMargin = rootMargin;\n this.IORaf = IORaf;\n\n // Init\n this._init();\n }\n\n /**\n * Lifecyle - Initialize Intersection Observer.\n *\n * @private\n */\n private _init() {\n // Options\n const observerOptions = {\n rootMargin: this.rootMargin,\n };\n\n // Callback\n const onIntersect = (entries: IntersectionObserverEntry[]) => {\n entries.forEach((entry) => {\n const $targetItem: ScrollElement | undefined =\n this.scrollElements.find(\n (item) => item.$el === entry.target\n );\n\n if (entry.isIntersecting) {\n $targetItem && ($targetItem.isAlreadyIntersected = true);\n this._setInview(entry);\n } else if ($targetItem && $targetItem.isAlreadyIntersected) {\n this._setOutOfView(entry);\n }\n });\n };\n\n // Instance\n this.observer = new IntersectionObserver(onIntersect, observerOptions);\n\n // Observe each default elements\n for (const scrollElement of this.scrollElements) {\n const $scrollElement = scrollElement.$el;\n this.observe($scrollElement);\n }\n }\n\n /**\n * Lifecyle - Destroy Intersection Observer.\n */\n public destroy() {\n this.observer.disconnect();\n }\n\n /**\n * Subscribe element to the Intersection Observer.\n *\n * @param {HTMLElement} $scrollElement - DOM Element to observe.\n */\n public observe($scrollElement: HTMLElement) {\n if (!$scrollElement) {\n return;\n }\n\n this.observer.observe($scrollElement);\n }\n\n /**\n * Unsubscribe element to the Intersection Observer.\n *\n * @param {HTMLElement} $scrollElement - DOM Element to unobserve.\n */\n public unobserve($scrollElement: HTMLElement) {\n if (!$scrollElement) {\n return;\n }\n\n this.observer.unobserve($scrollElement);\n }\n\n /**\n * Find ScrollElementReference instance and trigger inview callbacks.\n *\n * @private\n *\n * @param {IntersectionObserverEntry} entry - DOM Element to observe.\n */\n private _setInview(entry: IntersectionObserverEntry) {\n const scrollElement = this.scrollElements.find(\n (scrollElement) => scrollElement.$el === entry.target\n );\n\n this.IORaf && scrollElement?.setInteractivityOn();\n !this.IORaf && scrollElement?.setInview();\n }\n\n /**\n * Find ScrollElementReference instance and trigger out of view callbacks.\n *\n * @private\n *\n * @param {IntersectionObserverEntry} entry - DOM Element to observe.\n */\n private _setOutOfView(entry: IntersectionObserverEntry) {\n const scrollElement = this.scrollElements.find(\n (scrollElement) => scrollElement.$el === entry.target\n );\n\n this.IORaf && scrollElement?.setInteractivityOff();\n !this.IORaf && scrollElement?.setOutOfView();\n\n // Unobserve if element doesn't have repeat attribute\n if (!scrollElement?.attributes.scrollRepeat && !this.IORaf) {\n this.unobserve(entry.target as HTMLElement);\n }\n }\n}\n", "// https://greensock.com/docs/v3/GSAP/gsap.utils\n\n/**\n * Clamp a value to fit within a specific range (ex: clamp(0, 100, -12) --> 0).\n *\n * @param {number} min - Minimum value expected.\n * @param {number} max - Maximum value expected.\n * @param {number} value - Current value.\n *\n * @returns {number} - Clamped value.\n */\nexport function clamp(min: number, max: number, value: number): number {\n return value < min ? min : value > max ? max : value;\n}\n\n/**\n * Map one range to another (ex: mapRange(-10, 10, 0, 100, 5) --> 75).\n *\n * @param {number} inMin - Current minimum value.\n * @param {number} inMax - Current maximum value.\n * @param {number} outMin - Maximum value expected.\n * @param {number} outMax - Maximum value expected.\n * @param {number} value - Current value.\n *\n * @returns {number} - New value that should be between minimum value expected and maximum value.\n */\nexport function mapRange(\n inMin: number,\n inMax: number,\n outMin: number,\n outMax: number,\n value: number\n): number {\n const inRange = inMax - inMin;\n const outRange = outMax - outMin;\n return outMin + (((value - inMin) / inRange) * outRange || 0);\n}\n\n/**\n * Map a number within a range to a progress between 0 to 1 (ex: normalize(100, 200, 150) --> 0.5).\n *\n * @param {number} min - Current minimum value.\n * @param {number} max - Current maximum value.\n * @param {number} value - Current value.\n *\n * @returns {number} - New value that should be between 0 and 1.\n */\nexport function normalize(min: number, max: number, value: number): number {\n return mapRange(min, max, 0, 1, value);\n}\n\n/**\n * Get closest number from an array.\n *\n * @param {number[]} array - Numbers array.\n * @param {number} target - Reference value.\n *\n * @returns {number} - Closest number.\n */\nexport function closestNumber(array: number[], target: number): number {\n return array.reduce((prev, curr) => {\n return Math.abs(curr - target) < Math.abs(prev - target) ? curr : prev;\n });\n}\n", "/**\n * Scroll Element\n *\n * Give tools to compute element progress in the viewport and triggers callbacks to animate it.\n *\n * Features functions to:\n *\n * - scrollClass - Add a custom class when the element is intersected by the offset\n * - scrollOffset - Determine offsets to intersect the element\n * - scrollPosition - Determine the element positions to consider an element as intersected.\n * - scrollModuleProgress - Send scroll progress to modular module that have a specific method (PROGRESS_MODULAR_METHOD)\n * - scrollCssProgress - Add a specific css variable (PROGRESS_CSS_VAR) that store the scroll progress\n * - scrollEventProgress - Send scroll progress to custom event listeners.\n * - scrollSpeed - Add a scroll multiplicator to create a parallax effect\n * - scrollRepeat - Repeat the option to trigger animation each time the element is intersected\n * - scrollCall - Call a custom event or a modular callback when the element is intersected\n */\n\nimport {\n IModular,\n IScrollElementOptions,\n IScrollElementAttributes,\n IScrollElementIntersection,\n IScrollElementMetrics,\n IProgressModularModules,\n IScrollElementCallbacksValues,\n scrollCallWay,\n scrollCallFrom,\n scrollOrientation,\n} from '../types';\nimport { clamp, closestNumber, normalize, mapRange } from '../utils/maths';\n\n/** Constants */\nconst INVIEW_CLASS = 'is-inview';\nconst PROGRESS_CSS_VAR = '--progress';\nconst PROGRESS_MODULAR_METHOD = 'onScrollProgress';\n\nexport default class ScrollElement {\n public $el: HTMLElement;\n public id: number;\n public needRaf: boolean;\n public attributes: IScrollElementAttributes;\n public scrollOrientation: scrollOrientation;\n public isAlreadyIntersected: boolean;\n\n private intersection: IScrollElementIntersection;\n private metrics: IScrollElementMetrics;\n private currentScroll: number;\n private translateValue: number;\n private progress: number;\n private lastProgress: number | null;\n private modularInstance?: IModular;\n private progressModularModules: IProgressModularModules[];\n private isInview: boolean;\n private isInteractive: boolean;\n private isInFold: boolean;\n private isFirstResize: boolean;\n\n private subscribeElementUpdateFn: (scrollElement: ScrollElement) => void;\n private unsubscribeElementUpdateFn: (scrollElement: ScrollElement) => void;\n\n constructor({\n $el,\n id,\n modularInstance,\n subscribeElementUpdateFn,\n unsubscribeElementUpdateFn,\n needRaf,\n scrollOrientation,\n }: IScrollElementOptions) {\n // Scroll DOM element\n this.$el = $el;\n // Unique ID\n this.id = id;\n // RAF option\n this.needRaf = needRaf;\n // Scroll Direction\n this.scrollOrientation = scrollOrientation;\n // Modular.js\n this.modularInstance = modularInstance;\n // Parent's callbacks\n this.subscribeElementUpdateFn = subscribeElementUpdateFn;\n this.unsubscribeElementUpdateFn = unsubscribeElementUpdateFn;\n\n // Attributes\n this.attributes = {\n scrollClass: this.$el.dataset['scrollClass'] ?? INVIEW_CLASS,\n scrollOffset: this.$el.dataset['scrollOffset'] ?? '0,0',\n scrollPosition: this.$el.dataset['scrollPosition'] ?? 'start,end',\n scrollModuleProgress:\n this.$el.dataset['scrollModuleProgress'] != null,\n scrollCssProgress: this.$el.dataset['scrollCssProgress'] != null,\n scrollEventProgress:\n this.$el.dataset['scrollEventProgress'] ?? null,\n scrollSpeed:\n this.$el.dataset['scrollSpeed'] != null\n ? parseFloat(this.$el.dataset['scrollSpeed'])\n : null,\n scrollRepeat: this.$el.dataset['scrollRepeat'] != null,\n scrollCall: this.$el.dataset['scrollCall'] ?? null,\n scrollCallSelf: this.$el.dataset['scrollCallSelf'] != null,\n scrollIgnoreFold: this.$el.dataset['scrollIgnoreFold'] != null,\n scrollEnableTouchSpeed:\n this.$el.dataset['scrollEnableTouchSpeed'] != null,\n };\n\n // Limits\n this.intersection = {\n start: 0,\n end: 0,\n };\n\n // Metrics\n this.metrics = {\n offsetStart: 0,\n offsetEnd: 0,\n bcr: {} as DOMRect,\n };\n\n // Scroll Values\n this.currentScroll =\n this.scrollOrientation === 'vertical'\n ? window.scrollY\n : window.scrollX;\n\n // Parallax\n this.translateValue = 0;\n\n // Progress\n this.progress = 0;\n this.lastProgress = null;\n this.progressModularModules = [];\n\n // Inview\n this.isInview = false;\n this.isInteractive = false;\n this.isAlreadyIntersected = false;\n this.isInFold = false;\n this.isFirstResize = true;\n\n // Init\n this._init();\n }\n\n /**\n * Lifecyle - Initialize progress tracking.\n *\n * @private\n */\n private _init() {\n if (!this.needRaf) {\n return;\n }\n\n // Prepare modules progress\n if (this.modularInstance && this.attributes.scrollModuleProgress) {\n this._getProgressModularModules();\n }\n\n // First resize to compute all values\n this._resize();\n }\n\n /**\n * Callback - Resize callback\n */\n public onResize({ currentScroll }: IScrollElementCallbacksValues) {\n this.currentScroll = currentScroll;\n this._resize();\n }\n\n /**\n * Callback - RAF callback\n */\n public onRender({ currentScroll, smooth }: IScrollElementCallbacksValues) {\n const wSize =\n this.scrollOrientation === 'vertical'\n ? window.innerHeight\n : window.innerWidth;\n this.currentScroll = currentScroll;\n this._computeProgress();\n\n // Parallax\n if (\n this.attributes.scrollSpeed &&\n !isNaN(this.attributes.scrollSpeed)\n ) {\n // if touch detected or smooth disabled\n if (!this.attributes.scrollEnableTouchSpeed && !smooth) {\n if (this.translateValue) {\n this.$el.style.transform = `translate3d(0, 0, 0)`;\n }\n this.translateValue = 0;\n\n // if mousewheel or smooth enabled\n } else {\n // Check fold condition\n if (this.isInFold) {\n const progress = Math.max(0, this.progress);\n this.translateValue =\n progress * wSize * this.attributes.scrollSpeed * -1;\n } else {\n const progress = mapRange(0, 1, -1, 1, this.progress);\n this.translateValue =\n progress * wSize * this.attributes.scrollSpeed * -1;\n }\n\n this.$el.style.transform =\n this.scrollOrientation === 'vertical'\n ? `translate3d(0, ${this.translateValue}px, 0)`\n : `translate3d(${this.translateValue}px, 0, 0)`;\n }\n }\n }\n\n /**\n * Inview callback\n */\n public setInview() {\n if (this.isInview) {\n return;\n }\n\n this.isInview = true;\n this.$el.classList.add(this.attributes.scrollClass);\n\n const way: scrollCallWay = 'enter';\n const from: scrollCallFrom = this._getScrollCallFrom();\n this.attributes.scrollCall && this._dispatchCall(way, from);\n }\n\n /**\n * Out of view callback\n */\n public setOutOfView() {\n if (!(this.isInview && this.attributes.scrollRepeat)) {\n return;\n }\n\n this.isInview = false;\n this.$el.classList.remove(this.attributes.scrollClass);\n\n const way: scrollCallWay = 'leave';\n const from: scrollCallFrom = this._getScrollCallFrom();\n this.attributes.scrollCall && this._dispatchCall(way, from);\n }\n\n /**\n * Switch interactivity on to subscribe the instance to the RAF\n * and start calculations.\n */\n public setInteractivityOn() {\n if (this.isInteractive) {\n return;\n }\n\n this.isInteractive = true;\n this.subscribeElementUpdateFn(this);\n }\n\n /**\n * Switch interactivity off to unsubscribe the instance to the RAF\n * and stop calculations.\n */\n public setInteractivityOff() {\n if (!this.isInteractive) {\n return;\n }\n\n this.isInteractive = false;\n this.unsubscribeElementUpdateFn(this);\n\n // Force progress to progress limit when the element is out\n this.lastProgress != null &&\n this._computeProgress(closestNumber([0, 1], this.lastProgress));\n }\n\n /**\n * Resize method that compute the element's values.\n *\n * @private\n */\n private _resize() {\n this.metrics.bcr = this.$el.getBoundingClientRect();\n this._computeMetrics();\n this._computeIntersection();\n\n // First resize logic\n if (this.isFirstResize) {\n this.isFirstResize = false;\n // Dispatch default call if the element is in fold.\n if (this.isInFold) {\n this.setInview();\n }\n }\n }\n\n /**\n * Compute element's offsets and determine if the element is in fold.\n *\n * @private\n */\n private _computeMetrics() {\n const { top, left, height, width } = this.metrics.bcr;\n const wSize =\n this.scrollOrientation === 'vertical'\n ? window.innerHeight\n : window.innerWidth;\n const metricsStart = this.scrollOrientation === 'vertical' ? top : left;\n const metricsSize =\n this.scrollOrientation === 'vertical' ? height : width;\n\n this.metrics.offsetStart =\n this.currentScroll + metricsStart - this.translateValue;\n this.metrics.offsetEnd = this.metrics.offsetStart + metricsSize;\n\n if (\n this.metrics.offsetStart < wSize &&\n !this.attributes.scrollIgnoreFold\n ) {\n this.isInFold = true;\n } else {\n this.isInFold = false;\n }\n }\n\n /**\n * Compute intersection values depending on the context.\n *\n * @private\n */\n private _computeIntersection() {\n // Window size\n const wSize =\n this.scrollOrientation === 'vertical'\n ? window.innerHeight\n : window.innerWidth;\n\n // Metrics size\n const metricsSize =\n this.scrollOrientation === 'vertical'\n ? this.metrics.bcr.height\n : this.metrics.bcr.width;\n\n // Offset\n const offset = this.attributes.scrollOffset.split(',');\n const offsetStart = offset[0] != undefined ? offset[0].trim() : '0';\n const offsetEnd = offset[1] != undefined ? offset[1].trim() : '0';\n\n // Positions\n const scrollPosition = this.attributes.scrollPosition.split(',');\n let scrollPositionStart =\n scrollPosition[0] != undefined ? scrollPosition[0].trim() : 'start';\n const scrollPositionEnd =\n scrollPosition[1] != undefined ? scrollPosition[1].trim() : 'end';\n\n // Viewport\n const viewportStart = offsetStart.includes('%')\n ? wSize * parseInt(offsetStart.replace('%', '').trim()) * 0.01\n : parseInt(offsetStart);\n const viewportEnd = offsetEnd.includes('%')\n ? wSize * parseInt(offsetEnd.replace('%', '').trim()) * 0.01\n : parseInt(offsetEnd);\n\n // Fold exception\n if (this.isInFold) {\n scrollPositionStart = 'fold';\n }\n\n // Define Intersection Start\n switch (scrollPositionStart) {\n case 'start':\n this.intersection.start =\n this.metrics.offsetStart - wSize + viewportStart;\n break;\n\n case 'middle':\n this.intersection.start =\n this.metrics.offsetStart -\n wSize +\n viewportStart +\n metricsSize * 0.5;\n break;\n\n case 'end':\n this.intersection.start =\n this.metrics.offsetStart -\n wSize +\n viewportStart +\n metricsSize;\n break;\n\n case 'fold':\n this.intersection.start = 0;\n break;\n\n default:\n this.intersection.start =\n this.metrics.offsetStart - wSize + viewportStart;\n break;\n }\n\n // Define Intersection End\n switch (scrollPositionEnd) {\n case 'start':\n this.intersection.end = this.metrics.offsetStart - viewportEnd;\n break;\n\n case 'middle':\n this.intersection.end =\n this.metrics.offsetStart - viewportEnd + metricsSize * 0.5;\n break;\n\n case 'end':\n this.intersection.end =\n this.metrics.offsetStart - viewportEnd + metricsSize;\n break;\n\n default:\n this.intersection.end =\n this.metrics.offsetStart - viewportEnd + metricsSize;\n break;\n }\n\n // Avoid to have the end < the start intersection >\n if (this.intersection.end <= this.intersection.start) {\n switch (scrollPositionEnd) {\n case 'start':\n this.intersection.end = this.intersection.start + 1;\n break;\n\n case 'middle':\n this.intersection.end =\n this.intersection.start + metricsSize * 0.5;\n break;\n\n case 'end':\n this.intersection.end =\n this.intersection.start + metricsSize;\n break;\n\n default:\n this.intersection.end = this.intersection.start + 1;\n break;\n }\n }\n }\n\n /**\n * Compute the scroll progress of the element depending\n * on its intersection values.\n *\n * @private\n *\n * @param {number} [forcedProgress] - Value to force progress.\n */\n private _computeProgress(forcedProgress?: number) {\n // Progress\n const progress =\n forcedProgress ??\n clamp(\n 0,\n 1,\n normalize(\n this.intersection.start,\n this.intersection.end,\n this.currentScroll\n )\n );\n\n this.progress = progress;\n\n if (progress != this.lastProgress) {\n this.lastProgress = progress;\n\n // Set the element's progress to the css variable\n this.attributes.scrollCssProgress && this._setCssProgress(progress);\n\n // Set the element's progress to the custom event listeners\n this.attributes.scrollEventProgress &&\n this._setCustomEventProgress(progress);\n\n // Set the element's progress to inline modules\n if (this.attributes.scrollModuleProgress) {\n for (const modularModules of this.progressModularModules) {\n this.modularInstance &&\n this.modularInstance.call(\n PROGRESS_MODULAR_METHOD,\n progress,\n modularModules.moduleName,\n modularModules.moduleId\n );\n }\n }\n\n // Logic to trigger the inview/out of view callbacks\n progress > 0 && progress < 1 && this.setInview();\n progress === 0 && this.setOutOfView();\n progress === 1 && this.setOutOfView();\n }\n }\n\n /**\n * Set the element's progress to a specific css variable.\n *\n * @private\n *\n * @param {number} [currentProgress] - Progress value.\n */\n _setCssProgress(currentProgress = 0) {\n this.$el.style.setProperty(\n PROGRESS_CSS_VAR,\n currentProgress.toString()\n );\n }\n\n /**\n * Set the element's progress to the custom event listeners.\n *\n * @private\n *\n * @param {number} [currentProgress] - Progress value.\n */\n _setCustomEventProgress(currentProgress = 0) {\n const customEventName = this.attributes.scrollEventProgress;\n\n if (!customEventName) return;\n\n const customEvent = new CustomEvent(customEventName, {\n detail: {\n target: this.$el,\n progress: currentProgress,\n },\n });\n window.dispatchEvent(customEvent);\n }\n\n /**\n * Get modular modules that can listen the element's progress.\n *\n * @private\n */\n _getProgressModularModules() {\n if (!this.modularInstance) {\n return;\n }\n\n const modulesIdNames = Object.keys(this.$el.dataset).filter((key) =>\n key.includes('module')\n );\n const modules: any[] = Object.entries(this.modularInstance.modules);\n\n if (!modulesIdNames.length) {\n return;\n }\n\n for (const modulesIdName of modulesIdNames) {\n const moduleId = this.$el.dataset[modulesIdName];\n\n if (!moduleId) {\n return;\n }\n\n for (const module of modules) {\n const [moduleName, moduleObj] = module;\n\n if (moduleId in moduleObj) {\n this.progressModularModules.push({\n moduleName,\n moduleId,\n });\n }\n }\n }\n }\n\n /**\n * Function to get scroll call from.\n *\n * @private\n */\n _getScrollCallFrom(): scrollCallFrom {\n const closestIntersectionValue = closestNumber(\n [this.intersection.start, this.intersection.end],\n this.currentScroll\n );\n return this.intersection.start === closestIntersectionValue\n ? 'start'\n : 'end';\n }\n\n /**\n * Function to dispatch a custom event or call a modular callback.\n *\n * @private\n *\n * @param {scrollCallWay} way - Enter or leave.\n * @param {scrollCallFrom} from - Start or end.\n */\n _dispatchCall(way: scrollCallWay, from: scrollCallFrom) {\n const callParameters = this.attributes.scrollCall?.split(',');\n const callSelf = this.attributes?.scrollCallSelf;\n\n if (callParameters && callParameters.length > 1) {\n // Using Modular.js (https://github.com/modularorg/modularjs)\n const [func, moduleName, moduleId] = callParameters;\n let targetModuleId;\n\n // If the module is set on the scroll element\n if (callSelf) {\n targetModuleId = this.$el.dataset[`module${moduleName.trim()}`];\n } else {\n targetModuleId = moduleId;\n }\n\n this.modularInstance &&\n this.modularInstance.call(\n func.trim(),\n {\n target: this.$el,\n way,\n from,\n },\n moduleName.trim(),\n targetModuleId?.trim()\n );\n } else if (callParameters) {\n // Using CustomEvent API (https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent)\n const [customEventName] = callParameters;\n const customEvent = new CustomEvent(customEventName, {\n detail: {\n target: this.$el,\n way,\n from,\n },\n });\n window.dispatchEvent(customEvent);\n }\n }\n}\n", "/**\n * Integrates Lenis with Locomotive's built-in animation system\n */\n\nimport {\n CoreOptions,\n IModular,\n IScrollElementCallbacksValues,\n scrollOrientation,\n} from '../types';\nimport IO from './IO';\nimport ScrollElement from './ScrollElement';\n\n/** Defined attributes that need a requestAnimationFrame */\nconst ATTRIBUTES_THAT_NEED_RAF = [\n 'scrollOffset',\n 'scrollPosition',\n 'scrollModuleProgress',\n 'scrollCssProgress',\n 'scrollEventProgress',\n 'scrollSpeed',\n];\n\n/** Default root margins */\nconst TRIGGER_ROOT_MARGIN = '-1px -1px -1px -1px';\nconst RAF_ROOT_MARGIN = '100% 100% 100% 100%'; // Add 100vh top/bottom && 100vw left/right to use a biggest value with data-scroll-speed\n\nexport default class Core {\n private $scrollContainer!: HTMLElement;\n private modularInstance?: IModular;\n private triggerRootMargin!: string;\n private rafRootMargin!: string;\n private scrollElements!: ScrollElement[];\n private triggeredScrollElements!: ScrollElement[];\n private RAFScrollElements!: ScrollElement[];\n private scrollElementsToUpdate!: ScrollElement[];\n private IOTriggerInstance!: IO;\n private IORafInstance!: IO;\n private scrollOrientation!: scrollOrientation;\n\n constructor({\n $el,\n modularInstance,\n triggerRootMargin,\n rafRootMargin,\n scrollOrientation,\n }: CoreOptions) {\n if (!$el) {\n console.error('Please provide a DOM Element as scrollContainer');\n return;\n }\n\n // Scroll container\n this.$scrollContainer = $el;\n\n // Modular.js\n this.modularInstance = modularInstance;\n\n // Scroll Direction\n this.scrollOrientation = scrollOrientation;\n\n // IO Margins\n this.triggerRootMargin = triggerRootMargin ?? TRIGGER_ROOT_MARGIN;\n this.rafRootMargin = rafRootMargin ?? RAF_ROOT_MARGIN;\n\n // ScrollElements arrays\n this.scrollElements = [];\n this.triggeredScrollElements = [];\n this.RAFScrollElements = [];\n this.scrollElementsToUpdate = [];\n\n\n // Init\n this._init();\n }\n\n /**\n * Lifecyle - Initialize the core.\n *\n * @private\n */\n private _init() {\n const $scrollElements =\n this.$scrollContainer.querySelectorAll('[data-scroll]');\n\n const $scrollElementsArr = Array.from($scrollElements) as HTMLElement[]\n this._subscribeScrollElements($scrollElementsArr);\n\n // Trigger IO\n this.IOTriggerInstance = new IO({\n scrollElements: [...this.triggeredScrollElements],\n rootMargin: this.triggerRootMargin,\n IORaf: false,\n });\n\n // Raf IO\n this.IORafInstance = new IO({\n scrollElements: [...this.RAFScrollElements],\n rootMargin: this.rafRootMargin,\n IORaf: true,\n });\n }\n\n /**\n * Lifecyle - Destroy core.\n */\n public destroy() {\n this.IOTriggerInstance.destroy();\n this.IORafInstance.destroy();\n this._unsubscribeAllScrollElements();\n }\n\n /**\n * Callback - Resize callback.\n */\n onResize({ currentScroll }: IScrollElementCallbacksValues) {\n for (const scrollElement of this.RAFScrollElements) {\n scrollElement.onResize({\n currentScroll,\n } as IScrollElementCallbacksValues);\n }\n }\n\n /**\n * Callback - RAF callback.\n */\n onRender({ currentScroll, smooth }: IScrollElementCallbacksValues) {\n for (const scrollElement of this.scrollElementsToUpdate) {\n scrollElement.onRender({\n currentScroll,\n smooth,\n } as IScrollElementCallbacksValues);\n }\n }\n\n /**\n * Remove items from lists of scroll elements and compute all new values.\n *\n * @param {HTMLElement} $oldContainer - HTMLElement that contains data-scroll elements to unsubscribe\n */\n removeScrollElements($oldContainer: HTMLElement) {\n const $scrollElementsToRemove =\n $oldContainer.querySelectorAll('[data-scroll]');\n\n if (!$scrollElementsToRemove.length) return;\n\n // 1. Remove from IO\n for (let index = 0; index < this.triggeredScrollElements.length; index++) {\n const scrollElement = this.triggeredScrollElements[index];\n const $scrollElementsToRemoveArr = Array.from($scrollElementsToRemove) as HTMLElement []\n if ($scrollElementsToRemoveArr.indexOf(scrollElement.$el) > -1) {\n this.IOTriggerInstance.unobserve(scrollElement.$el);\n this.triggeredScrollElements.splice(index, 1);\n }\n }\n\n for (let index = 0; index < this.RAFScrollElements.length; index++) {\n const scrollElement = this.RAFScrollElements[index];\n const $scrollElementsToRemoveArr = Array.from($scrollElementsToRemove) as HTMLElement []\n if ($scrollElementsToRemoveArr.indexOf(scrollElement.$el) > -1) {\n this.IORafInstance.unobserve(scrollElement.$el);\n this.RAFScrollElements.splice(index, 1);\n }\n }\n\n // 2. Remove from scrollElementsToUpdate[] and scrollElements[]\n $scrollElementsToRemove.forEach(($scrollElement) => {\n const targetScrollElementToUpdate =\n this.scrollElementsToUpdate.find(\n (scrollElement) => scrollElement.$el === $scrollElement\n );\n const targetScrollElement = this.scrollElements.find(\n (scrollElement) => scrollElement.$el === $scrollElement\n );\n\n if (targetScrollElementToUpdate) {\n this._unsubscribeElementUpdate(targetScrollElementToUpdate);\n }\n if (targetScrollElement) {\n this.scrollElements = this.scrollElements.filter(\n (scrollElementItem) =>\n scrollElementItem.id != targetScrollElement.id\n );\n }\n });\n }\n\n /**\n * Add items to lists of scroll elements and compute all new values.\n *\n * @param {HTMLElement} $newContainer - HTMLElement that contains data-scroll elements to subscribe\n */\n addScrollElements($newContainer: HTMLElement) {\n // 3. Rebuild ScrollElements\n const $scrollElements = $newContainer.querySelectorAll('[data-scroll]');\n\n // 4. Get max scrollElement.id\n const ids: number[] = [];\n this.scrollElements.forEach((scrollElement) => {\n ids.push(scrollElement.id);\n });\n const maxID = Math.max(...ids);\n const fromIndex = maxID + 1;\n const $scrollElementsArr = Array.from($scrollElements) as HTMLElement[]\n this._subscribeScrollElements(\n $scrollElementsArr,\n fromIndex,\n true\n );\n }\n\n /**\n * Create a ScrollElement instance for each elements with\n * `data-scroll` attribute.\n *\n * @private\n *\n * @param {HTMLElement[]} $scrollElements - List of elements that need\n * to be regarded.\n */\n _subscribeScrollElements(\n $scrollElements: HTMLElement[],\n fromIndex = 0,\n toObserve = false\n ) {\n // For each scroll element create a ScrollElement instance\n for (let index = 0; index < $scrollElements.length; index++) {\n const $scrollElement = $scrollElements[index];\n const needRaf = this._checkRafNeeded($scrollElement);\n\n const scrollElementInstance = new ScrollElement({\n $el: $scrollElement,\n id: fromIndex + index,\n scrollOrientation: this.scrollOrientation,\n modularInstance: this.modularInstance,\n subscribeElementUpdateFn:\n this._subscribeElementUpdate.bind(this),\n unsubscribeElementUpdateFn:\n this._unsubscribeElementUpdate.bind(this),\n needRaf,\n });\n\n // Push to common array\n this.scrollElements.push(scrollElementInstance);\n\n // Push to specific array\n if (needRaf) {\n this.RAFScrollElements.push(scrollElementInstance);\n\n // Dynamic observe item\n if (toObserve) {\n this.IORafInstance.scrollElements.push(\n scrollElementInstance\n );\n this.IORafInstance.observe(scrollElementInstance.$el);\n }\n } else {\n this.triggeredScrollElements.push(scrollElementInstance);\n\n // Dynamic observe item\n if (toObserve) {\n this.IOTriggerInstance.scrollElements.push(\n scrollElementInstance\n );\n this.IOTriggerInstance.observe(scrollElementInstance.$el);\n }\n }\n }\n }\n\n /**\n * Clear all ScrollElement arrays.\n *\n * @private\n */\n _unsubscribeAllScrollElements() {\n this.scrollElements = [];\n this.RAFScrollElements = [];\n this.triggeredScrollElements = [];\n this.scrollElementsToUpdate = [];\n }\n\n /**\n * Subscribe ScrollElement instance that needs to be updated.\n *\n * @private\n *\n * @param {ScrollElement} scrollElement - ScrollElement instance inview\n * that needs to be updated.\n */\n _subscribeElementUpdate(scrollElement: ScrollElement) {\n this.scrollElementsToUpdate.push(scrollElement);\n }\n\n /**\n * Unscribe ScrollElement instance that doesn't need to be updated.\n *\n * @private\n *\n * @param {ScrollElement} scrollElement - The updated ScrollElement instance\n * out of view now.\n */\n _unsubscribeElementUpdate(scrollElement: ScrollElement) {\n this.scrollElementsToUpdate = this.scrollElementsToUpdate.filter(\n (scrollElementToUpdate) =>\n scrollElementToUpdate.id != scrollElement.id\n );\n }\n\n /**\n * Check if a DOM Element need a requestAnimationFrame to be used.\n *\n * @private\n *\n * @param {HTMLElement} $scrollElement - The element that needs to be checked.\n *\n * @returns {boolean}\n */\n _checkRafNeeded($scrollElement: HTMLElement) {\n let attributesThatNeedRaf = [...ATTRIBUTES_THAT_NEED_RAF];\n\n // Remove utils\n const removeAttribute = (attributeToRemove: string) => {\n attributesThatNeedRaf = attributesThatNeedRaf.filter(\n (attribute) => attribute != attributeToRemove\n );\n };\n\n // 1. Check scroll offset values\n if ($scrollElement.dataset.scrollOffset) {\n const value = $scrollElement.dataset.scrollOffset\n .split(',')\n .map((test) => test.replace('%', '').trim())\n .join(',');\n if (value != '0,0') {\n return true;\n } else {\n removeAttribute('scrollOffset');\n }\n } else {\n removeAttribute('scrollOffset');\n }\n\n // 2. Check scroll position values\n if ($scrollElement.dataset.scrollPosition) {\n const value = $scrollElement.dataset.scrollPosition.trim();\n if (value != 'top,bottom') {\n return true;\n } else {\n removeAttribute('scrollPosition');\n }\n } else {\n removeAttribute('scrollPosition');\n }\n\n // 3. Check scroll speed values\n if (\n $scrollElement.dataset.scrollSpeed &&\n !isNaN(parseFloat($scrollElement.dataset.scrollSpeed))\n ) {\n return true;\n } else {\n removeAttribute('scrollSpeed');\n }\n\n // 4. Check others attributes\n for (const attribute of attributesThatNeedRaf) {\n if (attribute in $scrollElement.dataset) {\n return true;\n }\n }\n\n return false;\n }\n}\n", "/**\n * Resize Observer\n *\n * The Resize Observer API provides a performant mechanism by which code can monitor an element for changes to its size,\n * with notifications being delivered to the observer each time the size changes.\n *\n * Features functions to:\n *\n * - Trigger the resize callback if the specified element's size change.\n *\n * References:\n *\n * - {@link https://developer.mozilla.org/en-US/docs/Web/API/Resize_Observer_API}\n */\n\nimport { IROOptions } from '../types';\n\nexport default class RO {\n private $resizeElements: HTMLElement[];\n private isFirstObserve: boolean;\n private observer!: ResizeObserver;\n private resizeCallback: () => void;\n\n constructor({ resizeElements, resizeCallback = () => {} }: IROOptions) {\n // Parameters\n this.$resizeElements = resizeElements;\n this.resizeCallback = resizeCallback;\n\n // Flags\n this.isFirstObserve = true;\n\n // Init\n this._init();\n }\n\n /**\n * Lifecyle - Initialize Resize Observer.\n *\n * @private\n */\n private _init() {\n // Callback\n const onResize = (entries: ResizeObserverEntry[]) => {\n !this.isFirstObserve && this.resizeCallback?.();\n this.isFirstObserve = false;\n };\n\n // Instance\n this.observer = new ResizeObserver(onResize);\n\n // Observe each default elements\n for (const $resizeElement of this.$resizeElements) {\n this.observer.observe($resizeElement);\n }\n }\n\n /**\n * Lifecyle - Destroy Resize Observer.\n */\n public destroy() {\n this.observer.disconnect();\n }\n}\n", "//@ts-ignore\nimport Lenis from '@studio-freight/lenis';\nimport Core from './core/Core';\nimport RO from './core/RO';\nimport {\n ILenisOptions,\n ILenisScrollToOptions,\n ILenisScrollValues,\n ILocomotiveScrollOptions,\n IModular,\n lenisTargetScrollTo,\n} from './types';\n\n/**\n * @type {ILenisOptions}\n */\nconst defaultLenisOptions: ILenisOptions = {\n wrapper: window,\n content: document.documentElement,\n lerp: 0.1,\n duration: 1.2,\n orientation: 'vertical',\n gestureOrientation: 'vertical',\n smoothWheel: true,\n smoothTouch: false,\n wheelMultiplier: 1,\n touchMultiplier: 2,\n normalizeWheel: true,\n easing: (t) => Math.min(1, 1.001 - Math.pow(2, -10 * t)), // https://www.desmos.com/calculator/brs54l4xou\n};\n\n/**\n * Locomotive Scroll\n *\n * Detection of elements in viewport & smooth scrolling with parallax.\n *\n * Inspired by\n * {@link https://github.com/locomotivemtl/locomotive-scroll locomotive-scroll.js}\n * and built around\n * {@link https://github.com/studio-freight/lenis lenis.js}.\n */\n\nexport default class LocomotiveScroll {\n public rafPlaying: boolean;\n\n private lenisInstance: any;\n private coreInstance: any;\n\n private lenisOptions: ILenisOptions;\n private modularInstance?: IModular;\n private triggerRootMargin?: string;\n private rafRootMargin?: string;\n private rafInstance?: any;\n private autoResize?: boolean;\n private autoStart?: boolean;\n private ROInstance?: RO;\n private scrollCallback?(scrollValues: ILenisScrollValues): void;\n private initCustomTicker?: (render: () => void) => void;\n private destroyCustomTicker?: (render: () => void) => void;\n private _onRenderBind: () => void;\n private _onResizeBind: () => void;\n private _onScrollToBind: (event: MouseEvent) => void;\n\n constructor({\n lenisOptions = {},\n modularInstance,\n triggerRootMargin,\n rafRootMargin,\n autoResize = true,\n autoStart = true,\n scrollCallback = () => {},\n initCustomTicker,\n destroyCustomTicker,\n }: ILocomotiveScrollOptions = {}) {\n // Arguments\n this.lenisOptions = { ...defaultLenisOptions, ...lenisOptions };\n\n Object.assign(this, {\n lenisOptions,\n modularInstance,\n triggerRootMargin,\n rafRootMargin,\n autoResize,\n autoStart,\n scrollCallback,\n initCustomTicker,\n destroyCustomTicker,\n });\n\n // Binding\n this._onRenderBind = this._onRender.bind(this);\n this._onScrollToBind = this._onScrollTo.bind(this);\n this._onResizeBind = this._onResize.bind(this);\n\n // Data\n this.rafPlaying = false;\n\n // Init\n this._init();\n }\n\n /**\n * Lifecyle - Initialize instance.\n *\n * @private\n */\n private _init(): void {\n // Create Lenis instance\n this.lenisInstance = new Lenis({\n wrapper: this.lenisOptions.wrapper,\n content: this.lenisOptions.content,\n lerp: this.lenisOptions.lerp,\n duration: this.lenisOptions.duration,\n orientation: this.lenisOptions.orientation,\n gestureOrientation: this.lenisOptions.gestureOrientation,\n smoothWheel: this.lenisOptions.smoothWheel,\n smoothTouch: this.lenisOptions.smoothTouch,\n wheelMultiplier: this.lenisOptions.wheelMultiplier,\n touchMultiplier: this.lenisOptions.touchMultiplier,\n normalizeWheel: this.lenisOptions.normalizeWheel,\n easing: this.lenisOptions.easing,\n });\n this.lenisInstance?.on('scroll', this.scrollCallback);\n\n // Add scroll direction attribute on body\n document.documentElement.setAttribute(\n 'data-scroll-orientation',\n this.lenisInstance.options.orientation\n );\n\n requestAnimationFrame(() => {\n // Create Core Instance\n this.coreInstance = new Core({\n $el: this.lenisInstance.rootElement,\n modularInstance: this.modularInstance,\n triggerRootMargin: this.triggerRootMargin,\n rafRootMargin: this.rafRootMargin,\n scrollOrientation: this.lenisInstance.options.orientation,\n });\n\n // Bind Events\n this._bindEvents();\n\n // RAF warning\n if (this.initCustomTicker && !this.destroyCustomTicker) {\n console.warn(\n 'initCustomTicker callback is declared, but destroyCustomTicker is not. Please pay attention. It could cause trouble.'\n );\n } else if (!this.initCustomTicker && this.destroyCustomTicker) {\n console.warn(\n 'destroyCustomTicker callback is declared, but initCustomTicker is not. Please pay attention. It could cause trouble.'\n );\n }\n\n // Start RAF\n this.autoStart && this.start();\n });\n }\n\n /**\n * Lifecyle - Destroy instance.\n */\n public destroy(): void {\n // Stop raf\n this.stop();\n // Unbind Events\n this._unbindEvents();\n // Destroy Lenis\n this.lenisInstance.destroy();\n // Destroy Core\n this.coreInstance.destroy();\n }\n\n /**\n * Events - Subscribe events to listen.\n */\n private _bindEvents() {\n this._bindScrollToEvents();\n\n if (this.autoResize) {\n if ('ResizeObserver' in window) {\n this.ROInstance = new RO({\n resizeElements: [document.body],\n resizeCallback: this._onResizeBind,\n });\n } else {\n (window as any).addEventListener('resize', this._onResizeBind);\n }\n }\n }\n\n /**\n * Events - Unsubscribe listened events.\n */\n private _unbindEvents() {\n this._unbindScrollToEvents();\n\n if (this.autoResize) {\n if ('ResizeObserver' in window) {\n this.ROInstance && this.ROInstance.destroy();\n } else {\n (window as any).removeEventListener(\n 'resize',\n this._onResizeBind\n );\n }\n }\n }\n\n /**\n * Events - Subscribe scrollTo events to listen.\n */\n private _bindScrollToEvents($container?: HTMLElement) {\n const $rootContainer = $container\n ? $container\n : this.lenisInstance.rootElement;\n const $scrollToElements =\n $rootContainer?.querySelectorAll('[data-scroll-to]');\n\n $scrollToElements?.length &&\n $scrollToElements.forEach(($el: HTMLElement): void => {\n $el.addEventListener('click', this._onScrollToBind, false);\n });\n }\n\n /**\n * Events - Unsubscribe scrollTo listened events.\n */\n private _unbindScrollToEvents($container?: HTMLElement) {\n const $rootContainer = $container\n ? $container\n : this.lenisInstance.rootElement;\n const $scrollToElements =\n $rootContainer?.querySelectorAll('[data-scroll-to]');\n $scrollToElements?.length &&\n $scrollToElements.forEach(($el: HTMLElement) => {\n $el.removeEventListener('click', this._onScrollToBind, false);\n });\n }\n\n /**\n * Callback - Resize callback.\n */\n private _onResize() {\n // Waiting the next frame to get the new current scroll value return by Lenis\n requestAnimationFrame(() => {\n this.coreInstance?.onResize({\n currentScroll: this.lenisInstance.scroll,\n });\n });\n }\n\n /**\n * Callback - Render callback.\n */\n private _onRender() {\n this.lenisInstance?.raf(Date.now());\n\n this.coreInstance?.onRender({\n currentScroll: this.lenisInstance.scroll,\n smooth: this.lenisInstance.isSmooth,\n });\n }\n\n /**\n * Callback - Scroll To callback.\n */\n private _onScrollTo(event: MouseEvent) {\n event.preventDefault();\n const $target = (event.currentTarget as HTMLElement) ?? null;\n if (!$target) return;\n const target =\n $target.getAttribute('data-scroll-to-href') ||\n $target.getAttribute('href');\n const offset = $target.getAttribute('data-scroll-to-offset') || 0;\n const duration =\n $target.getAttribute('data-scroll-to-duration') ||\n this.lenisOptions.duration ||\n defaultLenisOptions.duration;\n\n target &&\n this.scrollTo(target, {\n offset: typeof offset === 'string' ? parseInt(offset) : offset,\n duration:\n typeof duration === 'string'\n ? parseInt(duration)\n : duration,\n });\n }\n\n /**\n * Start RequestAnimationFrame that active Lenis smooth and scroll progress.\n */\n public start(): void {\n if (this.rafPlaying) {\n return;\n }\n\n this.rafPlaying = true;\n this.initCustomTicker\n ? this.initCustomTicker(this._onRenderBind)\n : this._raf();\n }\n\n /**\n * Stop RequestAnimationFrame that active Lenis smooth and scroll progress.\n */\n public stop(): void {\n if (!this.rafPlaying) {\n return;\n }\n\n this.rafPlaying = false;\n this.destroyCustomTicker\n ? this.destroyCustomTicker(this._onRenderBind)\n : this.rafInstance && cancelAnimationFrame(this.rafInstance);\n }\n\n /**\n * Remove old scroll elements items and rebuild ScrollElements instances.\n */\n public removeScrollElements($oldContainer: HTMLElement): void {\n if (!$oldContainer) {\n console.error('Please provide a DOM Element as $oldContainer');\n return;\n }\n\n this._unbindScrollToEvents($oldContainer);\n this.coreInstance?.removeScrollElements($oldContainer);\n }\n\n /**\n * Add new scroll elements items and rebuild ScrollElements instances.\n */\n public addScrollElements($newContainer: HTMLElement): void {\n if (!$newContainer) {\n console.error('Please provide a DOM Element as $newContainer');\n return;\n }\n\n this.coreInstance?.addScrollElements($newContainer);\n requestAnimationFrame(() => {\n this._bindScrollToEvents($newContainer);\n });\n }\n\n /**\n * Trigger resize callback.\n */\n public resize(): void {\n this._onResizeBind();\n }\n\n /**\n * Trigger scroll to callback.\n */\n public scrollTo(\n target: lenisTargetScrollTo,\n options?: ILenisScrollToOptions\n ): void {\n this.lenisInstance?.scrollTo(target, {\n offset: options?.offset,\n lerp: options?.lerp,\n duration: options?.duration,\n immediate: options?.immediate,\n lock: options?.lock,\n force: options?.force,\n easing: options?.easing,\n onComplete: options?.onComplete,\n });\n }\n\n /**\n * RequestAnimationFrame that active Lenis smooth and scroll progress.\n *\n * @private\n *\n */\n private _raf() {\n this._onRenderBind();\n this.rafInstance = requestAnimationFrame(() => this._raf());\n }\n}\n", "import { module } from 'modujs'\nimport LocomotiveScroll from 'locomotive-scroll'\n\nexport default class extends module {\n constructor(m) {\n super(m);\n }\n\n init() {\n this.scroll = new LocomotiveScroll({\n modularInstance: this,\n })\n\n // // Force scroll to top\n // if (history.scrollRestoration) {\n // history.scrollRestoration = 'manual'\n // window.scrollTo(0, 0)\n // }\n }\n\n scrollTo(params) {\n let { target, ...options } = params\n\n options = Object.assign({\n // Defaults\n duration: 1,\n }, options)\n\n this.scroll?.scrollTo(target, options)\n }\n\n /**\n * Observe new scroll elements\n *\n * @param $newContainer (HTMLElement)\n */\n addScrollElements($newContainer) {\n this.scroll?.addScrollElements($newContainer)\n }\n\n /**\n * Unobserve scroll elements\n *\n * @param $oldContainer (HTMLElement)\n */\n removeScrollElements($oldContainer) {\n this.scroll?.removeScrollElements($oldContainer)\n }\n\n destroy() {\n this.scroll.destroy();\n }\n}\n", "import svg4everybody from 'svg4everybody';\nimport { ENV } from './config';\nimport { triggerLazyloadCallbacks } from './utils/image';\n\n// Dynamic imports for development mode only\nlet gridHelper;\n(async () => {\n if (ENV.IS_DEV) {\n const gridHelperModule = await import('./utils/grid-helper');\n gridHelper = gridHelperModule?.gridHelper;\n }\n})();\n\nexport default function () {\n /**\n * Use external SVG spritemaps\n */\n svg4everybody();\n\n /**\n * Add grid helper\n */\n gridHelper?.();\n\n /**\n * Trigger lazyload\n */\n triggerLazyloadCallbacks();\n}\n", "/**\n * Creates a debounced function.\n *\n * A debounced function delays invoking `callback` until after\n * `delay` milliseconds have elapsed since the last time the\n * debounced function was invoked.\n *\n * Useful for behaviour that should only happen _before_ or\n * _after_ an event has stopped occurring.\n *\n * @template {function} T\n *\n * @param {T} callback - The function to debounce.\n * @param {number} delay - The number of milliseconds to wait.\n * @param {boolean} [immediate] -\n * If `true`, `callback` is invoked before `delay`.\n * If `false`, `callback` is invoked after `delay`.\n * @return {function} The new debounced function.\n */\n\nconst debounce = (callback, delay, immediate = false) => {\n let timeout = null\n\n return (...args) => {\n clearTimeout(timeout)\n\n const later = () => {\n timeout = null\n if (!immediate) {\n callback(...args)\n }\n }\n\n if (immediate && !timeout) {\n callback(...args)\n }\n\n timeout = setTimeout(later, delay)\n }\n}\n\n\n/**\n * Creates a throttled function.\n *\n * A throttled function invokes `callback` at most once per every\n * `delay` milliseconds.\n *\n * Useful for rate-limiting an event that occurs in quick succession.\n *\n * @template {function} T\n *\n * @param {T} callback - The function to throttle.\n * @param {number} delay - The number of milliseconds to wait.\n * @return {function} The new throttled function.\n */\n\nconst throttle = (callback, delay) => {\n let timeout = false\n\n return (...args) => {\n if (!timeout) {\n timeout = true\n\n callback(...args)\n\n setTimeout(() => {\n timeout = false\n }, delay)\n }\n }\n}\n\n\nexport {\n debounce,\n throttle\n}\n", "const $html = document.documentElement\nconst $body = document.body\n\nexport {\n $html,\n $body,\n}\n", "import modular from 'modujs';\nimport * as modules from './modules';\nimport globals from './globals';\nimport { debounce } from './utils/tickers'\nimport { $html } from './utils/dom';\nimport { ENV, FONT, CUSTOM_EVENT, CSS_CLASS } from './config'\nimport { isFontLoadingAPIAvailable, loadFonts } from './utils/fonts';\n\nconst app = new modular({\n modules: modules,\n});\n\nwindow.onload = (event) => {\n const $style = document.getElementById('main-css');\n\n if ($style) {\n if ($style.isLoaded) {\n init();\n } else {\n $style.addEventListener('load', (event) => {\n init();\n });\n }\n } else {\n console.warn('The \"main-css\" stylesheet not found');\n }\n};\n\nfunction init() {\n globals();\n\n app.init(app);\n\n $html.classList.add(CSS_CLASS.LOADED);\n $html.classList.add(CSS_CLASS.READY);\n $html.classList.remove(CSS_CLASS.LOADING);\n\n // Bind window resize event with default vars\n const resizeEndEvent = new CustomEvent(CUSTOM_EVENT.RESIZE_END)\n window.addEventListener('resize', () => {\n $html.style.setProperty('--vw', `${document.documentElement.clientWidth * 0.01}px`)\n debounce(() => {\n window.dispatchEvent(resizeEndEvent)\n }, 200, false)\n })\n\n /**\n * Eagerly load the following fonts.\n */\n if (isFontLoadingAPIAvailable) {\n loadFonts(FONT.EAGER, ENV.IS_DEV).then((eagerFonts) => {\n $html.classList.add(CSS_CLASS.FONTS_LOADED);\n\n if (ENV.IS_DEV) {\n console.group('Eager fonts loaded!', eagerFonts.length, '/', document.fonts.size);\n console.group('State of eager fonts:')\n eagerFonts.forEach((font) => console.log(font.family, font.style, font.weight, font.status/*, font*/))\n console.groupEnd()\n console.group('State of all fonts:')\n document.fonts.forEach((font) => console.log(font.family, font.style, font.weight, font.status/*, font*/))\n console.groupEnd()\n }\n });\n }\n}\n"], + "mappings": "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", + "names": ["svg4everybody", "requestAnimationFrame", "i", "e", "obj", "i", "o", "n", "_default", "e", "index", "parent", "id", "init", "app", "criterion", "font", "_classCallCheck", "_defineProperties", "i", "_createClass", "_slicedToArray", "_arrayWithHoles", "_iterableToArrayLimit", "_unsupportedIterableToArray", "_nonIterableRest", "o", "_arrayLikeToArray", "n", "_default", "init", "e", "main_esm_default", "s", "i", "e", "main_esm_default", "clamp", "min", "input", "max", "Math", "Animate", "advance", "deltaTime", "_this$onUpdate", "this", "isRunning", "completed", "lerp", "value", "amt", "to", "round", "currentTime", "linearProgress", "duration", "easedProgress", "easing", "from", "onUpdate", "call", "stop", "fromTo", "t", "debounce", "callback", "delay", "timer", "args", "arguments", "context", "clearTimeout", "setTimeout", "apply", "Dimensions", "constructor", "wrapper", "content", "onWindowResize", "width", "window", "innerWidth", "height", "innerHeight", "onWrapperResize", "clientWidth", "clientHeight", "onContentResize", "element", "document", "documentElement", "scrollHeight", "scrollWidth", "addEventListener", "wrapperResizeObserver", "ResizeObserver", "observe", "contentResizeObserver", "destroy", "_this$wrapperResizeOb", "_this$contentResizeOb", "removeEventListener", "disconnect", "limit", "x", "y", "createNanoEvents", "events", "emit", "event", "callbacks", "i", "length", "on", "cb", "_this$events$event", "push", "_this$events$event2", "filter", "VirtualScroll", "wheelMultiplier", "touchMultiplier", "normalizeWheel", "onTouchStart", "clientX", "clientY", "targetTouches", "touchStart", "lastDelta", "onTouchMove", "deltaX", "deltaY", "emitter", "type", "onTouchEnd", "inertia", "onWheel", "passive", "Lenis", "direction", "gestureDirection", "mouseMultiplier", "smooth", "wheelEventsTarget", "smoothWheel", "smoothTouch", "syncTouch", "syncTouchLerp", "touchInertiaMultiplier", "pow", "infinite", "orientation", "gestureOrientation", "onVirtualScroll", "ctrlKey", "isTouch", "isWheel", "options", "scroll", "composedPath", "find", "node", "hasAttribute", "isStopped", "isLocked", "preventDefault", "isSmooth", "isScrolling", "animate", "delta", "abs", "hasTouchInertia", "velocity", "scrollTo", "targetScroll", "_extends", "programmatic", "onScroll", "lastScroll", "animatedScroll", "actualScroll", "sign", "console", "warn", "lenisVersion", "body", "dimensions", "rootElement", "classList", "add", "virtualScroll", "off", "_this$emitter$events$", "setScroll", "isHorizontal", "scrollLeft", "scrollTop", "reset", "start", "raf", "time", "target", "offset", "immediate", "lock", "onComplete", "force", "includes", "_target", "querySelector", "nodeType", "wrapperRect", "getBoundingClientRect", "left", "top", "rect", "requestAnimationFrame", "dividend", "divisor", "remainder", "progress", "__isSmooth", "toggle", "__isScrolling", "__isStopped", "IO", "constructor", "scrollElements", "rootMargin", "IORaf", "observer", "_init", "observerOptions", "onIntersect", "entries", "forEach", "entry", "$targetItem", "find", "item", "$el", "target", "isIntersecting", "isAlreadyIntersected", "_setInview", "_setOutOfView", "IntersectionObserver", "scrollElement", "$scrollElement", "observe", "destroy", "disconnect", "unobserve", "setInteractivityOn", "setInview", "setInteractivityOff", "setOutOfView", "attributes", "scrollRepeat", "clamp", "min", "max", "value", "mapRange", "inMin", "inMax", "outMin", "outMax", "inRange", "outRange", "normalize", "closestNumber", "array", "reduce", "prev", "curr", "Math", "abs", "INVIEW_CLASS", "PROGRESS_CSS_VAR", "PROGRESS_MODULAR_METHOD", "ScrollElement", "id", "modularInstance", "subscribeElementUpdateFn", "unsubscribeElementUpdateFn", "needRaf", "scrollOrientation", "_this$$el$dataset$scr", "_this$$el$dataset$scr2", "_this$$el$dataset$scr3", "_this$$el$dataset$scr4", "_this$$el$dataset$scr5", "intersection", "metrics", "currentScroll", "translateValue", "progress", "lastProgress", "progressModularModules", "isInview", "isInteractive", "isInFold", "isFirstResize", "scrollClass", "dataset", "scrollOffset", "scrollPosition", "scrollModuleProgress", "scrollCssProgress", "scrollEventProgress", "scrollSpeed", "parseFloat", "scrollCall", "scrollCallSelf", "scrollIgnoreFold", "scrollEnableTouchSpeed", "start", "end", "offsetStart", "offsetEnd", "bcr", "window", "scrollY", "scrollX", "_getProgressModularModules", "_resize", "onResize", "onRender", "smooth", "wSize", "innerHeight", "innerWidth", "_computeProgress", "isNaN", "style", "transform", "classList", "add", "way", "from", "_getScrollCallFrom", "_dispatchCall", "remove", "getBoundingClientRect", "_computeMetrics", "_computeIntersection", "top", "left", "height", "width", "metricsStart", "metricsSize", "offset", "split", "undefined", "trim", "scrollPositionStart", "scrollPositionEnd", "viewportStart", "includes", "parseInt", "replace", "viewportEnd", "forcedProgress", "_setCssProgress", "_setCustomEventProgress", "modularModules", "call", "moduleName", "moduleId", "currentProgress", "setProperty", "toString", "customEventName", "customEvent", "CustomEvent", "detail", "dispatchEvent", "modulesIdNames", "Object", "keys", "filter", "key", "modules", "length", "modulesIdName", "module", "moduleObj", "push", "closestIntersectionValue", "_this$attributes$scro", "_this$attributes", "callParameters", "callSelf", "_targetModuleId", "func", "targetModuleId", "ATTRIBUTES_THAT_NEED_RAF", "TRIGGER_ROOT_MARGIN", "RAF_ROOT_MARGIN", "Core", "triggerRootMargin", "rafRootMargin", "$scrollContainer", "triggeredScrollElements", "RAFScrollElements", "scrollElementsToUpdate", "IOTriggerInstance", "IORafInstance", "console", "error", "$scrollElements", "querySelectorAll", "$scrollElementsArr", "Array", "_subscribeScrollElements", "_unsubscribeAllScrollElements", "removeScrollElements", "$oldContainer", "$scrollElementsToRemove", "index", "$scrollElementsToRemoveArr", "indexOf", "splice", "targetScrollElementToUpdate", "targetScrollElement", "_unsubscribeElementUpdate", "scrollElementItem", "addScrollElements", "$newContainer", "ids", "maxID", "fromIndex", "toObserve", "_checkRafNeeded", "scrollElementInstance", "_subscribeElementUpdate", "bind", "scrollElementToUpdate", "attributesThatNeedRaf", "removeAttribute", "attributeToRemove", "attribute", "map", "test", "join", "RO", "resizeElements", "resizeCallback", "$resizeElements", "isFirstObserve", "_this$resizeCallback", "ResizeObserver", "$resizeElement", "defaultLenisOptions", "wrapper", "content", "document", "documentElement", "lerp", "duration", "orientation", "gestureOrientation", "smoothWheel", "smoothTouch", "wheelMultiplier", "touchMultiplier", "normalizeWheel", "easing", "t", "pow", "LocomotiveScroll", "lenisOptions", "autoResize", "autoStart", "scrollCallback", "initCustomTicker", "destroyCustomTicker", "rafPlaying", "lenisInstance", "coreInstance", "rafInstance", "ROInstance", "_onRenderBind", "_onResizeBind", "_onScrollToBind", "_extends", "assign", "_onRender", "_onScrollTo", "_onResize", "_this$lenisInstance", "Lenis", "on", "setAttribute", "options", "requestAnimationFrame", "rootElement", "_bindEvents", "warn", "stop", "_unbindEvents", "_bindScrollToEvents", "body", "addEventListener", "_unbindScrollToEvents", "removeEventListener", "$container", "$rootContainer", "$scrollToElements", "_this$coreInstance", "scroll", "_this$lenisInstance2", "_this$coreInstance2", "raf", "Date", "now", "isSmooth", "event", "_event$currentTarget", "preventDefault", "$target", "currentTarget", "getAttribute", "scrollTo", "_raf", "cancelAnimationFrame", "_this$coreInstance3", "_this$coreInstance4", "resize", "_this$lenisInstance3", "immediate", "lock", "force", "onComplete", "gridHelper", "svg4everybody", "event"] } diff --git a/www/assets/styles/main.css b/www/assets/styles/main.css index cbe81038..0fc31bdf 100644 --- a/www/assets/styles/main.css +++ b/www/assets/styles/main.css @@ -1 +1,1002 @@ -:root{--grid-columns: 4;--grid-gutter: 0.625rem;--grid-gutter-half: calc(0.5 * var(--grid-gutter));--grid-margin: 0.625rem;--container-width: calc(100% - 2 * var(--grid-margin));--font-size-h1: clamp(36px, 0.0514285714 * calc(100 * var(--vw, 1vw)), 72px);--font-size-h2: 1.75rem;--font-size-h3: 1.5rem;--font-size-h4: 1.25rem;--font-size-h5: 1.125rem;--font-size-h6: 1rem}@media(min-width: 700px){:root{--grid-columns: 12;--grid-gutter: 1rem;--grid-margin: 1.25rem}}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html{box-sizing:border-box}template,[hidden]{display:none}*,:before,:after{box-sizing:inherit}address{font-style:inherit}dfn,cite,em,i{font-style:italic}b,strong{font-weight:700}a{text-decoration:none}a svg{pointer-events:none}ul,ol{margin:0;padding:0;list-style:none}p,figure{margin:0;padding:0}h1,h2,h3,h4,h5,h6{margin:0}a,area,button,input,label,select,textarea,[tabindex]{touch-action:manipulation}[hreflang]>abbr[title]{text-decoration:none}table{border-spacing:0;border-collapse:collapse}hr{display:block;margin:1em 0;padding:0;height:1px;border:0;border-top:1px solid #ccc}audio,canvas,iframe,img,svg,video{vertical-align:middle}audio:not([controls]){display:none;height:0}img,svg{max-width:100%;height:auto}img[width],img[height],svg[width],svg[height]{max-width:none}img{font-style:italic}svg{fill:currentColor}input,select,textarea{display:block;margin:0;padding:0;width:100%;outline:0;border:0;border-radius:0;background:none rgba(0,0,0,0);color:inherit;font:inherit;line-height:normal;-webkit-appearance:none;-moz-appearance:none;appearance:none}select{text-transform:none}select::-ms-expand{display:none}select::-ms-value{background:none;color:inherit}textarea{overflow:auto;resize:vertical}button,.c-button{display:inline-block;overflow:visible;margin:0;padding:0;outline:0;border:0;background:none rgba(0,0,0,0);color:inherit;vertical-align:middle;text-align:center;text-decoration:none;text-transform:none;font:inherit;line-height:normal;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}button:focus,button:hover,.c-button:focus,.c-button:hover{text-decoration:none}html.lenis{height:auto}.lenis.lenis-smooth{scroll-behavior:auto}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}.lenis.lenis-scrolling iframe{pointer-events:none}@font-face{font-display:swap;font-family:"Source Sans";src:url("../fonts/SourceSans3-Bold.woff2") format("woff2"),url("../fonts/SourceSans3-Bold.woff") format("woff");font-weight:700;font-style:normal}@font-face{font-display:swap;font-family:"Source Sans";src:url("../fonts/SourceSans3-BoldIt.woff2") format("woff2"),url("../fonts/SourceSans3-BoldIt.woff") format("woff");font-weight:700;font-style:italic}@font-face{font-display:swap;font-family:"Source Sans";src:url("../fonts/SourceSans3-Regular.woff2") format("woff2"),url("../fonts/SourceSans3-Regular.woff") format("woff");font-weight:400;font-style:normal}@font-face{font-display:swap;font-family:"Source Sans";src:url("../fonts/SourceSans3-RegularIt.woff2") format("woff2"),url("../fonts/SourceSans3-RegularIt.woff") format("woff");font-weight:400;font-style:italic}html{min-height:100%;line-height:1.5;font-family:"Source Sans",-apple-system,BlinkMacSystemFont,avenir next,avenir,segoe ui,helvetica neue,helvetica,Cantarell,Ubuntu,roboto,noto,arial,sans-serif;color:#000;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(max-width: 699px){html{font-size:14px}}@media(min-width: 700px)and (max-width: 999px){html{font-size:14px}}@media(min-width: 1000px)and (max-width: 1199px){html{font-size:15px}}@media(min-width: 1200px)and (max-width: 1599px){html{font-size:16px}}@media(min-width: 1600px)and (max-width: 1999px){html{font-size:17px}}@media(min-width: 2000px)and (max-width: 2399px){html{font-size:18px}}@media(min-width: 2400px){html{font-size:20px}}html.is-loading{cursor:wait}::-moz-selection{background-color:#fff;color:#000;text-shadow:none}::selection{background-color:#fff;color:#000;text-shadow:none}a{color:#3297fd}a:focus,a:hover{color:#027dfa}.o-container{margin-right:auto;margin-left:auto;padding-left:var(--grid-margin);padding-right:var(--grid-margin)}.o-ratio{position:relative;display:block;overflow:hidden}.o-ratio:before{display:block;padding-bottom:100%;width:100%;content:""}.o-ratio_content,.o-ratio>img,.o-ratio>iframe,.o-ratio>embed,.o-ratio>object{position:absolute;top:0;bottom:0;left:0;width:100%}.o-icon{display:inline-block;vertical-align:middle}.o-icon svg{--icon-height: calc(var(--icon-width) * math.div(1, (var(--icon-ratio))));display:block;width:var(--icon-width);height:var(--icon-height);fill:currentColor}.o-grid{display:grid;width:100%}.o-grid:is(ul,ol){margin:0;padding:0;list-style:none}.o-grid.-cols{grid-template-columns:repeat(var(--grid-columns), 1fr)}.o-grid.-col-12{grid-template-columns:repeat(12, 1fr)}.o-grid.-col-4{grid-template-columns:repeat(4, 1fr)}@media(min-width: 1000px){.o-grid.-col-12\@from-medium{grid-template-columns:repeat(12, 1fr)}}.o-grid.-gutters{gap:var(--grid-gutter);-moz-column-gap:var(--grid-gutter);column-gap:var(--grid-gutter)}.o-grid.-full-height{height:100%}.o-grid.-top-items{align-items:start}.o-grid.-right-items{justify-items:end}.o-grid.-bottom-items{align-items:end}.o-grid.-left-items{justify-items:start}.o-grid.-center-items{align-items:center;justify-items:center}.o-grid.-center-items-x{justify-items:center}.o-grid.-center-items-y{align-items:center}.o-grid.-stretch-items{align-items:stretch;justify-items:stretch}.o-grid.-top-cells{align-content:start}.o-grid.-right-cells{justify-content:end}.o-grid.-bottom-cells{align-content:end}.o-grid.-left-cells{justify-content:start}.o-grid.-center-cells{align-content:center;justify-content:center}.o-grid.-center-cells-x{justify-content:center}.o-grid.-center-cells-y{align-content:center}.o-grid.-stretch-cells{align-content:stretch;justify-content:stretch}.o-grid.-space-around-cells{align-content:space-around;justify-content:space-around}.o-grid.-space-around-cells-x{justify-content:space-around}.o-grid.-space-around-cells-y{align-content:space-around}.o-grid.-space-between-cells{justify-content:space-between;align-content:space-between}.o-grid.-space-between-cells-x{justify-content:space-between}.o-grid.-space-between-cells-y{align-content:space-between}.o-grid.-space-evenly-cells{justify-content:space-evenly;align-content:space-evenly}.o-grid.-space-evenly-cells-x{justify-content:space-evenly}.o-grid.-space-evenly-cells-y{align-content:space-evenly}.o-grid_item{grid-column-start:var(--gc-start, 1);grid-column-end:var(--gc-end, -1)}.o-grid_item.-align-end{align-self:end}.c-heading{margin-bottom:1.875rem}.c-heading.-h1{font-size:var(--font-size-h1)}.c-heading.-h2{font-size:var(--font-size-h2)}.c-heading.-h3{font-size:var(--font-size-h3)}.c-heading.-h4{font-size:var(--font-size-h4)}.c-heading.-h5{font-size:var(--font-size-h5)}.c-heading.-h6{font-size:var(--font-size-h6)}.c-button{padding:.9375rem 1.25rem;background-color:#d3d3d3}.c-button:focus,.c-button:hover{background-color:#a9a9a9}.c-form_item{position:relative;margin-bottom:1.875rem}.c-form_label,.c-form_checkboxLabel,.c-form_radioLabel{display:block;margin-bottom:.625rem}.c-form_input,.c-form_textarea,.c-form_select_input{padding:.625rem;border:1px solid #d3d3d3;background-color:#fff}.c-form_input:hover,.c-form_textarea:hover,.c-form_select_input:hover{border-color:#a9a9a9}.c-form_input:focus,.c-form_textarea:focus,.c-form_select_input:focus{border-color:dimgray}.c-form_input::-moz-placeholder, .c-form_textarea::-moz-placeholder, .c-form_select_input::-moz-placeholder{color:gray}.c-form_input::placeholder,.c-form_textarea::placeholder,.c-form_select_input::placeholder{color:gray}.c-form_checkboxLabel,.c-form_radioLabel{position:relative;display:inline-block;margin-right:.625rem;margin-bottom:0;padding-left:1.75rem;cursor:pointer}.c-form_checkboxLabel::before,.c-form_radioLabel::before,.c-form_checkboxLabel::after,.c-form_radioLabel::after{position:absolute;top:50%;left:0;display:inline-block;margin-top:-0.5625rem;padding:0;width:1.125rem;height:1.125rem;content:""}.c-form_checkboxLabel::before,.c-form_radioLabel::before{background-color:#fff;border:1px solid #d3d3d3}.c-form_checkboxLabel::after,.c-form_radioLabel::after{border-color:rgba(0,0,0,0);background-color:rgba(0,0,0,0);background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2213%22%20height%3D%2210.5%22%20viewBox%3D%220%200%2013%2010.5%22%20enable-background%3D%22new%200%200%2013%2010.5%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20fill%3D%22%23424242%22%20d%3D%22M4.8%205.8L2.4%203.3%200%205.7l4.8%204.8L13%202.4c0%200-2.4-2.4-2.4-2.4L4.8%205.8z%22%2F%3E%3C%2Fsvg%3E");background-position:center;background-size:.75rem;background-repeat:no-repeat;opacity:0}.c-form_checkboxLabel:hover::before,.c-form_radioLabel:hover::before{border-color:#a9a9a9}.c-form_checkbox:focus+.c-form_checkboxLabel::before,.c-form_radio:focus+.c-form_checkboxLabel::before,.c-form_checkbox:focus+.c-form_radioLabel::before,.c-form_radio:focus+.c-form_radioLabel::before{border-color:dimgray}.c-form_checkbox:checked+.c-form_checkboxLabel::after,.c-form_radio:checked+.c-form_checkboxLabel::after,.c-form_checkbox:checked+.c-form_radioLabel::after,.c-form_radio:checked+.c-form_radioLabel::after{opacity:1}.c-form_checkbox,.c-form_radio{position:absolute;width:0;opacity:0}.c-form_radioLabel::before,.c-form_radioLabel::after{border-radius:50%}.c-form_radioLabel::after{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20enable-background%3D%22new%200%200%2013%2013%22%20xml%3Aspace%3D%22preserve%22%3E%3Ccircle%20fill%3D%22%23424242%22%20cx%3D%226.5%22%20cy%3D%226.5%22%20r%3D%226.5%22%2F%3E%3C%2Fsvg%3E");background-size:.375rem}.c-form_select{position:relative;cursor:pointer}.c-form_select::after{position:absolute;top:0;right:0;bottom:0;z-index:2;width:2.5rem;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2213%22%20height%3D%2211.3%22%20viewBox%3D%220%200%2013%2011.3%22%20enable-background%3D%22new%200%200%2013%2011.3%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20fill%3D%22%23424242%22%20points%3D%226.5%2011.3%203.3%205.6%200%200%206.5%200%2013%200%209.8%205.6%20%22%2F%3E%3C%2Fsvg%3E");background-position:center;background-size:.5rem;background-repeat:no-repeat;content:"";pointer-events:none}.c-form_select_input{position:relative;z-index:1;padding-right:2.5rem;cursor:pointer}.c-form_textarea{min-height:12.5rem}.u-2\:1::before{padding-bottom:50%}.u-4\:3::before{padding-bottom:75%}.u-16\:9::before{padding-bottom:56.25%}.u-gc-1\/3{--gc-start: 1;--gc-end: 3}@media(min-width: 1000px){.u-gc-1\/5\@from-medium{--gc-start: 1;--gc-end: 5}}@media(min-width: 1000px){.u-gc-1\/8\@from-medium{--gc-start: 1;--gc-end: 8}}@media(min-width: 1000px){.u-gc-5\/9\@from-medium{--gc-start: 5;--gc-end: 9}}@media(min-width: 1000px){.u-gc-5\/13\@from-medium{--gc-start: 5;--gc-end: 13}}@media(min-width: 1000px){.u-gc-9\/13\@from-medium{--gc-start: 9;--gc-end: 13}} \ No newline at end of file +:root { + --grid-columns: 4; + --grid-gutter: 0.625rem; + --grid-gutter-half: calc(0.5 * var(--grid-gutter)); + --grid-margin: 0.625rem; + --container-width: calc(100% - 2 * var(--grid-margin)); + --font-size-h1: clamp(36px, 0.0514285714 * calc(100 * var(--vw, 1vw)), 72px); + --font-size-h2: 1.75rem; + --font-size-h3: 1.5rem; + --font-size-h4: 1.25rem; + --font-size-h5: 1.125rem; + --font-size-h6: 1rem; +} +@media (min-width: 700px) { + :root { + --grid-columns: 12; + --grid-gutter: 1rem; + --grid-margin: 1.25rem; + } +} + +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ +/* Document + ========================================================================== */ +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ +/** + * Remove the margin in all browsers. + */ +body { + margin: 0; +} + +/** + * Render the `main` element consistently in IE. + */ +main { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ +/** + * Remove the gray background on active links in IE 10. + */ +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ +/** + * Remove the border on images inside links in IE 10. + */ +img { + border-style: none; +} + +/* Forms + ========================================================================== */ +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ +button, +input { /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ +button, +select { /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ +button, +[type=button], +[type=reset], +[type=submit] { + -webkit-appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ +button::-moz-focus-inner, +[type=button]::-moz-focus-inner, +[type=reset]::-moz-focus-inner, +[type=submit]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ +button:-moz-focusring, +[type=button]:-moz-focusring, +[type=reset]:-moz-focusring, +[type=submit]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ +[type=checkbox], +[type=radio] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ +[type=number]::-webkit-inner-spin-button, +[type=number]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ +[type=search] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ +[type=search]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ +/** + * Add the correct display in IE 10+. + */ +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ +[hidden] { + display: none; +} + +html { + box-sizing: border-box; +} + +template, +[hidden] { + display: none; +} + +*, +:before, +:after { + box-sizing: inherit; +} + +address { + font-style: inherit; +} + +dfn, +cite, +em, +i { + font-style: italic; +} + +b, +strong { + font-weight: 700; +} + +a { + text-decoration: none; +} +a svg { + pointer-events: none; +} + +ul, +ol { + margin: 0; + padding: 0; + list-style: none; +} + +p, +figure { + margin: 0; + padding: 0; +} + +h1, h2, h3, h4, h5, h6 { + margin: 0; +} + +a, area, button, input, label, select, textarea, [tabindex] { + touch-action: manipulation; +} + +[hreflang] > abbr[title] { + text-decoration: none; +} + +table { + border-spacing: 0; + border-collapse: collapse; +} + +hr { + display: block; + margin: 1em 0; + padding: 0; + height: 1px; + border: 0; + border-top: 1px solid #CCCCCC; +} + +audio, +canvas, +iframe, +img, +svg, +video { + vertical-align: middle; +} + +audio:not([controls]) { + display: none; + height: 0; +} + +img, +svg { + max-width: 100%; + height: auto; +} +img[width], img[height], +svg[width], +svg[height] { + max-width: none; +} + +img { + font-style: italic; +} + +svg { + fill: currentColor; +} + +input, +select, +textarea { + display: block; + margin: 0; + padding: 0; + width: 100%; + outline: 0; + border: 0; + border-radius: 0; + background: none transparent; + color: inherit; + font: inherit; + line-height: normal; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +select { + text-transform: none; +} +select::-ms-expand { + display: none; +} +select::-ms-value { + background: none; + color: inherit; +} + +textarea { + overflow: auto; + resize: vertical; +} + +button, +.c-button { + display: inline-block; + overflow: visible; + margin: 0; + padding: 0; + outline: 0; + border: 0; + background: none transparent; + color: inherit; + vertical-align: middle; + text-align: center; + text-decoration: none; + text-transform: none; + font: inherit; + line-height: normal; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +button:focus, button:hover, +.c-button:focus, +.c-button:hover { + text-decoration: none; +} + +html.lenis { + height: auto; +} + +.lenis.lenis-smooth { + scroll-behavior: auto; +} + +.lenis.lenis-smooth [data-lenis-prevent] { + overscroll-behavior: contain; +} + +.lenis.lenis-stopped { + overflow: hidden; +} + +.lenis.lenis-scrolling iframe { + pointer-events: none; +} + +@font-face { + font-display: swap; + font-family: "Source Sans"; + src: url("../fonts/SourceSans3-Bold.woff2") format("woff2"), url("../fonts/SourceSans3-Bold.woff") format("woff"); + font-weight: 700; + font-style: normal; +} +@font-face { + font-display: swap; + font-family: "Source Sans"; + src: url("../fonts/SourceSans3-BoldIt.woff2") format("woff2"), url("../fonts/SourceSans3-BoldIt.woff") format("woff"); + font-weight: 700; + font-style: italic; +} +@font-face { + font-display: swap; + font-family: "Source Sans"; + src: url("../fonts/SourceSans3-Regular.woff2") format("woff2"), url("../fonts/SourceSans3-Regular.woff") format("woff"); + font-weight: 400; + font-style: normal; +} +@font-face { + font-display: swap; + font-family: "Source Sans"; + src: url("../fonts/SourceSans3-RegularIt.woff2") format("woff2"), url("../fonts/SourceSans3-RegularIt.woff") format("woff"); + font-weight: 400; + font-style: italic; +} +html { + min-height: 100%; + line-height: 1.5; + font-family: "Source Sans", -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif; + color: #000000; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +@media (max-width: 699px) { + html { + font-size: 14px; + } +} +@media (min-width: 700px) and (max-width: 999px) { + html { + font-size: 14px; + } +} +@media (min-width: 1000px) and (max-width: 1199px) { + html { + font-size: 15px; + } +} +@media (min-width: 1200px) and (max-width: 1599px) { + html { + font-size: 16px; + } +} +@media (min-width: 1600px) and (max-width: 1999px) { + html { + font-size: 17px; + } +} +@media (min-width: 2000px) and (max-width: 2399px) { + html { + font-size: 18px; + } +} +@media (min-width: 2400px) { + html { + font-size: 20px; + } +} +html.is-loading { + cursor: wait; +} + +::-moz-selection { + background-color: #FFFFFF; + color: #000000; + text-shadow: none; +} + +::selection { + background-color: #FFFFFF; + color: #000000; + text-shadow: none; +} + +a { + color: #3297FD; +} +a:focus, a:hover { + color: #027dfa; +} + +.o-container { + margin-right: auto; + margin-left: auto; + padding-left: var(--grid-margin); + padding-right: var(--grid-margin); +} + +.o-ratio { + position: relative; + display: block; + overflow: hidden; +} +.o-ratio:before { + display: block; + padding-bottom: 100%; + width: 100%; + content: ""; +} + +.o-ratio_content, +.o-ratio > img, +.o-ratio > iframe, +.o-ratio > embed, +.o-ratio > object { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; +} + +.o-icon { + display: inline-block; + vertical-align: middle; +} +.o-icon svg { + --icon-height: calc(var(--icon-width) * math.div(1, (var(--icon-ratio)))); + display: block; + width: var(--icon-width); + height: var(--icon-height); + fill: currentColor; +} + +/** + * Usage: + * + * ```html + *
+ *
+ *

Hello

+ *
+ *
+ *

Hello

+ *
+ *
+ * ``` + */ +.o-grid { + display: grid; + width: 100%; +} +.o-grid:is(ul, ol) { + margin: 0; + padding: 0; + list-style: none; +} +.o-grid.-cols { + grid-template-columns: repeat(var(--grid-columns), 1fr); +} +.o-grid.-col-12 { + grid-template-columns: repeat(12, 1fr); +} +.o-grid.-col-4 { + grid-template-columns: repeat(4, 1fr); +} +@media (min-width: 1000px) { + .o-grid.-col-12\@from-medium { + grid-template-columns: repeat(12, 1fr); + } +} +.o-grid.-gutters { + gap: var(--grid-gutter); + -moz-column-gap: var(--grid-gutter); + column-gap: var(--grid-gutter); +} +.o-grid.-full-height { + height: 100%; +} +.o-grid.-top-items { + align-items: start; +} +.o-grid.-right-items { + justify-items: end; +} +.o-grid.-bottom-items { + align-items: end; +} +.o-grid.-left-items { + justify-items: start; +} +.o-grid.-center-items { + align-items: center; + justify-items: center; +} +.o-grid.-center-items-x { + justify-items: center; +} +.o-grid.-center-items-y { + align-items: center; +} +.o-grid.-stretch-items { + align-items: stretch; + justify-items: stretch; +} +.o-grid.-top-cells { + align-content: start; +} +.o-grid.-right-cells { + justify-content: end; +} +.o-grid.-bottom-cells { + align-content: end; +} +.o-grid.-left-cells { + justify-content: start; +} +.o-grid.-center-cells { + align-content: center; + justify-content: center; +} +.o-grid.-center-cells-x { + justify-content: center; +} +.o-grid.-center-cells-y { + align-content: center; +} +.o-grid.-stretch-cells { + align-content: stretch; + justify-content: stretch; +} +.o-grid.-space-around-cells { + align-content: space-around; + justify-content: space-around; +} +.o-grid.-space-around-cells-x { + justify-content: space-around; +} +.o-grid.-space-around-cells-y { + align-content: space-around; +} +.o-grid.-space-between-cells { + justify-content: space-between; + align-content: space-between; +} +.o-grid.-space-between-cells-x { + justify-content: space-between; +} +.o-grid.-space-between-cells-y { + align-content: space-between; +} +.o-grid.-space-evenly-cells { + justify-content: space-evenly; + align-content: space-evenly; +} +.o-grid.-space-evenly-cells-x { + justify-content: space-evenly; +} +.o-grid.-space-evenly-cells-y { + align-content: space-evenly; +} + +.o-grid_item { + grid-column-start: var(--gc-start, 1); + grid-column-end: var(--gc-end, -1); +} +.o-grid_item.-align-end { + align-self: end; +} + +.c-heading { + margin-bottom: 1.875rem; +} +.c-heading.-h1 { + font-size: var(--font-size-h1); +} +.c-heading.-h2 { + font-size: var(--font-size-h2); +} +.c-heading.-h3 { + font-size: var(--font-size-h3); +} +.c-heading.-h4 { + font-size: var(--font-size-h4); +} +.c-heading.-h5 { + font-size: var(--font-size-h5); +} +.c-heading.-h6 { + font-size: var(--font-size-h6); +} + +.c-button { + padding: 0.9375rem 1.25rem; + background-color: lightgray; +} +.c-button:focus, .c-button:hover { + background-color: darkgray; +} + +.c-form_item { + position: relative; + margin-bottom: 1.875rem; +} + +.c-form_label, .c-form_checkboxLabel, .c-form_radioLabel { + display: block; + margin-bottom: 0.625rem; +} + +.c-form_input, .c-form_textarea, .c-form_select_input { + padding: 0.625rem; + border: 1px solid lightgray; + background-color: #FFFFFF; +} +.c-form_input:hover, .c-form_textarea:hover, .c-form_select_input:hover { + border-color: darkgray; +} +.c-form_input:focus, .c-form_textarea:focus, .c-form_select_input:focus { + border-color: dimgray; +} +.c-form_input::-moz-placeholder, .c-form_textarea::-moz-placeholder, .c-form_select_input::-moz-placeholder { + color: gray; +} +.c-form_input::placeholder, .c-form_textarea::placeholder, .c-form_select_input::placeholder { + color: gray; +} + +.c-form_checkboxLabel, .c-form_radioLabel { + position: relative; + display: inline-block; + margin-right: 0.625rem; + margin-bottom: 0; + padding-left: 1.75rem; + cursor: pointer; +} +.c-form_checkboxLabel::before, .c-form_radioLabel::before, .c-form_checkboxLabel::after, .c-form_radioLabel::after { + position: absolute; + top: 50%; + left: 0; + display: inline-block; + margin-top: -0.5625rem; + padding: 0; + width: 1.125rem; + height: 1.125rem; + content: ""; +} +.c-form_checkboxLabel::before, .c-form_radioLabel::before { + background-color: #FFFFFF; + border: 1px solid lightgray; +} +.c-form_checkboxLabel::after, .c-form_radioLabel::after { + border-color: transparent; + background-color: transparent; + background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2213%22%20height%3D%2210.5%22%20viewBox%3D%220%200%2013%2010.5%22%20enable-background%3D%22new%200%200%2013%2010.5%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20fill%3D%22%23424242%22%20d%3D%22M4.8%205.8L2.4%203.3%200%205.7l4.8%204.8L13%202.4c0%200-2.4-2.4-2.4-2.4L4.8%205.8z%22%2F%3E%3C%2Fsvg%3E"); + background-position: center; + background-size: 0.75rem; + background-repeat: no-repeat; + opacity: 0; +} +.c-form_checkboxLabel:hover::before, .c-form_radioLabel:hover::before { + border-color: darkgray; +} +.c-form_checkbox:focus + .c-form_checkboxLabel::before, .c-form_radio:focus + .c-form_checkboxLabel::before, .c-form_checkbox:focus + .c-form_radioLabel::before, .c-form_radio:focus + .c-form_radioLabel::before { + border-color: dimgray; +} +.c-form_checkbox:checked + .c-form_checkboxLabel::after, .c-form_radio:checked + .c-form_checkboxLabel::after, .c-form_checkbox:checked + .c-form_radioLabel::after, .c-form_radio:checked + .c-form_radioLabel::after { + opacity: 1; +} + +.c-form_checkbox, .c-form_radio { + position: absolute; + width: 0; + opacity: 0; +} + +.c-form_radioLabel::before, .c-form_radioLabel::after { + border-radius: 50%; +} +.c-form_radioLabel::after { + background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20enable-background%3D%22new%200%200%2013%2013%22%20xml%3Aspace%3D%22preserve%22%3E%3Ccircle%20fill%3D%22%23424242%22%20cx%3D%226.5%22%20cy%3D%226.5%22%20r%3D%226.5%22%2F%3E%3C%2Fsvg%3E"); + background-size: 0.375rem; +} + +.c-form_select { + position: relative; + cursor: pointer; +} +.c-form_select::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + z-index: 2; + width: 2.5rem; + background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2213%22%20height%3D%2211.3%22%20viewBox%3D%220%200%2013%2011.3%22%20enable-background%3D%22new%200%200%2013%2011.3%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20fill%3D%22%23424242%22%20points%3D%226.5%2011.3%203.3%205.6%200%200%206.5%200%2013%200%209.8%205.6%20%22%2F%3E%3C%2Fsvg%3E"); + background-position: center; + background-size: 0.5rem; + background-repeat: no-repeat; + content: ""; + pointer-events: none; +} + +.c-form_select_input { + position: relative; + z-index: 1; + padding-right: 2.5rem; + cursor: pointer; +} + +.c-form_textarea { + min-height: 12.5rem; +} + +.c-image.-lazy-load .c-image_img { + transition: opacity 0.3s cubic-bezier(0.215, 0.61, 0.355, 1); + opacity: 0; +} +.c-image.-lazy-loaded .c-image_img { + opacity: 1; +} + +/* stylelint-disable */ +.u-2\:1::before { + padding-bottom: 50%; +} + +.u-4\:3::before { + padding-bottom: 75%; +} + +.u-16\:9::before { + padding-bottom: 56.25%; +} + +/* stylelint-enable */ + +.u-gc-1\/3 { + --gc-start: 1; + --gc-end: 3; +} + +@media (min-width: 1000px) { + .u-gc-1\/5\@from-medium { + --gc-start: 1; + --gc-end: 5; + } +} + +@media (min-width: 1000px) { + .u-gc-1\/8\@from-medium { + --gc-start: 1; + --gc-end: 8; + } +} + +@media (min-width: 1000px) { + .u-gc-5\/9\@from-medium { + --gc-start: 5; + --gc-end: 9; + } +} + +@media (min-width: 1000px) { + .u-gc-5\/13\@from-medium { + --gc-start: 5; + --gc-end: 13; + } +} + +@media (min-width: 1000px) { + .u-gc-9\/13\@from-medium { + --gc-start: 9; + --gc-end: 13; + } +} \ No newline at end of file diff --git a/www/assets/styles/main.css.map b/www/assets/styles/main.css.map index 3f0f9547..9e8cb7de 100644 --- a/www/assets/styles/main.css.map +++ b/www/assets/styles/main.css.map @@ -1 +1 @@ -{"version":3,"sources":["main.css"],"names":[],"mappings":"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iBAAiB,kBAAkB,CAAC,gBAAgB,kBAAkB,CAAC,gBAAgB,kBAAkB,CAAC,iBAAiB,qBAAqB,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,aAAa,CAAC,YAAY,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,aAAa,cAAc,CAAC,YAAY,CAAC,aAAa,cAAc,CAAC,YAAY,CAAC,aAAa,cAAc,CAAC,YAAY,CAAC,aAAa,cAAc,CAAC,YAAY,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,aAAa,cAAc,CAAC,YAAY,CAAC,aAAa,cAAc,CAAC,YAAY,CAAC,aAAa,cAAc,CAAC,YAAY,CAAC,aAAa,cAAc,CAAC,YAAY,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,aAAa,cAAc,CAAC,YAAY,CAAC,aAAa,cAAc,CAAC,YAAY,CAAC,aAAa,cAAc,CAAC,YAAY,CAAC,aAAa,cAAc,CAAC,YAAY,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,WAAW,CAAC,aAAa,cAAc,CAAC,YAAY,CAAC,aAAa,cAAc,CAAC,YAAY,CAAC,aAAa,cAAc,CAAC,YAAY,CAAC,aAAa,cAAc,CAAC,YAAY,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,sBAAsB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,yBAAyB,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,0BAA0B,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,0BAA0B,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,0BAA0B,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,0BAA0B,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,0BAA0B,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,0BAA0B,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,0BAA0B,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,0BAA0B,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,0BAA0B,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,0BAA0B,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,0BAA0B,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,0BAA0B,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,0BAA0B,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,0BAA0B,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,0BAA0B,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,0BAA0B,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,wBAAwB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,yBAAyB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,qBAAqB,aAAa,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,aAAa,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,uBAAuB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,uBAAuB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,uBAAuB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,uBAAuB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,uBAAuB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,uBAAuB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,uBAAuB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,uBAAuB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,uBAAuB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,sBAAsB,cAAc,CAAC,WAAW,CAAC,CAAC,0BAA0B,uBAAuB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,uBAAuB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,uBAAuB,cAAc,CAAC,YAAY,CAAC,CAAC,0BAA0B,uBAAuB,cAAc,CAAC,YAAY,CAAC","file":"main.css","sourcesContent":[":root{--grid-columns: 4;--grid-gutter: 0.625rem;--grid-gutter-half: calc(0.5 * var(--grid-gutter));--grid-margin: 0.625rem;--container-width: calc(100% - 2 * var(--grid-margin));--font-size-h1: clamp(36px, 0.0514285714 * calc(100 * var(--vw, 1vw)), 72px);--font-size-h2: 1.75rem;--font-size-h3: 1.5rem;--font-size-h4: 1.25rem;--font-size-h5: 1.125rem;--font-size-h6: 1rem}@media(min-width: 700px){:root{--grid-columns: 12;--grid-gutter: 1rem;--grid-margin: 1.25rem}}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html{box-sizing:border-box}template,[hidden]{display:none}*,:before,:after{box-sizing:inherit}address{font-style:inherit}dfn,cite,em,i{font-style:italic}b,strong{font-weight:700}a{text-decoration:none}a svg{pointer-events:none}ul,ol{margin:0;padding:0;list-style:none}p,figure{margin:0;padding:0}h1,h2,h3,h4,h5,h6{margin:0}a,area,button,input,label,select,textarea,[tabindex]{-ms-touch-action:manipulation;touch-action:manipulation}[hreflang]>abbr[title]{text-decoration:none}table{border-spacing:0;border-collapse:collapse}hr{display:block;margin:1em 0;padding:0;height:1px;border:0;border-top:1px solid #ccc}audio,canvas,iframe,img,svg,video{vertical-align:middle}audio:not([controls]){display:none;height:0}img,svg{max-width:100%;height:auto}img[width],img[height],svg[width],svg[height]{max-width:none}img{font-style:italic}svg{fill:currentColor}input,select,textarea{display:block;margin:0;padding:0;width:100%;outline:0;border:0;border-radius:0;background:none rgba(0,0,0,0);color:inherit;font:inherit;line-height:normal;appearance:none}select{text-transform:none}select::-ms-expand{display:none}select::-ms-value{background:none;color:inherit}textarea{overflow:auto;resize:vertical}button,.c-button{display:inline-block;overflow:visible;margin:0;padding:0;outline:0;border:0;background:none rgba(0,0,0,0);color:inherit;vertical-align:middle;text-align:center;text-decoration:none;text-transform:none;font:inherit;line-height:normal;cursor:pointer;user-select:none}button:focus,button:hover,.c-button:focus,.c-button:hover{text-decoration:none}html.lenis{height:auto}.lenis.lenis-smooth{scroll-behavior:auto}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}.lenis.lenis-scrolling iframe{pointer-events:none}@font-face{font-display:swap;font-family:\"Source Sans\";src:url(\"../fonts/SourceSans3-Bold.woff2\") format(\"woff2\"),url(\"../fonts/SourceSans3-Bold.woff\") format(\"woff\");font-weight:700;font-style:normal}@font-face{font-display:swap;font-family:\"Source Sans\";src:url(\"../fonts/SourceSans3-BoldIt.woff2\") format(\"woff2\"),url(\"../fonts/SourceSans3-BoldIt.woff\") format(\"woff\");font-weight:700;font-style:italic}@font-face{font-display:swap;font-family:\"Source Sans\";src:url(\"../fonts/SourceSans3-Regular.woff2\") format(\"woff2\"),url(\"../fonts/SourceSans3-Regular.woff\") format(\"woff\");font-weight:400;font-style:normal}@font-face{font-display:swap;font-family:\"Source Sans\";src:url(\"../fonts/SourceSans3-RegularIt.woff2\") format(\"woff2\"),url(\"../fonts/SourceSans3-RegularIt.woff\") format(\"woff\");font-weight:400;font-style:italic}html{min-height:100%;line-height:1.5;font-family:\"Source Sans\",-apple-system,BlinkMacSystemFont,avenir next,avenir,segoe ui,helvetica neue,helvetica,Cantarell,Ubuntu,roboto,noto,arial,sans-serif;color:#000;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(max-width: 699px){html{font-size:14px}}@media(min-width: 700px)and (max-width: 999px){html{font-size:14px}}@media(min-width: 1000px)and (max-width: 1199px){html{font-size:15px}}@media(min-width: 1200px)and (max-width: 1599px){html{font-size:16px}}@media(min-width: 1600px)and (max-width: 1999px){html{font-size:17px}}@media(min-width: 2000px)and (max-width: 2399px){html{font-size:18px}}@media(min-width: 2400px){html{font-size:20px}}html.is-loading{cursor:wait}::selection{background-color:#fff;color:#000;text-shadow:none}a{color:#3297fd}a:focus,a:hover{color:#027dfa}.o-container{margin-right:auto;margin-left:auto;padding-left:var(--grid-margin);padding-right:var(--grid-margin)}.o-ratio{position:relative;display:block;overflow:hidden}.o-ratio:before{display:block;padding-bottom:100%;width:100%;content:\"\"}.o-ratio_content,.o-ratio>img,.o-ratio>iframe,.o-ratio>embed,.o-ratio>object{position:absolute;top:0;bottom:0;left:0;width:100%}.o-icon{display:inline-block;vertical-align:middle}.o-icon svg{--icon-height: calc(var(--icon-width) * math.div(1, (var(--icon-ratio))));display:block;width:var(--icon-width);height:var(--icon-height);fill:currentColor}.o-grid{display:grid;width:100%}.o-grid:is(ul,ol){margin:0;padding:0;list-style:none}.o-grid.-cols{grid-template-columns:repeat(var(--grid-columns), 1fr)}.o-grid.-col-12{grid-template-columns:repeat(12, 1fr)}.o-grid.-col-4{grid-template-columns:repeat(4, 1fr)}@media(min-width: 1000px){.o-grid.-col-12\\@from-medium{grid-template-columns:repeat(12, 1fr)}}.o-grid.-gutters{gap:var(--grid-gutter);column-gap:var(--grid-gutter)}.o-grid.-full-height{height:100%}.o-grid.-top-items{align-items:start}.o-grid.-right-items{justify-items:end}.o-grid.-bottom-items{align-items:end}.o-grid.-left-items{justify-items:start}.o-grid.-center-items{align-items:center;justify-items:center}.o-grid.-center-items-x{justify-items:center}.o-grid.-center-items-y{align-items:center}.o-grid.-stretch-items{align-items:stretch;justify-items:stretch}.o-grid.-top-cells{align-content:start}.o-grid.-right-cells{justify-content:end}.o-grid.-bottom-cells{align-content:end}.o-grid.-left-cells{justify-content:start}.o-grid.-center-cells{align-content:center;justify-content:center}.o-grid.-center-cells-x{justify-content:center}.o-grid.-center-cells-y{align-content:center}.o-grid.-stretch-cells{align-content:stretch;justify-content:stretch}.o-grid.-space-around-cells{align-content:space-around;justify-content:space-around}.o-grid.-space-around-cells-x{justify-content:space-around}.o-grid.-space-around-cells-y{align-content:space-around}.o-grid.-space-between-cells{justify-content:space-between;align-content:space-between}.o-grid.-space-between-cells-x{justify-content:space-between}.o-grid.-space-between-cells-y{align-content:space-between}.o-grid.-space-evenly-cells{justify-content:space-evenly;align-content:space-evenly}.o-grid.-space-evenly-cells-x{justify-content:space-evenly}.o-grid.-space-evenly-cells-y{align-content:space-evenly}.o-grid_item{grid-column-start:var(--gc-start, 1);grid-column-end:var(--gc-end, -1)}.o-grid_item.-align-end{align-self:end}.c-heading{margin-bottom:1.875rem}.c-heading.-h1{font-size:var(--font-size-h1)}.c-heading.-h2{font-size:var(--font-size-h2)}.c-heading.-h3{font-size:var(--font-size-h3)}.c-heading.-h4{font-size:var(--font-size-h4)}.c-heading.-h5{font-size:var(--font-size-h5)}.c-heading.-h6{font-size:var(--font-size-h6)}.c-button{padding:.9375rem 1.25rem;background-color:#d3d3d3}.c-button:focus,.c-button:hover{background-color:#a9a9a9}.c-form_item{position:relative;margin-bottom:1.875rem}.c-form_label,.c-form_checkboxLabel,.c-form_radioLabel{display:block;margin-bottom:.625rem}.c-form_input,.c-form_textarea,.c-form_select_input{padding:.625rem;border:1px solid #d3d3d3;background-color:#fff}.c-form_input:hover,.c-form_textarea:hover,.c-form_select_input:hover{border-color:#a9a9a9}.c-form_input:focus,.c-form_textarea:focus,.c-form_select_input:focus{border-color:dimgray}.c-form_input::placeholder,.c-form_textarea::placeholder,.c-form_select_input::placeholder{color:gray}.c-form_checkboxLabel,.c-form_radioLabel{position:relative;display:inline-block;margin-right:.625rem;margin-bottom:0;padding-left:1.75rem;cursor:pointer}.c-form_checkboxLabel::before,.c-form_radioLabel::before,.c-form_checkboxLabel::after,.c-form_radioLabel::after{position:absolute;top:50%;left:0;display:inline-block;margin-top:-0.5625rem;padding:0;width:1.125rem;height:1.125rem;content:\"\"}.c-form_checkboxLabel::before,.c-form_radioLabel::before{background-color:#fff;border:1px solid #d3d3d3}.c-form_checkboxLabel::after,.c-form_radioLabel::after{border-color:rgba(0,0,0,0);background-color:rgba(0,0,0,0);background-image:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2213%22%20height%3D%2210.5%22%20viewBox%3D%220%200%2013%2010.5%22%20enable-background%3D%22new%200%200%2013%2010.5%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20fill%3D%22%23424242%22%20d%3D%22M4.8%205.8L2.4%203.3%200%205.7l4.8%204.8L13%202.4c0%200-2.4-2.4-2.4-2.4L4.8%205.8z%22%2F%3E%3C%2Fsvg%3E\");background-position:center;background-size:.75rem;background-repeat:no-repeat;opacity:0}.c-form_checkboxLabel:hover::before,.c-form_radioLabel:hover::before{border-color:#a9a9a9}.c-form_checkbox:focus+.c-form_checkboxLabel::before,.c-form_radio:focus+.c-form_checkboxLabel::before,.c-form_checkbox:focus+.c-form_radioLabel::before,.c-form_radio:focus+.c-form_radioLabel::before{border-color:dimgray}.c-form_checkbox:checked+.c-form_checkboxLabel::after,.c-form_radio:checked+.c-form_checkboxLabel::after,.c-form_checkbox:checked+.c-form_radioLabel::after,.c-form_radio:checked+.c-form_radioLabel::after{opacity:1}.c-form_checkbox,.c-form_radio{position:absolute;width:0;opacity:0}.c-form_radioLabel::before,.c-form_radioLabel::after{border-radius:50%}.c-form_radioLabel::after{background-image:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20enable-background%3D%22new%200%200%2013%2013%22%20xml%3Aspace%3D%22preserve%22%3E%3Ccircle%20fill%3D%22%23424242%22%20cx%3D%226.5%22%20cy%3D%226.5%22%20r%3D%226.5%22%2F%3E%3C%2Fsvg%3E\");background-size:.375rem}.c-form_select{position:relative;cursor:pointer}.c-form_select::after{position:absolute;top:0;right:0;bottom:0;z-index:2;width:2.5rem;background-image:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2213%22%20height%3D%2211.3%22%20viewBox%3D%220%200%2013%2011.3%22%20enable-background%3D%22new%200%200%2013%2011.3%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20fill%3D%22%23424242%22%20points%3D%226.5%2011.3%203.3%205.6%200%200%206.5%200%2013%200%209.8%205.6%20%22%2F%3E%3C%2Fsvg%3E\");background-position:center;background-size:.5rem;background-repeat:no-repeat;content:\"\";pointer-events:none}.c-form_select_input{position:relative;z-index:1;padding-right:2.5rem;cursor:pointer}.c-form_textarea{min-height:12.5rem}.u-2\\:1::before{padding-bottom:50%}.u-4\\:3::before{padding-bottom:75%}.u-16\\:9::before{padding-bottom:56.25%}.u-gc-1\\/1{--gc-start: 1;--gc-end: 1}.u-gc-1\\/2{--gc-start: 1;--gc-end: 2}.u-gc-1\\/3{--gc-start: 1;--gc-end: 3}.u-gc-1\\/4{--gc-start: 1;--gc-end: 4}.u-gc-1\\/5{--gc-start: 1;--gc-end: 5}.u-gc-1\\/6{--gc-start: 1;--gc-end: 6}.u-gc-1\\/7{--gc-start: 1;--gc-end: 7}.u-gc-1\\/8{--gc-start: 1;--gc-end: 8}.u-gc-1\\/9{--gc-start: 1;--gc-end: 9}.u-gc-1\\/10{--gc-start: 1;--gc-end: 10}.u-gc-1\\/11{--gc-start: 1;--gc-end: 11}.u-gc-1\\/12{--gc-start: 1;--gc-end: 12}.u-gc-1\\/13{--gc-start: 1;--gc-end: 13}.u-gc-2\\/1{--gc-start: 2;--gc-end: 1}.u-gc-2\\/2{--gc-start: 2;--gc-end: 2}.u-gc-2\\/3{--gc-start: 2;--gc-end: 3}.u-gc-2\\/4{--gc-start: 2;--gc-end: 4}.u-gc-2\\/5{--gc-start: 2;--gc-end: 5}.u-gc-2\\/6{--gc-start: 2;--gc-end: 6}.u-gc-2\\/7{--gc-start: 2;--gc-end: 7}.u-gc-2\\/8{--gc-start: 2;--gc-end: 8}.u-gc-2\\/9{--gc-start: 2;--gc-end: 9}.u-gc-2\\/10{--gc-start: 2;--gc-end: 10}.u-gc-2\\/11{--gc-start: 2;--gc-end: 11}.u-gc-2\\/12{--gc-start: 2;--gc-end: 12}.u-gc-2\\/13{--gc-start: 2;--gc-end: 13}.u-gc-3\\/1{--gc-start: 3;--gc-end: 1}.u-gc-3\\/2{--gc-start: 3;--gc-end: 2}.u-gc-3\\/3{--gc-start: 3;--gc-end: 3}.u-gc-3\\/4{--gc-start: 3;--gc-end: 4}.u-gc-3\\/5{--gc-start: 3;--gc-end: 5}.u-gc-3\\/6{--gc-start: 3;--gc-end: 6}.u-gc-3\\/7{--gc-start: 3;--gc-end: 7}.u-gc-3\\/8{--gc-start: 3;--gc-end: 8}.u-gc-3\\/9{--gc-start: 3;--gc-end: 9}.u-gc-3\\/10{--gc-start: 3;--gc-end: 10}.u-gc-3\\/11{--gc-start: 3;--gc-end: 11}.u-gc-3\\/12{--gc-start: 3;--gc-end: 12}.u-gc-3\\/13{--gc-start: 3;--gc-end: 13}.u-gc-4\\/1{--gc-start: 4;--gc-end: 1}.u-gc-4\\/2{--gc-start: 4;--gc-end: 2}.u-gc-4\\/3{--gc-start: 4;--gc-end: 3}.u-gc-4\\/4{--gc-start: 4;--gc-end: 4}.u-gc-4\\/5{--gc-start: 4;--gc-end: 5}.u-gc-4\\/6{--gc-start: 4;--gc-end: 6}.u-gc-4\\/7{--gc-start: 4;--gc-end: 7}.u-gc-4\\/8{--gc-start: 4;--gc-end: 8}.u-gc-4\\/9{--gc-start: 4;--gc-end: 9}.u-gc-4\\/10{--gc-start: 4;--gc-end: 10}.u-gc-4\\/11{--gc-start: 4;--gc-end: 11}.u-gc-4\\/12{--gc-start: 4;--gc-end: 12}.u-gc-4\\/13{--gc-start: 4;--gc-end: 13}.u-gc-5\\/1{--gc-start: 5;--gc-end: 1}.u-gc-5\\/2{--gc-start: 5;--gc-end: 2}.u-gc-5\\/3{--gc-start: 5;--gc-end: 3}.u-gc-5\\/4{--gc-start: 5;--gc-end: 4}.u-gc-5\\/5{--gc-start: 5;--gc-end: 5}.u-gc-5\\/6{--gc-start: 5;--gc-end: 6}.u-gc-5\\/7{--gc-start: 5;--gc-end: 7}.u-gc-5\\/8{--gc-start: 5;--gc-end: 8}.u-gc-5\\/9{--gc-start: 5;--gc-end: 9}.u-gc-5\\/10{--gc-start: 5;--gc-end: 10}.u-gc-5\\/11{--gc-start: 5;--gc-end: 11}.u-gc-5\\/12{--gc-start: 5;--gc-end: 12}.u-gc-5\\/13{--gc-start: 5;--gc-end: 13}.u-gc-6\\/1{--gc-start: 6;--gc-end: 1}.u-gc-6\\/2{--gc-start: 6;--gc-end: 2}.u-gc-6\\/3{--gc-start: 6;--gc-end: 3}.u-gc-6\\/4{--gc-start: 6;--gc-end: 4}.u-gc-6\\/5{--gc-start: 6;--gc-end: 5}.u-gc-6\\/6{--gc-start: 6;--gc-end: 6}.u-gc-6\\/7{--gc-start: 6;--gc-end: 7}.u-gc-6\\/8{--gc-start: 6;--gc-end: 8}.u-gc-6\\/9{--gc-start: 6;--gc-end: 9}.u-gc-6\\/10{--gc-start: 6;--gc-end: 10}.u-gc-6\\/11{--gc-start: 6;--gc-end: 11}.u-gc-6\\/12{--gc-start: 6;--gc-end: 12}.u-gc-6\\/13{--gc-start: 6;--gc-end: 13}.u-gc-7\\/1{--gc-start: 7;--gc-end: 1}.u-gc-7\\/2{--gc-start: 7;--gc-end: 2}.u-gc-7\\/3{--gc-start: 7;--gc-end: 3}.u-gc-7\\/4{--gc-start: 7;--gc-end: 4}.u-gc-7\\/5{--gc-start: 7;--gc-end: 5}.u-gc-7\\/6{--gc-start: 7;--gc-end: 6}.u-gc-7\\/7{--gc-start: 7;--gc-end: 7}.u-gc-7\\/8{--gc-start: 7;--gc-end: 8}.u-gc-7\\/9{--gc-start: 7;--gc-end: 9}.u-gc-7\\/10{--gc-start: 7;--gc-end: 10}.u-gc-7\\/11{--gc-start: 7;--gc-end: 11}.u-gc-7\\/12{--gc-start: 7;--gc-end: 12}.u-gc-7\\/13{--gc-start: 7;--gc-end: 13}.u-gc-8\\/1{--gc-start: 8;--gc-end: 1}.u-gc-8\\/2{--gc-start: 8;--gc-end: 2}.u-gc-8\\/3{--gc-start: 8;--gc-end: 3}.u-gc-8\\/4{--gc-start: 8;--gc-end: 4}.u-gc-8\\/5{--gc-start: 8;--gc-end: 5}.u-gc-8\\/6{--gc-start: 8;--gc-end: 6}.u-gc-8\\/7{--gc-start: 8;--gc-end: 7}.u-gc-8\\/8{--gc-start: 8;--gc-end: 8}.u-gc-8\\/9{--gc-start: 8;--gc-end: 9}.u-gc-8\\/10{--gc-start: 8;--gc-end: 10}.u-gc-8\\/11{--gc-start: 8;--gc-end: 11}.u-gc-8\\/12{--gc-start: 8;--gc-end: 12}.u-gc-8\\/13{--gc-start: 8;--gc-end: 13}.u-gc-9\\/1{--gc-start: 9;--gc-end: 1}.u-gc-9\\/2{--gc-start: 9;--gc-end: 2}.u-gc-9\\/3{--gc-start: 9;--gc-end: 3}.u-gc-9\\/4{--gc-start: 9;--gc-end: 4}.u-gc-9\\/5{--gc-start: 9;--gc-end: 5}.u-gc-9\\/6{--gc-start: 9;--gc-end: 6}.u-gc-9\\/7{--gc-start: 9;--gc-end: 7}.u-gc-9\\/8{--gc-start: 9;--gc-end: 8}.u-gc-9\\/9{--gc-start: 9;--gc-end: 9}.u-gc-9\\/10{--gc-start: 9;--gc-end: 10}.u-gc-9\\/11{--gc-start: 9;--gc-end: 11}.u-gc-9\\/12{--gc-start: 9;--gc-end: 12}.u-gc-9\\/13{--gc-start: 9;--gc-end: 13}.u-gc-10\\/1{--gc-start: 10;--gc-end: 1}.u-gc-10\\/2{--gc-start: 10;--gc-end: 2}.u-gc-10\\/3{--gc-start: 10;--gc-end: 3}.u-gc-10\\/4{--gc-start: 10;--gc-end: 4}.u-gc-10\\/5{--gc-start: 10;--gc-end: 5}.u-gc-10\\/6{--gc-start: 10;--gc-end: 6}.u-gc-10\\/7{--gc-start: 10;--gc-end: 7}.u-gc-10\\/8{--gc-start: 10;--gc-end: 8}.u-gc-10\\/9{--gc-start: 10;--gc-end: 9}.u-gc-10\\/10{--gc-start: 10;--gc-end: 10}.u-gc-10\\/11{--gc-start: 10;--gc-end: 11}.u-gc-10\\/12{--gc-start: 10;--gc-end: 12}.u-gc-10\\/13{--gc-start: 10;--gc-end: 13}.u-gc-11\\/1{--gc-start: 11;--gc-end: 1}.u-gc-11\\/2{--gc-start: 11;--gc-end: 2}.u-gc-11\\/3{--gc-start: 11;--gc-end: 3}.u-gc-11\\/4{--gc-start: 11;--gc-end: 4}.u-gc-11\\/5{--gc-start: 11;--gc-end: 5}.u-gc-11\\/6{--gc-start: 11;--gc-end: 6}.u-gc-11\\/7{--gc-start: 11;--gc-end: 7}.u-gc-11\\/8{--gc-start: 11;--gc-end: 8}.u-gc-11\\/9{--gc-start: 11;--gc-end: 9}.u-gc-11\\/10{--gc-start: 11;--gc-end: 10}.u-gc-11\\/11{--gc-start: 11;--gc-end: 11}.u-gc-11\\/12{--gc-start: 11;--gc-end: 12}.u-gc-11\\/13{--gc-start: 11;--gc-end: 13}.u-gc-12\\/1{--gc-start: 12;--gc-end: 1}.u-gc-12\\/2{--gc-start: 12;--gc-end: 2}.u-gc-12\\/3{--gc-start: 12;--gc-end: 3}.u-gc-12\\/4{--gc-start: 12;--gc-end: 4}.u-gc-12\\/5{--gc-start: 12;--gc-end: 5}.u-gc-12\\/6{--gc-start: 12;--gc-end: 6}.u-gc-12\\/7{--gc-start: 12;--gc-end: 7}.u-gc-12\\/8{--gc-start: 12;--gc-end: 8}.u-gc-12\\/9{--gc-start: 12;--gc-end: 9}.u-gc-12\\/10{--gc-start: 12;--gc-end: 10}.u-gc-12\\/11{--gc-start: 12;--gc-end: 11}.u-gc-12\\/12{--gc-start: 12;--gc-end: 12}.u-gc-12\\/13{--gc-start: 12;--gc-end: 13}.u-gc-13\\/1{--gc-start: 13;--gc-end: 1}.u-gc-13\\/2{--gc-start: 13;--gc-end: 2}.u-gc-13\\/3{--gc-start: 13;--gc-end: 3}.u-gc-13\\/4{--gc-start: 13;--gc-end: 4}.u-gc-13\\/5{--gc-start: 13;--gc-end: 5}.u-gc-13\\/6{--gc-start: 13;--gc-end: 6}.u-gc-13\\/7{--gc-start: 13;--gc-end: 7}.u-gc-13\\/8{--gc-start: 13;--gc-end: 8}.u-gc-13\\/9{--gc-start: 13;--gc-end: 9}.u-gc-13\\/10{--gc-start: 13;--gc-end: 10}.u-gc-13\\/11{--gc-start: 13;--gc-end: 11}.u-gc-13\\/12{--gc-start: 13;--gc-end: 12}.u-gc-13\\/13{--gc-start: 13;--gc-end: 13}@media(min-width: 500px){.u-gc-1\\/1\\@from-tiny{--gc-start: 1;--gc-end: 1}}@media(min-width: 500px){.u-gc-1\\/2\\@from-tiny{--gc-start: 1;--gc-end: 2}}@media(min-width: 500px){.u-gc-1\\/3\\@from-tiny{--gc-start: 1;--gc-end: 3}}@media(min-width: 500px){.u-gc-1\\/4\\@from-tiny{--gc-start: 1;--gc-end: 4}}@media(min-width: 500px){.u-gc-1\\/5\\@from-tiny{--gc-start: 1;--gc-end: 5}}@media(min-width: 500px){.u-gc-1\\/6\\@from-tiny{--gc-start: 1;--gc-end: 6}}@media(min-width: 500px){.u-gc-1\\/7\\@from-tiny{--gc-start: 1;--gc-end: 7}}@media(min-width: 500px){.u-gc-1\\/8\\@from-tiny{--gc-start: 1;--gc-end: 8}}@media(min-width: 500px){.u-gc-1\\/9\\@from-tiny{--gc-start: 1;--gc-end: 9}}@media(min-width: 500px){.u-gc-1\\/10\\@from-tiny{--gc-start: 1;--gc-end: 10}}@media(min-width: 500px){.u-gc-1\\/11\\@from-tiny{--gc-start: 1;--gc-end: 11}}@media(min-width: 500px){.u-gc-1\\/12\\@from-tiny{--gc-start: 1;--gc-end: 12}}@media(min-width: 500px){.u-gc-1\\/13\\@from-tiny{--gc-start: 1;--gc-end: 13}}@media(min-width: 500px){.u-gc-2\\/1\\@from-tiny{--gc-start: 2;--gc-end: 1}}@media(min-width: 500px){.u-gc-2\\/2\\@from-tiny{--gc-start: 2;--gc-end: 2}}@media(min-width: 500px){.u-gc-2\\/3\\@from-tiny{--gc-start: 2;--gc-end: 3}}@media(min-width: 500px){.u-gc-2\\/4\\@from-tiny{--gc-start: 2;--gc-end: 4}}@media(min-width: 500px){.u-gc-2\\/5\\@from-tiny{--gc-start: 2;--gc-end: 5}}@media(min-width: 500px){.u-gc-2\\/6\\@from-tiny{--gc-start: 2;--gc-end: 6}}@media(min-width: 500px){.u-gc-2\\/7\\@from-tiny{--gc-start: 2;--gc-end: 7}}@media(min-width: 500px){.u-gc-2\\/8\\@from-tiny{--gc-start: 2;--gc-end: 8}}@media(min-width: 500px){.u-gc-2\\/9\\@from-tiny{--gc-start: 2;--gc-end: 9}}@media(min-width: 500px){.u-gc-2\\/10\\@from-tiny{--gc-start: 2;--gc-end: 10}}@media(min-width: 500px){.u-gc-2\\/11\\@from-tiny{--gc-start: 2;--gc-end: 11}}@media(min-width: 500px){.u-gc-2\\/12\\@from-tiny{--gc-start: 2;--gc-end: 12}}@media(min-width: 500px){.u-gc-2\\/13\\@from-tiny{--gc-start: 2;--gc-end: 13}}@media(min-width: 500px){.u-gc-3\\/1\\@from-tiny{--gc-start: 3;--gc-end: 1}}@media(min-width: 500px){.u-gc-3\\/2\\@from-tiny{--gc-start: 3;--gc-end: 2}}@media(min-width: 500px){.u-gc-3\\/3\\@from-tiny{--gc-start: 3;--gc-end: 3}}@media(min-width: 500px){.u-gc-3\\/4\\@from-tiny{--gc-start: 3;--gc-end: 4}}@media(min-width: 500px){.u-gc-3\\/5\\@from-tiny{--gc-start: 3;--gc-end: 5}}@media(min-width: 500px){.u-gc-3\\/6\\@from-tiny{--gc-start: 3;--gc-end: 6}}@media(min-width: 500px){.u-gc-3\\/7\\@from-tiny{--gc-start: 3;--gc-end: 7}}@media(min-width: 500px){.u-gc-3\\/8\\@from-tiny{--gc-start: 3;--gc-end: 8}}@media(min-width: 500px){.u-gc-3\\/9\\@from-tiny{--gc-start: 3;--gc-end: 9}}@media(min-width: 500px){.u-gc-3\\/10\\@from-tiny{--gc-start: 3;--gc-end: 10}}@media(min-width: 500px){.u-gc-3\\/11\\@from-tiny{--gc-start: 3;--gc-end: 11}}@media(min-width: 500px){.u-gc-3\\/12\\@from-tiny{--gc-start: 3;--gc-end: 12}}@media(min-width: 500px){.u-gc-3\\/13\\@from-tiny{--gc-start: 3;--gc-end: 13}}@media(min-width: 500px){.u-gc-4\\/1\\@from-tiny{--gc-start: 4;--gc-end: 1}}@media(min-width: 500px){.u-gc-4\\/2\\@from-tiny{--gc-start: 4;--gc-end: 2}}@media(min-width: 500px){.u-gc-4\\/3\\@from-tiny{--gc-start: 4;--gc-end: 3}}@media(min-width: 500px){.u-gc-4\\/4\\@from-tiny{--gc-start: 4;--gc-end: 4}}@media(min-width: 500px){.u-gc-4\\/5\\@from-tiny{--gc-start: 4;--gc-end: 5}}@media(min-width: 500px){.u-gc-4\\/6\\@from-tiny{--gc-start: 4;--gc-end: 6}}@media(min-width: 500px){.u-gc-4\\/7\\@from-tiny{--gc-start: 4;--gc-end: 7}}@media(min-width: 500px){.u-gc-4\\/8\\@from-tiny{--gc-start: 4;--gc-end: 8}}@media(min-width: 500px){.u-gc-4\\/9\\@from-tiny{--gc-start: 4;--gc-end: 9}}@media(min-width: 500px){.u-gc-4\\/10\\@from-tiny{--gc-start: 4;--gc-end: 10}}@media(min-width: 500px){.u-gc-4\\/11\\@from-tiny{--gc-start: 4;--gc-end: 11}}@media(min-width: 500px){.u-gc-4\\/12\\@from-tiny{--gc-start: 4;--gc-end: 12}}@media(min-width: 500px){.u-gc-4\\/13\\@from-tiny{--gc-start: 4;--gc-end: 13}}@media(min-width: 500px){.u-gc-5\\/1\\@from-tiny{--gc-start: 5;--gc-end: 1}}@media(min-width: 500px){.u-gc-5\\/2\\@from-tiny{--gc-start: 5;--gc-end: 2}}@media(min-width: 500px){.u-gc-5\\/3\\@from-tiny{--gc-start: 5;--gc-end: 3}}@media(min-width: 500px){.u-gc-5\\/4\\@from-tiny{--gc-start: 5;--gc-end: 4}}@media(min-width: 500px){.u-gc-5\\/5\\@from-tiny{--gc-start: 5;--gc-end: 5}}@media(min-width: 500px){.u-gc-5\\/6\\@from-tiny{--gc-start: 5;--gc-end: 6}}@media(min-width: 500px){.u-gc-5\\/7\\@from-tiny{--gc-start: 5;--gc-end: 7}}@media(min-width: 500px){.u-gc-5\\/8\\@from-tiny{--gc-start: 5;--gc-end: 8}}@media(min-width: 500px){.u-gc-5\\/9\\@from-tiny{--gc-start: 5;--gc-end: 9}}@media(min-width: 500px){.u-gc-5\\/10\\@from-tiny{--gc-start: 5;--gc-end: 10}}@media(min-width: 500px){.u-gc-5\\/11\\@from-tiny{--gc-start: 5;--gc-end: 11}}@media(min-width: 500px){.u-gc-5\\/12\\@from-tiny{--gc-start: 5;--gc-end: 12}}@media(min-width: 500px){.u-gc-5\\/13\\@from-tiny{--gc-start: 5;--gc-end: 13}}@media(min-width: 500px){.u-gc-6\\/1\\@from-tiny{--gc-start: 6;--gc-end: 1}}@media(min-width: 500px){.u-gc-6\\/2\\@from-tiny{--gc-start: 6;--gc-end: 2}}@media(min-width: 500px){.u-gc-6\\/3\\@from-tiny{--gc-start: 6;--gc-end: 3}}@media(min-width: 500px){.u-gc-6\\/4\\@from-tiny{--gc-start: 6;--gc-end: 4}}@media(min-width: 500px){.u-gc-6\\/5\\@from-tiny{--gc-start: 6;--gc-end: 5}}@media(min-width: 500px){.u-gc-6\\/6\\@from-tiny{--gc-start: 6;--gc-end: 6}}@media(min-width: 500px){.u-gc-6\\/7\\@from-tiny{--gc-start: 6;--gc-end: 7}}@media(min-width: 500px){.u-gc-6\\/8\\@from-tiny{--gc-start: 6;--gc-end: 8}}@media(min-width: 500px){.u-gc-6\\/9\\@from-tiny{--gc-start: 6;--gc-end: 9}}@media(min-width: 500px){.u-gc-6\\/10\\@from-tiny{--gc-start: 6;--gc-end: 10}}@media(min-width: 500px){.u-gc-6\\/11\\@from-tiny{--gc-start: 6;--gc-end: 11}}@media(min-width: 500px){.u-gc-6\\/12\\@from-tiny{--gc-start: 6;--gc-end: 12}}@media(min-width: 500px){.u-gc-6\\/13\\@from-tiny{--gc-start: 6;--gc-end: 13}}@media(min-width: 500px){.u-gc-7\\/1\\@from-tiny{--gc-start: 7;--gc-end: 1}}@media(min-width: 500px){.u-gc-7\\/2\\@from-tiny{--gc-start: 7;--gc-end: 2}}@media(min-width: 500px){.u-gc-7\\/3\\@from-tiny{--gc-start: 7;--gc-end: 3}}@media(min-width: 500px){.u-gc-7\\/4\\@from-tiny{--gc-start: 7;--gc-end: 4}}@media(min-width: 500px){.u-gc-7\\/5\\@from-tiny{--gc-start: 7;--gc-end: 5}}@media(min-width: 500px){.u-gc-7\\/6\\@from-tiny{--gc-start: 7;--gc-end: 6}}@media(min-width: 500px){.u-gc-7\\/7\\@from-tiny{--gc-start: 7;--gc-end: 7}}@media(min-width: 500px){.u-gc-7\\/8\\@from-tiny{--gc-start: 7;--gc-end: 8}}@media(min-width: 500px){.u-gc-7\\/9\\@from-tiny{--gc-start: 7;--gc-end: 9}}@media(min-width: 500px){.u-gc-7\\/10\\@from-tiny{--gc-start: 7;--gc-end: 10}}@media(min-width: 500px){.u-gc-7\\/11\\@from-tiny{--gc-start: 7;--gc-end: 11}}@media(min-width: 500px){.u-gc-7\\/12\\@from-tiny{--gc-start: 7;--gc-end: 12}}@media(min-width: 500px){.u-gc-7\\/13\\@from-tiny{--gc-start: 7;--gc-end: 13}}@media(min-width: 500px){.u-gc-8\\/1\\@from-tiny{--gc-start: 8;--gc-end: 1}}@media(min-width: 500px){.u-gc-8\\/2\\@from-tiny{--gc-start: 8;--gc-end: 2}}@media(min-width: 500px){.u-gc-8\\/3\\@from-tiny{--gc-start: 8;--gc-end: 3}}@media(min-width: 500px){.u-gc-8\\/4\\@from-tiny{--gc-start: 8;--gc-end: 4}}@media(min-width: 500px){.u-gc-8\\/5\\@from-tiny{--gc-start: 8;--gc-end: 5}}@media(min-width: 500px){.u-gc-8\\/6\\@from-tiny{--gc-start: 8;--gc-end: 6}}@media(min-width: 500px){.u-gc-8\\/7\\@from-tiny{--gc-start: 8;--gc-end: 7}}@media(min-width: 500px){.u-gc-8\\/8\\@from-tiny{--gc-start: 8;--gc-end: 8}}@media(min-width: 500px){.u-gc-8\\/9\\@from-tiny{--gc-start: 8;--gc-end: 9}}@media(min-width: 500px){.u-gc-8\\/10\\@from-tiny{--gc-start: 8;--gc-end: 10}}@media(min-width: 500px){.u-gc-8\\/11\\@from-tiny{--gc-start: 8;--gc-end: 11}}@media(min-width: 500px){.u-gc-8\\/12\\@from-tiny{--gc-start: 8;--gc-end: 12}}@media(min-width: 500px){.u-gc-8\\/13\\@from-tiny{--gc-start: 8;--gc-end: 13}}@media(min-width: 500px){.u-gc-9\\/1\\@from-tiny{--gc-start: 9;--gc-end: 1}}@media(min-width: 500px){.u-gc-9\\/2\\@from-tiny{--gc-start: 9;--gc-end: 2}}@media(min-width: 500px){.u-gc-9\\/3\\@from-tiny{--gc-start: 9;--gc-end: 3}}@media(min-width: 500px){.u-gc-9\\/4\\@from-tiny{--gc-start: 9;--gc-end: 4}}@media(min-width: 500px){.u-gc-9\\/5\\@from-tiny{--gc-start: 9;--gc-end: 5}}@media(min-width: 500px){.u-gc-9\\/6\\@from-tiny{--gc-start: 9;--gc-end: 6}}@media(min-width: 500px){.u-gc-9\\/7\\@from-tiny{--gc-start: 9;--gc-end: 7}}@media(min-width: 500px){.u-gc-9\\/8\\@from-tiny{--gc-start: 9;--gc-end: 8}}@media(min-width: 500px){.u-gc-9\\/9\\@from-tiny{--gc-start: 9;--gc-end: 9}}@media(min-width: 500px){.u-gc-9\\/10\\@from-tiny{--gc-start: 9;--gc-end: 10}}@media(min-width: 500px){.u-gc-9\\/11\\@from-tiny{--gc-start: 9;--gc-end: 11}}@media(min-width: 500px){.u-gc-9\\/12\\@from-tiny{--gc-start: 9;--gc-end: 12}}@media(min-width: 500px){.u-gc-9\\/13\\@from-tiny{--gc-start: 9;--gc-end: 13}}@media(min-width: 500px){.u-gc-10\\/1\\@from-tiny{--gc-start: 10;--gc-end: 1}}@media(min-width: 500px){.u-gc-10\\/2\\@from-tiny{--gc-start: 10;--gc-end: 2}}@media(min-width: 500px){.u-gc-10\\/3\\@from-tiny{--gc-start: 10;--gc-end: 3}}@media(min-width: 500px){.u-gc-10\\/4\\@from-tiny{--gc-start: 10;--gc-end: 4}}@media(min-width: 500px){.u-gc-10\\/5\\@from-tiny{--gc-start: 10;--gc-end: 5}}@media(min-width: 500px){.u-gc-10\\/6\\@from-tiny{--gc-start: 10;--gc-end: 6}}@media(min-width: 500px){.u-gc-10\\/7\\@from-tiny{--gc-start: 10;--gc-end: 7}}@media(min-width: 500px){.u-gc-10\\/8\\@from-tiny{--gc-start: 10;--gc-end: 8}}@media(min-width: 500px){.u-gc-10\\/9\\@from-tiny{--gc-start: 10;--gc-end: 9}}@media(min-width: 500px){.u-gc-10\\/10\\@from-tiny{--gc-start: 10;--gc-end: 10}}@media(min-width: 500px){.u-gc-10\\/11\\@from-tiny{--gc-start: 10;--gc-end: 11}}@media(min-width: 500px){.u-gc-10\\/12\\@from-tiny{--gc-start: 10;--gc-end: 12}}@media(min-width: 500px){.u-gc-10\\/13\\@from-tiny{--gc-start: 10;--gc-end: 13}}@media(min-width: 500px){.u-gc-11\\/1\\@from-tiny{--gc-start: 11;--gc-end: 1}}@media(min-width: 500px){.u-gc-11\\/2\\@from-tiny{--gc-start: 11;--gc-end: 2}}@media(min-width: 500px){.u-gc-11\\/3\\@from-tiny{--gc-start: 11;--gc-end: 3}}@media(min-width: 500px){.u-gc-11\\/4\\@from-tiny{--gc-start: 11;--gc-end: 4}}@media(min-width: 500px){.u-gc-11\\/5\\@from-tiny{--gc-start: 11;--gc-end: 5}}@media(min-width: 500px){.u-gc-11\\/6\\@from-tiny{--gc-start: 11;--gc-end: 6}}@media(min-width: 500px){.u-gc-11\\/7\\@from-tiny{--gc-start: 11;--gc-end: 7}}@media(min-width: 500px){.u-gc-11\\/8\\@from-tiny{--gc-start: 11;--gc-end: 8}}@media(min-width: 500px){.u-gc-11\\/9\\@from-tiny{--gc-start: 11;--gc-end: 9}}@media(min-width: 500px){.u-gc-11\\/10\\@from-tiny{--gc-start: 11;--gc-end: 10}}@media(min-width: 500px){.u-gc-11\\/11\\@from-tiny{--gc-start: 11;--gc-end: 11}}@media(min-width: 500px){.u-gc-11\\/12\\@from-tiny{--gc-start: 11;--gc-end: 12}}@media(min-width: 500px){.u-gc-11\\/13\\@from-tiny{--gc-start: 11;--gc-end: 13}}@media(min-width: 500px){.u-gc-12\\/1\\@from-tiny{--gc-start: 12;--gc-end: 1}}@media(min-width: 500px){.u-gc-12\\/2\\@from-tiny{--gc-start: 12;--gc-end: 2}}@media(min-width: 500px){.u-gc-12\\/3\\@from-tiny{--gc-start: 12;--gc-end: 3}}@media(min-width: 500px){.u-gc-12\\/4\\@from-tiny{--gc-start: 12;--gc-end: 4}}@media(min-width: 500px){.u-gc-12\\/5\\@from-tiny{--gc-start: 12;--gc-end: 5}}@media(min-width: 500px){.u-gc-12\\/6\\@from-tiny{--gc-start: 12;--gc-end: 6}}@media(min-width: 500px){.u-gc-12\\/7\\@from-tiny{--gc-start: 12;--gc-end: 7}}@media(min-width: 500px){.u-gc-12\\/8\\@from-tiny{--gc-start: 12;--gc-end: 8}}@media(min-width: 500px){.u-gc-12\\/9\\@from-tiny{--gc-start: 12;--gc-end: 9}}@media(min-width: 500px){.u-gc-12\\/10\\@from-tiny{--gc-start: 12;--gc-end: 10}}@media(min-width: 500px){.u-gc-12\\/11\\@from-tiny{--gc-start: 12;--gc-end: 11}}@media(min-width: 500px){.u-gc-12\\/12\\@from-tiny{--gc-start: 12;--gc-end: 12}}@media(min-width: 500px){.u-gc-12\\/13\\@from-tiny{--gc-start: 12;--gc-end: 13}}@media(min-width: 500px){.u-gc-13\\/1\\@from-tiny{--gc-start: 13;--gc-end: 1}}@media(min-width: 500px){.u-gc-13\\/2\\@from-tiny{--gc-start: 13;--gc-end: 2}}@media(min-width: 500px){.u-gc-13\\/3\\@from-tiny{--gc-start: 13;--gc-end: 3}}@media(min-width: 500px){.u-gc-13\\/4\\@from-tiny{--gc-start: 13;--gc-end: 4}}@media(min-width: 500px){.u-gc-13\\/5\\@from-tiny{--gc-start: 13;--gc-end: 5}}@media(min-width: 500px){.u-gc-13\\/6\\@from-tiny{--gc-start: 13;--gc-end: 6}}@media(min-width: 500px){.u-gc-13\\/7\\@from-tiny{--gc-start: 13;--gc-end: 7}}@media(min-width: 500px){.u-gc-13\\/8\\@from-tiny{--gc-start: 13;--gc-end: 8}}@media(min-width: 500px){.u-gc-13\\/9\\@from-tiny{--gc-start: 13;--gc-end: 9}}@media(min-width: 500px){.u-gc-13\\/10\\@from-tiny{--gc-start: 13;--gc-end: 10}}@media(min-width: 500px){.u-gc-13\\/11\\@from-tiny{--gc-start: 13;--gc-end: 11}}@media(min-width: 500px){.u-gc-13\\/12\\@from-tiny{--gc-start: 13;--gc-end: 12}}@media(min-width: 500px){.u-gc-13\\/13\\@from-tiny{--gc-start: 13;--gc-end: 13}}@media(min-width: 700px){.u-gc-1\\/1\\@from-small{--gc-start: 1;--gc-end: 1}}@media(min-width: 700px){.u-gc-1\\/2\\@from-small{--gc-start: 1;--gc-end: 2}}@media(min-width: 700px){.u-gc-1\\/3\\@from-small{--gc-start: 1;--gc-end: 3}}@media(min-width: 700px){.u-gc-1\\/4\\@from-small{--gc-start: 1;--gc-end: 4}}@media(min-width: 700px){.u-gc-1\\/5\\@from-small{--gc-start: 1;--gc-end: 5}}@media(min-width: 700px){.u-gc-1\\/6\\@from-small{--gc-start: 1;--gc-end: 6}}@media(min-width: 700px){.u-gc-1\\/7\\@from-small{--gc-start: 1;--gc-end: 7}}@media(min-width: 700px){.u-gc-1\\/8\\@from-small{--gc-start: 1;--gc-end: 8}}@media(min-width: 700px){.u-gc-1\\/9\\@from-small{--gc-start: 1;--gc-end: 9}}@media(min-width: 700px){.u-gc-1\\/10\\@from-small{--gc-start: 1;--gc-end: 10}}@media(min-width: 700px){.u-gc-1\\/11\\@from-small{--gc-start: 1;--gc-end: 11}}@media(min-width: 700px){.u-gc-1\\/12\\@from-small{--gc-start: 1;--gc-end: 12}}@media(min-width: 700px){.u-gc-1\\/13\\@from-small{--gc-start: 1;--gc-end: 13}}@media(min-width: 700px){.u-gc-2\\/1\\@from-small{--gc-start: 2;--gc-end: 1}}@media(min-width: 700px){.u-gc-2\\/2\\@from-small{--gc-start: 2;--gc-end: 2}}@media(min-width: 700px){.u-gc-2\\/3\\@from-small{--gc-start: 2;--gc-end: 3}}@media(min-width: 700px){.u-gc-2\\/4\\@from-small{--gc-start: 2;--gc-end: 4}}@media(min-width: 700px){.u-gc-2\\/5\\@from-small{--gc-start: 2;--gc-end: 5}}@media(min-width: 700px){.u-gc-2\\/6\\@from-small{--gc-start: 2;--gc-end: 6}}@media(min-width: 700px){.u-gc-2\\/7\\@from-small{--gc-start: 2;--gc-end: 7}}@media(min-width: 700px){.u-gc-2\\/8\\@from-small{--gc-start: 2;--gc-end: 8}}@media(min-width: 700px){.u-gc-2\\/9\\@from-small{--gc-start: 2;--gc-end: 9}}@media(min-width: 700px){.u-gc-2\\/10\\@from-small{--gc-start: 2;--gc-end: 10}}@media(min-width: 700px){.u-gc-2\\/11\\@from-small{--gc-start: 2;--gc-end: 11}}@media(min-width: 700px){.u-gc-2\\/12\\@from-small{--gc-start: 2;--gc-end: 12}}@media(min-width: 700px){.u-gc-2\\/13\\@from-small{--gc-start: 2;--gc-end: 13}}@media(min-width: 700px){.u-gc-3\\/1\\@from-small{--gc-start: 3;--gc-end: 1}}@media(min-width: 700px){.u-gc-3\\/2\\@from-small{--gc-start: 3;--gc-end: 2}}@media(min-width: 700px){.u-gc-3\\/3\\@from-small{--gc-start: 3;--gc-end: 3}}@media(min-width: 700px){.u-gc-3\\/4\\@from-small{--gc-start: 3;--gc-end: 4}}@media(min-width: 700px){.u-gc-3\\/5\\@from-small{--gc-start: 3;--gc-end: 5}}@media(min-width: 700px){.u-gc-3\\/6\\@from-small{--gc-start: 3;--gc-end: 6}}@media(min-width: 700px){.u-gc-3\\/7\\@from-small{--gc-start: 3;--gc-end: 7}}@media(min-width: 700px){.u-gc-3\\/8\\@from-small{--gc-start: 3;--gc-end: 8}}@media(min-width: 700px){.u-gc-3\\/9\\@from-small{--gc-start: 3;--gc-end: 9}}@media(min-width: 700px){.u-gc-3\\/10\\@from-small{--gc-start: 3;--gc-end: 10}}@media(min-width: 700px){.u-gc-3\\/11\\@from-small{--gc-start: 3;--gc-end: 11}}@media(min-width: 700px){.u-gc-3\\/12\\@from-small{--gc-start: 3;--gc-end: 12}}@media(min-width: 700px){.u-gc-3\\/13\\@from-small{--gc-start: 3;--gc-end: 13}}@media(min-width: 700px){.u-gc-4\\/1\\@from-small{--gc-start: 4;--gc-end: 1}}@media(min-width: 700px){.u-gc-4\\/2\\@from-small{--gc-start: 4;--gc-end: 2}}@media(min-width: 700px){.u-gc-4\\/3\\@from-small{--gc-start: 4;--gc-end: 3}}@media(min-width: 700px){.u-gc-4\\/4\\@from-small{--gc-start: 4;--gc-end: 4}}@media(min-width: 700px){.u-gc-4\\/5\\@from-small{--gc-start: 4;--gc-end: 5}}@media(min-width: 700px){.u-gc-4\\/6\\@from-small{--gc-start: 4;--gc-end: 6}}@media(min-width: 700px){.u-gc-4\\/7\\@from-small{--gc-start: 4;--gc-end: 7}}@media(min-width: 700px){.u-gc-4\\/8\\@from-small{--gc-start: 4;--gc-end: 8}}@media(min-width: 700px){.u-gc-4\\/9\\@from-small{--gc-start: 4;--gc-end: 9}}@media(min-width: 700px){.u-gc-4\\/10\\@from-small{--gc-start: 4;--gc-end: 10}}@media(min-width: 700px){.u-gc-4\\/11\\@from-small{--gc-start: 4;--gc-end: 11}}@media(min-width: 700px){.u-gc-4\\/12\\@from-small{--gc-start: 4;--gc-end: 12}}@media(min-width: 700px){.u-gc-4\\/13\\@from-small{--gc-start: 4;--gc-end: 13}}@media(min-width: 700px){.u-gc-5\\/1\\@from-small{--gc-start: 5;--gc-end: 1}}@media(min-width: 700px){.u-gc-5\\/2\\@from-small{--gc-start: 5;--gc-end: 2}}@media(min-width: 700px){.u-gc-5\\/3\\@from-small{--gc-start: 5;--gc-end: 3}}@media(min-width: 700px){.u-gc-5\\/4\\@from-small{--gc-start: 5;--gc-end: 4}}@media(min-width: 700px){.u-gc-5\\/5\\@from-small{--gc-start: 5;--gc-end: 5}}@media(min-width: 700px){.u-gc-5\\/6\\@from-small{--gc-start: 5;--gc-end: 6}}@media(min-width: 700px){.u-gc-5\\/7\\@from-small{--gc-start: 5;--gc-end: 7}}@media(min-width: 700px){.u-gc-5\\/8\\@from-small{--gc-start: 5;--gc-end: 8}}@media(min-width: 700px){.u-gc-5\\/9\\@from-small{--gc-start: 5;--gc-end: 9}}@media(min-width: 700px){.u-gc-5\\/10\\@from-small{--gc-start: 5;--gc-end: 10}}@media(min-width: 700px){.u-gc-5\\/11\\@from-small{--gc-start: 5;--gc-end: 11}}@media(min-width: 700px){.u-gc-5\\/12\\@from-small{--gc-start: 5;--gc-end: 12}}@media(min-width: 700px){.u-gc-5\\/13\\@from-small{--gc-start: 5;--gc-end: 13}}@media(min-width: 700px){.u-gc-6\\/1\\@from-small{--gc-start: 6;--gc-end: 1}}@media(min-width: 700px){.u-gc-6\\/2\\@from-small{--gc-start: 6;--gc-end: 2}}@media(min-width: 700px){.u-gc-6\\/3\\@from-small{--gc-start: 6;--gc-end: 3}}@media(min-width: 700px){.u-gc-6\\/4\\@from-small{--gc-start: 6;--gc-end: 4}}@media(min-width: 700px){.u-gc-6\\/5\\@from-small{--gc-start: 6;--gc-end: 5}}@media(min-width: 700px){.u-gc-6\\/6\\@from-small{--gc-start: 6;--gc-end: 6}}@media(min-width: 700px){.u-gc-6\\/7\\@from-small{--gc-start: 6;--gc-end: 7}}@media(min-width: 700px){.u-gc-6\\/8\\@from-small{--gc-start: 6;--gc-end: 8}}@media(min-width: 700px){.u-gc-6\\/9\\@from-small{--gc-start: 6;--gc-end: 9}}@media(min-width: 700px){.u-gc-6\\/10\\@from-small{--gc-start: 6;--gc-end: 10}}@media(min-width: 700px){.u-gc-6\\/11\\@from-small{--gc-start: 6;--gc-end: 11}}@media(min-width: 700px){.u-gc-6\\/12\\@from-small{--gc-start: 6;--gc-end: 12}}@media(min-width: 700px){.u-gc-6\\/13\\@from-small{--gc-start: 6;--gc-end: 13}}@media(min-width: 700px){.u-gc-7\\/1\\@from-small{--gc-start: 7;--gc-end: 1}}@media(min-width: 700px){.u-gc-7\\/2\\@from-small{--gc-start: 7;--gc-end: 2}}@media(min-width: 700px){.u-gc-7\\/3\\@from-small{--gc-start: 7;--gc-end: 3}}@media(min-width: 700px){.u-gc-7\\/4\\@from-small{--gc-start: 7;--gc-end: 4}}@media(min-width: 700px){.u-gc-7\\/5\\@from-small{--gc-start: 7;--gc-end: 5}}@media(min-width: 700px){.u-gc-7\\/6\\@from-small{--gc-start: 7;--gc-end: 6}}@media(min-width: 700px){.u-gc-7\\/7\\@from-small{--gc-start: 7;--gc-end: 7}}@media(min-width: 700px){.u-gc-7\\/8\\@from-small{--gc-start: 7;--gc-end: 8}}@media(min-width: 700px){.u-gc-7\\/9\\@from-small{--gc-start: 7;--gc-end: 9}}@media(min-width: 700px){.u-gc-7\\/10\\@from-small{--gc-start: 7;--gc-end: 10}}@media(min-width: 700px){.u-gc-7\\/11\\@from-small{--gc-start: 7;--gc-end: 11}}@media(min-width: 700px){.u-gc-7\\/12\\@from-small{--gc-start: 7;--gc-end: 12}}@media(min-width: 700px){.u-gc-7\\/13\\@from-small{--gc-start: 7;--gc-end: 13}}@media(min-width: 700px){.u-gc-8\\/1\\@from-small{--gc-start: 8;--gc-end: 1}}@media(min-width: 700px){.u-gc-8\\/2\\@from-small{--gc-start: 8;--gc-end: 2}}@media(min-width: 700px){.u-gc-8\\/3\\@from-small{--gc-start: 8;--gc-end: 3}}@media(min-width: 700px){.u-gc-8\\/4\\@from-small{--gc-start: 8;--gc-end: 4}}@media(min-width: 700px){.u-gc-8\\/5\\@from-small{--gc-start: 8;--gc-end: 5}}@media(min-width: 700px){.u-gc-8\\/6\\@from-small{--gc-start: 8;--gc-end: 6}}@media(min-width: 700px){.u-gc-8\\/7\\@from-small{--gc-start: 8;--gc-end: 7}}@media(min-width: 700px){.u-gc-8\\/8\\@from-small{--gc-start: 8;--gc-end: 8}}@media(min-width: 700px){.u-gc-8\\/9\\@from-small{--gc-start: 8;--gc-end: 9}}@media(min-width: 700px){.u-gc-8\\/10\\@from-small{--gc-start: 8;--gc-end: 10}}@media(min-width: 700px){.u-gc-8\\/11\\@from-small{--gc-start: 8;--gc-end: 11}}@media(min-width: 700px){.u-gc-8\\/12\\@from-small{--gc-start: 8;--gc-end: 12}}@media(min-width: 700px){.u-gc-8\\/13\\@from-small{--gc-start: 8;--gc-end: 13}}@media(min-width: 700px){.u-gc-9\\/1\\@from-small{--gc-start: 9;--gc-end: 1}}@media(min-width: 700px){.u-gc-9\\/2\\@from-small{--gc-start: 9;--gc-end: 2}}@media(min-width: 700px){.u-gc-9\\/3\\@from-small{--gc-start: 9;--gc-end: 3}}@media(min-width: 700px){.u-gc-9\\/4\\@from-small{--gc-start: 9;--gc-end: 4}}@media(min-width: 700px){.u-gc-9\\/5\\@from-small{--gc-start: 9;--gc-end: 5}}@media(min-width: 700px){.u-gc-9\\/6\\@from-small{--gc-start: 9;--gc-end: 6}}@media(min-width: 700px){.u-gc-9\\/7\\@from-small{--gc-start: 9;--gc-end: 7}}@media(min-width: 700px){.u-gc-9\\/8\\@from-small{--gc-start: 9;--gc-end: 8}}@media(min-width: 700px){.u-gc-9\\/9\\@from-small{--gc-start: 9;--gc-end: 9}}@media(min-width: 700px){.u-gc-9\\/10\\@from-small{--gc-start: 9;--gc-end: 10}}@media(min-width: 700px){.u-gc-9\\/11\\@from-small{--gc-start: 9;--gc-end: 11}}@media(min-width: 700px){.u-gc-9\\/12\\@from-small{--gc-start: 9;--gc-end: 12}}@media(min-width: 700px){.u-gc-9\\/13\\@from-small{--gc-start: 9;--gc-end: 13}}@media(min-width: 700px){.u-gc-10\\/1\\@from-small{--gc-start: 10;--gc-end: 1}}@media(min-width: 700px){.u-gc-10\\/2\\@from-small{--gc-start: 10;--gc-end: 2}}@media(min-width: 700px){.u-gc-10\\/3\\@from-small{--gc-start: 10;--gc-end: 3}}@media(min-width: 700px){.u-gc-10\\/4\\@from-small{--gc-start: 10;--gc-end: 4}}@media(min-width: 700px){.u-gc-10\\/5\\@from-small{--gc-start: 10;--gc-end: 5}}@media(min-width: 700px){.u-gc-10\\/6\\@from-small{--gc-start: 10;--gc-end: 6}}@media(min-width: 700px){.u-gc-10\\/7\\@from-small{--gc-start: 10;--gc-end: 7}}@media(min-width: 700px){.u-gc-10\\/8\\@from-small{--gc-start: 10;--gc-end: 8}}@media(min-width: 700px){.u-gc-10\\/9\\@from-small{--gc-start: 10;--gc-end: 9}}@media(min-width: 700px){.u-gc-10\\/10\\@from-small{--gc-start: 10;--gc-end: 10}}@media(min-width: 700px){.u-gc-10\\/11\\@from-small{--gc-start: 10;--gc-end: 11}}@media(min-width: 700px){.u-gc-10\\/12\\@from-small{--gc-start: 10;--gc-end: 12}}@media(min-width: 700px){.u-gc-10\\/13\\@from-small{--gc-start: 10;--gc-end: 13}}@media(min-width: 700px){.u-gc-11\\/1\\@from-small{--gc-start: 11;--gc-end: 1}}@media(min-width: 700px){.u-gc-11\\/2\\@from-small{--gc-start: 11;--gc-end: 2}}@media(min-width: 700px){.u-gc-11\\/3\\@from-small{--gc-start: 11;--gc-end: 3}}@media(min-width: 700px){.u-gc-11\\/4\\@from-small{--gc-start: 11;--gc-end: 4}}@media(min-width: 700px){.u-gc-11\\/5\\@from-small{--gc-start: 11;--gc-end: 5}}@media(min-width: 700px){.u-gc-11\\/6\\@from-small{--gc-start: 11;--gc-end: 6}}@media(min-width: 700px){.u-gc-11\\/7\\@from-small{--gc-start: 11;--gc-end: 7}}@media(min-width: 700px){.u-gc-11\\/8\\@from-small{--gc-start: 11;--gc-end: 8}}@media(min-width: 700px){.u-gc-11\\/9\\@from-small{--gc-start: 11;--gc-end: 9}}@media(min-width: 700px){.u-gc-11\\/10\\@from-small{--gc-start: 11;--gc-end: 10}}@media(min-width: 700px){.u-gc-11\\/11\\@from-small{--gc-start: 11;--gc-end: 11}}@media(min-width: 700px){.u-gc-11\\/12\\@from-small{--gc-start: 11;--gc-end: 12}}@media(min-width: 700px){.u-gc-11\\/13\\@from-small{--gc-start: 11;--gc-end: 13}}@media(min-width: 700px){.u-gc-12\\/1\\@from-small{--gc-start: 12;--gc-end: 1}}@media(min-width: 700px){.u-gc-12\\/2\\@from-small{--gc-start: 12;--gc-end: 2}}@media(min-width: 700px){.u-gc-12\\/3\\@from-small{--gc-start: 12;--gc-end: 3}}@media(min-width: 700px){.u-gc-12\\/4\\@from-small{--gc-start: 12;--gc-end: 4}}@media(min-width: 700px){.u-gc-12\\/5\\@from-small{--gc-start: 12;--gc-end: 5}}@media(min-width: 700px){.u-gc-12\\/6\\@from-small{--gc-start: 12;--gc-end: 6}}@media(min-width: 700px){.u-gc-12\\/7\\@from-small{--gc-start: 12;--gc-end: 7}}@media(min-width: 700px){.u-gc-12\\/8\\@from-small{--gc-start: 12;--gc-end: 8}}@media(min-width: 700px){.u-gc-12\\/9\\@from-small{--gc-start: 12;--gc-end: 9}}@media(min-width: 700px){.u-gc-12\\/10\\@from-small{--gc-start: 12;--gc-end: 10}}@media(min-width: 700px){.u-gc-12\\/11\\@from-small{--gc-start: 12;--gc-end: 11}}@media(min-width: 700px){.u-gc-12\\/12\\@from-small{--gc-start: 12;--gc-end: 12}}@media(min-width: 700px){.u-gc-12\\/13\\@from-small{--gc-start: 12;--gc-end: 13}}@media(min-width: 700px){.u-gc-13\\/1\\@from-small{--gc-start: 13;--gc-end: 1}}@media(min-width: 700px){.u-gc-13\\/2\\@from-small{--gc-start: 13;--gc-end: 2}}@media(min-width: 700px){.u-gc-13\\/3\\@from-small{--gc-start: 13;--gc-end: 3}}@media(min-width: 700px){.u-gc-13\\/4\\@from-small{--gc-start: 13;--gc-end: 4}}@media(min-width: 700px){.u-gc-13\\/5\\@from-small{--gc-start: 13;--gc-end: 5}}@media(min-width: 700px){.u-gc-13\\/6\\@from-small{--gc-start: 13;--gc-end: 6}}@media(min-width: 700px){.u-gc-13\\/7\\@from-small{--gc-start: 13;--gc-end: 7}}@media(min-width: 700px){.u-gc-13\\/8\\@from-small{--gc-start: 13;--gc-end: 8}}@media(min-width: 700px){.u-gc-13\\/9\\@from-small{--gc-start: 13;--gc-end: 9}}@media(min-width: 700px){.u-gc-13\\/10\\@from-small{--gc-start: 13;--gc-end: 10}}@media(min-width: 700px){.u-gc-13\\/11\\@from-small{--gc-start: 13;--gc-end: 11}}@media(min-width: 700px){.u-gc-13\\/12\\@from-small{--gc-start: 13;--gc-end: 12}}@media(min-width: 700px){.u-gc-13\\/13\\@from-small{--gc-start: 13;--gc-end: 13}}@media(min-width: 1000px){.u-gc-1\\/1\\@from-medium{--gc-start: 1;--gc-end: 1}}@media(min-width: 1000px){.u-gc-1\\/2\\@from-medium{--gc-start: 1;--gc-end: 2}}@media(min-width: 1000px){.u-gc-1\\/3\\@from-medium{--gc-start: 1;--gc-end: 3}}@media(min-width: 1000px){.u-gc-1\\/4\\@from-medium{--gc-start: 1;--gc-end: 4}}@media(min-width: 1000px){.u-gc-1\\/5\\@from-medium{--gc-start: 1;--gc-end: 5}}@media(min-width: 1000px){.u-gc-1\\/6\\@from-medium{--gc-start: 1;--gc-end: 6}}@media(min-width: 1000px){.u-gc-1\\/7\\@from-medium{--gc-start: 1;--gc-end: 7}}@media(min-width: 1000px){.u-gc-1\\/8\\@from-medium{--gc-start: 1;--gc-end: 8}}@media(min-width: 1000px){.u-gc-1\\/9\\@from-medium{--gc-start: 1;--gc-end: 9}}@media(min-width: 1000px){.u-gc-1\\/10\\@from-medium{--gc-start: 1;--gc-end: 10}}@media(min-width: 1000px){.u-gc-1\\/11\\@from-medium{--gc-start: 1;--gc-end: 11}}@media(min-width: 1000px){.u-gc-1\\/12\\@from-medium{--gc-start: 1;--gc-end: 12}}@media(min-width: 1000px){.u-gc-1\\/13\\@from-medium{--gc-start: 1;--gc-end: 13}}@media(min-width: 1000px){.u-gc-2\\/1\\@from-medium{--gc-start: 2;--gc-end: 1}}@media(min-width: 1000px){.u-gc-2\\/2\\@from-medium{--gc-start: 2;--gc-end: 2}}@media(min-width: 1000px){.u-gc-2\\/3\\@from-medium{--gc-start: 2;--gc-end: 3}}@media(min-width: 1000px){.u-gc-2\\/4\\@from-medium{--gc-start: 2;--gc-end: 4}}@media(min-width: 1000px){.u-gc-2\\/5\\@from-medium{--gc-start: 2;--gc-end: 5}}@media(min-width: 1000px){.u-gc-2\\/6\\@from-medium{--gc-start: 2;--gc-end: 6}}@media(min-width: 1000px){.u-gc-2\\/7\\@from-medium{--gc-start: 2;--gc-end: 7}}@media(min-width: 1000px){.u-gc-2\\/8\\@from-medium{--gc-start: 2;--gc-end: 8}}@media(min-width: 1000px){.u-gc-2\\/9\\@from-medium{--gc-start: 2;--gc-end: 9}}@media(min-width: 1000px){.u-gc-2\\/10\\@from-medium{--gc-start: 2;--gc-end: 10}}@media(min-width: 1000px){.u-gc-2\\/11\\@from-medium{--gc-start: 2;--gc-end: 11}}@media(min-width: 1000px){.u-gc-2\\/12\\@from-medium{--gc-start: 2;--gc-end: 12}}@media(min-width: 1000px){.u-gc-2\\/13\\@from-medium{--gc-start: 2;--gc-end: 13}}@media(min-width: 1000px){.u-gc-3\\/1\\@from-medium{--gc-start: 3;--gc-end: 1}}@media(min-width: 1000px){.u-gc-3\\/2\\@from-medium{--gc-start: 3;--gc-end: 2}}@media(min-width: 1000px){.u-gc-3\\/3\\@from-medium{--gc-start: 3;--gc-end: 3}}@media(min-width: 1000px){.u-gc-3\\/4\\@from-medium{--gc-start: 3;--gc-end: 4}}@media(min-width: 1000px){.u-gc-3\\/5\\@from-medium{--gc-start: 3;--gc-end: 5}}@media(min-width: 1000px){.u-gc-3\\/6\\@from-medium{--gc-start: 3;--gc-end: 6}}@media(min-width: 1000px){.u-gc-3\\/7\\@from-medium{--gc-start: 3;--gc-end: 7}}@media(min-width: 1000px){.u-gc-3\\/8\\@from-medium{--gc-start: 3;--gc-end: 8}}@media(min-width: 1000px){.u-gc-3\\/9\\@from-medium{--gc-start: 3;--gc-end: 9}}@media(min-width: 1000px){.u-gc-3\\/10\\@from-medium{--gc-start: 3;--gc-end: 10}}@media(min-width: 1000px){.u-gc-3\\/11\\@from-medium{--gc-start: 3;--gc-end: 11}}@media(min-width: 1000px){.u-gc-3\\/12\\@from-medium{--gc-start: 3;--gc-end: 12}}@media(min-width: 1000px){.u-gc-3\\/13\\@from-medium{--gc-start: 3;--gc-end: 13}}@media(min-width: 1000px){.u-gc-4\\/1\\@from-medium{--gc-start: 4;--gc-end: 1}}@media(min-width: 1000px){.u-gc-4\\/2\\@from-medium{--gc-start: 4;--gc-end: 2}}@media(min-width: 1000px){.u-gc-4\\/3\\@from-medium{--gc-start: 4;--gc-end: 3}}@media(min-width: 1000px){.u-gc-4\\/4\\@from-medium{--gc-start: 4;--gc-end: 4}}@media(min-width: 1000px){.u-gc-4\\/5\\@from-medium{--gc-start: 4;--gc-end: 5}}@media(min-width: 1000px){.u-gc-4\\/6\\@from-medium{--gc-start: 4;--gc-end: 6}}@media(min-width: 1000px){.u-gc-4\\/7\\@from-medium{--gc-start: 4;--gc-end: 7}}@media(min-width: 1000px){.u-gc-4\\/8\\@from-medium{--gc-start: 4;--gc-end: 8}}@media(min-width: 1000px){.u-gc-4\\/9\\@from-medium{--gc-start: 4;--gc-end: 9}}@media(min-width: 1000px){.u-gc-4\\/10\\@from-medium{--gc-start: 4;--gc-end: 10}}@media(min-width: 1000px){.u-gc-4\\/11\\@from-medium{--gc-start: 4;--gc-end: 11}}@media(min-width: 1000px){.u-gc-4\\/12\\@from-medium{--gc-start: 4;--gc-end: 12}}@media(min-width: 1000px){.u-gc-4\\/13\\@from-medium{--gc-start: 4;--gc-end: 13}}@media(min-width: 1000px){.u-gc-5\\/1\\@from-medium{--gc-start: 5;--gc-end: 1}}@media(min-width: 1000px){.u-gc-5\\/2\\@from-medium{--gc-start: 5;--gc-end: 2}}@media(min-width: 1000px){.u-gc-5\\/3\\@from-medium{--gc-start: 5;--gc-end: 3}}@media(min-width: 1000px){.u-gc-5\\/4\\@from-medium{--gc-start: 5;--gc-end: 4}}@media(min-width: 1000px){.u-gc-5\\/5\\@from-medium{--gc-start: 5;--gc-end: 5}}@media(min-width: 1000px){.u-gc-5\\/6\\@from-medium{--gc-start: 5;--gc-end: 6}}@media(min-width: 1000px){.u-gc-5\\/7\\@from-medium{--gc-start: 5;--gc-end: 7}}@media(min-width: 1000px){.u-gc-5\\/8\\@from-medium{--gc-start: 5;--gc-end: 8}}@media(min-width: 1000px){.u-gc-5\\/9\\@from-medium{--gc-start: 5;--gc-end: 9}}@media(min-width: 1000px){.u-gc-5\\/10\\@from-medium{--gc-start: 5;--gc-end: 10}}@media(min-width: 1000px){.u-gc-5\\/11\\@from-medium{--gc-start: 5;--gc-end: 11}}@media(min-width: 1000px){.u-gc-5\\/12\\@from-medium{--gc-start: 5;--gc-end: 12}}@media(min-width: 1000px){.u-gc-5\\/13\\@from-medium{--gc-start: 5;--gc-end: 13}}@media(min-width: 1000px){.u-gc-6\\/1\\@from-medium{--gc-start: 6;--gc-end: 1}}@media(min-width: 1000px){.u-gc-6\\/2\\@from-medium{--gc-start: 6;--gc-end: 2}}@media(min-width: 1000px){.u-gc-6\\/3\\@from-medium{--gc-start: 6;--gc-end: 3}}@media(min-width: 1000px){.u-gc-6\\/4\\@from-medium{--gc-start: 6;--gc-end: 4}}@media(min-width: 1000px){.u-gc-6\\/5\\@from-medium{--gc-start: 6;--gc-end: 5}}@media(min-width: 1000px){.u-gc-6\\/6\\@from-medium{--gc-start: 6;--gc-end: 6}}@media(min-width: 1000px){.u-gc-6\\/7\\@from-medium{--gc-start: 6;--gc-end: 7}}@media(min-width: 1000px){.u-gc-6\\/8\\@from-medium{--gc-start: 6;--gc-end: 8}}@media(min-width: 1000px){.u-gc-6\\/9\\@from-medium{--gc-start: 6;--gc-end: 9}}@media(min-width: 1000px){.u-gc-6\\/10\\@from-medium{--gc-start: 6;--gc-end: 10}}@media(min-width: 1000px){.u-gc-6\\/11\\@from-medium{--gc-start: 6;--gc-end: 11}}@media(min-width: 1000px){.u-gc-6\\/12\\@from-medium{--gc-start: 6;--gc-end: 12}}@media(min-width: 1000px){.u-gc-6\\/13\\@from-medium{--gc-start: 6;--gc-end: 13}}@media(min-width: 1000px){.u-gc-7\\/1\\@from-medium{--gc-start: 7;--gc-end: 1}}@media(min-width: 1000px){.u-gc-7\\/2\\@from-medium{--gc-start: 7;--gc-end: 2}}@media(min-width: 1000px){.u-gc-7\\/3\\@from-medium{--gc-start: 7;--gc-end: 3}}@media(min-width: 1000px){.u-gc-7\\/4\\@from-medium{--gc-start: 7;--gc-end: 4}}@media(min-width: 1000px){.u-gc-7\\/5\\@from-medium{--gc-start: 7;--gc-end: 5}}@media(min-width: 1000px){.u-gc-7\\/6\\@from-medium{--gc-start: 7;--gc-end: 6}}@media(min-width: 1000px){.u-gc-7\\/7\\@from-medium{--gc-start: 7;--gc-end: 7}}@media(min-width: 1000px){.u-gc-7\\/8\\@from-medium{--gc-start: 7;--gc-end: 8}}@media(min-width: 1000px){.u-gc-7\\/9\\@from-medium{--gc-start: 7;--gc-end: 9}}@media(min-width: 1000px){.u-gc-7\\/10\\@from-medium{--gc-start: 7;--gc-end: 10}}@media(min-width: 1000px){.u-gc-7\\/11\\@from-medium{--gc-start: 7;--gc-end: 11}}@media(min-width: 1000px){.u-gc-7\\/12\\@from-medium{--gc-start: 7;--gc-end: 12}}@media(min-width: 1000px){.u-gc-7\\/13\\@from-medium{--gc-start: 7;--gc-end: 13}}@media(min-width: 1000px){.u-gc-8\\/1\\@from-medium{--gc-start: 8;--gc-end: 1}}@media(min-width: 1000px){.u-gc-8\\/2\\@from-medium{--gc-start: 8;--gc-end: 2}}@media(min-width: 1000px){.u-gc-8\\/3\\@from-medium{--gc-start: 8;--gc-end: 3}}@media(min-width: 1000px){.u-gc-8\\/4\\@from-medium{--gc-start: 8;--gc-end: 4}}@media(min-width: 1000px){.u-gc-8\\/5\\@from-medium{--gc-start: 8;--gc-end: 5}}@media(min-width: 1000px){.u-gc-8\\/6\\@from-medium{--gc-start: 8;--gc-end: 6}}@media(min-width: 1000px){.u-gc-8\\/7\\@from-medium{--gc-start: 8;--gc-end: 7}}@media(min-width: 1000px){.u-gc-8\\/8\\@from-medium{--gc-start: 8;--gc-end: 8}}@media(min-width: 1000px){.u-gc-8\\/9\\@from-medium{--gc-start: 8;--gc-end: 9}}@media(min-width: 1000px){.u-gc-8\\/10\\@from-medium{--gc-start: 8;--gc-end: 10}}@media(min-width: 1000px){.u-gc-8\\/11\\@from-medium{--gc-start: 8;--gc-end: 11}}@media(min-width: 1000px){.u-gc-8\\/12\\@from-medium{--gc-start: 8;--gc-end: 12}}@media(min-width: 1000px){.u-gc-8\\/13\\@from-medium{--gc-start: 8;--gc-end: 13}}@media(min-width: 1000px){.u-gc-9\\/1\\@from-medium{--gc-start: 9;--gc-end: 1}}@media(min-width: 1000px){.u-gc-9\\/2\\@from-medium{--gc-start: 9;--gc-end: 2}}@media(min-width: 1000px){.u-gc-9\\/3\\@from-medium{--gc-start: 9;--gc-end: 3}}@media(min-width: 1000px){.u-gc-9\\/4\\@from-medium{--gc-start: 9;--gc-end: 4}}@media(min-width: 1000px){.u-gc-9\\/5\\@from-medium{--gc-start: 9;--gc-end: 5}}@media(min-width: 1000px){.u-gc-9\\/6\\@from-medium{--gc-start: 9;--gc-end: 6}}@media(min-width: 1000px){.u-gc-9\\/7\\@from-medium{--gc-start: 9;--gc-end: 7}}@media(min-width: 1000px){.u-gc-9\\/8\\@from-medium{--gc-start: 9;--gc-end: 8}}@media(min-width: 1000px){.u-gc-9\\/9\\@from-medium{--gc-start: 9;--gc-end: 9}}@media(min-width: 1000px){.u-gc-9\\/10\\@from-medium{--gc-start: 9;--gc-end: 10}}@media(min-width: 1000px){.u-gc-9\\/11\\@from-medium{--gc-start: 9;--gc-end: 11}}@media(min-width: 1000px){.u-gc-9\\/12\\@from-medium{--gc-start: 9;--gc-end: 12}}@media(min-width: 1000px){.u-gc-9\\/13\\@from-medium{--gc-start: 9;--gc-end: 13}}@media(min-width: 1000px){.u-gc-10\\/1\\@from-medium{--gc-start: 10;--gc-end: 1}}@media(min-width: 1000px){.u-gc-10\\/2\\@from-medium{--gc-start: 10;--gc-end: 2}}@media(min-width: 1000px){.u-gc-10\\/3\\@from-medium{--gc-start: 10;--gc-end: 3}}@media(min-width: 1000px){.u-gc-10\\/4\\@from-medium{--gc-start: 10;--gc-end: 4}}@media(min-width: 1000px){.u-gc-10\\/5\\@from-medium{--gc-start: 10;--gc-end: 5}}@media(min-width: 1000px){.u-gc-10\\/6\\@from-medium{--gc-start: 10;--gc-end: 6}}@media(min-width: 1000px){.u-gc-10\\/7\\@from-medium{--gc-start: 10;--gc-end: 7}}@media(min-width: 1000px){.u-gc-10\\/8\\@from-medium{--gc-start: 10;--gc-end: 8}}@media(min-width: 1000px){.u-gc-10\\/9\\@from-medium{--gc-start: 10;--gc-end: 9}}@media(min-width: 1000px){.u-gc-10\\/10\\@from-medium{--gc-start: 10;--gc-end: 10}}@media(min-width: 1000px){.u-gc-10\\/11\\@from-medium{--gc-start: 10;--gc-end: 11}}@media(min-width: 1000px){.u-gc-10\\/12\\@from-medium{--gc-start: 10;--gc-end: 12}}@media(min-width: 1000px){.u-gc-10\\/13\\@from-medium{--gc-start: 10;--gc-end: 13}}@media(min-width: 1000px){.u-gc-11\\/1\\@from-medium{--gc-start: 11;--gc-end: 1}}@media(min-width: 1000px){.u-gc-11\\/2\\@from-medium{--gc-start: 11;--gc-end: 2}}@media(min-width: 1000px){.u-gc-11\\/3\\@from-medium{--gc-start: 11;--gc-end: 3}}@media(min-width: 1000px){.u-gc-11\\/4\\@from-medium{--gc-start: 11;--gc-end: 4}}@media(min-width: 1000px){.u-gc-11\\/5\\@from-medium{--gc-start: 11;--gc-end: 5}}@media(min-width: 1000px){.u-gc-11\\/6\\@from-medium{--gc-start: 11;--gc-end: 6}}@media(min-width: 1000px){.u-gc-11\\/7\\@from-medium{--gc-start: 11;--gc-end: 7}}@media(min-width: 1000px){.u-gc-11\\/8\\@from-medium{--gc-start: 11;--gc-end: 8}}@media(min-width: 1000px){.u-gc-11\\/9\\@from-medium{--gc-start: 11;--gc-end: 9}}@media(min-width: 1000px){.u-gc-11\\/10\\@from-medium{--gc-start: 11;--gc-end: 10}}@media(min-width: 1000px){.u-gc-11\\/11\\@from-medium{--gc-start: 11;--gc-end: 11}}@media(min-width: 1000px){.u-gc-11\\/12\\@from-medium{--gc-start: 11;--gc-end: 12}}@media(min-width: 1000px){.u-gc-11\\/13\\@from-medium{--gc-start: 11;--gc-end: 13}}@media(min-width: 1000px){.u-gc-12\\/1\\@from-medium{--gc-start: 12;--gc-end: 1}}@media(min-width: 1000px){.u-gc-12\\/2\\@from-medium{--gc-start: 12;--gc-end: 2}}@media(min-width: 1000px){.u-gc-12\\/3\\@from-medium{--gc-start: 12;--gc-end: 3}}@media(min-width: 1000px){.u-gc-12\\/4\\@from-medium{--gc-start: 12;--gc-end: 4}}@media(min-width: 1000px){.u-gc-12\\/5\\@from-medium{--gc-start: 12;--gc-end: 5}}@media(min-width: 1000px){.u-gc-12\\/6\\@from-medium{--gc-start: 12;--gc-end: 6}}@media(min-width: 1000px){.u-gc-12\\/7\\@from-medium{--gc-start: 12;--gc-end: 7}}@media(min-width: 1000px){.u-gc-12\\/8\\@from-medium{--gc-start: 12;--gc-end: 8}}@media(min-width: 1000px){.u-gc-12\\/9\\@from-medium{--gc-start: 12;--gc-end: 9}}@media(min-width: 1000px){.u-gc-12\\/10\\@from-medium{--gc-start: 12;--gc-end: 10}}@media(min-width: 1000px){.u-gc-12\\/11\\@from-medium{--gc-start: 12;--gc-end: 11}}@media(min-width: 1000px){.u-gc-12\\/12\\@from-medium{--gc-start: 12;--gc-end: 12}}@media(min-width: 1000px){.u-gc-12\\/13\\@from-medium{--gc-start: 12;--gc-end: 13}}@media(min-width: 1000px){.u-gc-13\\/1\\@from-medium{--gc-start: 13;--gc-end: 1}}@media(min-width: 1000px){.u-gc-13\\/2\\@from-medium{--gc-start: 13;--gc-end: 2}}@media(min-width: 1000px){.u-gc-13\\/3\\@from-medium{--gc-start: 13;--gc-end: 3}}@media(min-width: 1000px){.u-gc-13\\/4\\@from-medium{--gc-start: 13;--gc-end: 4}}@media(min-width: 1000px){.u-gc-13\\/5\\@from-medium{--gc-start: 13;--gc-end: 5}}@media(min-width: 1000px){.u-gc-13\\/6\\@from-medium{--gc-start: 13;--gc-end: 6}}@media(min-width: 1000px){.u-gc-13\\/7\\@from-medium{--gc-start: 13;--gc-end: 7}}@media(min-width: 1000px){.u-gc-13\\/8\\@from-medium{--gc-start: 13;--gc-end: 8}}@media(min-width: 1000px){.u-gc-13\\/9\\@from-medium{--gc-start: 13;--gc-end: 9}}@media(min-width: 1000px){.u-gc-13\\/10\\@from-medium{--gc-start: 13;--gc-end: 10}}@media(min-width: 1000px){.u-gc-13\\/11\\@from-medium{--gc-start: 13;--gc-end: 11}}@media(min-width: 1000px){.u-gc-13\\/12\\@from-medium{--gc-start: 13;--gc-end: 12}}@media(min-width: 1000px){.u-gc-13\\/13\\@from-medium{--gc-start: 13;--gc-end: 13}}@media(min-width: 1200px){.u-gc-1\\/1\\@from-large{--gc-start: 1;--gc-end: 1}}@media(min-width: 1200px){.u-gc-1\\/2\\@from-large{--gc-start: 1;--gc-end: 2}}@media(min-width: 1200px){.u-gc-1\\/3\\@from-large{--gc-start: 1;--gc-end: 3}}@media(min-width: 1200px){.u-gc-1\\/4\\@from-large{--gc-start: 1;--gc-end: 4}}@media(min-width: 1200px){.u-gc-1\\/5\\@from-large{--gc-start: 1;--gc-end: 5}}@media(min-width: 1200px){.u-gc-1\\/6\\@from-large{--gc-start: 1;--gc-end: 6}}@media(min-width: 1200px){.u-gc-1\\/7\\@from-large{--gc-start: 1;--gc-end: 7}}@media(min-width: 1200px){.u-gc-1\\/8\\@from-large{--gc-start: 1;--gc-end: 8}}@media(min-width: 1200px){.u-gc-1\\/9\\@from-large{--gc-start: 1;--gc-end: 9}}@media(min-width: 1200px){.u-gc-1\\/10\\@from-large{--gc-start: 1;--gc-end: 10}}@media(min-width: 1200px){.u-gc-1\\/11\\@from-large{--gc-start: 1;--gc-end: 11}}@media(min-width: 1200px){.u-gc-1\\/12\\@from-large{--gc-start: 1;--gc-end: 12}}@media(min-width: 1200px){.u-gc-1\\/13\\@from-large{--gc-start: 1;--gc-end: 13}}@media(min-width: 1200px){.u-gc-2\\/1\\@from-large{--gc-start: 2;--gc-end: 1}}@media(min-width: 1200px){.u-gc-2\\/2\\@from-large{--gc-start: 2;--gc-end: 2}}@media(min-width: 1200px){.u-gc-2\\/3\\@from-large{--gc-start: 2;--gc-end: 3}}@media(min-width: 1200px){.u-gc-2\\/4\\@from-large{--gc-start: 2;--gc-end: 4}}@media(min-width: 1200px){.u-gc-2\\/5\\@from-large{--gc-start: 2;--gc-end: 5}}@media(min-width: 1200px){.u-gc-2\\/6\\@from-large{--gc-start: 2;--gc-end: 6}}@media(min-width: 1200px){.u-gc-2\\/7\\@from-large{--gc-start: 2;--gc-end: 7}}@media(min-width: 1200px){.u-gc-2\\/8\\@from-large{--gc-start: 2;--gc-end: 8}}@media(min-width: 1200px){.u-gc-2\\/9\\@from-large{--gc-start: 2;--gc-end: 9}}@media(min-width: 1200px){.u-gc-2\\/10\\@from-large{--gc-start: 2;--gc-end: 10}}@media(min-width: 1200px){.u-gc-2\\/11\\@from-large{--gc-start: 2;--gc-end: 11}}@media(min-width: 1200px){.u-gc-2\\/12\\@from-large{--gc-start: 2;--gc-end: 12}}@media(min-width: 1200px){.u-gc-2\\/13\\@from-large{--gc-start: 2;--gc-end: 13}}@media(min-width: 1200px){.u-gc-3\\/1\\@from-large{--gc-start: 3;--gc-end: 1}}@media(min-width: 1200px){.u-gc-3\\/2\\@from-large{--gc-start: 3;--gc-end: 2}}@media(min-width: 1200px){.u-gc-3\\/3\\@from-large{--gc-start: 3;--gc-end: 3}}@media(min-width: 1200px){.u-gc-3\\/4\\@from-large{--gc-start: 3;--gc-end: 4}}@media(min-width: 1200px){.u-gc-3\\/5\\@from-large{--gc-start: 3;--gc-end: 5}}@media(min-width: 1200px){.u-gc-3\\/6\\@from-large{--gc-start: 3;--gc-end: 6}}@media(min-width: 1200px){.u-gc-3\\/7\\@from-large{--gc-start: 3;--gc-end: 7}}@media(min-width: 1200px){.u-gc-3\\/8\\@from-large{--gc-start: 3;--gc-end: 8}}@media(min-width: 1200px){.u-gc-3\\/9\\@from-large{--gc-start: 3;--gc-end: 9}}@media(min-width: 1200px){.u-gc-3\\/10\\@from-large{--gc-start: 3;--gc-end: 10}}@media(min-width: 1200px){.u-gc-3\\/11\\@from-large{--gc-start: 3;--gc-end: 11}}@media(min-width: 1200px){.u-gc-3\\/12\\@from-large{--gc-start: 3;--gc-end: 12}}@media(min-width: 1200px){.u-gc-3\\/13\\@from-large{--gc-start: 3;--gc-end: 13}}@media(min-width: 1200px){.u-gc-4\\/1\\@from-large{--gc-start: 4;--gc-end: 1}}@media(min-width: 1200px){.u-gc-4\\/2\\@from-large{--gc-start: 4;--gc-end: 2}}@media(min-width: 1200px){.u-gc-4\\/3\\@from-large{--gc-start: 4;--gc-end: 3}}@media(min-width: 1200px){.u-gc-4\\/4\\@from-large{--gc-start: 4;--gc-end: 4}}@media(min-width: 1200px){.u-gc-4\\/5\\@from-large{--gc-start: 4;--gc-end: 5}}@media(min-width: 1200px){.u-gc-4\\/6\\@from-large{--gc-start: 4;--gc-end: 6}}@media(min-width: 1200px){.u-gc-4\\/7\\@from-large{--gc-start: 4;--gc-end: 7}}@media(min-width: 1200px){.u-gc-4\\/8\\@from-large{--gc-start: 4;--gc-end: 8}}@media(min-width: 1200px){.u-gc-4\\/9\\@from-large{--gc-start: 4;--gc-end: 9}}@media(min-width: 1200px){.u-gc-4\\/10\\@from-large{--gc-start: 4;--gc-end: 10}}@media(min-width: 1200px){.u-gc-4\\/11\\@from-large{--gc-start: 4;--gc-end: 11}}@media(min-width: 1200px){.u-gc-4\\/12\\@from-large{--gc-start: 4;--gc-end: 12}}@media(min-width: 1200px){.u-gc-4\\/13\\@from-large{--gc-start: 4;--gc-end: 13}}@media(min-width: 1200px){.u-gc-5\\/1\\@from-large{--gc-start: 5;--gc-end: 1}}@media(min-width: 1200px){.u-gc-5\\/2\\@from-large{--gc-start: 5;--gc-end: 2}}@media(min-width: 1200px){.u-gc-5\\/3\\@from-large{--gc-start: 5;--gc-end: 3}}@media(min-width: 1200px){.u-gc-5\\/4\\@from-large{--gc-start: 5;--gc-end: 4}}@media(min-width: 1200px){.u-gc-5\\/5\\@from-large{--gc-start: 5;--gc-end: 5}}@media(min-width: 1200px){.u-gc-5\\/6\\@from-large{--gc-start: 5;--gc-end: 6}}@media(min-width: 1200px){.u-gc-5\\/7\\@from-large{--gc-start: 5;--gc-end: 7}}@media(min-width: 1200px){.u-gc-5\\/8\\@from-large{--gc-start: 5;--gc-end: 8}}@media(min-width: 1200px){.u-gc-5\\/9\\@from-large{--gc-start: 5;--gc-end: 9}}@media(min-width: 1200px){.u-gc-5\\/10\\@from-large{--gc-start: 5;--gc-end: 10}}@media(min-width: 1200px){.u-gc-5\\/11\\@from-large{--gc-start: 5;--gc-end: 11}}@media(min-width: 1200px){.u-gc-5\\/12\\@from-large{--gc-start: 5;--gc-end: 12}}@media(min-width: 1200px){.u-gc-5\\/13\\@from-large{--gc-start: 5;--gc-end: 13}}@media(min-width: 1200px){.u-gc-6\\/1\\@from-large{--gc-start: 6;--gc-end: 1}}@media(min-width: 1200px){.u-gc-6\\/2\\@from-large{--gc-start: 6;--gc-end: 2}}@media(min-width: 1200px){.u-gc-6\\/3\\@from-large{--gc-start: 6;--gc-end: 3}}@media(min-width: 1200px){.u-gc-6\\/4\\@from-large{--gc-start: 6;--gc-end: 4}}@media(min-width: 1200px){.u-gc-6\\/5\\@from-large{--gc-start: 6;--gc-end: 5}}@media(min-width: 1200px){.u-gc-6\\/6\\@from-large{--gc-start: 6;--gc-end: 6}}@media(min-width: 1200px){.u-gc-6\\/7\\@from-large{--gc-start: 6;--gc-end: 7}}@media(min-width: 1200px){.u-gc-6\\/8\\@from-large{--gc-start: 6;--gc-end: 8}}@media(min-width: 1200px){.u-gc-6\\/9\\@from-large{--gc-start: 6;--gc-end: 9}}@media(min-width: 1200px){.u-gc-6\\/10\\@from-large{--gc-start: 6;--gc-end: 10}}@media(min-width: 1200px){.u-gc-6\\/11\\@from-large{--gc-start: 6;--gc-end: 11}}@media(min-width: 1200px){.u-gc-6\\/12\\@from-large{--gc-start: 6;--gc-end: 12}}@media(min-width: 1200px){.u-gc-6\\/13\\@from-large{--gc-start: 6;--gc-end: 13}}@media(min-width: 1200px){.u-gc-7\\/1\\@from-large{--gc-start: 7;--gc-end: 1}}@media(min-width: 1200px){.u-gc-7\\/2\\@from-large{--gc-start: 7;--gc-end: 2}}@media(min-width: 1200px){.u-gc-7\\/3\\@from-large{--gc-start: 7;--gc-end: 3}}@media(min-width: 1200px){.u-gc-7\\/4\\@from-large{--gc-start: 7;--gc-end: 4}}@media(min-width: 1200px){.u-gc-7\\/5\\@from-large{--gc-start: 7;--gc-end: 5}}@media(min-width: 1200px){.u-gc-7\\/6\\@from-large{--gc-start: 7;--gc-end: 6}}@media(min-width: 1200px){.u-gc-7\\/7\\@from-large{--gc-start: 7;--gc-end: 7}}@media(min-width: 1200px){.u-gc-7\\/8\\@from-large{--gc-start: 7;--gc-end: 8}}@media(min-width: 1200px){.u-gc-7\\/9\\@from-large{--gc-start: 7;--gc-end: 9}}@media(min-width: 1200px){.u-gc-7\\/10\\@from-large{--gc-start: 7;--gc-end: 10}}@media(min-width: 1200px){.u-gc-7\\/11\\@from-large{--gc-start: 7;--gc-end: 11}}@media(min-width: 1200px){.u-gc-7\\/12\\@from-large{--gc-start: 7;--gc-end: 12}}@media(min-width: 1200px){.u-gc-7\\/13\\@from-large{--gc-start: 7;--gc-end: 13}}@media(min-width: 1200px){.u-gc-8\\/1\\@from-large{--gc-start: 8;--gc-end: 1}}@media(min-width: 1200px){.u-gc-8\\/2\\@from-large{--gc-start: 8;--gc-end: 2}}@media(min-width: 1200px){.u-gc-8\\/3\\@from-large{--gc-start: 8;--gc-end: 3}}@media(min-width: 1200px){.u-gc-8\\/4\\@from-large{--gc-start: 8;--gc-end: 4}}@media(min-width: 1200px){.u-gc-8\\/5\\@from-large{--gc-start: 8;--gc-end: 5}}@media(min-width: 1200px){.u-gc-8\\/6\\@from-large{--gc-start: 8;--gc-end: 6}}@media(min-width: 1200px){.u-gc-8\\/7\\@from-large{--gc-start: 8;--gc-end: 7}}@media(min-width: 1200px){.u-gc-8\\/8\\@from-large{--gc-start: 8;--gc-end: 8}}@media(min-width: 1200px){.u-gc-8\\/9\\@from-large{--gc-start: 8;--gc-end: 9}}@media(min-width: 1200px){.u-gc-8\\/10\\@from-large{--gc-start: 8;--gc-end: 10}}@media(min-width: 1200px){.u-gc-8\\/11\\@from-large{--gc-start: 8;--gc-end: 11}}@media(min-width: 1200px){.u-gc-8\\/12\\@from-large{--gc-start: 8;--gc-end: 12}}@media(min-width: 1200px){.u-gc-8\\/13\\@from-large{--gc-start: 8;--gc-end: 13}}@media(min-width: 1200px){.u-gc-9\\/1\\@from-large{--gc-start: 9;--gc-end: 1}}@media(min-width: 1200px){.u-gc-9\\/2\\@from-large{--gc-start: 9;--gc-end: 2}}@media(min-width: 1200px){.u-gc-9\\/3\\@from-large{--gc-start: 9;--gc-end: 3}}@media(min-width: 1200px){.u-gc-9\\/4\\@from-large{--gc-start: 9;--gc-end: 4}}@media(min-width: 1200px){.u-gc-9\\/5\\@from-large{--gc-start: 9;--gc-end: 5}}@media(min-width: 1200px){.u-gc-9\\/6\\@from-large{--gc-start: 9;--gc-end: 6}}@media(min-width: 1200px){.u-gc-9\\/7\\@from-large{--gc-start: 9;--gc-end: 7}}@media(min-width: 1200px){.u-gc-9\\/8\\@from-large{--gc-start: 9;--gc-end: 8}}@media(min-width: 1200px){.u-gc-9\\/9\\@from-large{--gc-start: 9;--gc-end: 9}}@media(min-width: 1200px){.u-gc-9\\/10\\@from-large{--gc-start: 9;--gc-end: 10}}@media(min-width: 1200px){.u-gc-9\\/11\\@from-large{--gc-start: 9;--gc-end: 11}}@media(min-width: 1200px){.u-gc-9\\/12\\@from-large{--gc-start: 9;--gc-end: 12}}@media(min-width: 1200px){.u-gc-9\\/13\\@from-large{--gc-start: 9;--gc-end: 13}}@media(min-width: 1200px){.u-gc-10\\/1\\@from-large{--gc-start: 10;--gc-end: 1}}@media(min-width: 1200px){.u-gc-10\\/2\\@from-large{--gc-start: 10;--gc-end: 2}}@media(min-width: 1200px){.u-gc-10\\/3\\@from-large{--gc-start: 10;--gc-end: 3}}@media(min-width: 1200px){.u-gc-10\\/4\\@from-large{--gc-start: 10;--gc-end: 4}}@media(min-width: 1200px){.u-gc-10\\/5\\@from-large{--gc-start: 10;--gc-end: 5}}@media(min-width: 1200px){.u-gc-10\\/6\\@from-large{--gc-start: 10;--gc-end: 6}}@media(min-width: 1200px){.u-gc-10\\/7\\@from-large{--gc-start: 10;--gc-end: 7}}@media(min-width: 1200px){.u-gc-10\\/8\\@from-large{--gc-start: 10;--gc-end: 8}}@media(min-width: 1200px){.u-gc-10\\/9\\@from-large{--gc-start: 10;--gc-end: 9}}@media(min-width: 1200px){.u-gc-10\\/10\\@from-large{--gc-start: 10;--gc-end: 10}}@media(min-width: 1200px){.u-gc-10\\/11\\@from-large{--gc-start: 10;--gc-end: 11}}@media(min-width: 1200px){.u-gc-10\\/12\\@from-large{--gc-start: 10;--gc-end: 12}}@media(min-width: 1200px){.u-gc-10\\/13\\@from-large{--gc-start: 10;--gc-end: 13}}@media(min-width: 1200px){.u-gc-11\\/1\\@from-large{--gc-start: 11;--gc-end: 1}}@media(min-width: 1200px){.u-gc-11\\/2\\@from-large{--gc-start: 11;--gc-end: 2}}@media(min-width: 1200px){.u-gc-11\\/3\\@from-large{--gc-start: 11;--gc-end: 3}}@media(min-width: 1200px){.u-gc-11\\/4\\@from-large{--gc-start: 11;--gc-end: 4}}@media(min-width: 1200px){.u-gc-11\\/5\\@from-large{--gc-start: 11;--gc-end: 5}}@media(min-width: 1200px){.u-gc-11\\/6\\@from-large{--gc-start: 11;--gc-end: 6}}@media(min-width: 1200px){.u-gc-11\\/7\\@from-large{--gc-start: 11;--gc-end: 7}}@media(min-width: 1200px){.u-gc-11\\/8\\@from-large{--gc-start: 11;--gc-end: 8}}@media(min-width: 1200px){.u-gc-11\\/9\\@from-large{--gc-start: 11;--gc-end: 9}}@media(min-width: 1200px){.u-gc-11\\/10\\@from-large{--gc-start: 11;--gc-end: 10}}@media(min-width: 1200px){.u-gc-11\\/11\\@from-large{--gc-start: 11;--gc-end: 11}}@media(min-width: 1200px){.u-gc-11\\/12\\@from-large{--gc-start: 11;--gc-end: 12}}@media(min-width: 1200px){.u-gc-11\\/13\\@from-large{--gc-start: 11;--gc-end: 13}}@media(min-width: 1200px){.u-gc-12\\/1\\@from-large{--gc-start: 12;--gc-end: 1}}@media(min-width: 1200px){.u-gc-12\\/2\\@from-large{--gc-start: 12;--gc-end: 2}}@media(min-width: 1200px){.u-gc-12\\/3\\@from-large{--gc-start: 12;--gc-end: 3}}@media(min-width: 1200px){.u-gc-12\\/4\\@from-large{--gc-start: 12;--gc-end: 4}}@media(min-width: 1200px){.u-gc-12\\/5\\@from-large{--gc-start: 12;--gc-end: 5}}@media(min-width: 1200px){.u-gc-12\\/6\\@from-large{--gc-start: 12;--gc-end: 6}}@media(min-width: 1200px){.u-gc-12\\/7\\@from-large{--gc-start: 12;--gc-end: 7}}@media(min-width: 1200px){.u-gc-12\\/8\\@from-large{--gc-start: 12;--gc-end: 8}}@media(min-width: 1200px){.u-gc-12\\/9\\@from-large{--gc-start: 12;--gc-end: 9}}@media(min-width: 1200px){.u-gc-12\\/10\\@from-large{--gc-start: 12;--gc-end: 10}}@media(min-width: 1200px){.u-gc-12\\/11\\@from-large{--gc-start: 12;--gc-end: 11}}@media(min-width: 1200px){.u-gc-12\\/12\\@from-large{--gc-start: 12;--gc-end: 12}}@media(min-width: 1200px){.u-gc-12\\/13\\@from-large{--gc-start: 12;--gc-end: 13}}@media(min-width: 1200px){.u-gc-13\\/1\\@from-large{--gc-start: 13;--gc-end: 1}}@media(min-width: 1200px){.u-gc-13\\/2\\@from-large{--gc-start: 13;--gc-end: 2}}@media(min-width: 1200px){.u-gc-13\\/3\\@from-large{--gc-start: 13;--gc-end: 3}}@media(min-width: 1200px){.u-gc-13\\/4\\@from-large{--gc-start: 13;--gc-end: 4}}@media(min-width: 1200px){.u-gc-13\\/5\\@from-large{--gc-start: 13;--gc-end: 5}}@media(min-width: 1200px){.u-gc-13\\/6\\@from-large{--gc-start: 13;--gc-end: 6}}@media(min-width: 1200px){.u-gc-13\\/7\\@from-large{--gc-start: 13;--gc-end: 7}}@media(min-width: 1200px){.u-gc-13\\/8\\@from-large{--gc-start: 13;--gc-end: 8}}@media(min-width: 1200px){.u-gc-13\\/9\\@from-large{--gc-start: 13;--gc-end: 9}}@media(min-width: 1200px){.u-gc-13\\/10\\@from-large{--gc-start: 13;--gc-end: 10}}@media(min-width: 1200px){.u-gc-13\\/11\\@from-large{--gc-start: 13;--gc-end: 11}}@media(min-width: 1200px){.u-gc-13\\/12\\@from-large{--gc-start: 13;--gc-end: 12}}@media(min-width: 1200px){.u-gc-13\\/13\\@from-large{--gc-start: 13;--gc-end: 13}}@media(min-width: 1400px){.u-gc-1\\/1\\@from-big{--gc-start: 1;--gc-end: 1}}@media(min-width: 1400px){.u-gc-1\\/2\\@from-big{--gc-start: 1;--gc-end: 2}}@media(min-width: 1400px){.u-gc-1\\/3\\@from-big{--gc-start: 1;--gc-end: 3}}@media(min-width: 1400px){.u-gc-1\\/4\\@from-big{--gc-start: 1;--gc-end: 4}}@media(min-width: 1400px){.u-gc-1\\/5\\@from-big{--gc-start: 1;--gc-end: 5}}@media(min-width: 1400px){.u-gc-1\\/6\\@from-big{--gc-start: 1;--gc-end: 6}}@media(min-width: 1400px){.u-gc-1\\/7\\@from-big{--gc-start: 1;--gc-end: 7}}@media(min-width: 1400px){.u-gc-1\\/8\\@from-big{--gc-start: 1;--gc-end: 8}}@media(min-width: 1400px){.u-gc-1\\/9\\@from-big{--gc-start: 1;--gc-end: 9}}@media(min-width: 1400px){.u-gc-1\\/10\\@from-big{--gc-start: 1;--gc-end: 10}}@media(min-width: 1400px){.u-gc-1\\/11\\@from-big{--gc-start: 1;--gc-end: 11}}@media(min-width: 1400px){.u-gc-1\\/12\\@from-big{--gc-start: 1;--gc-end: 12}}@media(min-width: 1400px){.u-gc-1\\/13\\@from-big{--gc-start: 1;--gc-end: 13}}@media(min-width: 1400px){.u-gc-2\\/1\\@from-big{--gc-start: 2;--gc-end: 1}}@media(min-width: 1400px){.u-gc-2\\/2\\@from-big{--gc-start: 2;--gc-end: 2}}@media(min-width: 1400px){.u-gc-2\\/3\\@from-big{--gc-start: 2;--gc-end: 3}}@media(min-width: 1400px){.u-gc-2\\/4\\@from-big{--gc-start: 2;--gc-end: 4}}@media(min-width: 1400px){.u-gc-2\\/5\\@from-big{--gc-start: 2;--gc-end: 5}}@media(min-width: 1400px){.u-gc-2\\/6\\@from-big{--gc-start: 2;--gc-end: 6}}@media(min-width: 1400px){.u-gc-2\\/7\\@from-big{--gc-start: 2;--gc-end: 7}}@media(min-width: 1400px){.u-gc-2\\/8\\@from-big{--gc-start: 2;--gc-end: 8}}@media(min-width: 1400px){.u-gc-2\\/9\\@from-big{--gc-start: 2;--gc-end: 9}}@media(min-width: 1400px){.u-gc-2\\/10\\@from-big{--gc-start: 2;--gc-end: 10}}@media(min-width: 1400px){.u-gc-2\\/11\\@from-big{--gc-start: 2;--gc-end: 11}}@media(min-width: 1400px){.u-gc-2\\/12\\@from-big{--gc-start: 2;--gc-end: 12}}@media(min-width: 1400px){.u-gc-2\\/13\\@from-big{--gc-start: 2;--gc-end: 13}}@media(min-width: 1400px){.u-gc-3\\/1\\@from-big{--gc-start: 3;--gc-end: 1}}@media(min-width: 1400px){.u-gc-3\\/2\\@from-big{--gc-start: 3;--gc-end: 2}}@media(min-width: 1400px){.u-gc-3\\/3\\@from-big{--gc-start: 3;--gc-end: 3}}@media(min-width: 1400px){.u-gc-3\\/4\\@from-big{--gc-start: 3;--gc-end: 4}}@media(min-width: 1400px){.u-gc-3\\/5\\@from-big{--gc-start: 3;--gc-end: 5}}@media(min-width: 1400px){.u-gc-3\\/6\\@from-big{--gc-start: 3;--gc-end: 6}}@media(min-width: 1400px){.u-gc-3\\/7\\@from-big{--gc-start: 3;--gc-end: 7}}@media(min-width: 1400px){.u-gc-3\\/8\\@from-big{--gc-start: 3;--gc-end: 8}}@media(min-width: 1400px){.u-gc-3\\/9\\@from-big{--gc-start: 3;--gc-end: 9}}@media(min-width: 1400px){.u-gc-3\\/10\\@from-big{--gc-start: 3;--gc-end: 10}}@media(min-width: 1400px){.u-gc-3\\/11\\@from-big{--gc-start: 3;--gc-end: 11}}@media(min-width: 1400px){.u-gc-3\\/12\\@from-big{--gc-start: 3;--gc-end: 12}}@media(min-width: 1400px){.u-gc-3\\/13\\@from-big{--gc-start: 3;--gc-end: 13}}@media(min-width: 1400px){.u-gc-4\\/1\\@from-big{--gc-start: 4;--gc-end: 1}}@media(min-width: 1400px){.u-gc-4\\/2\\@from-big{--gc-start: 4;--gc-end: 2}}@media(min-width: 1400px){.u-gc-4\\/3\\@from-big{--gc-start: 4;--gc-end: 3}}@media(min-width: 1400px){.u-gc-4\\/4\\@from-big{--gc-start: 4;--gc-end: 4}}@media(min-width: 1400px){.u-gc-4\\/5\\@from-big{--gc-start: 4;--gc-end: 5}}@media(min-width: 1400px){.u-gc-4\\/6\\@from-big{--gc-start: 4;--gc-end: 6}}@media(min-width: 1400px){.u-gc-4\\/7\\@from-big{--gc-start: 4;--gc-end: 7}}@media(min-width: 1400px){.u-gc-4\\/8\\@from-big{--gc-start: 4;--gc-end: 8}}@media(min-width: 1400px){.u-gc-4\\/9\\@from-big{--gc-start: 4;--gc-end: 9}}@media(min-width: 1400px){.u-gc-4\\/10\\@from-big{--gc-start: 4;--gc-end: 10}}@media(min-width: 1400px){.u-gc-4\\/11\\@from-big{--gc-start: 4;--gc-end: 11}}@media(min-width: 1400px){.u-gc-4\\/12\\@from-big{--gc-start: 4;--gc-end: 12}}@media(min-width: 1400px){.u-gc-4\\/13\\@from-big{--gc-start: 4;--gc-end: 13}}@media(min-width: 1400px){.u-gc-5\\/1\\@from-big{--gc-start: 5;--gc-end: 1}}@media(min-width: 1400px){.u-gc-5\\/2\\@from-big{--gc-start: 5;--gc-end: 2}}@media(min-width: 1400px){.u-gc-5\\/3\\@from-big{--gc-start: 5;--gc-end: 3}}@media(min-width: 1400px){.u-gc-5\\/4\\@from-big{--gc-start: 5;--gc-end: 4}}@media(min-width: 1400px){.u-gc-5\\/5\\@from-big{--gc-start: 5;--gc-end: 5}}@media(min-width: 1400px){.u-gc-5\\/6\\@from-big{--gc-start: 5;--gc-end: 6}}@media(min-width: 1400px){.u-gc-5\\/7\\@from-big{--gc-start: 5;--gc-end: 7}}@media(min-width: 1400px){.u-gc-5\\/8\\@from-big{--gc-start: 5;--gc-end: 8}}@media(min-width: 1400px){.u-gc-5\\/9\\@from-big{--gc-start: 5;--gc-end: 9}}@media(min-width: 1400px){.u-gc-5\\/10\\@from-big{--gc-start: 5;--gc-end: 10}}@media(min-width: 1400px){.u-gc-5\\/11\\@from-big{--gc-start: 5;--gc-end: 11}}@media(min-width: 1400px){.u-gc-5\\/12\\@from-big{--gc-start: 5;--gc-end: 12}}@media(min-width: 1400px){.u-gc-5\\/13\\@from-big{--gc-start: 5;--gc-end: 13}}@media(min-width: 1400px){.u-gc-6\\/1\\@from-big{--gc-start: 6;--gc-end: 1}}@media(min-width: 1400px){.u-gc-6\\/2\\@from-big{--gc-start: 6;--gc-end: 2}}@media(min-width: 1400px){.u-gc-6\\/3\\@from-big{--gc-start: 6;--gc-end: 3}}@media(min-width: 1400px){.u-gc-6\\/4\\@from-big{--gc-start: 6;--gc-end: 4}}@media(min-width: 1400px){.u-gc-6\\/5\\@from-big{--gc-start: 6;--gc-end: 5}}@media(min-width: 1400px){.u-gc-6\\/6\\@from-big{--gc-start: 6;--gc-end: 6}}@media(min-width: 1400px){.u-gc-6\\/7\\@from-big{--gc-start: 6;--gc-end: 7}}@media(min-width: 1400px){.u-gc-6\\/8\\@from-big{--gc-start: 6;--gc-end: 8}}@media(min-width: 1400px){.u-gc-6\\/9\\@from-big{--gc-start: 6;--gc-end: 9}}@media(min-width: 1400px){.u-gc-6\\/10\\@from-big{--gc-start: 6;--gc-end: 10}}@media(min-width: 1400px){.u-gc-6\\/11\\@from-big{--gc-start: 6;--gc-end: 11}}@media(min-width: 1400px){.u-gc-6\\/12\\@from-big{--gc-start: 6;--gc-end: 12}}@media(min-width: 1400px){.u-gc-6\\/13\\@from-big{--gc-start: 6;--gc-end: 13}}@media(min-width: 1400px){.u-gc-7\\/1\\@from-big{--gc-start: 7;--gc-end: 1}}@media(min-width: 1400px){.u-gc-7\\/2\\@from-big{--gc-start: 7;--gc-end: 2}}@media(min-width: 1400px){.u-gc-7\\/3\\@from-big{--gc-start: 7;--gc-end: 3}}@media(min-width: 1400px){.u-gc-7\\/4\\@from-big{--gc-start: 7;--gc-end: 4}}@media(min-width: 1400px){.u-gc-7\\/5\\@from-big{--gc-start: 7;--gc-end: 5}}@media(min-width: 1400px){.u-gc-7\\/6\\@from-big{--gc-start: 7;--gc-end: 6}}@media(min-width: 1400px){.u-gc-7\\/7\\@from-big{--gc-start: 7;--gc-end: 7}}@media(min-width: 1400px){.u-gc-7\\/8\\@from-big{--gc-start: 7;--gc-end: 8}}@media(min-width: 1400px){.u-gc-7\\/9\\@from-big{--gc-start: 7;--gc-end: 9}}@media(min-width: 1400px){.u-gc-7\\/10\\@from-big{--gc-start: 7;--gc-end: 10}}@media(min-width: 1400px){.u-gc-7\\/11\\@from-big{--gc-start: 7;--gc-end: 11}}@media(min-width: 1400px){.u-gc-7\\/12\\@from-big{--gc-start: 7;--gc-end: 12}}@media(min-width: 1400px){.u-gc-7\\/13\\@from-big{--gc-start: 7;--gc-end: 13}}@media(min-width: 1400px){.u-gc-8\\/1\\@from-big{--gc-start: 8;--gc-end: 1}}@media(min-width: 1400px){.u-gc-8\\/2\\@from-big{--gc-start: 8;--gc-end: 2}}@media(min-width: 1400px){.u-gc-8\\/3\\@from-big{--gc-start: 8;--gc-end: 3}}@media(min-width: 1400px){.u-gc-8\\/4\\@from-big{--gc-start: 8;--gc-end: 4}}@media(min-width: 1400px){.u-gc-8\\/5\\@from-big{--gc-start: 8;--gc-end: 5}}@media(min-width: 1400px){.u-gc-8\\/6\\@from-big{--gc-start: 8;--gc-end: 6}}@media(min-width: 1400px){.u-gc-8\\/7\\@from-big{--gc-start: 8;--gc-end: 7}}@media(min-width: 1400px){.u-gc-8\\/8\\@from-big{--gc-start: 8;--gc-end: 8}}@media(min-width: 1400px){.u-gc-8\\/9\\@from-big{--gc-start: 8;--gc-end: 9}}@media(min-width: 1400px){.u-gc-8\\/10\\@from-big{--gc-start: 8;--gc-end: 10}}@media(min-width: 1400px){.u-gc-8\\/11\\@from-big{--gc-start: 8;--gc-end: 11}}@media(min-width: 1400px){.u-gc-8\\/12\\@from-big{--gc-start: 8;--gc-end: 12}}@media(min-width: 1400px){.u-gc-8\\/13\\@from-big{--gc-start: 8;--gc-end: 13}}@media(min-width: 1400px){.u-gc-9\\/1\\@from-big{--gc-start: 9;--gc-end: 1}}@media(min-width: 1400px){.u-gc-9\\/2\\@from-big{--gc-start: 9;--gc-end: 2}}@media(min-width: 1400px){.u-gc-9\\/3\\@from-big{--gc-start: 9;--gc-end: 3}}@media(min-width: 1400px){.u-gc-9\\/4\\@from-big{--gc-start: 9;--gc-end: 4}}@media(min-width: 1400px){.u-gc-9\\/5\\@from-big{--gc-start: 9;--gc-end: 5}}@media(min-width: 1400px){.u-gc-9\\/6\\@from-big{--gc-start: 9;--gc-end: 6}}@media(min-width: 1400px){.u-gc-9\\/7\\@from-big{--gc-start: 9;--gc-end: 7}}@media(min-width: 1400px){.u-gc-9\\/8\\@from-big{--gc-start: 9;--gc-end: 8}}@media(min-width: 1400px){.u-gc-9\\/9\\@from-big{--gc-start: 9;--gc-end: 9}}@media(min-width: 1400px){.u-gc-9\\/10\\@from-big{--gc-start: 9;--gc-end: 10}}@media(min-width: 1400px){.u-gc-9\\/11\\@from-big{--gc-start: 9;--gc-end: 11}}@media(min-width: 1400px){.u-gc-9\\/12\\@from-big{--gc-start: 9;--gc-end: 12}}@media(min-width: 1400px){.u-gc-9\\/13\\@from-big{--gc-start: 9;--gc-end: 13}}@media(min-width: 1400px){.u-gc-10\\/1\\@from-big{--gc-start: 10;--gc-end: 1}}@media(min-width: 1400px){.u-gc-10\\/2\\@from-big{--gc-start: 10;--gc-end: 2}}@media(min-width: 1400px){.u-gc-10\\/3\\@from-big{--gc-start: 10;--gc-end: 3}}@media(min-width: 1400px){.u-gc-10\\/4\\@from-big{--gc-start: 10;--gc-end: 4}}@media(min-width: 1400px){.u-gc-10\\/5\\@from-big{--gc-start: 10;--gc-end: 5}}@media(min-width: 1400px){.u-gc-10\\/6\\@from-big{--gc-start: 10;--gc-end: 6}}@media(min-width: 1400px){.u-gc-10\\/7\\@from-big{--gc-start: 10;--gc-end: 7}}@media(min-width: 1400px){.u-gc-10\\/8\\@from-big{--gc-start: 10;--gc-end: 8}}@media(min-width: 1400px){.u-gc-10\\/9\\@from-big{--gc-start: 10;--gc-end: 9}}@media(min-width: 1400px){.u-gc-10\\/10\\@from-big{--gc-start: 10;--gc-end: 10}}@media(min-width: 1400px){.u-gc-10\\/11\\@from-big{--gc-start: 10;--gc-end: 11}}@media(min-width: 1400px){.u-gc-10\\/12\\@from-big{--gc-start: 10;--gc-end: 12}}@media(min-width: 1400px){.u-gc-10\\/13\\@from-big{--gc-start: 10;--gc-end: 13}}@media(min-width: 1400px){.u-gc-11\\/1\\@from-big{--gc-start: 11;--gc-end: 1}}@media(min-width: 1400px){.u-gc-11\\/2\\@from-big{--gc-start: 11;--gc-end: 2}}@media(min-width: 1400px){.u-gc-11\\/3\\@from-big{--gc-start: 11;--gc-end: 3}}@media(min-width: 1400px){.u-gc-11\\/4\\@from-big{--gc-start: 11;--gc-end: 4}}@media(min-width: 1400px){.u-gc-11\\/5\\@from-big{--gc-start: 11;--gc-end: 5}}@media(min-width: 1400px){.u-gc-11\\/6\\@from-big{--gc-start: 11;--gc-end: 6}}@media(min-width: 1400px){.u-gc-11\\/7\\@from-big{--gc-start: 11;--gc-end: 7}}@media(min-width: 1400px){.u-gc-11\\/8\\@from-big{--gc-start: 11;--gc-end: 8}}@media(min-width: 1400px){.u-gc-11\\/9\\@from-big{--gc-start: 11;--gc-end: 9}}@media(min-width: 1400px){.u-gc-11\\/10\\@from-big{--gc-start: 11;--gc-end: 10}}@media(min-width: 1400px){.u-gc-11\\/11\\@from-big{--gc-start: 11;--gc-end: 11}}@media(min-width: 1400px){.u-gc-11\\/12\\@from-big{--gc-start: 11;--gc-end: 12}}@media(min-width: 1400px){.u-gc-11\\/13\\@from-big{--gc-start: 11;--gc-end: 13}}@media(min-width: 1400px){.u-gc-12\\/1\\@from-big{--gc-start: 12;--gc-end: 1}}@media(min-width: 1400px){.u-gc-12\\/2\\@from-big{--gc-start: 12;--gc-end: 2}}@media(min-width: 1400px){.u-gc-12\\/3\\@from-big{--gc-start: 12;--gc-end: 3}}@media(min-width: 1400px){.u-gc-12\\/4\\@from-big{--gc-start: 12;--gc-end: 4}}@media(min-width: 1400px){.u-gc-12\\/5\\@from-big{--gc-start: 12;--gc-end: 5}}@media(min-width: 1400px){.u-gc-12\\/6\\@from-big{--gc-start: 12;--gc-end: 6}}@media(min-width: 1400px){.u-gc-12\\/7\\@from-big{--gc-start: 12;--gc-end: 7}}@media(min-width: 1400px){.u-gc-12\\/8\\@from-big{--gc-start: 12;--gc-end: 8}}@media(min-width: 1400px){.u-gc-12\\/9\\@from-big{--gc-start: 12;--gc-end: 9}}@media(min-width: 1400px){.u-gc-12\\/10\\@from-big{--gc-start: 12;--gc-end: 10}}@media(min-width: 1400px){.u-gc-12\\/11\\@from-big{--gc-start: 12;--gc-end: 11}}@media(min-width: 1400px){.u-gc-12\\/12\\@from-big{--gc-start: 12;--gc-end: 12}}@media(min-width: 1400px){.u-gc-12\\/13\\@from-big{--gc-start: 12;--gc-end: 13}}@media(min-width: 1400px){.u-gc-13\\/1\\@from-big{--gc-start: 13;--gc-end: 1}}@media(min-width: 1400px){.u-gc-13\\/2\\@from-big{--gc-start: 13;--gc-end: 2}}@media(min-width: 1400px){.u-gc-13\\/3\\@from-big{--gc-start: 13;--gc-end: 3}}@media(min-width: 1400px){.u-gc-13\\/4\\@from-big{--gc-start: 13;--gc-end: 4}}@media(min-width: 1400px){.u-gc-13\\/5\\@from-big{--gc-start: 13;--gc-end: 5}}@media(min-width: 1400px){.u-gc-13\\/6\\@from-big{--gc-start: 13;--gc-end: 6}}@media(min-width: 1400px){.u-gc-13\\/7\\@from-big{--gc-start: 13;--gc-end: 7}}@media(min-width: 1400px){.u-gc-13\\/8\\@from-big{--gc-start: 13;--gc-end: 8}}@media(min-width: 1400px){.u-gc-13\\/9\\@from-big{--gc-start: 13;--gc-end: 9}}@media(min-width: 1400px){.u-gc-13\\/10\\@from-big{--gc-start: 13;--gc-end: 10}}@media(min-width: 1400px){.u-gc-13\\/11\\@from-big{--gc-start: 13;--gc-end: 11}}@media(min-width: 1400px){.u-gc-13\\/12\\@from-big{--gc-start: 13;--gc-end: 12}}@media(min-width: 1400px){.u-gc-13\\/13\\@from-big{--gc-start: 13;--gc-end: 13}}"]} \ No newline at end of file +{"version":3,"sources":["main.css"],"names":[],"mappings":"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BAA0B;EAC1B,2HAA2H;EAC3H,gBAAgB;EAChB,kBAAkB;AACpB;AACA;EACE,gBAAgB;EAChB,gBAAgB;EAChB,2KAA2K;EAC3K,cAAc;EACd,mCAAmC;EACnC,kCAAkC;AACpC;AACA;EACE;IACE,eAAe;EACjB;AACF;AACA;EACE;IACE,eAAe;EACjB;AACF;AACA;EACE;IACE,eAAe;EACjB;AACF;AACA;EACE;IACE,eAAe;EACjB;AACF;AACA;EACE;IACE,eAAe;EACjB;AACF;AACA;EACE;IACE,eAAe;EACjB;AACF;AACA;EACE;IACE,eAAe;EACjB;AACF;AACA;EACE,YAAY;AACd;;AAEA;EACE,yBAAyB;EACzB,cAAc;EACd,iBAAiB;AACnB;;AAJA;EACE,yBAAyB;EACzB,cAAc;EACd,iBAAiB;AACnB;;AAEA;EACE,cAAc;AAChB;AACA;EACE,cAAc;AAChB;;AAEA;EACE,kBAAkB;EAClB,iBAAiB;EACjB,gCAAgC;EAChC,iCAAiC;AACnC;;AAEA;EACE,kBAAkB;EAClB,cAAc;EACd,gBAAgB;AAClB;AACA;EACE,cAAc;EACd,oBAAoB;EACpB,WAAW;EACX,WAAW;AACb;;AAEA;;;;;EAKE,kBAAkB;EAClB,MAAM;EACN,SAAS;EACT,OAAO;EACP,WAAW;AACb;;AAEA;EACE,qBAAqB;EACrB,sBAAsB;AACxB;AACA;EACE,yEAAyE;EACzE,cAAc;EACd,wBAAwB;EACxB,0BAA0B;EAC1B,kBAAkB;AACpB;;AAEA;;;;;;;;;;;;;EAaE;AACF;EACE,aAAa;EACb,WAAW;AACb;AACA;EACE,SAAS;EACT,UAAU;EACV,gBAAgB;AAClB;AACA;EACE,uDAAuD;AACzD;AACA;EACE,sCAAsC;AACxC;AACA;EACE,qCAAqC;AACvC;AACA;EACE;IACE,sCAAsC;EACxC;AACF;AACA;EACE,uBAAuB;EACvB,mCAA8B;OAA9B,8BAA8B;AAChC;AACA;EACE,YAAY;AACd;AACA;EACE,kBAAkB;AACpB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,oBAAoB;AACtB;AACA;EACE,mBAAmB;EACnB,qBAAqB;AACvB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,oBAAoB;EACpB,sBAAsB;AACxB;AACA;EACE,oBAAoB;AACtB;AACA;EACE,oBAAoB;AACtB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,qBAAqB;EACrB,uBAAuB;AACzB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,sBAAsB;EACtB,wBAAwB;AAC1B;AACA;EACE,2BAA2B;EAC3B,6BAA6B;AAC/B;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,8BAA8B;EAC9B,4BAA4B;AAC9B;AACA;EACE,8BAA8B;AAChC;AACA;EACE,4BAA4B;AAC9B;AACA;EACE,6BAA6B;EAC7B,2BAA2B;AAC7B;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,2BAA2B;AAC7B;;AAEA;EACE,qCAAqC;EACrC,kCAAkC;AACpC;AACA;EACE,eAAe;AACjB;;AAEA;EACE,uBAAuB;AACzB;AACA;EACE,8BAA8B;AAChC;AACA;EACE,8BAA8B;AAChC;AACA;EACE,8BAA8B;AAChC;AACA;EACE,8BAA8B;AAChC;AACA;EACE,8BAA8B;AAChC;AACA;EACE,8BAA8B;AAChC;;AAEA;EACE,0BAA0B;EAC1B,2BAA2B;AAC7B;AACA;EACE,0BAA0B;AAC5B;;AAEA;EACE,kBAAkB;EAClB,uBAAuB;AACzB;;AAEA;EACE,cAAc;EACd,uBAAuB;AACzB;;AAEA;EACE,iBAAiB;EACjB,2BAA2B;EAC3B,yBAAyB;AAC3B;AACA;EACE,sBAAsB;AACxB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,WAAW;AACb;AAFA;EACE,WAAW;AACb;;AAEA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,sBAAsB;EACtB,gBAAgB;EAChB,qBAAqB;EACrB,eAAe;AACjB;AACA;EACE,kBAAkB;EAClB,QAAQ;EACR,OAAO;EACP,qBAAqB;EACrB,sBAAsB;EACtB,UAAU;EACV,eAAe;EACf,gBAAgB;EAChB,WAAW;AACb;AACA;EACE,yBAAyB;EACzB,2BAA2B;AAC7B;AACA;EACE,yBAAyB;EACzB,6BAA6B;EAC7B,6cAA6c;EAC7c,2BAA2B;EAC3B,wBAAwB;EACxB,4BAA4B;EAC5B,UAAU;AACZ;AACA;EACE,sBAAsB;AACxB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,UAAU;AACZ;;AAEA;EACE,kBAAkB;EAClB,QAAQ;EACR,UAAU;AACZ;;AAEA;EACE,kBAAkB;AACpB;AACA;EACE,4ZAA4Z;EAC5Z,yBAAyB;AAC3B;;AAEA;EACE,kBAAkB;EAClB,eAAe;AACjB;AACA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,UAAU;EACV,aAAa;EACb,mcAAmc;EACnc,2BAA2B;EAC3B,uBAAuB;EACvB,4BAA4B;EAC5B,WAAW;EACX,oBAAoB;AACtB;;AAEA;EACE,kBAAkB;EAClB,UAAU;EACV,qBAAqB;EACrB,eAAe;AACjB;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,4DAA4D;EAC5D,UAAU;AACZ;AACA;EACE,UAAU;AACZ;;AAEA,sBAAsB;AACtB;EACE,mBAAmB;AACrB;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,sBAAsB;AACxB;;AAEA,qBAAqB;AACrB;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,WAAW;AACb;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,aAAa;EACb,YAAY;AACd;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,YAAY;AACd;;AAEA;EACE,cAAc;EACd,YAAY;AACd;;AAEA;EACE,cAAc;EACd,YAAY;AACd;;AAEA;EACE,cAAc;EACd,YAAY;AACd;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,YAAY;AACd;;AAEA;EACE,cAAc;EACd,YAAY;AACd;;AAEA;EACE,cAAc;EACd,YAAY;AACd;;AAEA;EACE,cAAc;EACd,YAAY;AACd;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,YAAY;AACd;;AAEA;EACE,cAAc;EACd,YAAY;AACd;;AAEA;EACE,cAAc;EACd,YAAY;AACd;;AAEA;EACE,cAAc;EACd,YAAY;AACd;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,cAAc;EACd,YAAY;AACd;;AAEA;EACE,cAAc;EACd,YAAY;AACd;;AAEA;EACE,cAAc;EACd,YAAY;AACd;;AAEA;EACE,cAAc;EACd,YAAY;AACd;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,WAAW;EACb;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,aAAa;IACb,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,WAAW;EACb;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF;;AAEA;EACE;IACE,cAAc;IACd,YAAY;EACd;AACF","file":"main.css","sourcesContent":[":root {\n --grid-columns: 4;\n --grid-gutter: 0.625rem;\n --grid-gutter-half: calc(0.5 * var(--grid-gutter));\n --grid-margin: 0.625rem;\n --container-width: calc(100% - 2 * var(--grid-margin));\n --font-size-h1: clamp(36px, 0.0514285714 * calc(100 * var(--vw, 1vw)), 72px);\n --font-size-h2: 1.75rem;\n --font-size-h3: 1.5rem;\n --font-size-h4: 1.25rem;\n --font-size-h5: 1.125rem;\n --font-size-h6: 1rem;\n}\n@media (min-width: 700px) {\n :root {\n --grid-columns: 12;\n --grid-gutter: 1rem;\n --grid-margin: 1.25rem;\n }\n}\n\n/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n/* Document\n ========================================================================== */\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n/**\n * Remove the margin in all browsers.\n */\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n/**\n * Remove the gray background on active links in IE 10.\n */\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n/**\n * Remove the border on images inside links in IE 10.\n */\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\nbutton,\n[type=button],\n[type=reset],\n[type=submit] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\nbutton::-moz-focus-inner,\n[type=button]::-moz-focus-inner,\n[type=reset]::-moz-focus-inner,\n[type=submit]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\nbutton:-moz-focusring,\n[type=button]:-moz-focusring,\n[type=reset]:-moz-focusring,\n[type=submit]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n[type=checkbox],\n[type=radio] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n[type=number]::-webkit-inner-spin-button,\n[type=number]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n[type=search] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n[type=search]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n/**\n * Add the correct display in IE 10+.\n */\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n[hidden] {\n display: none;\n}\n\nhtml {\n box-sizing: border-box;\n}\n\ntemplate,\n[hidden] {\n display: none;\n}\n\n*,\n:before,\n:after {\n box-sizing: inherit;\n}\n\naddress {\n font-style: inherit;\n}\n\ndfn,\ncite,\nem,\ni {\n font-style: italic;\n}\n\nb,\nstrong {\n font-weight: 700;\n}\n\na {\n text-decoration: none;\n}\na svg {\n pointer-events: none;\n}\n\nul,\nol {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\np,\nfigure {\n margin: 0;\n padding: 0;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin: 0;\n}\n\na, area, button, input, label, select, textarea, [tabindex] {\n -ms-touch-action: manipulation;\n touch-action: manipulation;\n}\n\n[hreflang] > abbr[title] {\n text-decoration: none;\n}\n\ntable {\n border-spacing: 0;\n border-collapse: collapse;\n}\n\nhr {\n display: block;\n margin: 1em 0;\n padding: 0;\n height: 1px;\n border: 0;\n border-top: 1px solid #CCCCCC;\n}\n\naudio,\ncanvas,\niframe,\nimg,\nsvg,\nvideo {\n vertical-align: middle;\n}\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\nimg,\nsvg {\n max-width: 100%;\n height: auto;\n}\nimg[width], img[height],\nsvg[width],\nsvg[height] {\n max-width: none;\n}\n\nimg {\n font-style: italic;\n}\n\nsvg {\n fill: currentColor;\n}\n\ninput,\nselect,\ntextarea {\n display: block;\n margin: 0;\n padding: 0;\n width: 100%;\n outline: 0;\n border: 0;\n border-radius: 0;\n background: none transparent;\n color: inherit;\n font: inherit;\n line-height: normal;\n appearance: none;\n}\n\nselect {\n text-transform: none;\n}\nselect::-ms-expand {\n display: none;\n}\nselect::-ms-value {\n background: none;\n color: inherit;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nbutton,\n.c-button {\n display: inline-block;\n overflow: visible;\n margin: 0;\n padding: 0;\n outline: 0;\n border: 0;\n background: none transparent;\n color: inherit;\n vertical-align: middle;\n text-align: center;\n text-decoration: none;\n text-transform: none;\n font: inherit;\n line-height: normal;\n cursor: pointer;\n user-select: none;\n}\nbutton:focus, button:hover,\n.c-button:focus,\n.c-button:hover {\n text-decoration: none;\n}\n\nhtml.lenis {\n height: auto;\n}\n\n.lenis.lenis-smooth {\n scroll-behavior: auto;\n}\n\n.lenis.lenis-smooth [data-lenis-prevent] {\n overscroll-behavior: contain;\n}\n\n.lenis.lenis-stopped {\n overflow: hidden;\n}\n\n.lenis.lenis-scrolling iframe {\n pointer-events: none;\n}\n\n@font-face {\n font-display: swap;\n font-family: \"Source Sans\";\n src: url(\"../fonts/SourceSans3-Bold.woff2\") format(\"woff2\"), url(\"../fonts/SourceSans3-Bold.woff\") format(\"woff\");\n font-weight: 700;\n font-style: normal;\n}\n@font-face {\n font-display: swap;\n font-family: \"Source Sans\";\n src: url(\"../fonts/SourceSans3-BoldIt.woff2\") format(\"woff2\"), url(\"../fonts/SourceSans3-BoldIt.woff\") format(\"woff\");\n font-weight: 700;\n font-style: italic;\n}\n@font-face {\n font-display: swap;\n font-family: \"Source Sans\";\n src: url(\"../fonts/SourceSans3-Regular.woff2\") format(\"woff2\"), url(\"../fonts/SourceSans3-Regular.woff\") format(\"woff\");\n font-weight: 400;\n font-style: normal;\n}\n@font-face {\n font-display: swap;\n font-family: \"Source Sans\";\n src: url(\"../fonts/SourceSans3-RegularIt.woff2\") format(\"woff2\"), url(\"../fonts/SourceSans3-RegularIt.woff\") format(\"woff\");\n font-weight: 400;\n font-style: italic;\n}\nhtml {\n min-height: 100%;\n line-height: 1.5;\n font-family: \"Source Sans\", -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;\n color: #000000;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n@media (max-width: 699px) {\n html {\n font-size: 14px;\n }\n}\n@media (min-width: 700px) and (max-width: 999px) {\n html {\n font-size: 14px;\n }\n}\n@media (min-width: 1000px) and (max-width: 1199px) {\n html {\n font-size: 15px;\n }\n}\n@media (min-width: 1200px) and (max-width: 1599px) {\n html {\n font-size: 16px;\n }\n}\n@media (min-width: 1600px) and (max-width: 1999px) {\n html {\n font-size: 17px;\n }\n}\n@media (min-width: 2000px) and (max-width: 2399px) {\n html {\n font-size: 18px;\n }\n}\n@media (min-width: 2400px) {\n html {\n font-size: 20px;\n }\n}\nhtml.is-loading {\n cursor: wait;\n}\n\n::selection {\n background-color: #FFFFFF;\n color: #000000;\n text-shadow: none;\n}\n\na {\n color: #3297FD;\n}\na:focus, a:hover {\n color: #027dfa;\n}\n\n.o-container {\n margin-right: auto;\n margin-left: auto;\n padding-left: var(--grid-margin);\n padding-right: var(--grid-margin);\n}\n\n.o-ratio {\n position: relative;\n display: block;\n overflow: hidden;\n}\n.o-ratio:before {\n display: block;\n padding-bottom: 100%;\n width: 100%;\n content: \"\";\n}\n\n.o-ratio_content,\n.o-ratio > img,\n.o-ratio > iframe,\n.o-ratio > embed,\n.o-ratio > object {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n}\n\n.o-icon {\n display: inline-block;\n vertical-align: middle;\n}\n.o-icon svg {\n --icon-height: calc(var(--icon-width) * math.div(1, (var(--icon-ratio))));\n display: block;\n width: var(--icon-width);\n height: var(--icon-height);\n fill: currentColor;\n}\n\n/**\n * Usage:\n *\n * ```html\n *
\n *
\n *

Hello

\n *
\n *
\n *

Hello

\n *
\n *
\n * ```\n */\n.o-grid {\n display: grid;\n width: 100%;\n}\n.o-grid:is(ul, ol) {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.o-grid.-cols {\n grid-template-columns: repeat(var(--grid-columns), 1fr);\n}\n.o-grid.-col-12 {\n grid-template-columns: repeat(12, 1fr);\n}\n.o-grid.-col-4 {\n grid-template-columns: repeat(4, 1fr);\n}\n@media (min-width: 1000px) {\n .o-grid.-col-12\\@from-medium {\n grid-template-columns: repeat(12, 1fr);\n }\n}\n.o-grid.-gutters {\n gap: var(--grid-gutter);\n column-gap: var(--grid-gutter);\n}\n.o-grid.-full-height {\n height: 100%;\n}\n.o-grid.-top-items {\n align-items: start;\n}\n.o-grid.-right-items {\n justify-items: end;\n}\n.o-grid.-bottom-items {\n align-items: end;\n}\n.o-grid.-left-items {\n justify-items: start;\n}\n.o-grid.-center-items {\n align-items: center;\n justify-items: center;\n}\n.o-grid.-center-items-x {\n justify-items: center;\n}\n.o-grid.-center-items-y {\n align-items: center;\n}\n.o-grid.-stretch-items {\n align-items: stretch;\n justify-items: stretch;\n}\n.o-grid.-top-cells {\n align-content: start;\n}\n.o-grid.-right-cells {\n justify-content: end;\n}\n.o-grid.-bottom-cells {\n align-content: end;\n}\n.o-grid.-left-cells {\n justify-content: start;\n}\n.o-grid.-center-cells {\n align-content: center;\n justify-content: center;\n}\n.o-grid.-center-cells-x {\n justify-content: center;\n}\n.o-grid.-center-cells-y {\n align-content: center;\n}\n.o-grid.-stretch-cells {\n align-content: stretch;\n justify-content: stretch;\n}\n.o-grid.-space-around-cells {\n align-content: space-around;\n justify-content: space-around;\n}\n.o-grid.-space-around-cells-x {\n justify-content: space-around;\n}\n.o-grid.-space-around-cells-y {\n align-content: space-around;\n}\n.o-grid.-space-between-cells {\n justify-content: space-between;\n align-content: space-between;\n}\n.o-grid.-space-between-cells-x {\n justify-content: space-between;\n}\n.o-grid.-space-between-cells-y {\n align-content: space-between;\n}\n.o-grid.-space-evenly-cells {\n justify-content: space-evenly;\n align-content: space-evenly;\n}\n.o-grid.-space-evenly-cells-x {\n justify-content: space-evenly;\n}\n.o-grid.-space-evenly-cells-y {\n align-content: space-evenly;\n}\n\n.o-grid_item {\n grid-column-start: var(--gc-start, 1);\n grid-column-end: var(--gc-end, -1);\n}\n.o-grid_item.-align-end {\n align-self: end;\n}\n\n.c-heading {\n margin-bottom: 1.875rem;\n}\n.c-heading.-h1 {\n font-size: var(--font-size-h1);\n}\n.c-heading.-h2 {\n font-size: var(--font-size-h2);\n}\n.c-heading.-h3 {\n font-size: var(--font-size-h3);\n}\n.c-heading.-h4 {\n font-size: var(--font-size-h4);\n}\n.c-heading.-h5 {\n font-size: var(--font-size-h5);\n}\n.c-heading.-h6 {\n font-size: var(--font-size-h6);\n}\n\n.c-button {\n padding: 0.9375rem 1.25rem;\n background-color: lightgray;\n}\n.c-button:focus, .c-button:hover {\n background-color: darkgray;\n}\n\n.c-form_item {\n position: relative;\n margin-bottom: 1.875rem;\n}\n\n.c-form_label, .c-form_checkboxLabel, .c-form_radioLabel {\n display: block;\n margin-bottom: 0.625rem;\n}\n\n.c-form_input, .c-form_textarea, .c-form_select_input {\n padding: 0.625rem;\n border: 1px solid lightgray;\n background-color: #FFFFFF;\n}\n.c-form_input:hover, .c-form_textarea:hover, .c-form_select_input:hover {\n border-color: darkgray;\n}\n.c-form_input:focus, .c-form_textarea:focus, .c-form_select_input:focus {\n border-color: dimgray;\n}\n.c-form_input::placeholder, .c-form_textarea::placeholder, .c-form_select_input::placeholder {\n color: gray;\n}\n\n.c-form_checkboxLabel, .c-form_radioLabel {\n position: relative;\n display: inline-block;\n margin-right: 0.625rem;\n margin-bottom: 0;\n padding-left: 1.75rem;\n cursor: pointer;\n}\n.c-form_checkboxLabel::before, .c-form_radioLabel::before, .c-form_checkboxLabel::after, .c-form_radioLabel::after {\n position: absolute;\n top: 50%;\n left: 0;\n display: inline-block;\n margin-top: -0.5625rem;\n padding: 0;\n width: 1.125rem;\n height: 1.125rem;\n content: \"\";\n}\n.c-form_checkboxLabel::before, .c-form_radioLabel::before {\n background-color: #FFFFFF;\n border: 1px solid lightgray;\n}\n.c-form_checkboxLabel::after, .c-form_radioLabel::after {\n border-color: transparent;\n background-color: transparent;\n background-image: url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2213%22%20height%3D%2210.5%22%20viewBox%3D%220%200%2013%2010.5%22%20enable-background%3D%22new%200%200%2013%2010.5%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20fill%3D%22%23424242%22%20d%3D%22M4.8%205.8L2.4%203.3%200%205.7l4.8%204.8L13%202.4c0%200-2.4-2.4-2.4-2.4L4.8%205.8z%22%2F%3E%3C%2Fsvg%3E\");\n background-position: center;\n background-size: 0.75rem;\n background-repeat: no-repeat;\n opacity: 0;\n}\n.c-form_checkboxLabel:hover::before, .c-form_radioLabel:hover::before {\n border-color: darkgray;\n}\n.c-form_checkbox:focus + .c-form_checkboxLabel::before, .c-form_radio:focus + .c-form_checkboxLabel::before, .c-form_checkbox:focus + .c-form_radioLabel::before, .c-form_radio:focus + .c-form_radioLabel::before {\n border-color: dimgray;\n}\n.c-form_checkbox:checked + .c-form_checkboxLabel::after, .c-form_radio:checked + .c-form_checkboxLabel::after, .c-form_checkbox:checked + .c-form_radioLabel::after, .c-form_radio:checked + .c-form_radioLabel::after {\n opacity: 1;\n}\n\n.c-form_checkbox, .c-form_radio {\n position: absolute;\n width: 0;\n opacity: 0;\n}\n\n.c-form_radioLabel::before, .c-form_radioLabel::after {\n border-radius: 50%;\n}\n.c-form_radioLabel::after {\n background-image: url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20enable-background%3D%22new%200%200%2013%2013%22%20xml%3Aspace%3D%22preserve%22%3E%3Ccircle%20fill%3D%22%23424242%22%20cx%3D%226.5%22%20cy%3D%226.5%22%20r%3D%226.5%22%2F%3E%3C%2Fsvg%3E\");\n background-size: 0.375rem;\n}\n\n.c-form_select {\n position: relative;\n cursor: pointer;\n}\n.c-form_select::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 2;\n width: 2.5rem;\n background-image: url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2213%22%20height%3D%2211.3%22%20viewBox%3D%220%200%2013%2011.3%22%20enable-background%3D%22new%200%200%2013%2011.3%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20fill%3D%22%23424242%22%20points%3D%226.5%2011.3%203.3%205.6%200%200%206.5%200%2013%200%209.8%205.6%20%22%2F%3E%3C%2Fsvg%3E\");\n background-position: center;\n background-size: 0.5rem;\n background-repeat: no-repeat;\n content: \"\";\n pointer-events: none;\n}\n\n.c-form_select_input {\n position: relative;\n z-index: 1;\n padding-right: 2.5rem;\n cursor: pointer;\n}\n\n.c-form_textarea {\n min-height: 12.5rem;\n}\n\n.c-image.-lazy-load .c-image_img {\n transition: opacity 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);\n opacity: 0;\n}\n.c-image.-lazy-loaded .c-image_img {\n opacity: 1;\n}\n\n/* stylelint-disable */\n.u-2\\:1::before {\n padding-bottom: 50%;\n}\n\n.u-4\\:3::before {\n padding-bottom: 75%;\n}\n\n.u-16\\:9::before {\n padding-bottom: 56.25%;\n}\n\n/* stylelint-enable */\n.u-gc-1\\/1 {\n --gc-start: 1;\n --gc-end: 1;\n}\n\n.u-gc-1\\/2 {\n --gc-start: 1;\n --gc-end: 2;\n}\n\n.u-gc-1\\/3 {\n --gc-start: 1;\n --gc-end: 3;\n}\n\n.u-gc-1\\/4 {\n --gc-start: 1;\n --gc-end: 4;\n}\n\n.u-gc-1\\/5 {\n --gc-start: 1;\n --gc-end: 5;\n}\n\n.u-gc-1\\/6 {\n --gc-start: 1;\n --gc-end: 6;\n}\n\n.u-gc-1\\/7 {\n --gc-start: 1;\n --gc-end: 7;\n}\n\n.u-gc-1\\/8 {\n --gc-start: 1;\n --gc-end: 8;\n}\n\n.u-gc-1\\/9 {\n --gc-start: 1;\n --gc-end: 9;\n}\n\n.u-gc-1\\/10 {\n --gc-start: 1;\n --gc-end: 10;\n}\n\n.u-gc-1\\/11 {\n --gc-start: 1;\n --gc-end: 11;\n}\n\n.u-gc-1\\/12 {\n --gc-start: 1;\n --gc-end: 12;\n}\n\n.u-gc-1\\/13 {\n --gc-start: 1;\n --gc-end: 13;\n}\n\n.u-gc-2\\/1 {\n --gc-start: 2;\n --gc-end: 1;\n}\n\n.u-gc-2\\/2 {\n --gc-start: 2;\n --gc-end: 2;\n}\n\n.u-gc-2\\/3 {\n --gc-start: 2;\n --gc-end: 3;\n}\n\n.u-gc-2\\/4 {\n --gc-start: 2;\n --gc-end: 4;\n}\n\n.u-gc-2\\/5 {\n --gc-start: 2;\n --gc-end: 5;\n}\n\n.u-gc-2\\/6 {\n --gc-start: 2;\n --gc-end: 6;\n}\n\n.u-gc-2\\/7 {\n --gc-start: 2;\n --gc-end: 7;\n}\n\n.u-gc-2\\/8 {\n --gc-start: 2;\n --gc-end: 8;\n}\n\n.u-gc-2\\/9 {\n --gc-start: 2;\n --gc-end: 9;\n}\n\n.u-gc-2\\/10 {\n --gc-start: 2;\n --gc-end: 10;\n}\n\n.u-gc-2\\/11 {\n --gc-start: 2;\n --gc-end: 11;\n}\n\n.u-gc-2\\/12 {\n --gc-start: 2;\n --gc-end: 12;\n}\n\n.u-gc-2\\/13 {\n --gc-start: 2;\n --gc-end: 13;\n}\n\n.u-gc-3\\/1 {\n --gc-start: 3;\n --gc-end: 1;\n}\n\n.u-gc-3\\/2 {\n --gc-start: 3;\n --gc-end: 2;\n}\n\n.u-gc-3\\/3 {\n --gc-start: 3;\n --gc-end: 3;\n}\n\n.u-gc-3\\/4 {\n --gc-start: 3;\n --gc-end: 4;\n}\n\n.u-gc-3\\/5 {\n --gc-start: 3;\n --gc-end: 5;\n}\n\n.u-gc-3\\/6 {\n --gc-start: 3;\n --gc-end: 6;\n}\n\n.u-gc-3\\/7 {\n --gc-start: 3;\n --gc-end: 7;\n}\n\n.u-gc-3\\/8 {\n --gc-start: 3;\n --gc-end: 8;\n}\n\n.u-gc-3\\/9 {\n --gc-start: 3;\n --gc-end: 9;\n}\n\n.u-gc-3\\/10 {\n --gc-start: 3;\n --gc-end: 10;\n}\n\n.u-gc-3\\/11 {\n --gc-start: 3;\n --gc-end: 11;\n}\n\n.u-gc-3\\/12 {\n --gc-start: 3;\n --gc-end: 12;\n}\n\n.u-gc-3\\/13 {\n --gc-start: 3;\n --gc-end: 13;\n}\n\n.u-gc-4\\/1 {\n --gc-start: 4;\n --gc-end: 1;\n}\n\n.u-gc-4\\/2 {\n --gc-start: 4;\n --gc-end: 2;\n}\n\n.u-gc-4\\/3 {\n --gc-start: 4;\n --gc-end: 3;\n}\n\n.u-gc-4\\/4 {\n --gc-start: 4;\n --gc-end: 4;\n}\n\n.u-gc-4\\/5 {\n --gc-start: 4;\n --gc-end: 5;\n}\n\n.u-gc-4\\/6 {\n --gc-start: 4;\n --gc-end: 6;\n}\n\n.u-gc-4\\/7 {\n --gc-start: 4;\n --gc-end: 7;\n}\n\n.u-gc-4\\/8 {\n --gc-start: 4;\n --gc-end: 8;\n}\n\n.u-gc-4\\/9 {\n --gc-start: 4;\n --gc-end: 9;\n}\n\n.u-gc-4\\/10 {\n --gc-start: 4;\n --gc-end: 10;\n}\n\n.u-gc-4\\/11 {\n --gc-start: 4;\n --gc-end: 11;\n}\n\n.u-gc-4\\/12 {\n --gc-start: 4;\n --gc-end: 12;\n}\n\n.u-gc-4\\/13 {\n --gc-start: 4;\n --gc-end: 13;\n}\n\n.u-gc-5\\/1 {\n --gc-start: 5;\n --gc-end: 1;\n}\n\n.u-gc-5\\/2 {\n --gc-start: 5;\n --gc-end: 2;\n}\n\n.u-gc-5\\/3 {\n --gc-start: 5;\n --gc-end: 3;\n}\n\n.u-gc-5\\/4 {\n --gc-start: 5;\n --gc-end: 4;\n}\n\n.u-gc-5\\/5 {\n --gc-start: 5;\n --gc-end: 5;\n}\n\n.u-gc-5\\/6 {\n --gc-start: 5;\n --gc-end: 6;\n}\n\n.u-gc-5\\/7 {\n --gc-start: 5;\n --gc-end: 7;\n}\n\n.u-gc-5\\/8 {\n --gc-start: 5;\n --gc-end: 8;\n}\n\n.u-gc-5\\/9 {\n --gc-start: 5;\n --gc-end: 9;\n}\n\n.u-gc-5\\/10 {\n --gc-start: 5;\n --gc-end: 10;\n}\n\n.u-gc-5\\/11 {\n --gc-start: 5;\n --gc-end: 11;\n}\n\n.u-gc-5\\/12 {\n --gc-start: 5;\n --gc-end: 12;\n}\n\n.u-gc-5\\/13 {\n --gc-start: 5;\n --gc-end: 13;\n}\n\n.u-gc-6\\/1 {\n --gc-start: 6;\n --gc-end: 1;\n}\n\n.u-gc-6\\/2 {\n --gc-start: 6;\n --gc-end: 2;\n}\n\n.u-gc-6\\/3 {\n --gc-start: 6;\n --gc-end: 3;\n}\n\n.u-gc-6\\/4 {\n --gc-start: 6;\n --gc-end: 4;\n}\n\n.u-gc-6\\/5 {\n --gc-start: 6;\n --gc-end: 5;\n}\n\n.u-gc-6\\/6 {\n --gc-start: 6;\n --gc-end: 6;\n}\n\n.u-gc-6\\/7 {\n --gc-start: 6;\n --gc-end: 7;\n}\n\n.u-gc-6\\/8 {\n --gc-start: 6;\n --gc-end: 8;\n}\n\n.u-gc-6\\/9 {\n --gc-start: 6;\n --gc-end: 9;\n}\n\n.u-gc-6\\/10 {\n --gc-start: 6;\n --gc-end: 10;\n}\n\n.u-gc-6\\/11 {\n --gc-start: 6;\n --gc-end: 11;\n}\n\n.u-gc-6\\/12 {\n --gc-start: 6;\n --gc-end: 12;\n}\n\n.u-gc-6\\/13 {\n --gc-start: 6;\n --gc-end: 13;\n}\n\n.u-gc-7\\/1 {\n --gc-start: 7;\n --gc-end: 1;\n}\n\n.u-gc-7\\/2 {\n --gc-start: 7;\n --gc-end: 2;\n}\n\n.u-gc-7\\/3 {\n --gc-start: 7;\n --gc-end: 3;\n}\n\n.u-gc-7\\/4 {\n --gc-start: 7;\n --gc-end: 4;\n}\n\n.u-gc-7\\/5 {\n --gc-start: 7;\n --gc-end: 5;\n}\n\n.u-gc-7\\/6 {\n --gc-start: 7;\n --gc-end: 6;\n}\n\n.u-gc-7\\/7 {\n --gc-start: 7;\n --gc-end: 7;\n}\n\n.u-gc-7\\/8 {\n --gc-start: 7;\n --gc-end: 8;\n}\n\n.u-gc-7\\/9 {\n --gc-start: 7;\n --gc-end: 9;\n}\n\n.u-gc-7\\/10 {\n --gc-start: 7;\n --gc-end: 10;\n}\n\n.u-gc-7\\/11 {\n --gc-start: 7;\n --gc-end: 11;\n}\n\n.u-gc-7\\/12 {\n --gc-start: 7;\n --gc-end: 12;\n}\n\n.u-gc-7\\/13 {\n --gc-start: 7;\n --gc-end: 13;\n}\n\n.u-gc-8\\/1 {\n --gc-start: 8;\n --gc-end: 1;\n}\n\n.u-gc-8\\/2 {\n --gc-start: 8;\n --gc-end: 2;\n}\n\n.u-gc-8\\/3 {\n --gc-start: 8;\n --gc-end: 3;\n}\n\n.u-gc-8\\/4 {\n --gc-start: 8;\n --gc-end: 4;\n}\n\n.u-gc-8\\/5 {\n --gc-start: 8;\n --gc-end: 5;\n}\n\n.u-gc-8\\/6 {\n --gc-start: 8;\n --gc-end: 6;\n}\n\n.u-gc-8\\/7 {\n --gc-start: 8;\n --gc-end: 7;\n}\n\n.u-gc-8\\/8 {\n --gc-start: 8;\n --gc-end: 8;\n}\n\n.u-gc-8\\/9 {\n --gc-start: 8;\n --gc-end: 9;\n}\n\n.u-gc-8\\/10 {\n --gc-start: 8;\n --gc-end: 10;\n}\n\n.u-gc-8\\/11 {\n --gc-start: 8;\n --gc-end: 11;\n}\n\n.u-gc-8\\/12 {\n --gc-start: 8;\n --gc-end: 12;\n}\n\n.u-gc-8\\/13 {\n --gc-start: 8;\n --gc-end: 13;\n}\n\n.u-gc-9\\/1 {\n --gc-start: 9;\n --gc-end: 1;\n}\n\n.u-gc-9\\/2 {\n --gc-start: 9;\n --gc-end: 2;\n}\n\n.u-gc-9\\/3 {\n --gc-start: 9;\n --gc-end: 3;\n}\n\n.u-gc-9\\/4 {\n --gc-start: 9;\n --gc-end: 4;\n}\n\n.u-gc-9\\/5 {\n --gc-start: 9;\n --gc-end: 5;\n}\n\n.u-gc-9\\/6 {\n --gc-start: 9;\n --gc-end: 6;\n}\n\n.u-gc-9\\/7 {\n --gc-start: 9;\n --gc-end: 7;\n}\n\n.u-gc-9\\/8 {\n --gc-start: 9;\n --gc-end: 8;\n}\n\n.u-gc-9\\/9 {\n --gc-start: 9;\n --gc-end: 9;\n}\n\n.u-gc-9\\/10 {\n --gc-start: 9;\n --gc-end: 10;\n}\n\n.u-gc-9\\/11 {\n --gc-start: 9;\n --gc-end: 11;\n}\n\n.u-gc-9\\/12 {\n --gc-start: 9;\n --gc-end: 12;\n}\n\n.u-gc-9\\/13 {\n --gc-start: 9;\n --gc-end: 13;\n}\n\n.u-gc-10\\/1 {\n --gc-start: 10;\n --gc-end: 1;\n}\n\n.u-gc-10\\/2 {\n --gc-start: 10;\n --gc-end: 2;\n}\n\n.u-gc-10\\/3 {\n --gc-start: 10;\n --gc-end: 3;\n}\n\n.u-gc-10\\/4 {\n --gc-start: 10;\n --gc-end: 4;\n}\n\n.u-gc-10\\/5 {\n --gc-start: 10;\n --gc-end: 5;\n}\n\n.u-gc-10\\/6 {\n --gc-start: 10;\n --gc-end: 6;\n}\n\n.u-gc-10\\/7 {\n --gc-start: 10;\n --gc-end: 7;\n}\n\n.u-gc-10\\/8 {\n --gc-start: 10;\n --gc-end: 8;\n}\n\n.u-gc-10\\/9 {\n --gc-start: 10;\n --gc-end: 9;\n}\n\n.u-gc-10\\/10 {\n --gc-start: 10;\n --gc-end: 10;\n}\n\n.u-gc-10\\/11 {\n --gc-start: 10;\n --gc-end: 11;\n}\n\n.u-gc-10\\/12 {\n --gc-start: 10;\n --gc-end: 12;\n}\n\n.u-gc-10\\/13 {\n --gc-start: 10;\n --gc-end: 13;\n}\n\n.u-gc-11\\/1 {\n --gc-start: 11;\n --gc-end: 1;\n}\n\n.u-gc-11\\/2 {\n --gc-start: 11;\n --gc-end: 2;\n}\n\n.u-gc-11\\/3 {\n --gc-start: 11;\n --gc-end: 3;\n}\n\n.u-gc-11\\/4 {\n --gc-start: 11;\n --gc-end: 4;\n}\n\n.u-gc-11\\/5 {\n --gc-start: 11;\n --gc-end: 5;\n}\n\n.u-gc-11\\/6 {\n --gc-start: 11;\n --gc-end: 6;\n}\n\n.u-gc-11\\/7 {\n --gc-start: 11;\n --gc-end: 7;\n}\n\n.u-gc-11\\/8 {\n --gc-start: 11;\n --gc-end: 8;\n}\n\n.u-gc-11\\/9 {\n --gc-start: 11;\n --gc-end: 9;\n}\n\n.u-gc-11\\/10 {\n --gc-start: 11;\n --gc-end: 10;\n}\n\n.u-gc-11\\/11 {\n --gc-start: 11;\n --gc-end: 11;\n}\n\n.u-gc-11\\/12 {\n --gc-start: 11;\n --gc-end: 12;\n}\n\n.u-gc-11\\/13 {\n --gc-start: 11;\n --gc-end: 13;\n}\n\n.u-gc-12\\/1 {\n --gc-start: 12;\n --gc-end: 1;\n}\n\n.u-gc-12\\/2 {\n --gc-start: 12;\n --gc-end: 2;\n}\n\n.u-gc-12\\/3 {\n --gc-start: 12;\n --gc-end: 3;\n}\n\n.u-gc-12\\/4 {\n --gc-start: 12;\n --gc-end: 4;\n}\n\n.u-gc-12\\/5 {\n --gc-start: 12;\n --gc-end: 5;\n}\n\n.u-gc-12\\/6 {\n --gc-start: 12;\n --gc-end: 6;\n}\n\n.u-gc-12\\/7 {\n --gc-start: 12;\n --gc-end: 7;\n}\n\n.u-gc-12\\/8 {\n --gc-start: 12;\n --gc-end: 8;\n}\n\n.u-gc-12\\/9 {\n --gc-start: 12;\n --gc-end: 9;\n}\n\n.u-gc-12\\/10 {\n --gc-start: 12;\n --gc-end: 10;\n}\n\n.u-gc-12\\/11 {\n --gc-start: 12;\n --gc-end: 11;\n}\n\n.u-gc-12\\/12 {\n --gc-start: 12;\n --gc-end: 12;\n}\n\n.u-gc-12\\/13 {\n --gc-start: 12;\n --gc-end: 13;\n}\n\n.u-gc-13\\/1 {\n --gc-start: 13;\n --gc-end: 1;\n}\n\n.u-gc-13\\/2 {\n --gc-start: 13;\n --gc-end: 2;\n}\n\n.u-gc-13\\/3 {\n --gc-start: 13;\n --gc-end: 3;\n}\n\n.u-gc-13\\/4 {\n --gc-start: 13;\n --gc-end: 4;\n}\n\n.u-gc-13\\/5 {\n --gc-start: 13;\n --gc-end: 5;\n}\n\n.u-gc-13\\/6 {\n --gc-start: 13;\n --gc-end: 6;\n}\n\n.u-gc-13\\/7 {\n --gc-start: 13;\n --gc-end: 7;\n}\n\n.u-gc-13\\/8 {\n --gc-start: 13;\n --gc-end: 8;\n}\n\n.u-gc-13\\/9 {\n --gc-start: 13;\n --gc-end: 9;\n}\n\n.u-gc-13\\/10 {\n --gc-start: 13;\n --gc-end: 10;\n}\n\n.u-gc-13\\/11 {\n --gc-start: 13;\n --gc-end: 11;\n}\n\n.u-gc-13\\/12 {\n --gc-start: 13;\n --gc-end: 12;\n}\n\n.u-gc-13\\/13 {\n --gc-start: 13;\n --gc-end: 13;\n}\n\n@media (min-width: 500px) {\n .u-gc-1\\/1\\@from-tiny {\n --gc-start: 1;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-1\\/2\\@from-tiny {\n --gc-start: 1;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-1\\/3\\@from-tiny {\n --gc-start: 1;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-1\\/4\\@from-tiny {\n --gc-start: 1;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-1\\/5\\@from-tiny {\n --gc-start: 1;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-1\\/6\\@from-tiny {\n --gc-start: 1;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-1\\/7\\@from-tiny {\n --gc-start: 1;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-1\\/8\\@from-tiny {\n --gc-start: 1;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-1\\/9\\@from-tiny {\n --gc-start: 1;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-1\\/10\\@from-tiny {\n --gc-start: 1;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-1\\/11\\@from-tiny {\n --gc-start: 1;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-1\\/12\\@from-tiny {\n --gc-start: 1;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-1\\/13\\@from-tiny {\n --gc-start: 1;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-2\\/1\\@from-tiny {\n --gc-start: 2;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-2\\/2\\@from-tiny {\n --gc-start: 2;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-2\\/3\\@from-tiny {\n --gc-start: 2;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-2\\/4\\@from-tiny {\n --gc-start: 2;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-2\\/5\\@from-tiny {\n --gc-start: 2;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-2\\/6\\@from-tiny {\n --gc-start: 2;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-2\\/7\\@from-tiny {\n --gc-start: 2;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-2\\/8\\@from-tiny {\n --gc-start: 2;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-2\\/9\\@from-tiny {\n --gc-start: 2;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-2\\/10\\@from-tiny {\n --gc-start: 2;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-2\\/11\\@from-tiny {\n --gc-start: 2;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-2\\/12\\@from-tiny {\n --gc-start: 2;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-2\\/13\\@from-tiny {\n --gc-start: 2;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-3\\/1\\@from-tiny {\n --gc-start: 3;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-3\\/2\\@from-tiny {\n --gc-start: 3;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-3\\/3\\@from-tiny {\n --gc-start: 3;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-3\\/4\\@from-tiny {\n --gc-start: 3;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-3\\/5\\@from-tiny {\n --gc-start: 3;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-3\\/6\\@from-tiny {\n --gc-start: 3;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-3\\/7\\@from-tiny {\n --gc-start: 3;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-3\\/8\\@from-tiny {\n --gc-start: 3;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-3\\/9\\@from-tiny {\n --gc-start: 3;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-3\\/10\\@from-tiny {\n --gc-start: 3;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-3\\/11\\@from-tiny {\n --gc-start: 3;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-3\\/12\\@from-tiny {\n --gc-start: 3;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-3\\/13\\@from-tiny {\n --gc-start: 3;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-4\\/1\\@from-tiny {\n --gc-start: 4;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-4\\/2\\@from-tiny {\n --gc-start: 4;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-4\\/3\\@from-tiny {\n --gc-start: 4;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-4\\/4\\@from-tiny {\n --gc-start: 4;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-4\\/5\\@from-tiny {\n --gc-start: 4;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-4\\/6\\@from-tiny {\n --gc-start: 4;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-4\\/7\\@from-tiny {\n --gc-start: 4;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-4\\/8\\@from-tiny {\n --gc-start: 4;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-4\\/9\\@from-tiny {\n --gc-start: 4;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-4\\/10\\@from-tiny {\n --gc-start: 4;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-4\\/11\\@from-tiny {\n --gc-start: 4;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-4\\/12\\@from-tiny {\n --gc-start: 4;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-4\\/13\\@from-tiny {\n --gc-start: 4;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-5\\/1\\@from-tiny {\n --gc-start: 5;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-5\\/2\\@from-tiny {\n --gc-start: 5;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-5\\/3\\@from-tiny {\n --gc-start: 5;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-5\\/4\\@from-tiny {\n --gc-start: 5;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-5\\/5\\@from-tiny {\n --gc-start: 5;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-5\\/6\\@from-tiny {\n --gc-start: 5;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-5\\/7\\@from-tiny {\n --gc-start: 5;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-5\\/8\\@from-tiny {\n --gc-start: 5;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-5\\/9\\@from-tiny {\n --gc-start: 5;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-5\\/10\\@from-tiny {\n --gc-start: 5;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-5\\/11\\@from-tiny {\n --gc-start: 5;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-5\\/12\\@from-tiny {\n --gc-start: 5;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-5\\/13\\@from-tiny {\n --gc-start: 5;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-6\\/1\\@from-tiny {\n --gc-start: 6;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-6\\/2\\@from-tiny {\n --gc-start: 6;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-6\\/3\\@from-tiny {\n --gc-start: 6;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-6\\/4\\@from-tiny {\n --gc-start: 6;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-6\\/5\\@from-tiny {\n --gc-start: 6;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-6\\/6\\@from-tiny {\n --gc-start: 6;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-6\\/7\\@from-tiny {\n --gc-start: 6;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-6\\/8\\@from-tiny {\n --gc-start: 6;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-6\\/9\\@from-tiny {\n --gc-start: 6;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-6\\/10\\@from-tiny {\n --gc-start: 6;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-6\\/11\\@from-tiny {\n --gc-start: 6;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-6\\/12\\@from-tiny {\n --gc-start: 6;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-6\\/13\\@from-tiny {\n --gc-start: 6;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-7\\/1\\@from-tiny {\n --gc-start: 7;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-7\\/2\\@from-tiny {\n --gc-start: 7;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-7\\/3\\@from-tiny {\n --gc-start: 7;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-7\\/4\\@from-tiny {\n --gc-start: 7;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-7\\/5\\@from-tiny {\n --gc-start: 7;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-7\\/6\\@from-tiny {\n --gc-start: 7;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-7\\/7\\@from-tiny {\n --gc-start: 7;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-7\\/8\\@from-tiny {\n --gc-start: 7;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-7\\/9\\@from-tiny {\n --gc-start: 7;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-7\\/10\\@from-tiny {\n --gc-start: 7;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-7\\/11\\@from-tiny {\n --gc-start: 7;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-7\\/12\\@from-tiny {\n --gc-start: 7;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-7\\/13\\@from-tiny {\n --gc-start: 7;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-8\\/1\\@from-tiny {\n --gc-start: 8;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-8\\/2\\@from-tiny {\n --gc-start: 8;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-8\\/3\\@from-tiny {\n --gc-start: 8;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-8\\/4\\@from-tiny {\n --gc-start: 8;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-8\\/5\\@from-tiny {\n --gc-start: 8;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-8\\/6\\@from-tiny {\n --gc-start: 8;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-8\\/7\\@from-tiny {\n --gc-start: 8;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-8\\/8\\@from-tiny {\n --gc-start: 8;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-8\\/9\\@from-tiny {\n --gc-start: 8;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-8\\/10\\@from-tiny {\n --gc-start: 8;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-8\\/11\\@from-tiny {\n --gc-start: 8;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-8\\/12\\@from-tiny {\n --gc-start: 8;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-8\\/13\\@from-tiny {\n --gc-start: 8;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-9\\/1\\@from-tiny {\n --gc-start: 9;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-9\\/2\\@from-tiny {\n --gc-start: 9;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-9\\/3\\@from-tiny {\n --gc-start: 9;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-9\\/4\\@from-tiny {\n --gc-start: 9;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-9\\/5\\@from-tiny {\n --gc-start: 9;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-9\\/6\\@from-tiny {\n --gc-start: 9;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-9\\/7\\@from-tiny {\n --gc-start: 9;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-9\\/8\\@from-tiny {\n --gc-start: 9;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-9\\/9\\@from-tiny {\n --gc-start: 9;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-9\\/10\\@from-tiny {\n --gc-start: 9;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-9\\/11\\@from-tiny {\n --gc-start: 9;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-9\\/12\\@from-tiny {\n --gc-start: 9;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-9\\/13\\@from-tiny {\n --gc-start: 9;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-10\\/1\\@from-tiny {\n --gc-start: 10;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-10\\/2\\@from-tiny {\n --gc-start: 10;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-10\\/3\\@from-tiny {\n --gc-start: 10;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-10\\/4\\@from-tiny {\n --gc-start: 10;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-10\\/5\\@from-tiny {\n --gc-start: 10;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-10\\/6\\@from-tiny {\n --gc-start: 10;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-10\\/7\\@from-tiny {\n --gc-start: 10;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-10\\/8\\@from-tiny {\n --gc-start: 10;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-10\\/9\\@from-tiny {\n --gc-start: 10;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-10\\/10\\@from-tiny {\n --gc-start: 10;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-10\\/11\\@from-tiny {\n --gc-start: 10;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-10\\/12\\@from-tiny {\n --gc-start: 10;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-10\\/13\\@from-tiny {\n --gc-start: 10;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-11\\/1\\@from-tiny {\n --gc-start: 11;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-11\\/2\\@from-tiny {\n --gc-start: 11;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-11\\/3\\@from-tiny {\n --gc-start: 11;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-11\\/4\\@from-tiny {\n --gc-start: 11;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-11\\/5\\@from-tiny {\n --gc-start: 11;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-11\\/6\\@from-tiny {\n --gc-start: 11;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-11\\/7\\@from-tiny {\n --gc-start: 11;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-11\\/8\\@from-tiny {\n --gc-start: 11;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-11\\/9\\@from-tiny {\n --gc-start: 11;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-11\\/10\\@from-tiny {\n --gc-start: 11;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-11\\/11\\@from-tiny {\n --gc-start: 11;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-11\\/12\\@from-tiny {\n --gc-start: 11;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-11\\/13\\@from-tiny {\n --gc-start: 11;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-12\\/1\\@from-tiny {\n --gc-start: 12;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-12\\/2\\@from-tiny {\n --gc-start: 12;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-12\\/3\\@from-tiny {\n --gc-start: 12;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-12\\/4\\@from-tiny {\n --gc-start: 12;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-12\\/5\\@from-tiny {\n --gc-start: 12;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-12\\/6\\@from-tiny {\n --gc-start: 12;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-12\\/7\\@from-tiny {\n --gc-start: 12;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-12\\/8\\@from-tiny {\n --gc-start: 12;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-12\\/9\\@from-tiny {\n --gc-start: 12;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-12\\/10\\@from-tiny {\n --gc-start: 12;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-12\\/11\\@from-tiny {\n --gc-start: 12;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-12\\/12\\@from-tiny {\n --gc-start: 12;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-12\\/13\\@from-tiny {\n --gc-start: 12;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-13\\/1\\@from-tiny {\n --gc-start: 13;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-13\\/2\\@from-tiny {\n --gc-start: 13;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-13\\/3\\@from-tiny {\n --gc-start: 13;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-13\\/4\\@from-tiny {\n --gc-start: 13;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-13\\/5\\@from-tiny {\n --gc-start: 13;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-13\\/6\\@from-tiny {\n --gc-start: 13;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-13\\/7\\@from-tiny {\n --gc-start: 13;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-13\\/8\\@from-tiny {\n --gc-start: 13;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-13\\/9\\@from-tiny {\n --gc-start: 13;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-13\\/10\\@from-tiny {\n --gc-start: 13;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-13\\/11\\@from-tiny {\n --gc-start: 13;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-13\\/12\\@from-tiny {\n --gc-start: 13;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 500px) {\n .u-gc-13\\/13\\@from-tiny {\n --gc-start: 13;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-1\\/1\\@from-small {\n --gc-start: 1;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-1\\/2\\@from-small {\n --gc-start: 1;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-1\\/3\\@from-small {\n --gc-start: 1;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-1\\/4\\@from-small {\n --gc-start: 1;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-1\\/5\\@from-small {\n --gc-start: 1;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-1\\/6\\@from-small {\n --gc-start: 1;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-1\\/7\\@from-small {\n --gc-start: 1;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-1\\/8\\@from-small {\n --gc-start: 1;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-1\\/9\\@from-small {\n --gc-start: 1;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-1\\/10\\@from-small {\n --gc-start: 1;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-1\\/11\\@from-small {\n --gc-start: 1;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-1\\/12\\@from-small {\n --gc-start: 1;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-1\\/13\\@from-small {\n --gc-start: 1;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-2\\/1\\@from-small {\n --gc-start: 2;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-2\\/2\\@from-small {\n --gc-start: 2;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-2\\/3\\@from-small {\n --gc-start: 2;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-2\\/4\\@from-small {\n --gc-start: 2;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-2\\/5\\@from-small {\n --gc-start: 2;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-2\\/6\\@from-small {\n --gc-start: 2;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-2\\/7\\@from-small {\n --gc-start: 2;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-2\\/8\\@from-small {\n --gc-start: 2;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-2\\/9\\@from-small {\n --gc-start: 2;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-2\\/10\\@from-small {\n --gc-start: 2;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-2\\/11\\@from-small {\n --gc-start: 2;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-2\\/12\\@from-small {\n --gc-start: 2;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-2\\/13\\@from-small {\n --gc-start: 2;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-3\\/1\\@from-small {\n --gc-start: 3;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-3\\/2\\@from-small {\n --gc-start: 3;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-3\\/3\\@from-small {\n --gc-start: 3;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-3\\/4\\@from-small {\n --gc-start: 3;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-3\\/5\\@from-small {\n --gc-start: 3;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-3\\/6\\@from-small {\n --gc-start: 3;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-3\\/7\\@from-small {\n --gc-start: 3;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-3\\/8\\@from-small {\n --gc-start: 3;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-3\\/9\\@from-small {\n --gc-start: 3;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-3\\/10\\@from-small {\n --gc-start: 3;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-3\\/11\\@from-small {\n --gc-start: 3;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-3\\/12\\@from-small {\n --gc-start: 3;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-3\\/13\\@from-small {\n --gc-start: 3;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-4\\/1\\@from-small {\n --gc-start: 4;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-4\\/2\\@from-small {\n --gc-start: 4;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-4\\/3\\@from-small {\n --gc-start: 4;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-4\\/4\\@from-small {\n --gc-start: 4;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-4\\/5\\@from-small {\n --gc-start: 4;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-4\\/6\\@from-small {\n --gc-start: 4;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-4\\/7\\@from-small {\n --gc-start: 4;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-4\\/8\\@from-small {\n --gc-start: 4;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-4\\/9\\@from-small {\n --gc-start: 4;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-4\\/10\\@from-small {\n --gc-start: 4;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-4\\/11\\@from-small {\n --gc-start: 4;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-4\\/12\\@from-small {\n --gc-start: 4;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-4\\/13\\@from-small {\n --gc-start: 4;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-5\\/1\\@from-small {\n --gc-start: 5;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-5\\/2\\@from-small {\n --gc-start: 5;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-5\\/3\\@from-small {\n --gc-start: 5;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-5\\/4\\@from-small {\n --gc-start: 5;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-5\\/5\\@from-small {\n --gc-start: 5;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-5\\/6\\@from-small {\n --gc-start: 5;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-5\\/7\\@from-small {\n --gc-start: 5;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-5\\/8\\@from-small {\n --gc-start: 5;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-5\\/9\\@from-small {\n --gc-start: 5;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-5\\/10\\@from-small {\n --gc-start: 5;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-5\\/11\\@from-small {\n --gc-start: 5;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-5\\/12\\@from-small {\n --gc-start: 5;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-5\\/13\\@from-small {\n --gc-start: 5;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-6\\/1\\@from-small {\n --gc-start: 6;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-6\\/2\\@from-small {\n --gc-start: 6;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-6\\/3\\@from-small {\n --gc-start: 6;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-6\\/4\\@from-small {\n --gc-start: 6;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-6\\/5\\@from-small {\n --gc-start: 6;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-6\\/6\\@from-small {\n --gc-start: 6;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-6\\/7\\@from-small {\n --gc-start: 6;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-6\\/8\\@from-small {\n --gc-start: 6;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-6\\/9\\@from-small {\n --gc-start: 6;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-6\\/10\\@from-small {\n --gc-start: 6;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-6\\/11\\@from-small {\n --gc-start: 6;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-6\\/12\\@from-small {\n --gc-start: 6;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-6\\/13\\@from-small {\n --gc-start: 6;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-7\\/1\\@from-small {\n --gc-start: 7;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-7\\/2\\@from-small {\n --gc-start: 7;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-7\\/3\\@from-small {\n --gc-start: 7;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-7\\/4\\@from-small {\n --gc-start: 7;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-7\\/5\\@from-small {\n --gc-start: 7;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-7\\/6\\@from-small {\n --gc-start: 7;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-7\\/7\\@from-small {\n --gc-start: 7;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-7\\/8\\@from-small {\n --gc-start: 7;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-7\\/9\\@from-small {\n --gc-start: 7;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-7\\/10\\@from-small {\n --gc-start: 7;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-7\\/11\\@from-small {\n --gc-start: 7;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-7\\/12\\@from-small {\n --gc-start: 7;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-7\\/13\\@from-small {\n --gc-start: 7;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-8\\/1\\@from-small {\n --gc-start: 8;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-8\\/2\\@from-small {\n --gc-start: 8;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-8\\/3\\@from-small {\n --gc-start: 8;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-8\\/4\\@from-small {\n --gc-start: 8;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-8\\/5\\@from-small {\n --gc-start: 8;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-8\\/6\\@from-small {\n --gc-start: 8;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-8\\/7\\@from-small {\n --gc-start: 8;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-8\\/8\\@from-small {\n --gc-start: 8;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-8\\/9\\@from-small {\n --gc-start: 8;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-8\\/10\\@from-small {\n --gc-start: 8;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-8\\/11\\@from-small {\n --gc-start: 8;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-8\\/12\\@from-small {\n --gc-start: 8;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-8\\/13\\@from-small {\n --gc-start: 8;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-9\\/1\\@from-small {\n --gc-start: 9;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-9\\/2\\@from-small {\n --gc-start: 9;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-9\\/3\\@from-small {\n --gc-start: 9;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-9\\/4\\@from-small {\n --gc-start: 9;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-9\\/5\\@from-small {\n --gc-start: 9;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-9\\/6\\@from-small {\n --gc-start: 9;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-9\\/7\\@from-small {\n --gc-start: 9;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-9\\/8\\@from-small {\n --gc-start: 9;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-9\\/9\\@from-small {\n --gc-start: 9;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-9\\/10\\@from-small {\n --gc-start: 9;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-9\\/11\\@from-small {\n --gc-start: 9;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-9\\/12\\@from-small {\n --gc-start: 9;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-9\\/13\\@from-small {\n --gc-start: 9;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-10\\/1\\@from-small {\n --gc-start: 10;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-10\\/2\\@from-small {\n --gc-start: 10;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-10\\/3\\@from-small {\n --gc-start: 10;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-10\\/4\\@from-small {\n --gc-start: 10;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-10\\/5\\@from-small {\n --gc-start: 10;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-10\\/6\\@from-small {\n --gc-start: 10;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-10\\/7\\@from-small {\n --gc-start: 10;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-10\\/8\\@from-small {\n --gc-start: 10;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-10\\/9\\@from-small {\n --gc-start: 10;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-10\\/10\\@from-small {\n --gc-start: 10;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-10\\/11\\@from-small {\n --gc-start: 10;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-10\\/12\\@from-small {\n --gc-start: 10;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-10\\/13\\@from-small {\n --gc-start: 10;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-11\\/1\\@from-small {\n --gc-start: 11;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-11\\/2\\@from-small {\n --gc-start: 11;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-11\\/3\\@from-small {\n --gc-start: 11;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-11\\/4\\@from-small {\n --gc-start: 11;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-11\\/5\\@from-small {\n --gc-start: 11;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-11\\/6\\@from-small {\n --gc-start: 11;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-11\\/7\\@from-small {\n --gc-start: 11;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-11\\/8\\@from-small {\n --gc-start: 11;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-11\\/9\\@from-small {\n --gc-start: 11;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-11\\/10\\@from-small {\n --gc-start: 11;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-11\\/11\\@from-small {\n --gc-start: 11;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-11\\/12\\@from-small {\n --gc-start: 11;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-11\\/13\\@from-small {\n --gc-start: 11;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-12\\/1\\@from-small {\n --gc-start: 12;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-12\\/2\\@from-small {\n --gc-start: 12;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-12\\/3\\@from-small {\n --gc-start: 12;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-12\\/4\\@from-small {\n --gc-start: 12;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-12\\/5\\@from-small {\n --gc-start: 12;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-12\\/6\\@from-small {\n --gc-start: 12;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-12\\/7\\@from-small {\n --gc-start: 12;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-12\\/8\\@from-small {\n --gc-start: 12;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-12\\/9\\@from-small {\n --gc-start: 12;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-12\\/10\\@from-small {\n --gc-start: 12;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-12\\/11\\@from-small {\n --gc-start: 12;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-12\\/12\\@from-small {\n --gc-start: 12;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-12\\/13\\@from-small {\n --gc-start: 12;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-13\\/1\\@from-small {\n --gc-start: 13;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-13\\/2\\@from-small {\n --gc-start: 13;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-13\\/3\\@from-small {\n --gc-start: 13;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-13\\/4\\@from-small {\n --gc-start: 13;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-13\\/5\\@from-small {\n --gc-start: 13;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-13\\/6\\@from-small {\n --gc-start: 13;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-13\\/7\\@from-small {\n --gc-start: 13;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-13\\/8\\@from-small {\n --gc-start: 13;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-13\\/9\\@from-small {\n --gc-start: 13;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-13\\/10\\@from-small {\n --gc-start: 13;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-13\\/11\\@from-small {\n --gc-start: 13;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-13\\/12\\@from-small {\n --gc-start: 13;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 700px) {\n .u-gc-13\\/13\\@from-small {\n --gc-start: 13;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-1\\/1\\@from-medium {\n --gc-start: 1;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-1\\/2\\@from-medium {\n --gc-start: 1;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-1\\/3\\@from-medium {\n --gc-start: 1;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-1\\/4\\@from-medium {\n --gc-start: 1;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-1\\/5\\@from-medium {\n --gc-start: 1;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-1\\/6\\@from-medium {\n --gc-start: 1;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-1\\/7\\@from-medium {\n --gc-start: 1;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-1\\/8\\@from-medium {\n --gc-start: 1;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-1\\/9\\@from-medium {\n --gc-start: 1;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-1\\/10\\@from-medium {\n --gc-start: 1;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-1\\/11\\@from-medium {\n --gc-start: 1;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-1\\/12\\@from-medium {\n --gc-start: 1;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-1\\/13\\@from-medium {\n --gc-start: 1;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-2\\/1\\@from-medium {\n --gc-start: 2;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-2\\/2\\@from-medium {\n --gc-start: 2;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-2\\/3\\@from-medium {\n --gc-start: 2;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-2\\/4\\@from-medium {\n --gc-start: 2;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-2\\/5\\@from-medium {\n --gc-start: 2;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-2\\/6\\@from-medium {\n --gc-start: 2;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-2\\/7\\@from-medium {\n --gc-start: 2;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-2\\/8\\@from-medium {\n --gc-start: 2;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-2\\/9\\@from-medium {\n --gc-start: 2;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-2\\/10\\@from-medium {\n --gc-start: 2;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-2\\/11\\@from-medium {\n --gc-start: 2;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-2\\/12\\@from-medium {\n --gc-start: 2;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-2\\/13\\@from-medium {\n --gc-start: 2;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-3\\/1\\@from-medium {\n --gc-start: 3;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-3\\/2\\@from-medium {\n --gc-start: 3;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-3\\/3\\@from-medium {\n --gc-start: 3;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-3\\/4\\@from-medium {\n --gc-start: 3;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-3\\/5\\@from-medium {\n --gc-start: 3;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-3\\/6\\@from-medium {\n --gc-start: 3;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-3\\/7\\@from-medium {\n --gc-start: 3;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-3\\/8\\@from-medium {\n --gc-start: 3;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-3\\/9\\@from-medium {\n --gc-start: 3;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-3\\/10\\@from-medium {\n --gc-start: 3;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-3\\/11\\@from-medium {\n --gc-start: 3;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-3\\/12\\@from-medium {\n --gc-start: 3;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-3\\/13\\@from-medium {\n --gc-start: 3;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-4\\/1\\@from-medium {\n --gc-start: 4;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-4\\/2\\@from-medium {\n --gc-start: 4;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-4\\/3\\@from-medium {\n --gc-start: 4;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-4\\/4\\@from-medium {\n --gc-start: 4;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-4\\/5\\@from-medium {\n --gc-start: 4;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-4\\/6\\@from-medium {\n --gc-start: 4;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-4\\/7\\@from-medium {\n --gc-start: 4;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-4\\/8\\@from-medium {\n --gc-start: 4;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-4\\/9\\@from-medium {\n --gc-start: 4;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-4\\/10\\@from-medium {\n --gc-start: 4;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-4\\/11\\@from-medium {\n --gc-start: 4;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-4\\/12\\@from-medium {\n --gc-start: 4;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-4\\/13\\@from-medium {\n --gc-start: 4;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-5\\/1\\@from-medium {\n --gc-start: 5;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-5\\/2\\@from-medium {\n --gc-start: 5;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-5\\/3\\@from-medium {\n --gc-start: 5;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-5\\/4\\@from-medium {\n --gc-start: 5;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-5\\/5\\@from-medium {\n --gc-start: 5;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-5\\/6\\@from-medium {\n --gc-start: 5;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-5\\/7\\@from-medium {\n --gc-start: 5;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-5\\/8\\@from-medium {\n --gc-start: 5;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-5\\/9\\@from-medium {\n --gc-start: 5;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-5\\/10\\@from-medium {\n --gc-start: 5;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-5\\/11\\@from-medium {\n --gc-start: 5;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-5\\/12\\@from-medium {\n --gc-start: 5;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-5\\/13\\@from-medium {\n --gc-start: 5;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-6\\/1\\@from-medium {\n --gc-start: 6;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-6\\/2\\@from-medium {\n --gc-start: 6;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-6\\/3\\@from-medium {\n --gc-start: 6;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-6\\/4\\@from-medium {\n --gc-start: 6;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-6\\/5\\@from-medium {\n --gc-start: 6;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-6\\/6\\@from-medium {\n --gc-start: 6;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-6\\/7\\@from-medium {\n --gc-start: 6;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-6\\/8\\@from-medium {\n --gc-start: 6;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-6\\/9\\@from-medium {\n --gc-start: 6;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-6\\/10\\@from-medium {\n --gc-start: 6;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-6\\/11\\@from-medium {\n --gc-start: 6;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-6\\/12\\@from-medium {\n --gc-start: 6;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-6\\/13\\@from-medium {\n --gc-start: 6;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-7\\/1\\@from-medium {\n --gc-start: 7;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-7\\/2\\@from-medium {\n --gc-start: 7;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-7\\/3\\@from-medium {\n --gc-start: 7;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-7\\/4\\@from-medium {\n --gc-start: 7;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-7\\/5\\@from-medium {\n --gc-start: 7;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-7\\/6\\@from-medium {\n --gc-start: 7;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-7\\/7\\@from-medium {\n --gc-start: 7;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-7\\/8\\@from-medium {\n --gc-start: 7;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-7\\/9\\@from-medium {\n --gc-start: 7;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-7\\/10\\@from-medium {\n --gc-start: 7;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-7\\/11\\@from-medium {\n --gc-start: 7;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-7\\/12\\@from-medium {\n --gc-start: 7;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-7\\/13\\@from-medium {\n --gc-start: 7;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-8\\/1\\@from-medium {\n --gc-start: 8;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-8\\/2\\@from-medium {\n --gc-start: 8;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-8\\/3\\@from-medium {\n --gc-start: 8;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-8\\/4\\@from-medium {\n --gc-start: 8;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-8\\/5\\@from-medium {\n --gc-start: 8;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-8\\/6\\@from-medium {\n --gc-start: 8;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-8\\/7\\@from-medium {\n --gc-start: 8;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-8\\/8\\@from-medium {\n --gc-start: 8;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-8\\/9\\@from-medium {\n --gc-start: 8;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-8\\/10\\@from-medium {\n --gc-start: 8;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-8\\/11\\@from-medium {\n --gc-start: 8;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-8\\/12\\@from-medium {\n --gc-start: 8;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-8\\/13\\@from-medium {\n --gc-start: 8;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-9\\/1\\@from-medium {\n --gc-start: 9;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-9\\/2\\@from-medium {\n --gc-start: 9;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-9\\/3\\@from-medium {\n --gc-start: 9;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-9\\/4\\@from-medium {\n --gc-start: 9;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-9\\/5\\@from-medium {\n --gc-start: 9;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-9\\/6\\@from-medium {\n --gc-start: 9;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-9\\/7\\@from-medium {\n --gc-start: 9;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-9\\/8\\@from-medium {\n --gc-start: 9;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-9\\/9\\@from-medium {\n --gc-start: 9;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-9\\/10\\@from-medium {\n --gc-start: 9;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-9\\/11\\@from-medium {\n --gc-start: 9;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-9\\/12\\@from-medium {\n --gc-start: 9;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-9\\/13\\@from-medium {\n --gc-start: 9;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-10\\/1\\@from-medium {\n --gc-start: 10;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-10\\/2\\@from-medium {\n --gc-start: 10;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-10\\/3\\@from-medium {\n --gc-start: 10;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-10\\/4\\@from-medium {\n --gc-start: 10;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-10\\/5\\@from-medium {\n --gc-start: 10;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-10\\/6\\@from-medium {\n --gc-start: 10;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-10\\/7\\@from-medium {\n --gc-start: 10;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-10\\/8\\@from-medium {\n --gc-start: 10;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-10\\/9\\@from-medium {\n --gc-start: 10;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-10\\/10\\@from-medium {\n --gc-start: 10;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-10\\/11\\@from-medium {\n --gc-start: 10;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-10\\/12\\@from-medium {\n --gc-start: 10;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-10\\/13\\@from-medium {\n --gc-start: 10;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-11\\/1\\@from-medium {\n --gc-start: 11;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-11\\/2\\@from-medium {\n --gc-start: 11;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-11\\/3\\@from-medium {\n --gc-start: 11;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-11\\/4\\@from-medium {\n --gc-start: 11;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-11\\/5\\@from-medium {\n --gc-start: 11;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-11\\/6\\@from-medium {\n --gc-start: 11;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-11\\/7\\@from-medium {\n --gc-start: 11;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-11\\/8\\@from-medium {\n --gc-start: 11;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-11\\/9\\@from-medium {\n --gc-start: 11;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-11\\/10\\@from-medium {\n --gc-start: 11;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-11\\/11\\@from-medium {\n --gc-start: 11;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-11\\/12\\@from-medium {\n --gc-start: 11;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-11\\/13\\@from-medium {\n --gc-start: 11;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-12\\/1\\@from-medium {\n --gc-start: 12;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-12\\/2\\@from-medium {\n --gc-start: 12;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-12\\/3\\@from-medium {\n --gc-start: 12;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-12\\/4\\@from-medium {\n --gc-start: 12;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-12\\/5\\@from-medium {\n --gc-start: 12;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-12\\/6\\@from-medium {\n --gc-start: 12;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-12\\/7\\@from-medium {\n --gc-start: 12;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-12\\/8\\@from-medium {\n --gc-start: 12;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-12\\/9\\@from-medium {\n --gc-start: 12;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-12\\/10\\@from-medium {\n --gc-start: 12;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-12\\/11\\@from-medium {\n --gc-start: 12;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-12\\/12\\@from-medium {\n --gc-start: 12;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-12\\/13\\@from-medium {\n --gc-start: 12;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-13\\/1\\@from-medium {\n --gc-start: 13;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-13\\/2\\@from-medium {\n --gc-start: 13;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-13\\/3\\@from-medium {\n --gc-start: 13;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-13\\/4\\@from-medium {\n --gc-start: 13;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-13\\/5\\@from-medium {\n --gc-start: 13;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-13\\/6\\@from-medium {\n --gc-start: 13;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-13\\/7\\@from-medium {\n --gc-start: 13;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-13\\/8\\@from-medium {\n --gc-start: 13;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-13\\/9\\@from-medium {\n --gc-start: 13;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-13\\/10\\@from-medium {\n --gc-start: 13;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-13\\/11\\@from-medium {\n --gc-start: 13;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-13\\/12\\@from-medium {\n --gc-start: 13;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1000px) {\n .u-gc-13\\/13\\@from-medium {\n --gc-start: 13;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-1\\/1\\@from-large {\n --gc-start: 1;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-1\\/2\\@from-large {\n --gc-start: 1;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-1\\/3\\@from-large {\n --gc-start: 1;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-1\\/4\\@from-large {\n --gc-start: 1;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-1\\/5\\@from-large {\n --gc-start: 1;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-1\\/6\\@from-large {\n --gc-start: 1;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-1\\/7\\@from-large {\n --gc-start: 1;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-1\\/8\\@from-large {\n --gc-start: 1;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-1\\/9\\@from-large {\n --gc-start: 1;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-1\\/10\\@from-large {\n --gc-start: 1;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-1\\/11\\@from-large {\n --gc-start: 1;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-1\\/12\\@from-large {\n --gc-start: 1;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-1\\/13\\@from-large {\n --gc-start: 1;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-2\\/1\\@from-large {\n --gc-start: 2;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-2\\/2\\@from-large {\n --gc-start: 2;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-2\\/3\\@from-large {\n --gc-start: 2;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-2\\/4\\@from-large {\n --gc-start: 2;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-2\\/5\\@from-large {\n --gc-start: 2;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-2\\/6\\@from-large {\n --gc-start: 2;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-2\\/7\\@from-large {\n --gc-start: 2;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-2\\/8\\@from-large {\n --gc-start: 2;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-2\\/9\\@from-large {\n --gc-start: 2;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-2\\/10\\@from-large {\n --gc-start: 2;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-2\\/11\\@from-large {\n --gc-start: 2;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-2\\/12\\@from-large {\n --gc-start: 2;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-2\\/13\\@from-large {\n --gc-start: 2;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-3\\/1\\@from-large {\n --gc-start: 3;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-3\\/2\\@from-large {\n --gc-start: 3;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-3\\/3\\@from-large {\n --gc-start: 3;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-3\\/4\\@from-large {\n --gc-start: 3;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-3\\/5\\@from-large {\n --gc-start: 3;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-3\\/6\\@from-large {\n --gc-start: 3;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-3\\/7\\@from-large {\n --gc-start: 3;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-3\\/8\\@from-large {\n --gc-start: 3;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-3\\/9\\@from-large {\n --gc-start: 3;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-3\\/10\\@from-large {\n --gc-start: 3;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-3\\/11\\@from-large {\n --gc-start: 3;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-3\\/12\\@from-large {\n --gc-start: 3;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-3\\/13\\@from-large {\n --gc-start: 3;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-4\\/1\\@from-large {\n --gc-start: 4;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-4\\/2\\@from-large {\n --gc-start: 4;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-4\\/3\\@from-large {\n --gc-start: 4;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-4\\/4\\@from-large {\n --gc-start: 4;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-4\\/5\\@from-large {\n --gc-start: 4;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-4\\/6\\@from-large {\n --gc-start: 4;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-4\\/7\\@from-large {\n --gc-start: 4;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-4\\/8\\@from-large {\n --gc-start: 4;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-4\\/9\\@from-large {\n --gc-start: 4;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-4\\/10\\@from-large {\n --gc-start: 4;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-4\\/11\\@from-large {\n --gc-start: 4;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-4\\/12\\@from-large {\n --gc-start: 4;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-4\\/13\\@from-large {\n --gc-start: 4;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-5\\/1\\@from-large {\n --gc-start: 5;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-5\\/2\\@from-large {\n --gc-start: 5;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-5\\/3\\@from-large {\n --gc-start: 5;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-5\\/4\\@from-large {\n --gc-start: 5;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-5\\/5\\@from-large {\n --gc-start: 5;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-5\\/6\\@from-large {\n --gc-start: 5;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-5\\/7\\@from-large {\n --gc-start: 5;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-5\\/8\\@from-large {\n --gc-start: 5;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-5\\/9\\@from-large {\n --gc-start: 5;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-5\\/10\\@from-large {\n --gc-start: 5;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-5\\/11\\@from-large {\n --gc-start: 5;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-5\\/12\\@from-large {\n --gc-start: 5;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-5\\/13\\@from-large {\n --gc-start: 5;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-6\\/1\\@from-large {\n --gc-start: 6;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-6\\/2\\@from-large {\n --gc-start: 6;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-6\\/3\\@from-large {\n --gc-start: 6;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-6\\/4\\@from-large {\n --gc-start: 6;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-6\\/5\\@from-large {\n --gc-start: 6;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-6\\/6\\@from-large {\n --gc-start: 6;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-6\\/7\\@from-large {\n --gc-start: 6;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-6\\/8\\@from-large {\n --gc-start: 6;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-6\\/9\\@from-large {\n --gc-start: 6;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-6\\/10\\@from-large {\n --gc-start: 6;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-6\\/11\\@from-large {\n --gc-start: 6;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-6\\/12\\@from-large {\n --gc-start: 6;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-6\\/13\\@from-large {\n --gc-start: 6;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-7\\/1\\@from-large {\n --gc-start: 7;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-7\\/2\\@from-large {\n --gc-start: 7;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-7\\/3\\@from-large {\n --gc-start: 7;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-7\\/4\\@from-large {\n --gc-start: 7;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-7\\/5\\@from-large {\n --gc-start: 7;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-7\\/6\\@from-large {\n --gc-start: 7;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-7\\/7\\@from-large {\n --gc-start: 7;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-7\\/8\\@from-large {\n --gc-start: 7;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-7\\/9\\@from-large {\n --gc-start: 7;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-7\\/10\\@from-large {\n --gc-start: 7;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-7\\/11\\@from-large {\n --gc-start: 7;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-7\\/12\\@from-large {\n --gc-start: 7;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-7\\/13\\@from-large {\n --gc-start: 7;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-8\\/1\\@from-large {\n --gc-start: 8;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-8\\/2\\@from-large {\n --gc-start: 8;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-8\\/3\\@from-large {\n --gc-start: 8;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-8\\/4\\@from-large {\n --gc-start: 8;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-8\\/5\\@from-large {\n --gc-start: 8;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-8\\/6\\@from-large {\n --gc-start: 8;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-8\\/7\\@from-large {\n --gc-start: 8;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-8\\/8\\@from-large {\n --gc-start: 8;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-8\\/9\\@from-large {\n --gc-start: 8;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-8\\/10\\@from-large {\n --gc-start: 8;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-8\\/11\\@from-large {\n --gc-start: 8;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-8\\/12\\@from-large {\n --gc-start: 8;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-8\\/13\\@from-large {\n --gc-start: 8;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-9\\/1\\@from-large {\n --gc-start: 9;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-9\\/2\\@from-large {\n --gc-start: 9;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-9\\/3\\@from-large {\n --gc-start: 9;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-9\\/4\\@from-large {\n --gc-start: 9;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-9\\/5\\@from-large {\n --gc-start: 9;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-9\\/6\\@from-large {\n --gc-start: 9;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-9\\/7\\@from-large {\n --gc-start: 9;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-9\\/8\\@from-large {\n --gc-start: 9;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-9\\/9\\@from-large {\n --gc-start: 9;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-9\\/10\\@from-large {\n --gc-start: 9;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-9\\/11\\@from-large {\n --gc-start: 9;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-9\\/12\\@from-large {\n --gc-start: 9;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-9\\/13\\@from-large {\n --gc-start: 9;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-10\\/1\\@from-large {\n --gc-start: 10;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-10\\/2\\@from-large {\n --gc-start: 10;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-10\\/3\\@from-large {\n --gc-start: 10;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-10\\/4\\@from-large {\n --gc-start: 10;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-10\\/5\\@from-large {\n --gc-start: 10;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-10\\/6\\@from-large {\n --gc-start: 10;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-10\\/7\\@from-large {\n --gc-start: 10;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-10\\/8\\@from-large {\n --gc-start: 10;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-10\\/9\\@from-large {\n --gc-start: 10;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-10\\/10\\@from-large {\n --gc-start: 10;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-10\\/11\\@from-large {\n --gc-start: 10;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-10\\/12\\@from-large {\n --gc-start: 10;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-10\\/13\\@from-large {\n --gc-start: 10;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-11\\/1\\@from-large {\n --gc-start: 11;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-11\\/2\\@from-large {\n --gc-start: 11;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-11\\/3\\@from-large {\n --gc-start: 11;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-11\\/4\\@from-large {\n --gc-start: 11;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-11\\/5\\@from-large {\n --gc-start: 11;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-11\\/6\\@from-large {\n --gc-start: 11;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-11\\/7\\@from-large {\n --gc-start: 11;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-11\\/8\\@from-large {\n --gc-start: 11;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-11\\/9\\@from-large {\n --gc-start: 11;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-11\\/10\\@from-large {\n --gc-start: 11;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-11\\/11\\@from-large {\n --gc-start: 11;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-11\\/12\\@from-large {\n --gc-start: 11;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-11\\/13\\@from-large {\n --gc-start: 11;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-12\\/1\\@from-large {\n --gc-start: 12;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-12\\/2\\@from-large {\n --gc-start: 12;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-12\\/3\\@from-large {\n --gc-start: 12;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-12\\/4\\@from-large {\n --gc-start: 12;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-12\\/5\\@from-large {\n --gc-start: 12;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-12\\/6\\@from-large {\n --gc-start: 12;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-12\\/7\\@from-large {\n --gc-start: 12;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-12\\/8\\@from-large {\n --gc-start: 12;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-12\\/9\\@from-large {\n --gc-start: 12;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-12\\/10\\@from-large {\n --gc-start: 12;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-12\\/11\\@from-large {\n --gc-start: 12;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-12\\/12\\@from-large {\n --gc-start: 12;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-12\\/13\\@from-large {\n --gc-start: 12;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-13\\/1\\@from-large {\n --gc-start: 13;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-13\\/2\\@from-large {\n --gc-start: 13;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-13\\/3\\@from-large {\n --gc-start: 13;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-13\\/4\\@from-large {\n --gc-start: 13;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-13\\/5\\@from-large {\n --gc-start: 13;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-13\\/6\\@from-large {\n --gc-start: 13;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-13\\/7\\@from-large {\n --gc-start: 13;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-13\\/8\\@from-large {\n --gc-start: 13;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-13\\/9\\@from-large {\n --gc-start: 13;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-13\\/10\\@from-large {\n --gc-start: 13;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-13\\/11\\@from-large {\n --gc-start: 13;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-13\\/12\\@from-large {\n --gc-start: 13;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1200px) {\n .u-gc-13\\/13\\@from-large {\n --gc-start: 13;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-1\\/1\\@from-big {\n --gc-start: 1;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-1\\/2\\@from-big {\n --gc-start: 1;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-1\\/3\\@from-big {\n --gc-start: 1;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-1\\/4\\@from-big {\n --gc-start: 1;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-1\\/5\\@from-big {\n --gc-start: 1;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-1\\/6\\@from-big {\n --gc-start: 1;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-1\\/7\\@from-big {\n --gc-start: 1;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-1\\/8\\@from-big {\n --gc-start: 1;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-1\\/9\\@from-big {\n --gc-start: 1;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-1\\/10\\@from-big {\n --gc-start: 1;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-1\\/11\\@from-big {\n --gc-start: 1;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-1\\/12\\@from-big {\n --gc-start: 1;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-1\\/13\\@from-big {\n --gc-start: 1;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-2\\/1\\@from-big {\n --gc-start: 2;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-2\\/2\\@from-big {\n --gc-start: 2;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-2\\/3\\@from-big {\n --gc-start: 2;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-2\\/4\\@from-big {\n --gc-start: 2;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-2\\/5\\@from-big {\n --gc-start: 2;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-2\\/6\\@from-big {\n --gc-start: 2;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-2\\/7\\@from-big {\n --gc-start: 2;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-2\\/8\\@from-big {\n --gc-start: 2;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-2\\/9\\@from-big {\n --gc-start: 2;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-2\\/10\\@from-big {\n --gc-start: 2;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-2\\/11\\@from-big {\n --gc-start: 2;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-2\\/12\\@from-big {\n --gc-start: 2;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-2\\/13\\@from-big {\n --gc-start: 2;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-3\\/1\\@from-big {\n --gc-start: 3;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-3\\/2\\@from-big {\n --gc-start: 3;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-3\\/3\\@from-big {\n --gc-start: 3;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-3\\/4\\@from-big {\n --gc-start: 3;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-3\\/5\\@from-big {\n --gc-start: 3;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-3\\/6\\@from-big {\n --gc-start: 3;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-3\\/7\\@from-big {\n --gc-start: 3;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-3\\/8\\@from-big {\n --gc-start: 3;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-3\\/9\\@from-big {\n --gc-start: 3;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-3\\/10\\@from-big {\n --gc-start: 3;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-3\\/11\\@from-big {\n --gc-start: 3;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-3\\/12\\@from-big {\n --gc-start: 3;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-3\\/13\\@from-big {\n --gc-start: 3;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-4\\/1\\@from-big {\n --gc-start: 4;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-4\\/2\\@from-big {\n --gc-start: 4;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-4\\/3\\@from-big {\n --gc-start: 4;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-4\\/4\\@from-big {\n --gc-start: 4;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-4\\/5\\@from-big {\n --gc-start: 4;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-4\\/6\\@from-big {\n --gc-start: 4;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-4\\/7\\@from-big {\n --gc-start: 4;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-4\\/8\\@from-big {\n --gc-start: 4;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-4\\/9\\@from-big {\n --gc-start: 4;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-4\\/10\\@from-big {\n --gc-start: 4;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-4\\/11\\@from-big {\n --gc-start: 4;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-4\\/12\\@from-big {\n --gc-start: 4;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-4\\/13\\@from-big {\n --gc-start: 4;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-5\\/1\\@from-big {\n --gc-start: 5;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-5\\/2\\@from-big {\n --gc-start: 5;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-5\\/3\\@from-big {\n --gc-start: 5;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-5\\/4\\@from-big {\n --gc-start: 5;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-5\\/5\\@from-big {\n --gc-start: 5;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-5\\/6\\@from-big {\n --gc-start: 5;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-5\\/7\\@from-big {\n --gc-start: 5;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-5\\/8\\@from-big {\n --gc-start: 5;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-5\\/9\\@from-big {\n --gc-start: 5;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-5\\/10\\@from-big {\n --gc-start: 5;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-5\\/11\\@from-big {\n --gc-start: 5;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-5\\/12\\@from-big {\n --gc-start: 5;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-5\\/13\\@from-big {\n --gc-start: 5;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-6\\/1\\@from-big {\n --gc-start: 6;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-6\\/2\\@from-big {\n --gc-start: 6;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-6\\/3\\@from-big {\n --gc-start: 6;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-6\\/4\\@from-big {\n --gc-start: 6;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-6\\/5\\@from-big {\n --gc-start: 6;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-6\\/6\\@from-big {\n --gc-start: 6;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-6\\/7\\@from-big {\n --gc-start: 6;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-6\\/8\\@from-big {\n --gc-start: 6;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-6\\/9\\@from-big {\n --gc-start: 6;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-6\\/10\\@from-big {\n --gc-start: 6;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-6\\/11\\@from-big {\n --gc-start: 6;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-6\\/12\\@from-big {\n --gc-start: 6;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-6\\/13\\@from-big {\n --gc-start: 6;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-7\\/1\\@from-big {\n --gc-start: 7;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-7\\/2\\@from-big {\n --gc-start: 7;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-7\\/3\\@from-big {\n --gc-start: 7;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-7\\/4\\@from-big {\n --gc-start: 7;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-7\\/5\\@from-big {\n --gc-start: 7;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-7\\/6\\@from-big {\n --gc-start: 7;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-7\\/7\\@from-big {\n --gc-start: 7;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-7\\/8\\@from-big {\n --gc-start: 7;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-7\\/9\\@from-big {\n --gc-start: 7;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-7\\/10\\@from-big {\n --gc-start: 7;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-7\\/11\\@from-big {\n --gc-start: 7;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-7\\/12\\@from-big {\n --gc-start: 7;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-7\\/13\\@from-big {\n --gc-start: 7;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-8\\/1\\@from-big {\n --gc-start: 8;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-8\\/2\\@from-big {\n --gc-start: 8;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-8\\/3\\@from-big {\n --gc-start: 8;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-8\\/4\\@from-big {\n --gc-start: 8;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-8\\/5\\@from-big {\n --gc-start: 8;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-8\\/6\\@from-big {\n --gc-start: 8;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-8\\/7\\@from-big {\n --gc-start: 8;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-8\\/8\\@from-big {\n --gc-start: 8;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-8\\/9\\@from-big {\n --gc-start: 8;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-8\\/10\\@from-big {\n --gc-start: 8;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-8\\/11\\@from-big {\n --gc-start: 8;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-8\\/12\\@from-big {\n --gc-start: 8;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-8\\/13\\@from-big {\n --gc-start: 8;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-9\\/1\\@from-big {\n --gc-start: 9;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-9\\/2\\@from-big {\n --gc-start: 9;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-9\\/3\\@from-big {\n --gc-start: 9;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-9\\/4\\@from-big {\n --gc-start: 9;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-9\\/5\\@from-big {\n --gc-start: 9;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-9\\/6\\@from-big {\n --gc-start: 9;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-9\\/7\\@from-big {\n --gc-start: 9;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-9\\/8\\@from-big {\n --gc-start: 9;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-9\\/9\\@from-big {\n --gc-start: 9;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-9\\/10\\@from-big {\n --gc-start: 9;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-9\\/11\\@from-big {\n --gc-start: 9;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-9\\/12\\@from-big {\n --gc-start: 9;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-9\\/13\\@from-big {\n --gc-start: 9;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-10\\/1\\@from-big {\n --gc-start: 10;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-10\\/2\\@from-big {\n --gc-start: 10;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-10\\/3\\@from-big {\n --gc-start: 10;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-10\\/4\\@from-big {\n --gc-start: 10;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-10\\/5\\@from-big {\n --gc-start: 10;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-10\\/6\\@from-big {\n --gc-start: 10;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-10\\/7\\@from-big {\n --gc-start: 10;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-10\\/8\\@from-big {\n --gc-start: 10;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-10\\/9\\@from-big {\n --gc-start: 10;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-10\\/10\\@from-big {\n --gc-start: 10;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-10\\/11\\@from-big {\n --gc-start: 10;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-10\\/12\\@from-big {\n --gc-start: 10;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-10\\/13\\@from-big {\n --gc-start: 10;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-11\\/1\\@from-big {\n --gc-start: 11;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-11\\/2\\@from-big {\n --gc-start: 11;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-11\\/3\\@from-big {\n --gc-start: 11;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-11\\/4\\@from-big {\n --gc-start: 11;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-11\\/5\\@from-big {\n --gc-start: 11;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-11\\/6\\@from-big {\n --gc-start: 11;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-11\\/7\\@from-big {\n --gc-start: 11;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-11\\/8\\@from-big {\n --gc-start: 11;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-11\\/9\\@from-big {\n --gc-start: 11;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-11\\/10\\@from-big {\n --gc-start: 11;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-11\\/11\\@from-big {\n --gc-start: 11;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-11\\/12\\@from-big {\n --gc-start: 11;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-11\\/13\\@from-big {\n --gc-start: 11;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-12\\/1\\@from-big {\n --gc-start: 12;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-12\\/2\\@from-big {\n --gc-start: 12;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-12\\/3\\@from-big {\n --gc-start: 12;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-12\\/4\\@from-big {\n --gc-start: 12;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-12\\/5\\@from-big {\n --gc-start: 12;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-12\\/6\\@from-big {\n --gc-start: 12;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-12\\/7\\@from-big {\n --gc-start: 12;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-12\\/8\\@from-big {\n --gc-start: 12;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-12\\/9\\@from-big {\n --gc-start: 12;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-12\\/10\\@from-big {\n --gc-start: 12;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-12\\/11\\@from-big {\n --gc-start: 12;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-12\\/12\\@from-big {\n --gc-start: 12;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-12\\/13\\@from-big {\n --gc-start: 12;\n --gc-end: 13;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-13\\/1\\@from-big {\n --gc-start: 13;\n --gc-end: 1;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-13\\/2\\@from-big {\n --gc-start: 13;\n --gc-end: 2;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-13\\/3\\@from-big {\n --gc-start: 13;\n --gc-end: 3;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-13\\/4\\@from-big {\n --gc-start: 13;\n --gc-end: 4;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-13\\/5\\@from-big {\n --gc-start: 13;\n --gc-end: 5;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-13\\/6\\@from-big {\n --gc-start: 13;\n --gc-end: 6;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-13\\/7\\@from-big {\n --gc-start: 13;\n --gc-end: 7;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-13\\/8\\@from-big {\n --gc-start: 13;\n --gc-end: 8;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-13\\/9\\@from-big {\n --gc-start: 13;\n --gc-end: 9;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-13\\/10\\@from-big {\n --gc-start: 13;\n --gc-end: 10;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-13\\/11\\@from-big {\n --gc-start: 13;\n --gc-end: 11;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-13\\/12\\@from-big {\n --gc-start: 13;\n --gc-end: 12;\n }\n}\n\n@media (min-width: 1400px) {\n .u-gc-13\\/13\\@from-big {\n --gc-start: 13;\n --gc-end: 13;\n }\n}"]} \ No newline at end of file diff --git a/www/images.html b/www/images.html index 26bd75d9..35faf73e 100644 --- a/www/images.html +++ b/www/images.html @@ -39,78 +39,18 @@

Lazy load demo

Basic

-
-
-
-
- -

Using o-ratio & background-image

- -
-
-
-
- - -
-

Relative to scroll

- -

Using o-ratio & img

+
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -

Using o-ratio & background-image

- -
-
-
-
-
-
+
+
-

Using SVG viewport for ratio

+

Using o-ratio

- - - - - +
+