text: /*
   * fitty v2.3.0 - Snugly resizes text to fit its parent container
   * Copyright (c) 2020 Rik Schennink <rik@pqina.nl> (https://pqina.nl/)
   */
  !function(e,t){if("function"==typeof define&&define.amd)define(["module","exports"],t);else if("undefined"!=typeof exports)t(module,exports);else{var n={exports:{}};t(n,n.exports),e.fitty=n.exports}}(this,function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var E=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e};t.default=function(n){if(n){var r={IDLE:0,DIRTY_CONTENT:1,DIRTY_LAYOUT:2,DIRTY:3},i=[],e=null,o="requestAnimationFrame"in n?function(){n.cancelAnimationFrame(e),e=n.requestAnimationFrame(function(){return u(i.filter(function(e){return e.dirty&&e.active}))})}:function(){},t=function(t){return function(){i.forEach(function(e){return e.dirty=t}),o()}},u=function(e){e.filter(function(e){return!e.styleComputed}).forEach(function(e){e.styleComputed=s(e)}),e.filter(f).forEach(d);var t=e.filter(c);t.forEach(l),t.forEach(function(e){d(e),a(e)}),t.forEach(p)},a=function(e){return e.dirty=r.IDLE},l=function(e){e.availableWidth=e.element.parentNode.clientWidth,e.currentWidth=e.element.scrollWidth,e.previousFontSize=e.currentFontSize,e.currentFontSize=Math.min(Math.max(e.minSize,e.availableWidth/e.currentWidth*e.previousFontSize),e.maxSize),e.whiteSpace=e.multiLine&&e.currentFontSize===e.minSize?"normal":"nowrap"},c=function(e){return e.dirty!==r.DIRTY_LAYOUT||e.dirty===r.DIRTY_LAYOUT&&e.element.parentNode.clientWidth!==e.availableWidth},s=function(e){var t=n.getComputedStyle(e.element,null);e.currentFontSize=parseInt(t.getPropertyValue("font-size"),10),e.display=t.getPropertyValue("display"),e.whiteSpace=t.getPropertyValue("white-space")},f=function(e){var t=!1;return!e.preStyleTestCompleted&&(/inline-/.test(e.display)||(t=!0,e.display="inline-block"),"nowrap"!==e.whiteSpace&&(t=!0,e.whiteSpace="nowrap"),e.preStyleTestCompleted=!0,t)},d=function(e){e.originalStyle||(e.originalStyle=e.element.getAttribute("style")||""),e.element.style.cssText=e.originalStyle+";white-space:"+e.whiteSpace+";display:"+e.display+";font-size:"+e.currentFontSize+"px"},p=function(e){e.element.dispatchEvent(new CustomEvent("fit",{detail:{oldValue:e.previousFontSize,newValue:e.currentFontSize,scaleFactor:e.currentFontSize/e.previousFontSize}}))},v=function(e,t){return function(){e.dirty=t,e.active&&o()}},m=function(e){b(e),e.newbie=!0,e.dirty=!0,i.push(e)},y=function(t){return function(){i=i.filter(function(e){return e.element!==t.element}),t.observeMutations&&t.observer.disconnect(),t.element.style.cssText=t.originalStyle}},h=function(e){return function(){e.active||(e.active=!0,o())}},S=function(e){return function(){return e.active=!1}},b=function(e){e.observeMutations&&(e.observer=new MutationObserver(v(e,r.DIRTY_CONTENT)),e.observer.observe(e.element,e.observeMutations))},w={minSize:16,maxSize:512,multiLine:!0,observeMutations:"MutationObserver"in n&&{subtree:!0,childList:!0,characterData:!0}},T=null,z=function(){n.clearTimeout(T),T=n.setTimeout(t(r.DIRTY_LAYOUT),D.observeWindowDelay)},F=["resize","orientationchange"];return Object.defineProperty(D,"observeWindow",{set:function(e){var t=(e?"add":"remove")+"EventListener";F.forEach(function(e){n[t](e,z)})}}),D.observeWindow=!0,D.observeWindowDelay=100,D.fitAll=t(r.DIRTY),D}function g(e,t){var n=E({},w,t),i=e.map(function(e){var t=E({},n,{element:e,active:!0});return m(t),{element:e,fit:v(t,r.DIRTY),unfreeze:h(t),freeze:S(t),unsubscribe:y(t)}});return o(),i}function D(e){var t,n=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof e?g((t=document.querySelectorAll(e),[].slice.call(t)),n):g([e],n)[0]}}("undefined"==typeof window?null:window),e.exports=t.default});
  
   fitty("TD");
  
  /**
   * main.js
   * http://www.codrops.com
   *
   * Licensed under the MIT license.
   * http://www.opensource.org/licenses/mit-license.php
   * 
   * Copyright 2016, Codrops
   * http://www.codrops.com
   */
  ;(function(window) {
  
  	'use strict';
  
  	// Helper vars and functions.
  	function extend( a, b ) {
  		for( var key in b ) { 
  			if( b.hasOwnProperty( key ) ) {
  				a[key] = b[key];
  			}
  		}
  		return a;
  	}
  
  	// from http://www.quirksmode.org/js/events_properties.html#position
  	function getMousePos(e) {
  		var posx = 0, posy = 0;
  		if (!e) var e = window.event;
  		if (e.pageX || e.pageY) 	{
  			posx = e.pageX;
  			posy = e.pageY;
  		}
  		else if (e.clientX || e.clientY) 	{
  			posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
  			posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
  		}
  		return { x : posx, y : posy }
  	}
  
  	/**
  	 * TiltFx obj.
  	 */
  	function TiltFx(el, options) {
  		this.DOM = {};
  		this.DOM.el = el;
  		this.options = extend({}, this.options);
  		extend(this.options, options);
  		this._init();
  	}
  
  	TiltFx.prototype.options = {
  		movement: {
  			imgWrapper : {
  				translation : {x: 0, y: 0, z: 0},
  				rotation : {x: -5, y: 5, z: 0},
  				reverseAnimation : {
  					duration : 1200,
  					easing : 'easeOutElastic',
  					elasticity : 600
  				}
  			},
  			
  			
  		}
  	};
  
  	/**
  	 * Init.
  	 */
  	TiltFx.prototype._init = function() {
  		this.DOM.animatable = {};
  		this.DOM.animatable.imgWrapper = this.DOM.el.querySelector('.work');
  
  		this._initEvents();
  	};
  
  	/**
  	 * Init/Bind events.
  	 */
  	TiltFx.prototype._initEvents = function() {
  		var self = this;
  		
  		this.mouseenterFn = function() {
  			for(var key in self.DOM.animatable) {
  				anime.remove(self.DOM.animatable[key]);
  			}
  		};
  		
  		this.mousemoveFn = function(ev) {
  			requestAnimationFrame(function() { self._layout(ev); });
  		};
  		
  		this.mouseleaveFn = function(ev) {
  			requestAnimationFrame(function() {
  				for(var key in self.DOM.animatable) {
  					if( self.options.movement[key] == undefined ) {continue;}
  					anime({
  						targets: self.DOM.animatable[key],
  						duration: self.options.movement[key].reverseAnimation != undefined ? self.options.movement[key].reverseAnimation.duration || 0 : 1,
  						easing: self.options.movement[key].reverseAnimation != undefined ? self.options.movement[key].reverseAnimation.easing || 'linear' : 'linear',
  						elasticity: self.options.movement[key].reverseAnimation != undefined ? self.options.movement[key].reverseAnimation.elasticity || null : null,
  						scaleX: 1,
  						scaleY: 1,
  						scaleZ: 1,
  						translateX: 0,
  						translateY: 0,
  						translateZ: 0,
  						rotateX: 0,
  						rotateY: 0,
  						rotateZ: 0
  					});
  				}
  			});
  		};
  
  		this.DOM.el.addEventListener('mousemove', this.mousemoveFn);
  		this.DOM.el.addEventListener('mouseleave', this.mouseleaveFn);
  		this.DOM.el.addEventListener('mouseenter', this.mouseenterFn);
  	};
  
  	TiltFx.prototype._layout = function(ev) {
  		// Mouse position relative to the document.
  		var mousepos = getMousePos(ev),
  			// Document scrolls.
  			docScrolls = {left : document.body.scrollLeft + document.documentElement.scrollLeft, top : document.body.scrollTop + document.documentElement.scrollTop},
  			bounds = this.DOM.el.getBoundingClientRect(),
  			// Mouse position relative to the main element (this.DOM.el).
  			relmousepos = { x : mousepos.x - bounds.left - docScrolls.left, y : mousepos.y - bounds.top - docScrolls.top };
  
  		// Movement settings for the animatable elements.
  		for(var key in this.DOM.animatable) {
  			if( this.DOM.animatable[key] == undefined || this.options.movement[key] == undefined ) {
  				continue;
  			}
  			var t = this.options.movement[key] != undefined ? this.options.movement[key].translation || {x:0,y:0,z:0} : {x:0,y:0,z:0},
  				r = this.options.movement[key] != undefined ? this.options.movement[key].rotation || {x:0,y:0,z:0} : {x:0,y:0,z:0},
  				setRange = function (obj) {
  					for(var k in obj) {
  						if( obj[k] == undefined ) {
  							obj[k] = [0,0];
  						}
  						else if( typeof obj[k] === 'number' ) {
  							obj[k] = [-1*obj[k],obj[k]];
  						}
  					}
  				};
  
  			setRange(t);
  			setRange(r);
  			
  			var transforms = {
  				translation : {
  					x: (t.x[1]-t.x[0])/bounds.width*relmousepos.x + t.x[0],
  					y: (t.y[1]-t.y[0])/bounds.height*relmousepos.y + t.y[0],
  					z: (t.z[1]-t.z[0])/bounds.height*relmousepos.y + t.z[0],
  				},
  				rotation : {
  					x: (r.x[1]-r.x[0])/bounds.height*relmousepos.y + r.x[0],
  					y: (r.y[1]-r.y[0])/bounds.width*relmousepos.x + r.y[0],
  					z: (r.z[1]-r.z[0])/bounds.width*relmousepos.x + r.z[0]
  				}
  			};
  
  			this.DOM.animatable[key].style.WebkitTransform = this.DOM.animatable[key].style.transform = 'translateX(' + transforms.translation.x + 'px) translateY(' + transforms.translation.y + 'px) translateZ(' + transforms.translation.z + 'px) rotateX(' + transforms.rotation.x + 'deg) rotateY(' + transforms.rotation.y + 'deg) rotateZ(' + transforms.rotation.z + 'deg)';
  		}
  	};
  
  	window.TiltFx = TiltFx;
  
  })(window);