diff --git a/books.html b/books.html
new file mode 100644
index 0000000..48cbdbb
--- /dev/null
+++ b/books.html
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+ fateforge-tools
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FateforgeTools
+
+
+
+
+
+

+
+
+
Adventurer
+
+
+
+
+
+

+
+
+
Grimoire
+
+
+
+
+
+
+

+
+
+
Encyclopedia
+
+
+
+
+
+

+
+
+
Encyclopedia : Netherworld
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/css/flickity.css b/css/flickity.css
new file mode 100644
index 0000000..87891d9
--- /dev/null
+++ b/css/flickity.css
@@ -0,0 +1,137 @@
+/*! Flickity v2.3.0
+https://flickity.metafizzy.co
+---------------------------------------------- */
+
+.flickity-enabled {
+ position: relative;
+ }
+
+ .flickity-enabled:focus { outline: none; }
+
+ .flickity-viewport {
+ overflow: hidden;
+ position: relative;
+ height: 100%;
+ }
+
+ .flickity-slider {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ }
+
+ /* draggable */
+
+ .flickity-enabled.is-draggable {
+ -webkit-tap-highlight-color: transparent;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ }
+
+ .flickity-enabled.is-draggable .flickity-viewport {
+ cursor: move;
+ cursor: -webkit-grab;
+ cursor: grab;
+ }
+
+ .flickity-enabled.is-draggable .flickity-viewport.is-pointer-down {
+ cursor: -webkit-grabbing;
+ cursor: grabbing;
+ }
+
+ /* ---- flickity-button ---- */
+
+ .flickity-button {
+ position: absolute;
+ background: hsla(0, 0%, 100%, 0.75);
+ border: none;
+ color: #333;
+ }
+
+ .flickity-button:hover {
+ background: white;
+ cursor: pointer;
+ }
+
+ .flickity-button:focus {
+ outline: none;
+ box-shadow: 0 0 0 5px #19F;
+ }
+
+ .flickity-button:active {
+ opacity: 0.6;
+ }
+
+ .flickity-button:disabled {
+ opacity: 0.3;
+ cursor: auto;
+ /* prevent disabled button from capturing pointer up event. #716 */
+ pointer-events: none;
+ }
+
+ .flickity-button-icon {
+ fill: currentColor;
+ }
+
+ /* ---- previous/next buttons ---- */
+
+ .flickity-prev-next-button {
+ top: 50%;
+ width: 44px;
+ height: 44px;
+ border-radius: 50%;
+ /* vertically center */
+ transform: translateY(-50%);
+ }
+
+ .flickity-prev-next-button.previous { left: 10px; }
+ .flickity-prev-next-button.next { right: 10px; }
+ /* right to left */
+ .flickity-rtl .flickity-prev-next-button.previous {
+ left: auto;
+ right: 10px;
+ }
+ .flickity-rtl .flickity-prev-next-button.next {
+ right: auto;
+ left: 10px;
+ }
+
+ .flickity-prev-next-button .flickity-button-icon {
+ position: absolute;
+ left: 20%;
+ top: 20%;
+ width: 60%;
+ height: 60%;
+ }
+
+ /* ---- page dots ---- */
+
+ .flickity-page-dots {
+ position: absolute;
+ width: 100%;
+ bottom: -25px;
+ padding: 0;
+ margin: 0;
+ list-style: none;
+ text-align: center;
+ line-height: 1;
+ }
+
+ .flickity-rtl .flickity-page-dots { direction: rtl; }
+
+ .flickity-page-dots .dot {
+ display: inline-block;
+ width: 10px;
+ height: 10px;
+ margin: 0 8px;
+ background: #333;
+ border-radius: 50%;
+ opacity: 0.25;
+ cursor: pointer;
+ }
+
+ .flickity-page-dots .dot.is-selected {
+ opacity: 1;
+ }
\ No newline at end of file
diff --git a/css/style.css b/css/style.css
new file mode 100644
index 0000000..0f757bf
--- /dev/null
+++ b/css/style.css
@@ -0,0 +1,126 @@
+/**** BOOK 3D***/
+*,
+:after,
+:before {
+ box-sizing: border-box;
+ border: 0 solid #e5e7eb;
+}
+
+* {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.book-container {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ perspective: 600px;
+ flex-direction: column;
+}
+
+.book-container .book {
+ width: 200px;
+ height: 300px;
+ position: relative;
+ transform-style: preserve-3d;
+ transform: rotateY(-30deg);
+ transition: transform 1s ease;
+ animation: 1s ease 0s 1 initAnimation-fd6a;
+ margin-bottom: 15px;
+ margin-top: 39px;
+}
+
+.book-container .book > :first-child {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 200px;
+ height: 283px;
+ transform: translateZ(25px);
+ background-color: #01060f;
+ border-radius: 0 2px 2px 0;
+ box-shadow: 5px 5px 20px #aaaaaa9d;
+ background-color: #01060f;
+}
+
+.book-container .book::before {
+ position: absolute;
+ content: " ";
+ left: 0;
+ top: 3px;
+ width: 48px;
+ height: 277px;
+ transform: translateX(172px) rotateY(90deg);
+ background: linear-gradient(
+ 90deg,
+ #fff 0%,
+ #f9f9f9 5%,
+ #fff 10%,
+ #f9f9f9 15%,
+ #fff 20%,
+ #f9f9f9 25%,
+ #fff 30%,
+ #f9f9f9 35%,
+ #fff 40%,
+ #f9f9f9 45%,
+ #fff 50%,
+ #f9f9f9 55%,
+ #fff 60%,
+ #f9f9f9 65%,
+ #fff 70%,
+ #f9f9f9 75%,
+ #fff 80%,
+ #f9f9f9 85%,
+ #fff 90%,
+ #f9f9f9 95%,
+ #fff 100%
+ );
+}
+.book-container .book:hover {
+ transform: rotateY(0deg);
+}
+
+.book-container .book::after {
+ position: absolute;
+ top: 0;
+ left: 0;
+ content: " ";
+ width: 200px;
+ height: 283px;
+ transform: translateZ(-25px);
+ background-color: #01060f;
+ border-radius: 0 2px 2px 0;
+ box-shadow: -05px 0 20px 10px #aaaaaa9d;
+}
+
+.book-container .book-title {
+}
+
+/**** Slideshow***/
+
+.gallery {
+ background: #01060f00;
+ margin-bottom: 40px;
+}
+
+.gallery-cell {
+ width: 66%;
+
+ margin-right: 10px;
+
+ counter-increment: gallery-cell;
+}
+
+.flickity-viewport {
+ background-color: #01060f00;
+}
+.flickity-page-dots .dot {
+ background: #0093cd;
+}
+.flickity-prev-next-button {
+ border-radius: 6px;
+}
+.flickity-button {
+ background: #588597;
+}
diff --git a/img/books/ADV1_BC_EN.jpg b/img/books/ADV1_BC_EN.jpg
new file mode 100644
index 0000000..e202355
Binary files /dev/null and b/img/books/ADV1_BC_EN.jpg differ
diff --git a/img/books/ADV1_BC_FR.png b/img/books/ADV1_BC_FR.png
new file mode 100644
index 0000000..4a59016
Binary files /dev/null and b/img/books/ADV1_BC_FR.png differ
diff --git a/img/books/ADV1_BC_Textless.jpg b/img/books/ADV1_BC_Textless.jpg
new file mode 100644
index 0000000..65e5a1b
Binary files /dev/null and b/img/books/ADV1_BC_Textless.jpg differ
diff --git a/img/books/ADV1_DR_Textless.jpg b/img/books/ADV1_DR_Textless.jpg
new file mode 100644
index 0000000..7146370
Binary files /dev/null and b/img/books/ADV1_DR_Textless.jpg differ
diff --git a/img/books/Box_DR.jpg b/img/books/Box_DR.jpg
new file mode 100644
index 0000000..e6bb3e5
Binary files /dev/null and b/img/books/Box_DR.jpg differ
diff --git a/img/books/Box_DR_2.jpg b/img/books/Box_DR_2.jpg
new file mode 100644
index 0000000..f6cd77c
Binary files /dev/null and b/img/books/Box_DR_2.jpg differ
diff --git a/img/books/Box_GV.jpg b/img/books/Box_GV.jpg
new file mode 100644
index 0000000..9c941e1
Binary files /dev/null and b/img/books/Box_GV.jpg differ
diff --git a/img/books/Box_GV_2.jpg b/img/books/Box_GV_2.jpg
new file mode 100644
index 0000000..9c941e1
Binary files /dev/null and b/img/books/Box_GV_2.jpg differ
diff --git a/img/books/Box_GV_3.jpg b/img/books/Box_GV_3.jpg
new file mode 100644
index 0000000..25e8b04
Binary files /dev/null and b/img/books/Box_GV_3.jpg differ
diff --git a/img/books/CRE2_BC.png b/img/books/CRE2_BC.png
new file mode 100644
index 0000000..d98319f
Binary files /dev/null and b/img/books/CRE2_BC.png differ
diff --git a/img/books/CRE2_DR.png b/img/books/CRE2_DR.png
new file mode 100644
index 0000000..2f5d34d
Binary files /dev/null and b/img/books/CRE2_DR.png differ
diff --git a/img/books/ECR_GV.jpg b/img/books/ECR_GV.jpg
new file mode 100644
index 0000000..0b91b55
Binary files /dev/null and b/img/books/ECR_GV.jpg differ
diff --git a/img/books/ENC1_BC.png b/img/books/ENC1_BC.png
new file mode 100644
index 0000000..f8bf14c
Binary files /dev/null and b/img/books/ENC1_BC.png differ
diff --git a/img/books/ENC1_BC_EN.png b/img/books/ENC1_BC_EN.png
new file mode 100644
index 0000000..edd57e8
Binary files /dev/null and b/img/books/ENC1_BC_EN.png differ
diff --git a/img/books/ENC1_DR.png b/img/books/ENC1_DR.png
new file mode 100644
index 0000000..0fdd3d3
Binary files /dev/null and b/img/books/ENC1_DR.png differ
diff --git a/img/books/ENC2_DR.png b/img/books/ENC2_DR.png
new file mode 100644
index 0000000..39fc30b
Binary files /dev/null and b/img/books/ENC2_DR.png differ
diff --git a/img/books/GRI1_BC.jpg b/img/books/GRI1_BC.jpg
new file mode 100644
index 0000000..d5b943c
Binary files /dev/null and b/img/books/GRI1_BC.jpg differ
diff --git a/img/books/GRI1_BC_EN.jpg b/img/books/GRI1_BC_EN.jpg
new file mode 100644
index 0000000..89a9e00
Binary files /dev/null and b/img/books/GRI1_BC_EN.jpg differ
diff --git a/img/books/GRI1_BC_Textless.jpg b/img/books/GRI1_BC_Textless.jpg
new file mode 100644
index 0000000..d7f6903
Binary files /dev/null and b/img/books/GRI1_BC_Textless.jpg differ
diff --git a/img/books/GRI1_DR_Textless.jpg b/img/books/GRI1_DR_Textless.jpg
new file mode 100644
index 0000000..d7f6903
Binary files /dev/null and b/img/books/GRI1_DR_Textless.jpg differ
diff --git a/img/books/GUI1_BC.jpg b/img/books/GUI1_BC.jpg
new file mode 100644
index 0000000..c26627f
Binary files /dev/null and b/img/books/GUI1_BC.jpg differ
diff --git a/img/books/GUI1_BC_EN.jpg b/img/books/GUI1_BC_EN.jpg
new file mode 100644
index 0000000..d938265
Binary files /dev/null and b/img/books/GUI1_BC_EN.jpg differ
diff --git a/img/books/GUI2_BC.jpg b/img/books/GUI2_BC.jpg
new file mode 100644
index 0000000..0a7761b
Binary files /dev/null and b/img/books/GUI2_BC.jpg differ
diff --git a/img/books/LEG1_BC_Textless.jpg b/img/books/LEG1_BC_Textless.jpg
new file mode 100644
index 0000000..9b02dfc
Binary files /dev/null and b/img/books/LEG1_BC_Textless.jpg differ
diff --git a/img/books/LEG2.png b/img/books/LEG2.png
new file mode 100644
index 0000000..4d2c4fe
Binary files /dev/null and b/img/books/LEG2.png differ
diff --git a/img/books/LEG3.png b/img/books/LEG3.png
new file mode 100644
index 0000000..872b0c3
Binary files /dev/null and b/img/books/LEG3.png differ
diff --git a/lang/main-en.json b/lang/main-en.json
index 797d67d..bf683b0 100644
--- a/lang/main-en.json
+++ b/lang/main-en.json
@@ -9,5 +9,6 @@
"btn-items": "Magic Items",
"CUVD": "Unofficial site for Fateforge RPG. Uses copyrighted content © Agate RPG, courtesy of the publisher under the CUVD license.",
"link": "Join the community: https://fateforge.org/en",
- "btn-books": "Books"
+ "btn-books": "Books",
+ "book-CRE2": "Creature : Netherworld
"
}
diff --git a/lang/main-fr.json b/lang/main-fr.json
index abb898f..ec77865 100644
--- a/lang/main-fr.json
+++ b/lang/main-fr.json
@@ -14,5 +14,6 @@
"somatic": "Gestuelle",
"gridColumns":{
"components": "Composants"
- }
+ },
+ "book-CRE2": "Créature : Inframonde
"
}
diff --git a/lib/flickity.hash.js b/lib/flickity.hash.js
new file mode 100644
index 0000000..1ca7df3
--- /dev/null
+++ b/lib/flickity.hash.js
@@ -0,0 +1,121 @@
+/*!
+ * Flickity hash v1.0.3
+ * Enable hash navigation for Flickity
+ */
+
+/*jshint browser: true, undef: true, unused: true, strict: true*/
+
+( function( window, factory ) {
+ // universal module definition
+ /*jshint strict: false */ /*globals define, module, require */
+ if ( typeof define == 'function' && define.amd ) {
+ // AMD
+ define( [
+ 'flickity/js/index',
+ ], factory );
+ } else if ( typeof module == 'object' && module.exports ) {
+ // CommonJS
+ module.exports = factory(
+ require('flickity')
+ );
+ } else {
+ // browser global
+ factory(
+ window.Flickity
+ );
+ }
+
+}( window, function factory( Flickity ) {
+
+'use strict';
+
+Flickity.createMethods.push('_createHash');
+
+var proto = Flickity.prototype;
+
+proto._createHash = function() {
+ if ( !this.options.hash ) {
+ return;
+ }
+ this.connectedHashLinks = [];
+ // hash link listener
+ // use HTML5 history pushState to prevent page scroll jump
+ this.onHashLinkClick = function( event ) {
+ event.preventDefault();
+ this.selectCell( event.currentTarget.hash );
+ history.replaceState( null, '', event.currentTarget.hash );
+ }.bind( this );
+
+ // events
+ this.on( 'activate', this.activateHash );
+ this.on( 'deactivate', this.deactivateHash );
+};
+
+proto.activateHash = function() {
+ this.on( 'change', this.onChangeHash );
+
+ // overwrite initialIndex
+ if ( this.options.initialIndex === undefined && location.hash ) {
+ var cell = this.queryCell( location.hash );
+ if ( cell ) {
+ this.options.initialIndex = this.getCellSlideIndex( cell );
+ }
+ }
+
+ this.connectHashLinks();
+};
+
+
+proto.deactivateHash = function() {
+ this.off( 'change', this.onChangeHash );
+ this.disconnectHashLinks();
+};
+
+proto.onChangeHash = function() {
+ var id = this.selectedElement.id;
+ if ( id ) {
+ var url = '#' + id;
+ history.replaceState( null, '', url );
+ }
+};
+
+
+proto.connectHashLinks = function() {
+ var links = document.querySelectorAll('a');
+ for ( var i=0; i < links.length; i++ ) {
+ this.connectHashLink( links[i] );
+ }
+};
+
+// used to test if link is on same page
+var proxyLink = document.createElement('a');
+
+proto.connectHashLink = function( link ) {
+ if ( !link.hash ) {
+ return;
+ }
+ // check that link is for the same page
+ proxyLink.href = link.href;
+ if ( proxyLink.pathname != location.pathname ) {
+ return;
+ }
+ var cell = this.queryCell( link.hash );
+ if ( !cell ) {
+ return;
+ }
+ link.addEventListener( 'click', this.onHashLinkClick );
+ this.connectedHashLinks.push( link );
+};
+
+proto.disconnectHashLinks = function() {
+ this.connectedHashLinks.forEach( function( link ) {
+ link.removeEventListener( 'click', this.onHashLinkClick );
+ }, this );
+ this.connectedHashLinks = [];
+};
+
+// ----- ----- //
+
+return Flickity;
+
+}));
diff --git a/lib/flickity.pkgd.min.js b/lib/flickity.pkgd.min.js
new file mode 100644
index 0000000..b4e882f
--- /dev/null
+++ b/lib/flickity.pkgd.min.js
@@ -0,0 +1,56 @@
+/*!
+ * Flickity PACKAGED v2.3.0
+ * Touch, responsive, flickable carousels
+ *
+ * Licensed GPLv3 for open source use
+ * or Flickity Commercial License for commercial use
+ *
+ * https://flickity.metafizzy.co
+ * Copyright 2015-2021 Metafizzy
+ */
+(function(e,i){if(typeof define=="function"&&define.amd){define("jquery-bridget/jquery-bridget",["jquery"],function(t){return i(e,t)})}else if(typeof module=="object"&&module.exports){module.exports=i(e,require("jquery"))}else{e.jQueryBridget=i(e,e.jQuery)}})(window,function t(e,r){"use strict";var o=Array.prototype.slice;var i=e.console;var u=typeof i=="undefined"?function(){}:function(t){i.error(t)};function n(h,s,c){c=c||r||e.jQuery;if(!c){return}if(!s.prototype.option){s.prototype.option=function(t){if(!c.isPlainObject(t)){return}this.options=c.extend(true,this.options,t)}}c.fn[h]=function(t){if(typeof t=="string"){var e=o.call(arguments,1);return i(this,t,e)}n(this,t);return this};function i(t,r,o){var a;var l="$()."+h+'("'+r+'")';t.each(function(t,e){var i=c.data(e,h);if(!i){u(h+" not initialized. Cannot call methods, i.e. "+l);return}var n=i[r];if(!n||r.charAt(0)=="_"){u(l+" is not a valid method");return}var s=n.apply(i,o);a=a===undefined?s:a});return a!==undefined?a:t}function n(t,n){t.each(function(t,e){var i=c.data(e,h);if(i){i.option(n);i._init()}else{i=new s(e,n);c.data(e,h,i)}})}a(c)}function a(t){if(!t||t&&t.bridget){return}t.bridget=n}a(r||e.jQuery);return n});(function(t,e){if(typeof define=="function"&&define.amd){define("ev-emitter/ev-emitter",e)}else if(typeof module=="object"&&module.exports){module.exports=e()}else{t.EvEmitter=e()}})(typeof window!="undefined"?window:this,function(){function t(){}var e=t.prototype;e.on=function(t,e){if(!t||!e){return}var i=this._events=this._events||{};var n=i[t]=i[t]||[];if(n.indexOf(e)==-1){n.push(e)}return this};e.once=function(t,e){if(!t||!e){return}this.on(t,e);var i=this._onceEvents=this._onceEvents||{};var n=i[t]=i[t]||{};n[e]=true;return this};e.off=function(t,e){var i=this._events&&this._events[t];if(!i||!i.length){return}var n=i.indexOf(e);if(n!=-1){i.splice(n,1)}return this};e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(!i||!i.length){return}i=i.slice(0);e=e||[];var n=this._onceEvents&&this._onceEvents[t];for(var s=0;s1){t=i.modulo(t,this.slideableWidth);t-=this.slideableWidth;this.shiftWrapCells(t)}this.setTranslateX(t,this.isAnimating);this.dispatchScrollEvent()};n.setTranslateX=function(t,e){t+=this.cursorPosition;t=this.options.rightToLeft?-t:t;var i=this.getPositionValue(t);this.slider.style.transform=e?"translate3d("+i+",0,0)":"translateX("+i+")"};n.dispatchScrollEvent=function(){var t=this.slides[0];if(!t){return}var e=-this.x-t.target;var i=e/this.slidesWidth;this.dispatchEvent("scroll",null,[i,e])};n.positionSliderAtSelected=function(){if(!this.cells.length){return}this.x=-this.selectedSlide.target;this.velocity=0;this.positionSlider()};n.getPositionValue=function(t){if(this.options.percentPosition){return Math.round(t/this.size.innerWidth*1e4)*.01+"%"}else{return Math.round(t)+"px"}};n.settle=function(t){var e=!this.isPointerDown&&Math.round(this.x*100)==Math.round(t*100);if(e){this.restingFrames++}if(this.restingFrames>2){this.isAnimating=false;delete this.isFreeScrolling;this.positionSlider();this.dispatchEvent("settle",null,[this.selectedIndex])}};n.shiftWrapCells=function(t){var e=this.cursorPosition+t;this._shiftCells(this.beforeShiftCells,e,-1);var i=this.size.innerWidth-(t+this.slideableWidth+this.cursorPosition);this._shiftCells(this.afterShiftCells,i,1)};n._shiftCells=function(t,e,i){for(var n=0;n0?i:0;s.wrapShift(r);e-=s.size.outerWidth}};n._unshiftCells=function(t){if(!t||!t.length){return}for(var e=0;e0){var i=this.cells[t-1];e=i.x+i.size.outerWidth}var n=this.cells.length;for(var s=t;s0){var s=this.cells[e];if(!s){break}n.push(s);e+=i;t-=s.size.outerWidth}return n};v._containSlides=function(){if(!this.options.contain||this.options.wrapAround||!this.cells.length){return}var t=this.options.rightToLeft;var e=t?"marginRight":"marginLeft";var i=t?"marginLeft":"marginRight";var n=this.slideableWidth-this.getLastCell().size[i];var s=n1;if(!i){return t}var n=a.modulo(t,e);var s=Math.abs(n-this.selectedIndex);var r=Math.abs(n+e-this.selectedIndex);var o=Math.abs(n-e-this.selectedIndex);if(!this.isDragSelect&&r=e){this.x+=this.slideableWidth}};v.previous=function(t,e){this.select(this.selectedIndex-1,t,e)};v.next=function(t,e){this.select(this.selectedIndex+1,t,e)};v.updateSelectedSlide=function(){var t=this.slides[this.selectedIndex];if(!t){return}this.unselectSelectedSlide();this.selectedSlide=t;t.select();this.selectedCells=t.cells;this.selectedElements=t.getCellElements();this.selectedCell=t.cells[0];this.selectedElement=this.selectedElements[0]};v.unselectSelectedSlide=function(){if(this.selectedSlide){this.selectedSlide.unselect()}};v.selectInitialIndex=function(){var t=this.options.initialIndex;if(this.isInitActivated){this.select(this.selectedIndex,false,true);return}if(t&&typeof t=="string"){var e=this.queryCell(t);if(e){this.selectCell(t,false,true);return}}var i=0;if(t&&this.slides[t]){i=t}this.select(i,false,true)};v.selectCell=function(t,e,i){var n=this.queryCell(t);if(!n){return}var s=this.getCellSlideIndex(n);this.select(s,e,i)};v.getCellSlideIndex=function(t){for(var e=0;e *");return this.getCell(t)};v.getAdjacentCellElements=function(t,e){if(!t){return this.selectedSlide.getCellElements()}e=e===undefined?this.selectedIndex:e;var i=this.slides.length;if(1+t*2>=i){return this.getCellElements()}var n=[];for(var s=e-t;s<=e+t;s++){var r=this.options.wrapAround?a.modulo(s,i):s;var o=this.slides[r];if(o){n=n.concat(o.getCellElements())}}return n};v.queryCell=function(t){if(typeof t=="number"){return this.cells[t]}if(typeof t=="string"){if(t.match(/^[#.]?[\d/]/)){return}t=this.element.querySelector(t)}return this.getCell(t)};v.uiChange=function(){this.emitEvent("uiChange")};v.childUIPointerDown=function(t){if(t.type!="touchstart"){t.preventDefault()}this.focus()};v.onresize=function(){this.watchCSS();this.resize()};a.debounceMethod(p,"onresize",150);v.resize=function(){if(!this.isActive||this.isAnimating||this.isDragging){return}this.getSize();if(this.options.wrapAround){this.x=a.modulo(this.x,this.slideableWidth)}this.positionCells();this._getWrapShiftCells();this.setGallerySize();this.emitEvent("resize");var t=this.selectedElements&&this.selectedElements[0];this.selectCell(t,false,true)};v.watchCSS=function(){var t=this.options.watchCSS;if(!t){return}var e=h(this.element,":after").content;if(e.indexOf("flickity")!=-1){this.activate()}else{this.deactivate()}};v.onkeydown=function(t){var e=document.activeElement&&document.activeElement!=this.element;if(!this.options.accessibility||e){return}var i=p.keyboardHandlers[t.keyCode];if(i){i.call(this)}};p.keyboardHandlers={37:function(){var t=this.options.rightToLeft?"next":"previous";this.uiChange();this[t]()},39:function(){var t=this.options.rightToLeft?"previous":"next";this.uiChange();this[t]()}};v.focus=function(){var t=n.pageYOffset;this.element.focus({preventScroll:true});if(n.pageYOffset!=t){n.scrollTo(n.pageXOffset,t)}};v.deactivate=function(){if(!this.isActive){return}this.element.classList.remove("flickity-enabled");this.element.classList.remove("flickity-rtl");this.unselectSelectedSlide();this.cells.forEach(function(t){t.destroy()});this.element.removeChild(this.viewport);u(this.slider.children,this.element);if(this.options.accessibility){this.element.removeAttribute("tabIndex");this.element.removeEventListener("keydown",this)}this.isActive=false;this.emitEvent("deactivate")};v.destroy=function(){this.deactivate();n.removeEventListener("resize",this);this.allOff();this.emitEvent("destroy");if(l&&this.$element){l.removeData(this.element,"flickity")}delete this.element.flickityGUID;delete f[this.guid]};a.extend(v,r);p.data=function(t){t=a.getQueryElement(t);var e=t&&t.flickityGUID;return e&&f[e]};a.htmlInit(p,"flickity");if(l&&l.bridget){l.bridget("flickity",p)}p.setJQuery=function(t){l=t};p.Cell=s;p.Slide=o;return p});
+/*!
+ * Unipointer v2.4.0
+ * base class for doing one thing with pointer event
+ * MIT license
+ */
+(function(e,i){if(typeof define=="function"&&define.amd){define("unipointer/unipointer",["ev-emitter/ev-emitter"],function(t){return i(e,t)})}else if(typeof module=="object"&&module.exports){module.exports=i(e,require("ev-emitter"))}else{e.Unipointer=i(e,e.EvEmitter)}})(window,function t(s,e){function i(){}function n(){}var r=n.prototype=Object.create(e.prototype);r.bindStartEvent=function(t){this._bindStartEvent(t,true)};r.unbindStartEvent=function(t){this._bindStartEvent(t,false)};r._bindStartEvent=function(t,e){e=e===undefined?true:e;var i=e?"addEventListener":"removeEventListener";var n="mousedown";if("ontouchstart"in s){n="touchstart"}else if(s.PointerEvent){n="pointerdown"}t[i](n,this)};r.handleEvent=function(t){var e="on"+t.type;if(this[e]){this[e](t)}};r.getTouch=function(t){for(var e=0;e3||Math.abs(t.y)>3};n.pointerUp=function(t,e){this.emitEvent("pointerUp",[t,e]);this._dragPointerUp(t,e)};n._dragPointerUp=function(t,e){if(this.isDragging){this._dragEnd(t,e)}else{this._staticClick(t,e)}};n._dragStart=function(t,e){this.isDragging=true;this.isPreventingClicks=true;this.dragStart(t,e)};n.dragStart=function(t,e){this.emitEvent("dragStart",[t,e])};n._dragMove=function(t,e,i){if(!this.isDragging){return}this.dragMove(t,e,i)};n.dragMove=function(t,e,i){t.preventDefault();this.emitEvent("dragMove",[t,e,i])};n._dragEnd=function(t,e){this.isDragging=false;setTimeout(function(){delete this.isPreventingClicks}.bind(this));this.dragEnd(t,e)};n.dragEnd=function(t,e){this.emitEvent("dragEnd",[t,e])};n.onclick=function(t){if(this.isPreventingClicks){t.preventDefault()}};n._staticClick=function(t,e){if(this.isIgnoringMouseUp&&t.type=="mouseup"){return}this.staticClick(t,e);if(t.type!="mouseup"){this.isIgnoringMouseUp=true;setTimeout(function(){delete this.isIgnoringMouseUp}.bind(this),400)}};n.staticClick=function(t,e){this.emitEvent("staticClick",[t,e])};i.getPointerPoint=e.getPointerPoint;return i});(function(n,s){if(typeof define=="function"&&define.amd){define("flickity/js/drag",["./flickity","unidragger/unidragger","fizzy-ui-utils/utils"],function(t,e,i){return s(n,t,e,i)})}else if(typeof module=="object"&&module.exports){module.exports=s(n,require("./flickity.pkgd.min"),require("unidragger"),require("fizzy-ui-utils"))}else{n.Flickity=s(n,n.Flickity,n.Unidragger,n.fizzyUIUtils)}})(window,function t(n,e,i,a){a.extend(e.defaults,{draggable:">1",dragThreshold:3});e.createMethods.push("_createDrag");var s=e.prototype;a.extend(s,i.prototype);s._touchActionValue="pan-y";s._createDrag=function(){this.on("activate",this.onActivateDrag);this.on("uiChange",this._uiChangeDrag);this.on("deactivate",this.onDeactivateDrag);this.on("cellChange",this.updateDraggable)};s.onActivateDrag=function(){this.handles=[this.viewport];this.bindHandles();this.updateDraggable()};s.onDeactivateDrag=function(){this.unbindHandles();this.element.classList.remove("is-draggable")};s.updateDraggable=function(){if(this.options.draggable==">1"){this.isDraggable=this.slides.length>1}else{this.isDraggable=this.options.draggable}if(this.isDraggable){this.element.classList.add("is-draggable")}else{this.element.classList.remove("is-draggable")}};s.bindDrag=function(){this.options.draggable=true;this.updateDraggable()};s.unbindDrag=function(){this.options.draggable=false;this.updateDraggable()};s._uiChangeDrag=function(){delete this.isFreeScrolling};s.pointerDown=function(t,e){if(!this.isDraggable){this._pointerDownDefault(t,e);return}var i=this.okayPointerDown(t);if(!i){return}this._pointerDownPreventDefault(t);this.pointerDownFocus(t);if(document.activeElement!=this.element){this.pointerDownBlur()}this.dragX=this.x;this.viewport.classList.add("is-pointer-down");this.pointerDownScroll=o();n.addEventListener("scroll",this);this._pointerDownDefault(t,e)};s._pointerDownDefault=function(t,e){this.pointerDownPointer={pageX:e.pageX,pageY:e.pageY};this._bindPostStartEvents(t);this.dispatchEvent("pointerDown",t,[e])};var r={INPUT:true,TEXTAREA:true,SELECT:true};s.pointerDownFocus=function(t){var e=r[t.target.nodeName];if(!e){this.focus()}};s._pointerDownPreventDefault=function(t){var e=t.type=="touchstart";var i=t.pointerType=="touch";var n=r[t.target.nodeName];if(!e&&!i&&!n){t.preventDefault()}};s.hasDragStarted=function(t){return Math.abs(t.x)>this.options.dragThreshold};s.pointerUp=function(t,e){delete this.isTouchScrolling;this.viewport.classList.remove("is-pointer-down");this.dispatchEvent("pointerUp",t,[e]);this._dragPointerUp(t,e)};s.pointerDone=function(){n.removeEventListener("scroll",this);delete this.pointerDownScroll};s.dragStart=function(t,e){if(!this.isDraggable){return}this.dragStartPosition=this.x;this.startAnimation();n.removeEventListener("scroll",this);this.dispatchEvent("dragStart",t,[e])};s.pointerMove=function(t,e){var i=this._dragPointerMove(t,e);this.dispatchEvent("pointerMove",t,[e,i]);this._dragMove(t,e,i)};s.dragMove=function(t,e,i){if(!this.isDraggable){return}t.preventDefault();this.previousDragX=this.dragX;var n=this.options.rightToLeft?-1:1;if(this.options.wrapAround){i.x%=this.slideableWidth}var s=this.dragStartPosition+i.x*n;if(!this.options.wrapAround&&this.slides.length){var r=Math.max(-this.slides[0].target,this.dragStartPosition);s=s>r?(s+r)*.5:s;var o=Math.min(-this.getLastSlide().target,this.dragStartPosition);s=sthis.slides[0].target&&-n1;var s=n?a.modulo(e,i):e;var r=this.slides[s];if(!r){return null}var o=n?this.slideableWidth*Math.floor(e/i):0;return t-(r.target+o)};s.dragEndBoostSelect=function(){if(this.previousDragX===undefined||!this.dragMoveTime||new Date-this.dragMoveTime>100){return 0}var t=this.getSlideDistance(-this.dragX,this.selectedIndex);var e=this.previousDragX-this.dragX;if(t>0&&e>0){return 1}else if(t<0&&e<0){return-1}return 0};s.staticClick=function(t,e){var i=this.getParentCell(t.target);var n=i&&i.element;var s=i&&this.cells.indexOf(i);this.dispatchEvent("staticClick",t,[e,n,s])};s.onscroll=function(){var t=o();var e=this.pointerDownScroll.x-t.x;var i=this.pointerDownScroll.y-t.y;if(Math.abs(e)>3||Math.abs(i)>3){this._pointerDone()}};function o(){return{x:n.pageXOffset,y:n.pageYOffset}}return e});(function(n,s){if(typeof define=="function"&&define.amd){define("flickity/js/prev-next-button",["./flickity","unipointer/unipointer","fizzy-ui-utils/utils"],function(t,e,i){return s(n,t,e,i)})}else if(typeof module=="object"&&module.exports){module.exports=s(n,require("./flickity.pkgd.min"),require("unipointer"),require("fizzy-ui-utils"))}else{s(n,n.Flickity,n.Unipointer,n.fizzyUIUtils)}})(window,function t(e,i,n,s){"use strict";var r="http://www.w3.org/2000/svg";function o(t,e){this.direction=t;this.parent=e;this._create()}o.prototype=Object.create(n.prototype);o.prototype._create=function(){this.isEnabled=true;this.isPrevious=this.direction==-1;var t=this.parent.options.rightToLeft?1:-1;this.isLeft=this.direction==t;var e=this.element=document.createElement("button");e.className="flickity-button flickity-prev-next-button";e.className+=this.isPrevious?" previous":" next";e.setAttribute("type","button");this.disable();e.setAttribute("aria-label",this.isPrevious?"Previous":"Next");var i=this.createSVG();e.appendChild(i);this.parent.on("select",this.update.bind(this));this.on("pointerDown",this.parent.childUIPointerDown.bind(this.parent))};o.prototype.activate=function(){this.bindStartEvent(this.element);this.element.addEventListener("click",this);this.parent.element.appendChild(this.element)};o.prototype.deactivate=function(){this.parent.element.removeChild(this.element);this.unbindStartEvent(this.element);this.element.removeEventListener("click",this)};o.prototype.createSVG=function(){var t=document.createElementNS(r,"svg");t.setAttribute("class","flickity-button-icon");t.setAttribute("viewBox","0 0 100 100");var e=document.createElementNS(r,"path");var i=a(this.parent.options.arrowShape);e.setAttribute("d",i);e.setAttribute("class","arrow");if(!this.isLeft){e.setAttribute("transform","translate(100, 100) rotate(180) ")}t.appendChild(e);return t};function a(t){if(typeof t=="string"){return t}return"M "+t.x0+",50"+" L "+t.x1+","+(t.y1+50)+" L "+t.x2+","+(t.y2+50)+" L "+t.x3+",50 "+" L "+t.x2+","+(50-t.y2)+" L "+t.x1+","+(50-t.y1)+" Z"}o.prototype.handleEvent=s.handleEvent;o.prototype.onclick=function(){if(!this.isEnabled){return}this.parent.uiChange();var t=this.isPrevious?"previous":"next";this.parent[t]()};o.prototype.enable=function(){if(this.isEnabled){return}this.element.disabled=false;this.isEnabled=true};o.prototype.disable=function(){if(!this.isEnabled){return}this.element.disabled=true;this.isEnabled=false};o.prototype.update=function(){var t=this.parent.slides;if(this.parent.options.wrapAround&&t.length>1){this.enable();return}var e=t.length?t.length-1:0;var i=this.isPrevious?0:e;var n=this.parent.selectedIndex==i?"disable":"enable";this[n]()};o.prototype.destroy=function(){this.deactivate();this.allOff()};s.extend(i.defaults,{prevNextButtons:true,arrowShape:{x0:10,x1:60,y1:50,x2:70,y2:40,x3:30}});i.createMethods.push("_createPrevNextButtons");var l=i.prototype;l._createPrevNextButtons=function(){if(!this.options.prevNextButtons){return}this.prevButton=new o(-1,this);this.nextButton=new o(1,this);this.on("activate",this.activatePrevNextButtons)};l.activatePrevNextButtons=function(){this.prevButton.activate();this.nextButton.activate();this.on("deactivate",this.deactivatePrevNextButtons)};l.deactivatePrevNextButtons=function(){this.prevButton.deactivate();this.nextButton.deactivate();this.off("deactivate",this.deactivatePrevNextButtons)};i.PrevNextButton=o;return i});(function(n,s){if(typeof define=="function"&&define.amd){define("flickity/js/page-dots",["./flickity","unipointer/unipointer","fizzy-ui-utils/utils"],function(t,e,i){return s(n,t,e,i)})}else if(typeof module=="object"&&module.exports){module.exports=s(n,require("./flickity.pkgd.min"),require("unipointer"),require("fizzy-ui-utils"))}else{s(n,n.Flickity,n.Unipointer,n.fizzyUIUtils)}})(window,function t(e,i,n,s){function r(t){this.parent=t;this._create()}r.prototype=Object.create(n.prototype);r.prototype._create=function(){this.holder=document.createElement("ol");this.holder.className="flickity-page-dots";this.dots=[];this.handleClick=this.onClick.bind(this);this.on("pointerDown",this.parent.childUIPointerDown.bind(this.parent))};r.prototype.activate=function(){this.setDots();this.holder.addEventListener("click",this.handleClick);this.bindStartEvent(this.holder);this.parent.element.appendChild(this.holder)};r.prototype.deactivate=function(){this.holder.removeEventListener("click",this.handleClick);this.unbindStartEvent(this.holder);this.parent.element.removeChild(this.holder)};r.prototype.setDots=function(){var t=this.parent.slides.length-this.dots.length;if(t>0){this.addDots(t)}else if(t<0){this.removeDots(-t)}};r.prototype.addDots=function(t){var e=document.createDocumentFragment();var i=[];var n=this.dots.length;var s=n+t;for(var r=n;r=this.cells.length){return}var o=this.cells.slice(n,s+1);this.navSelectedElements=o.map(function(t){return t.element});this.changeNavSelectedClass("add")};function a(t,e,i){return(e-t)*i+t}e.changeNavSelectedClass=function(e){this.navSelectedElements.forEach(function(t){t.classList[e]("is-nav-selected")})};e.activateAsNavFor=function(){this.navCompanionSelect(true)};e.removeNavSelectedElements=function(){if(!this.navSelectedElements){return}this.changeNavSelectedClass("remove");delete this.navSelectedElements};e.onNavStaticClick=function(t,e,i,n){if(typeof n=="number"){this.navCompanion.selectCell(n)}};e.deactivateAsNavFor=function(){this.removeNavSelectedElements()};e.destroyAsNavFor=function(){if(!this.navCompanion){return}this.navCompanion.off("select",this.onNavCompanionSelect);this.off("staticClick",this.onNavStaticClick);delete this.navCompanion};return n});
+/*!
+ * imagesLoaded v4.1.4
+ * JavaScript is all like "You images are done yet or what?"
+ * MIT License
+ */
+(function(e,i){"use strict";if(typeof define=="function"&&define.amd){define("imagesloaded/imagesloaded",["ev-emitter/ev-emitter"],function(t){return i(e,t)})}else if(typeof module=="object"&&module.exports){module.exports=i(e,require("ev-emitter"))}else{e.imagesLoaded=i(e,e.EvEmitter)}})(typeof window!=="undefined"?window:this,function t(e,i){var s=e.jQuery;var r=e.console;function o(t,e){for(var i in e){t[i]=e[i]}return t}var n=Array.prototype.slice;function a(t){if(Array.isArray(t)){return t}var e=typeof t=="object"&&typeof t.length=="number";if(e){return n.call(t)}return[t]}function l(t,e,i){if(!(this instanceof l)){return new l(t,e,i)}var n=t;if(typeof t=="string"){n=document.querySelectorAll(t)}if(!n){r.error("Bad element for imagesLoaded "+(n||t));return}this.elements=a(n);this.options=o({},this.options);if(typeof e=="function"){i=e}else{o(this.options,e)}if(i){this.on("always",i)}this.getImages();if(s){this.jqDeferred=new s.Deferred}setTimeout(this.check.bind(this))}l.prototype=Object.create(i.prototype);l.prototype.options={};l.prototype.getImages=function(){this.images=[];this.elements.forEach(this.addElementImages,this)};l.prototype.addElementImages=function(t){if(t.nodeName=="IMG"){this.addImage(t)}if(this.options.background===true){this.addElementBackgroundImages(t)}var e=t.nodeType;if(!e||!h[e]){return}var i=t.querySelectorAll("img");for(var n=0;n