{"version":3,"sources":["common-theme.js","arrow/Arrow.js","form/Form.js","header/Header.js","preloader/Preloader.js","utilities/MobileBarHeight.js","utilities/math.js","utilities/runOnHighPerformanceGPU.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClwBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"components.js","sourcesContent":["/**\n * Global Vars\n */\nwindow.$document = $(document);\nwindow.$window = $(window);\nwindow.$body = $('body');\nwindow.$html = $('html');\nwindow.$spinner = $('#js-spinner');\nwindow.$barbaWrapper = $('[data-barba=\"wrapper\"]');\nwindow.$pageHeader = $('#page-header');\nwindow.$pageWrapper = $('#page-wrapper');\nwindow.$pageContent = $('.page-wrapper__content');\nwindow.$pagePreloader = $('#js-preloader');\nwindow.PagePreloader = new Preloader({\n\tscope: window.$document,\n\ttarget: window.$pagePreloader,\n\tcurtain: {\n\t\telement: $('#js-page-transition-curtain'),\n\t\tbackground: $('.section-masthead').attr('data-background-color')\n\t},\n\tcounter: {\n\t\teasing: 'power4.out',\n\t\tduration: 25,\n\t\tstart: 0,\n\t\ttarget: 100,\n\t\tprefix: '',\n\t\tsuffix: ''\n\t}\n});\n\n/**\n * Begin Page Load\n */\nwindow.PagePreloader.start();\n\n/**\n * Default Theme Options\n * Used to prevent errors if there is\n * no data provided from backend\n */\nif (typeof window.theme === 'undefined') {\n\twindow.theme = {\n\t\tajax: {\n\t\t\tenabled: true,\n\t\t\tpreventRules: '', // jQuery selectors of the elements to exclude them from AJAX transitions\n\t\t\tevalInlineContainerScripts: false,\n\t\t\tloadMissingScripts: true,\n\t\t\tloadMissingStyles: true\n\t\t},\n\t\tanimations: {\n\t\t\ttriggerHook: 0.85, // more info https://scrollmagic.io/docs/ScrollMagic.Scene.html#triggerHook\n\t\t\ttimeScale: {\n\t\t\t\tonScrollReveal: 1, // on-scroll animations global speed\n\t\t\t\toverlayMenuOpen: 1, // fullscreen menu open speed\n\t\t\t\toverlayMenuClose: 1, // fullscreen menu close speed\n\t\t\t\tpreloader: 0.9,\n\t\t\t\tajaxFlyingImageTransition: 1,\n\t\t\t\tajaxCurtainTransition: 1\n\t\t\t}\n\t\t},\n\t\tcursorFollower: {\n\t\t\tenabled: true,\n\t\t\tlabels: {\n\t\t\t\tslider: 'Drag'\n\t\t\t},\n\t\t\tfactorTrailing: 6,\n\t\t\tanimationDuration: 0.25,\n\t\t\telements: {\n\t\t\t\tsocialItems: true,\n\t\t\t\tblogPagination: true\n\t\t\t},\n\t\t},\n\t\tsmoothScroll: { // more info https://github.com/idiotWu/smooth-scrollbar/tree/develop/docs\n\t\t\tenabled: true,\n\t\t\tdamping: 0.12,\n\t\t\trenderByPixels: true,\n\t\t\tcontinuousScrolling: false,\n\t\t\tplugins: {\n\t\t\t\tedgeEasing: true\n\t\t\t},\n\t\t},\n\t\tcontactForm7: {\n\t\t\tcustomModals: true\n\t\t},\n\t\tcustomJSInit: '',\n\t\tupdateHeadNodes: '',\n\t\tmobileBarFix: {\n\t\t\tenabled: true,\n\t\t\tupdate: true\n\t\t},\n\t\telementor: {\n\t\t\tisEditor: false\n\t\t},\n\t\thighPerformance: true,\n\t\tasync: {\n\t\t\tenabled: true,\n\t\t\tassets: [],\n\t\t\tpromises: []\n\t\t}\n\t}\n}\n\n/**\n * ScrollMagic Setup\n */\n// window.SMController = new ScrollMagic.Controller();\n// window.SMController.enabled(false); // don't start animations yet\nwindow.SMSceneTriggerHook = window.theme.animations.triggerHook;\nwindow.SMSceneReverse = false;\n\n/**\n * Don't save scroll position\n * after AJAX transition\n */\nif ('scrollRestoration' in history) {\n\thistory.scrollRestoration = 'manual';\n}\n\n\n/**\n * Page Load Strategy\n */\ndocument.addEventListener('DOMContentLoaded', (e) => {\n\n\t// init on AJAX transition\n\tif (e.detail) {\n\n\t\tinitComponents(e.detail);\n\n\t} else { // init on initial page load\n\n\t\tinitComponents({\n\t\t\tscope: window.$document,\n\t\t\tscrollToHashElement: false\n\t\t});\n\n\t\tinitComponentsOnce({\n\t\t\tscope: window.$document\n\t\t});\n\n\t}\n\n});\n\n/**\n * Init Template Components\n * You can init your custom scripts here\n * in that function\n */\nfunction initComponents({\n\tscope = window.$document,\n\tcontainer = window.$pageWrapper,\n\tscrollToHashElement = true\n}) {\n\n\tconst\n\t\t$arrow = scope.find('.js-arrow'),\n\t\t$smoothScrollContainer = container.filter('.js-smooth-scroll'),\n\t\t$sectionBlog = scope.find('.section-blog.section-grid'),\n\t\t$section404 = scope.find('.section-404'),\n\t\t$scrollDown = scope.find('[data-arts-scroll-down]'),\n\t\t$changeTextHover = scope.find('.js-change-text-hover:not(.js-change-text-hover .js-change-text-hover)'), // exclude nested elements\n\t\t$sectionMasthead = scope.find('.section-masthead:not(.d-none):not(.js-cancel-init)'),\n\t\t$sectionNavPortfolioPrevNext = scope.find('#page-bottom-nav.section-list');\t\n\n\tif ($smoothScrollContainer.length) {\n\t\twindow.rhye.components.AssetsManager\n\t\t\t.load(window.theme.assets['smooth-scrolling-js'])\n\t\t\t.then(() => {\n\t\t\t\tnew window.rhye.components.SmoothScroll({\n\t\t\t\t\ttarget: $smoothScrollContainer,\n\t\t\t\t\tadminBar: $('#wpadminbar'),\n\t\t\t\t\tabsoluteElements: $('[data-arts-scroll-absolute]'), // correct handling of absolute elements OUTSIDE scrolling container\n\t\t\t\t\tfixedElements: $('[data-arts-scroll-fixed]') // correct handling of fixed elements INSIDE scrolling container\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\tif ($sectionMasthead.length) {\n\t\twindow.rhye.components.AssetsManager.load(window.theme.assets['section-masthead-js'])\n\t\t\t.then(() => {\n\t\t\t\tnew window.rhye.components.SectionMasthead({\n\t\t\t\t\ttarget: $sectionMasthead,\n\t\t\t\t\tscope\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\tif ($scrollDown.length) {\n\t\twindow.rhye.components.AssetsManager\n\t\t\t.loadScrollDown()\n\t\t\t.then(() => {\n\t\t\t\tnew window.rhye.components.ScrollDown({\n\t\t\t\t\ttarget: scope.find('[data-arts-scroll-down]'),\n\t\t\t\t\tscope,\n\t\t\t\t\tduration: 0.8\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\tif ($arrow.length) {\n\t\tnew window.rhye.components.Arrow({\n\t\t\ttarget: $arrow\n\t\t});\n\t}\n\n\tif ($changeTextHover.length) {\n\t\twindow.rhye.components.AssetsManager\n\t\t\t.loadChangeTextHover()\n\t\t\t.then(() => {\n\t\t\t\tnew window.rhye.components.ChangeTextHover({\n\t\t\t\t\ttarget: $changeTextHover,\n\t\t\t\t\tscope,\n\t\t\t\t\tpageIndicator: scope.find('.js-page-indicator'), // fixed page indicator\n\t\t\t\t\ttriggers: scope.find('.js-page-indicator-trigger'), // elements that triggers the change of page indicator\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\tif ($sectionBlog.length) {\n\t\tif (typeof window.plugin === 'undefined') {\n\t\t\t$sectionBlog.attr('data-arts-os-animation', 'animated');\n\t\t} else {\n\t\t\twindow.rhye.components.AssetsManager\n\t\t\t.loadMasonryGrid()\n\t\t\t.then(() => {\n\t\t\t\tnew window.rhye.components.SectionGrid({\n\t\t\t\t\ttarget: $sectionBlog,\n\t\t\t\t\tscope\n\t\t\t\t});\n\n\t\t\t\tnew window.rhye.components.SectionContent({\n\t\t\t\t\ttarget: $sectionBlog,\n\t\t\t\t\tscope\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}\n\n\tif ($section404.length) {\n\t\tif (typeof window.plugin === 'undefined') {\n\t\t\t$section404.attr('data-arts-os-animation', 'animated');\n\t\t} else {\n\t\t\twindow.rhye.components.AssetsManager\n\t\t\t.loadSectionContent()\n\t\t\t.then(() => {\n\t\t\t\tnew window.rhye.components.SectionContent({\n\t\t\t\t\ttarget: $section404,\n\t\t\t\t\tscope\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}\n\n\tif ($sectionNavPortfolioPrevNext.length) {\n\t\twindow.rhye.components.AssetsManager\n\t\t\t.loadSectionList()\n\t\t\t.then(() => {\n\t\t\t\tnew window.rhye.components.SectionList({\n\t\t\t\t\ttarget: $sectionNavPortfolioPrevNext,\n\t\t\t\t\tscope\n\t\t\t\t});\n\t\t});\n\t}\n\n\t// mobile bottom bar height fix\n\tif (window.theme.mobileBarFix.enabled) {\n\t\tnew MobileBarHeight();\n\t}\n\n\t// floating input fields\n\tnew Form({\n\t\ttarget: scope,\n\t\tscope\n\t});\n\n\t// refresh animation triggers\n\t// for Waypoints library\n\tif (typeof Waypoint !== 'undefined') {\n\t\tWaypoint.refreshAll();\n\t}\n\n\t// custom JS code\n\tif (window.theme.customJSInit) {\n\t\ttry {\n\t\t\twindow.eval(window.theme.customJSInit);\n\t\t} catch (error) {\n\t\t\tconsole.warn(error);\n\t\t}\n\t}\n\n\t// scroll to anchor from URL hash\n\tif ( scrollToHashElement ) {\n\t\twindow.rhye.components.Scroll.scrollToAnchorFromHash();\n\t}\n\n}\n\n/**\n * Init Template Components\n * only once after the initial\n * page load\n */\nfunction initComponentsOnce({\n\tscope = window.$document,\n\tcontainer = window.$pageWrapper,\n\tscrollToHashElement = true\n}) {\n\n\tconst $sectionNavProjects = container.find('.section-nav-projects');\n\n\t// Init page header\n\tif (window.$pageHeader.length) {\n\t\twindow.theme.Header = new Header({\n\t\t\ttarget: window.$pageHeader,\n\t\t\tscope\n\t\t});\n\t}\n\n\t// Init cursor only on non-touch browsers\n\tif (window.theme.cursorFollower.enabled && !window.Modernizr.touchevents) {\n\t\tlet highlightElements;\n\t\tlet exclusionString = '';\n\n\t\tif (window.theme.cursorFollower.elements.socialItems) {\n\t\t\texclusionString += ':not(.social__item a)';\n\t\t}\n\n\t\tif (window.theme.cursorFollower.elements.blogPagination) {\n\t\t\texclusionString += ':not(a.page-numbers)';\n\t\t}\n\n\t\thighlightElements = `a:not(a[data-arts-cursor])${exclusionString}:not(.section-video__link):not(.no-highlight), button:not(button[data-arts-cursor]), .filter__item, .section-nav-projects__header`;\n\n\t\tif (!window.theme.cursorFollower.elements.sliderDots) {\n\t\t\thighlightElements += ' ,.slider__dot';\n\t\t}\n\n\t\tif (!window.theme.cursorFollower.elements.circleArrows) {\n\t\t\thighlightElements += ' ,.js-arrow';\n\t\t}\n\n\t\tPromise\n\t\t\t.all([\n\t\t\t\twindow.rhye.components.AssetsManager.load(window.theme.assets['cursor-js']),\n\t\t\t\twindow.rhye.components.AssetsManager.load(window.theme.assets['cursor-css'])\n\t\t\t])\n\t\t\t.then(() => window.PagePreloader.finish())\n\t\t\t.then(() => {\n\t\t\t\twindow.rhye.components.Scroll.scrollToTop();\n\n\t\t\t\tnew window.rhye.components.Cursor({\n\t\t\t\t\tscope: window.$document,\n\t\t\t\t\ttarget: $('#js-cursor'),\n\t\t\t\t\tcursorElements: '[data-arts-cursor]',\n\t\t\t\t\thighlightElements, // links to highlight\n\t\t\t\t\thighlightScale: 1.5, // default highlight scaling\n\t\t\t\t\tmagneticElements: '[data-arts-cursor-magnetic]', // magnetic elements\n\t\t\t\t\tmagneticScaleCursorBy: 1.3, // default magnetic scaling\n\t\t\t\t\tfactorTrailing: window.theme.cursorFollower.factorTrailing,\n\t\t\t\t\tanimDuration: window.theme.cursorFollower.animationDuration,\n\t\t\t\t});\n\n\t\t\t\t// begin animations\n\t\t\t\twindow.rhye.functions.enableAnimations();\n\t\t\t\t// scroll to anchor from URL hash\n\t\t\t\tif (scrollToHashElement) {\n\t\t\t\t\twindow.rhye.components.Scroll.scrollToAnchorFromHash();\n\t\t\t\t}\n\t\t});\n\t} else {\n\t\twindow.PagePreloader.finish().then(() => {\n\t\t\t// scroll to anchor from URL hash\n\t\t\tif ( scrollToHashElement ) {\n\t\t\t\twindow.rhye.components.Scroll.scrollToAnchorFromHash();\n\t\t\t}\n\n\t\t\t// Begin animations\n\t\t\twindow.rhye.functions.enableAnimations();\n\t\t});\n\t}\n\n\t// init AJAX navigation\n\tif (window.theme.ajax.enabled && window.$barbaWrapper.length) {\n\t\twindow.rhye.components.AssetsManager\n\t\t\t.loadPJAX()\n\t\t\t.then(() => {\n\t\t\t\tnew window.rhye.components.PJAX({\n\t\t\t\t\ttarget: window.$barbaWrapper,\n\t\t\t\t\tscope: window.$document\n\t\t\t\t});\n\t\t});\n\t}\n\n\t// Init auto scroll navigation\n\tif ($sectionNavProjects.length) {\n\t\twindow.rhye.components.AssetsManager\n\t\t\t.loadSectionNavProjects()\n\t\t\t.then(() => {\n\t\t\t\tnew window.rhye.components.SectionNavProjects({\n\t\t\t\t\ttarget: $sectionNavProjects,\n\t\t\t\t\tscope\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\t// Try to use high performance GPU on dual-GPU systems\n\trunOnHighPerformanceGPU();\n}\n","/* ======================================================================== */\n/* 1. Arrow */\n/* ======================================================================== */\nwindow.rhye.components.Arrow = class Arrow extends window.rhye.components.Base {\n\n\tconstructor({\n\t\tscope,\n\t\ttarget\n\t}) {\n\t\tsuper({\n\t\t\ttarget,\n\t\t\tscope\n\t\t});\n\n\t}\n\n\trun($el) {\n\t\tthis._bindEvents($el);\n\t}\n\n\tset($el) {\n\t\tthis.$circles = $el.find('.circle');\n\t\tthis.initialSVGPath = '10% 90%';\n\n\t\tgsap.set(this.$circles, {\n\t\t\tclearProps: 'all',\n\t\t});\n\n\t\tgsap.set(this.$circles, {\n\t\t\trotation: 180,\n\t\t\tdrawSVG: this.initialSVGPath,\n\t\t\ttransformOrigin: 'center center',\n\t\t});\n\t}\n\n\t_bindEvents($el) {\n\t\tconst\n\t\t\t$circle = $el.find(this.$circles),\n\t\t\ttl = new gsap.timeline();\n\n\t\t$el\n\t\t\t.on('mouseenter touchstart', () => {\n\t\t\t\ttl\n\t\t\t\t\t.clear()\n\t\t\t\t\t.to($circle, {\n\t\t\t\t\t\tduration: 0.3,\n\t\t\t\t\t\tdrawSVG: '0% 100%',\n\t\t\t\t\t\trotation: 180,\n\t\t\t\t\t\ttransformOrigin: 'center center'\n\t\t\t\t\t});\n\t\t\t})\n\t\t\t.on('mouseleave touchend', () => {\n\t\t\t\ttl\n\t\t\t\t\t.clear()\n\t\t\t\t\t.to($circle, {\n\t\t\t\t\t\tduration: 0.3,\n\t\t\t\t\t\tdrawSVG: this.initialSVGPath,\n\t\t\t\t\t\trotation: 180,\n\t\t\t\t\t\ttransformOrigin: 'center center'\n\t\t\t\t\t});\n\t\t\t});\n\n\t}\n\n}\n","/* ======================================================================== */\n/* 2. Form */\n/* ======================================================================== */\nclass Form {\n\tconstructor({\n\t\tscope,\n\t\ttarget\n\t}) {\n\t\tthis.$scope = scope;\n\t\tthis.$target = target;\n\n\t\tif (this.$scope.length) {\n\t\t\tthis.set();\n\t\t\tthis.run();\n\t\t}\n\t}\n\n\tset() {\n\t\tthis.input = '.input-float__input';\n\t\tthis.inputClassNotEmpty = 'input-float__input_not-empty';\n\t\tthis.inputClassFocused = 'input-float__input_focused';\n\t\tthis.$inputs = this.$scope.find(this.input);\n\t}\n\n\trun() {\n\t\tthis._floatLabels();\n\t\tthis._bindEvents();\n\n\t\tif (typeof window.theme !== 'undefined' && window.theme.contactForm7.customModals) {\n\t\t\tif ($('.wpcf7-form').length) {\n\t\t\t\twindow.rhye.components.AssetsManager.loadBootstrapModal().then(() => this._attachModalsEvents());\n\t\t\t}\n\t\t}\n\t}\n\n\t_floatLabels() {\n\t\tconst self = this;\n\n\t\tif (!this.$inputs || !this.$inputs.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.$inputs.each(function () {\n\t\t\tconst\n\t\t\t\t$el = $(this),\n\t\t\t\t$controlWrap = $el.parent('.wpcf7-form-control-wrap');\n\n\t\t\t// not empty value\n\t\t\tif ($el.val()) {\n\t\t\t\t$el.addClass(self.inputClassNotEmpty);\n\t\t\t\t$controlWrap.addClass(self.inputClassNotEmpty);\n\t\t\t\t// empty value\n\t\t\t} else {\n\t\t\t\t$el.removeClass([self.inputClassFocused, self.inputClassNotEmpty]);\n\t\t\t\t$controlWrap.removeClass([self.inputClassFocused, self.inputClassNotEmpty]);\n\t\t\t}\n\n\t\t\t// has placeholder & empty value\n\t\t\tif ($el.attr('placeholder') && !$el.val()) {\n\t\t\t\t$el.addClass(self.inputClassNotEmpty);\n\t\t\t\t$controlWrap.addClass(self.inputClassNotEmpty);\n\t\t\t}\n\t\t});\n\n\t}\n\n\t_bindEvents() {\n\t\tconst self = this;\n\n\t\tthis.$scope\n\t\t\t.off('focusin')\n\t\t\t.on('focusin', self.input, function () {\n\t\t\t\tconst\n\t\t\t\t\t$el = $(this),\n\t\t\t\t\t$controlWrap = $el.parent('.wpcf7-form-control-wrap');\n\n\t\t\t\t$el.addClass(self.inputClassFocused).removeClass(self.inputClassNotEmpty);\n\t\t\t\t$controlWrap.addClass(self.inputClassFocused).removeClass(self.inputClassNotEmpty);\n\n\t\t\t})\n\t\t\t.off('focusout')\n\t\t\t.on('focusout', self.input, function () {\n\n\t\t\t\tconst\n\t\t\t\t\t$el = $(this),\n\t\t\t\t\t$controlWrap = $el.parent('.wpcf7-form-control-wrap');\n\n\t\t\t\t// not empty value\n\t\t\t\tif ($el.val()) {\n\t\t\t\t\t$el.removeClass(self.inputClassFocused).addClass(self.inputClassNotEmpty);\n\t\t\t\t\t$controlWrap.removeClass(self.inputClassFocused).addClass(self.inputClassNotEmpty);\n\t\t\t\t} else {\n\t\t\t\t\t// has placeholder & empty value\n\t\t\t\t\tif ($el.attr('placeholder')) {\n\t\t\t\t\t\t$el.addClass(self.inputClassNotEmpty);\n\t\t\t\t\t\t$controlWrap.addClass(self.inputClassNotEmpty);\n\t\t\t\t\t}\n\n\t\t\t\t\t$el.removeClass(self.inputClassFocused);\n\t\t\t\t\t$controlWrap.removeClass(self.inputClassFocused);\n\t\t\t\t}\n\n\t\t\t});\n\n\t}\n\n\t_attachModalsEvents() {\n\t\twindow.$document.off('wpcf7submit').on('wpcf7submit', (e) => {\n\n\t\t\tconst $modal = $('#modalContactForm7');\n\t\t\tlet template;\n\n\t\t\t$modal.modal('dispose').remove();\n\n\t\t\tif (e.detail.apiResponse.status === 'mail_sent') {\n\n\t\t\t\ttemplate = this._getModalTemplate({\n\t\t\t\t\ticon: 'icon-success.svg',\n\t\t\t\t\tmessage: e.detail.apiResponse.message,\n\t\t\t\t});\n\n\t\t\t\tthis._createModal({\n\t\t\t\t\ttemplate,\n\t\t\t\t\tonDismiss: () => {\n\t\t\t\t\t\t$(e.srcElement).find(this.input).parent().val('').removeClass(this.inputClassFocused).removeClass(this.inputClassNotEmpty);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (e.detail.apiResponse.status === 'mail_failed') {\n\t\t\t\ttemplate = this._getModalTemplate({\n\t\t\t\t\ticon: 'icon-error.svg',\n\t\t\t\t\tmessage: e.detail.apiResponse.message\n\t\t\t\t});\n\n\t\t\t\tthis._createModal({ template });\n\t\t\t}\n\n\t\t});\n\t}\n\n\t_getModalTemplate({\n\t\ticon,\n\t\tmessage\n\t}) {\n\t\treturn `\n