diff --git a/.gitignore b/.gitignore
index 179eab26fa04a95201cc45d530965fab07535ca6..45649d01622b86c4ae3297749e214842eedeea4e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -43,4 +43,7 @@ Temporary Items
 .apdisk
 
 #Jekyll
-_site
\ No newline at end of file
+_site
+
+# webstorm
+.idea
diff --git a/css/modern-blog.min.css b/css/modern-blog.min.css
deleted file mode 100644
index 12b64b09ddf3b3db1deb815faa751da4d135fa0e..0000000000000000000000000000000000000000
--- a/css/modern-blog.min.css
+++ /dev/null
@@ -1,65 +0,0 @@
-.card{position:relative;float:left;width:29%;height:0;margin:2%;padding-bottom:20%;}
-.card__container{position:fixed;top:0;left:0;overflow-x:hidden;overflow-y:auto;width:100%;height:100%;-webkit-overflow-scrolling:touch;}
-.card__container--closed{position:absolute;overflow:hidden;}
-.card__image{position:absolute;top:0;left:0;display:block;width:100%;height:100%;}
-.card__container--closed .card__image{position:relative;cursor:pointer;}
-.card__container--fix-image .card__image{position:fixed;}
-.card__content{position:relative;width:100%;max-width:800px;height:auto;margin:400px auto 60px;padding:30px 40px 22px;background:#fff;}
-.card__container--closed .card__content{margin-top:0;padding:0 16px;pointer-events:none;background:transparent;}
-.card__caption{font-size:2em;max-width:800px;margin:0 auto;padding:35px 30px 0px;}
-.card__container--closed .card__caption{font-size:1em;max-width:auto;padding:10px 10px 25px;-webkit-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%);}
-.card__title{font-size:1.5em;line-height:1;margin:5px 0 0 0;color:#3b393d;}
-.card__container--closed .card__title{color:#fff;}
-.card__subtitle{font-size:.95em;line-height:1;margin:5px 0 0;color:#777778;}
-.card__container--closed .card__subtitle{color:#f5f5f5;}
-.card__copy{font-size:1.25em;max-width:900px;margin:0 auto;padding:25px 30px 100px;color:#3b393d;}
-.card__copy p:first-of-type{font-size:1.5em;padding:0 0 1em 0;}
-.card__btn-close{font-size:18px;position:absolute;top:0;right:0;padding:36px;cursor:pointer;}
-.card__container--closed .card__btn-close{display:none;}
-.meta{font-size:.85em;display:-webkit-flex;display:flex;padding:0 0 35px 0;-webkit-align-items:center;align-items:center;}
-.meta__avatar{border-radius:50%;height:50px;width:50px;}
-.meta__author{font-weight:bold;padding:0 15px;}
-.meta__date{margin:0 0 0 auto;}
-@media only screen and (max-width:980px){.card{width:46%;padding-bottom:32.2%;}
-.card__content{margin-bottom:0;padding-right:20px;padding-left:20px;}
-}
-@media only screen and (max-width:580px){.card{width:96%;padding-bottom:67.2%;}
-}
-@media only screen and (max-width:400px){.card__caption{font-size:1.25em;padding:35px 0px 0px;}
-.meta{padding:0 0 25px 0;}
-.card__copy{font-size:90%;padding:25px 0px 100px;}
-}
-*,
-*:after,
-*:before{-webkit-box-sizing:border-box;box-sizing:border-box;}
-.clearfix:before,
-.clearfix:after{content:'';display:table;}
-.clearfix:after{clear:both;}
-body{font-family:Avenir, 'Helvetica Neue', 'Lato', 'Segoe UI', Helvetica, Arial, sans-serif;line-height:1.5;color:#3b393d;background:#f0f0f0;background-size:cover;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden;overflow-y:scroll;}
-body.body--hidden{overflow:hidden;}
-body.body--hidden .header{opacity:0;}
-.header{-webkit-transition:opacity 300ms ease-in-out;transition:opacity 300ms ease-in-out;}
-a{text-decoration:none;color:#de6551;outline:none;}
-a:hover,
-a:focus{color:#3b393d;}
-.body{background:#acaad1;}
-.body a{color:#4f4c4c;}
-.body .header h1 span{color:#4f4c4c;}
-.hidden{position:absolute;overflow:hidden;width:0;height:0;pointer-events:none;}
-.header{padding:2em 1em;text-align:center;}
-.header h1{font-size:3em;font-weight:400;line-height:1.2;margin:.5em 0 0;}
-.header h1 span{font-size:.45em;display:block;padding:.5em 0 1em;color:#999;}
-.links{margin:2em 0 0;}
-.links a{display:inline-block;margin:0 .5em;}
-.wrapper{overflow:auto;width:95%;max-width:1366px;margin:0 auto;}
-@media screen and (max-width:50em){.header{padding:3em 10% 4em;}
-}
-@media screen and (max-width:40em){.header h1{font-size:2.4em;line-height:1.2;}
-}
-.pattern{position:fixed;z-index:-1;top:0;left:0;width:100%;height:100%;background:no-repeat center center/cover;}
-.pattern--hidden{visibility:hidden;opacity:0;}
-.pattern--hidden .polygon{transition-duration:0ms;}
-.pattern svg{width:100%;height:100%;}
-.polygon{transition:-webkit-transform 300ms ease-in-out, opacity 300ms ease-in-out;transition:transform 300ms ease-in-out, opacity 300ms ease-in-out;-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:center bottom;transform-origin:center bottom;}
-.polygon--hidden{opacity:0;-webkit-transform:scale(0);transform:scale(0);}
-.ff .polygon{-webkit-transform:scale(1)!important;transform:scale(1)!important;}
\ No newline at end of file
diff --git a/feed.xml b/feed.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0bae643ff1d7accd0462dae3f09e53ae327fb25d
--- /dev/null
+++ b/feed.xml
@@ -0,0 +1,31 @@
+---
+layout: null
+---
+<?xml version="1.0" encoding="UTF-8"?>
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
+    <channel>
+        <title>{{ site.title | xml_escape }}</title>
+        <description>{{ site.description | xml_escape }}</description>
+        <link>{{ site.url }}{{ site.baseurl }}/</link>
+        <atom:link href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}" rel="self"
+        type="application/rss+xml"/>
+        <pubDate>{{ site.time | date_to_rfc822 }}</pubDate>
+        <lastBuildDate>{{ site.time | date_to_rfc822 }}</lastBuildDate>
+        <generator>Jekyll v{{ jekyll.version }}</generator>
+        {% for post in site.posts limit:10 %}
+        <item>
+            <title>{{ post.title | xml_escape }}</title>
+            <description>{{ post.content | xml_escape }}</description>
+            <pubDate>{{ post.date | date_to_rfc822 }}</pubDate>
+            <link>{{ site.baseurl | prepend: site.url }}#{{ post.url }}</link>
+            <guid isPermaLink="true">{{ site.baseurl | prepend: site.url }}#{{ post.url }}</guid>
+            {% for tag in post.tags %}
+            <category>{{ tag | xml_escape }}</category>
+            {% endfor %}
+            {% for cat in post.categories %}
+            <category>{{ cat | xml_escape }}</category>
+            {% endfor %}
+        </item>
+        {% endfor %}
+    </channel>
+</rss>
diff --git a/fonts/font-awesome-4.3.0/css/font-awesome.min.css b/fonts/font-awesome-4.3.0/css/font-awesome.min.css
deleted file mode 100644
index 24fcc04c4ed56775bffd4597800eb544bac91178..0000000000000000000000000000000000000000
--- a/fonts/font-awesome-4.3.0/css/font-awesome.min.css
+++ /dev/null
@@ -1,4 +0,0 @@
-/*!
- *  Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome
- *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
- */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.3.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.3.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.3.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.3.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0)}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-genderless:before,.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}
\ No newline at end of file
diff --git a/fonts/font-awesome-4.3.0/css/font-awesome.css b/fonts/font-awesome/css/font-awesome.css
similarity index 100%
rename from fonts/font-awesome-4.3.0/css/font-awesome.css
rename to fonts/font-awesome/css/font-awesome.css
diff --git a/fonts/font-awesome-4.3.0/fonts/FontAwesome.otf b/fonts/font-awesome/fonts/FontAwesome.otf
similarity index 100%
rename from fonts/font-awesome-4.3.0/fonts/FontAwesome.otf
rename to fonts/font-awesome/fonts/FontAwesome.otf
diff --git a/fonts/font-awesome-4.3.0/fonts/fontawesome-webfont.eot b/fonts/font-awesome/fonts/fontawesome-webfont.eot
similarity index 100%
rename from fonts/font-awesome-4.3.0/fonts/fontawesome-webfont.eot
rename to fonts/font-awesome/fonts/fontawesome-webfont.eot
diff --git a/fonts/font-awesome-4.3.0/fonts/fontawesome-webfont.svg b/fonts/font-awesome/fonts/fontawesome-webfont.svg
similarity index 100%
rename from fonts/font-awesome-4.3.0/fonts/fontawesome-webfont.svg
rename to fonts/font-awesome/fonts/fontawesome-webfont.svg
diff --git a/fonts/font-awesome-4.3.0/fonts/fontawesome-webfont.ttf b/fonts/font-awesome/fonts/fontawesome-webfont.ttf
similarity index 100%
rename from fonts/font-awesome-4.3.0/fonts/fontawesome-webfont.ttf
rename to fonts/font-awesome/fonts/fontawesome-webfont.ttf
diff --git a/fonts/font-awesome-4.3.0/fonts/fontawesome-webfont.woff b/fonts/font-awesome/fonts/fontawesome-webfont.woff
similarity index 100%
rename from fonts/font-awesome-4.3.0/fonts/fontawesome-webfont.woff
rename to fonts/font-awesome/fonts/fontawesome-webfont.woff
diff --git a/fonts/font-awesome-4.3.0/fonts/fontawesome-webfont.woff2 b/fonts/font-awesome/fonts/fontawesome-webfont.woff2
similarity index 100%
rename from fonts/font-awesome-4.3.0/fonts/fontawesome-webfont.woff2
rename to fonts/font-awesome/fonts/fontawesome-webfont.woff2
diff --git a/index.html b/index.html
index 86853d7a0ad11ca0bcf10bded1b34c543f227090..4707f265eda4f81a9d705989643ed3b75e4f413e 100644
--- a/index.html
+++ b/index.html
@@ -3,83 +3,87 @@ layout: compress
 ---
 <!DOCTYPE html>
 <html lang="en" class="no-js">
-    <head>
-        <meta charset="UTF-8" />
-        <meta http-equiv="X-UA-Compatible" content="IE=edge">
-        <meta name="viewport" content="width=device-width, initial-scale=1">
-        <title>{{ site.title }}</title>
-        <meta name="description" content="{{ site.description }}" />
-        <meta name="keywords" content="{{ site.keywords }}" />
-        <meta name="author" content="{{ site.author }}" />
-        <link rel="shortcut icon" href="img/favicon.ico">
-        <link rel="stylesheet" type="text/css" href="css/normalize.css" />
-        <link rel="stylesheet" type="text/css" href="fonts/font-awesome-4.3.0/css/font-awesome.min.css" />
-        <link rel="stylesheet" type="text/css" href="css/modern-blog.min.css" />
-        <!--[if IE]>
-        <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
-        <![endif]-->
-        <script>
+<head>
+    <meta charset="UTF-8"/>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>{{ site.title }}</title>
+    <meta name="description" content="{{ site.description }}"/>
+    <meta name="keywords" content="{{ site.keywords }}"/>
+    <meta name="author" content="{{ site.author }}"/>
+    <link rel="shortcut icon" href="img/favicon.ico">
+    <link rel="stylesheet" type="text/css" href="css/normalize.css"/>
+    <link rel="stylesheet" type="text/css" href="fonts/font-awesome/css/font-awesome.css"/>
+    <link rel="stylesheet" type="text/css" href="css/modern-blog.css"/>
+    <!--[if IE]>
+    <script type="text/javascript" src="js/vendors/html5.min.js"></script>
+    <![endif]-->
+    <script>
         if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1) {
-        var root = document.getElementsByTagName('html')[0];
-        root.setAttribute('class', 'ff');
-        };
-        </script>
-    </head>
-    <body class="body">
-        <div class="container">
-            <header class="header">
-                <h1>Modern Blog<span>A Clean, Fresh Minimal Look.</span></h1>
-                <nav class="links">
-                    <a href="#"><i class="fa fa-twitter-square fa-3x"></i></a>
-                    <a href="#"><i class="fa fa-instagram fa-3x"></i></a>
-                    <a href="#"><i class="fa fa-facebook-square fa-3x"></i></a>
-                    <a href="#"><i class="fa fa-tumblr-square fa-3x"></i></a>
-                </nav>
-            </header>
-            <div class="content">
-                <!-- trianglify pattern container -->
-                <div class="pattern pattern--hidden"></div>
-                <!-- cards -->
-                <div class="wrapper">
-                    {% for post in site.posts %}
-                        <div class="card">
-                            <div class="card__container card__container--closed">
-                                <svg class="card__image" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1920 1200" preserveAspectRatio="xMidYMid slice">
-                                    <defs>
-                                    <clipPath id="{{ post.subtitle | slugify }}">
+            var root = document.getElementsByTagName('html')[0];
+            root.setAttribute('class', 'ff');
+        }
+    </script>
+</head>
+<body class="body">
+<div class="container">
+    <header class="header">
+        <h1>Modern Blog<span>A Clean, Fresh Minimal Look.</span></h1>
+        <nav class="links">
+            <a href="#"><i class="fa fa-twitter-square fa-3x"></i></a>
+            <a href="#"><i class="fa fa-instagram fa-3x"></i></a>
+            <a href="#"><i class="fa fa-facebook-square fa-3x"></i></a>
+            <a href="#"><i class="fa fa-tumblr-square fa-3x"></i></a>
+        </nav>
+    </header>
+    <div class="content">
+        <!-- trianglify pattern container -->
+        <div class="pattern pattern--hidden"></div>
+        <!-- cards -->
+        <div class="wrapper">
+            {% for post in site.posts %}
+            <div class="card" data-id="{{ post.id }}">
+                <div class="card__container card__container--closed">
+                    <svg class="card__image" xmlns="http://www.w3.org/2000/svg"
+                         xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1920 1200"
+                         preserveAspectRatio="xMidYMid slice">
+                        <defs>
+                            <clipPath id="{{ post.id }}-clip-path">
                                 <polygon class="clip" points="0,1200 0,0 1920,0 1920,1200"></polygon>
-                                </clipPath>
-                                </defs>
-                                <image clip-path="url(#{{ post.subtitle | slugify }})" width="1920" height="1200" xlink:href="{{ post.image }}"></image>
-                            </svg>
-                            <div class="card__content">
-                                <i class="card__btn-close fa fa-times"></i>
-                                <div class="card__caption">
-                                    <h2 class="card__title">{{ post.title }}</h2>
-                                    <p class="card__subtitle">{{ post.subtitle }}</p>
-                                </div>
-                                <div class="card__copy">
-                                    <div class="meta">
-                                        <img class="meta__avatar" src="{{ post.avatar }}" />
-                                        <span class="meta__author">{{ post.author }}</span>
-                                        <span class="meta__date">{{ post.date | date: "%b %-d, %Y" }}</span>
-                                    </div>
-                                    {{ post.content }}
-                                </div>
+                            </clipPath>
+                        </defs>
+                        <image clip-path="url(#{{ post.id }}-clip-path)" width="1920" height="1200"
+                               xlink:href="{{ post.image }}"></image>
+                    </svg>
+                    <div class="card__content">
+                        <i class="card__btn-close fa fa-times"></i>
+                        <div class="card__caption">
+                            <h2 class="card__title">{{ post.title }}</h2>
+                            <p class="card__subtitle">{{ post.subtitle }}</p>
+                        </div>
+                        <div class="card__copy">
+                            <div class="meta">
+                                <img class="meta__avatar" src="{{ post.avatar }}"/>
+                                <span class="meta__author">{{ post.author }}</span>
+                                <span class="meta__date">{{ post.date | date: "%Y-%m-%d" }}</span>
                             </div>
+                            {{ post.content }}
                         </div>
                     </div>
-                {% endfor %}
-                <!-- /cards -->
+                </div>
             </div>
+            {% endfor %}
+            <!-- /cards -->
         </div>
-        <!-- /container -->
-        <!-- JS -->
-        <script src="js/vendors/trianglify.min.js"></script>
-        <script src="js/vendors/TweenMax.min.js"></script>
-        <script src="js/vendors/ScrollToPlugin.min.js"></script>
-        <script src="js/vendors/cash.min.js"></script>
-        <script src="js/card-modern-blog.min.js"></script>
-        <script src="js/modern-blog.min.js"></script>
-    </body>
-</html>
\ No newline at end of file
+    </div>
+    <!-- /container -->
+</div>
+<!-- JS -->
+<script src="js/vendors/trianglify.min.js"></script>
+<script src="js/vendors/TweenMax.min.js"></script>
+<script src="js/vendors/ScrollToPlugin.min.js"></script>
+<script src="js/vendors/cash.min.js"></script>
+<script src="js/card-modern-blog.js"></script>
+<script src="js/modern-blog.js"></script>
+</body>
+</html>
diff --git a/js/card-modern-blog.js b/js/card-modern-blog.js
index 74638e2eeafc55c06531ec24d555ee3c0f0eaa21..df216d7470f0d413f495d7edfcae138be6dcc89d 100644
--- a/js/card-modern-blog.js
+++ b/js/card-modern-blog.js
@@ -3,275 +3,275 @@
 /**
  * Card.
  */
-var Card = (function(window, undefined) {
-
-  /**
-   * Enum of CSS selectors.
-   */
-  var SELECTORS = {
-    container: '.card__container',
-    content: '.card__content',
-    clip: '.clip'
-  };
-
-  /**
-   * Enum of CSS classes.
-   */
-  var CLASSES = {
-    containerClosed: 'card__container--closed',
-    bodyHidden: 'body--hidden'
-  };
-
-  /**
-   * Card.
-   */
-  function Card(id, el) {
-
-    this.id = id;
-
-    this._el = el;
-
-    // Get elements.
-    this._container = $(this._el).find(SELECTORS.container)[0];
-    this._clip = $(this._el).find(SELECTORS.clip)[0];
-    this._content = $(this._el).find(SELECTORS.content)[0];
-
-    this.isOpen = false;
-
-    this._TL = null;
-  };
-
-  /**
-   * Open card.
-   * @param {Function} callback The callback `onCardMove`.
-   */
-  Card.prototype.openCard = function(callback) {
-
-    this._TL = new TimelineLite;
-
-    var slideContentDown = this._slideContentDown();
-    var clipImageIn = this._clipImageIn();
-    var floatContainer = this._floatContainer(callback);
-    var clipImageOut = this._clipImageOut();
-    var slideContentUp = this._slideContentUp();
-
-    // Compose sequence and use duration to overlap tweens.
-    this._TL.add(slideContentDown);
-    this._TL.add(clipImageIn, 0);
-    this._TL.add(floatContainer, '-=' + clipImageIn.duration() * 0.6);
-    // this._TL.add(clipImageOut, '-=' + floatContainer.duration() * 0.3);
-    this._TL.add(slideContentUp/*, '-=' + clipImageOut.duration() * 0.6*/);
-
-    this.isOpen = true;
-
-    return this._TL;
-  };
-
-  /**
-   * Slide content down.
-   * @private
-   */
-  Card.prototype._slideContentDown = function() {
-
-    var tween = TweenLite.to(this._content, 0.8, {
-      y: window.innerHeight,
-      ease: Expo.easeInOut
-    });
-
-    return tween;
-  };
-
-  /**
-   * Clip image in.
-   * @private
-   */
-  Card.prototype._clipImageIn = function() {
-
-    // Polygon.
-    var TL = new TimelineLite;
-
-    var start = [
-      [0, 1200],
-      [0, 0],
-      [1920, 0],
-      [1920, 1200]
-    ];
-
-    var end = [
-      [916, 430],
-      [1125, 643],
-      [960, 607],
-      [793, 570]
-    ];
-
-    var points = [];
-
-    // Create a tween for each point.
-    start.forEach(function(point, i) {
-
-      var tween = TweenLite.to(point, 1.5, end[i]);
-
-      end[i].onUpdate = function() {
-
-        points.push(point.join());
-
-        // Every 4 point update clip-path.
-        if (points.length === end.length) {
-          $(this._clip).attr('points', points.join(' '));
-          // Reset.
-          points = [];
+var Card = (function (window) {
+
+    /**
+     * Enum of CSS selectors.
+     */
+    var SELECTORS = {
+        container: '.card__container',
+        content: '.card__content',
+        clip: '.clip'
+    };
+
+    /**
+     * Enum of CSS classes.
+     */
+    var CLASSES = {
+        containerClosed: 'card__container--closed',
+        bodyHidden: 'body--hidden'
+    };
+
+    /**
+     * Card.
+     */
+    var Card = function (id, el) {
+
+        this.id = id;
+
+        this._el = el;
+
+        // Get elements.
+        this._container = $(this._el).find(SELECTORS.container)[0];
+        this._clip = $(this._el).find(SELECTORS.clip)[0];
+        this._content = $(this._el).find(SELECTORS.content)[0];
+
+        this.isOpen = false;
+
+        this._TL = null;
+    };
+
+    /**
+     * Open card.
+     * @param {Function} callback The callback `onCardMove`.
+     */
+    Card.prototype.openCard = function (callback) {
+
+        this._TL = new TimelineLite;
+
+        var slideContentDown = this._slideContentDown();
+        var clipImageIn = this._clipImageIn();
+        var floatContainer = this._floatContainer(callback);
+        var clipImageOut = this._clipImageOut();
+        var slideContentUp = this._slideContentUp();
+
+        // Compose sequence and use duration to overlap tweens.
+        this._TL.add(slideContentDown);
+        this._TL.add(clipImageIn, 0);
+        this._TL.add(floatContainer, '-=' + clipImageIn.duration() * 0.6);
+        // this._TL.add(clipImageOut, '-=' + floatContainer.duration() * 0.3);
+        this._TL.add(slideContentUp/*, '-=' + clipImageOut.duration() * 0.6*/);
+
+        this.isOpen = true;
+
+        return this._TL;
+    };
+
+    /**
+     * Slide content down.
+     * @private
+     */
+    Card.prototype._slideContentDown = function () {
+
+        var tween = TweenLite.to(this._content, 0.8, {
+            y: window.innerHeight,
+            ease: Expo.easeInOut
+        });
+
+        return tween;
+    };
+
+    /**
+     * Clip image in.
+     * @private
+     */
+    Card.prototype._clipImageIn = function () {
+
+        // Polygon.
+        var TL = new TimelineLite;
+
+        var start = [
+            [0, 1200],
+            [0, 0],
+            [1920, 0],
+            [1920, 1200]
+        ];
+
+        var end = [
+            [916, 430],
+            [1125, 643],
+            [960, 607],
+            [793, 570]
+        ];
+
+        var points = [];
+
+        // Create a tween for each point.
+        start.forEach(function (point, i) {
+
+            var tween = TweenLite.to(point, 1.5, end[i]);
+
+            end[i].onUpdate = function () {
+
+                points.push(point.join());
+
+                // Every 4 point update clip-path.
+                if (points.length === end.length) {
+                    $(this._clip).attr('points', points.join(' '));
+                    // Reset.
+                    points = [];
+                }
+
+            }.bind(this);
+
+            tween.vars.ease = Expo.easeInOut;
+
+            // Add at position 0.
+            TL.add(tween, 0);
+
+        }, this);
+
+        return TL;
+    };
+
+    /**
+     * Float card to final position.
+     * @param {Function} callback The callback `onCardMove`.
+     * @private
+     */
+    Card.prototype._floatContainer = function (callback) {
+
+        $(document.body).addClass(CLASSES.bodyHidden);
+
+        var TL = new TimelineLite;
+
+        var rect = this._container.getBoundingClientRect();
+        var windowW = window.innerWidth;
+
+        var track = {
+            width: 0,
+            x: rect.left + (rect.width / 2),
+            y: rect.top + (rect.height / 2)
         };
 
-      }.bind(this);
+        TL.set(this._container, {
+            width: rect.width,
+            height: rect.height,
+            x: rect.left,
+            y: rect.top,
+            position: 'fixed',
+            overflow: 'hidden'
+        });
+
+        TL.to([this._container, track], 2, {
+            width: windowW,
+            height: '100%',
+            x: windowW / 2,
+            y: 0,
+            xPercent: -50,
+            ease: Expo.easeInOut,
+            clearProps: 'all',
+            className: '-=' + CLASSES.containerClosed,
+            onUpdate: callback.bind(this, track),
+            // Fix IE: if the image is set to fixed when CLASSES.containerClosed
+            // is removed IE doesn't follow the tween, fix by setting
+            // the image position to fixed when tween is completed.
+            onComplete: function () {
+                $(this._container).addClass('card__container--fix-image');
+            }.bind(this)
+        });
+
+        return TL;
+    };
+
+    /**
+     * Clip image out.
+     * @private
+     */
+    Card.prototype._clipImageOut = function () {
 
-      tween.vars.ease = Expo.easeInOut;
+        var tween = this._clipImageIn();
 
-      // Add at position 0.
-      TL.add(tween, 0);
+        tween.reverse();
 
-    }, this);
+        return tween;
+    };
 
-    return TL;
-  };
+    /**
+     * Slide content up.
+     * @private
+     */
+    Card.prototype._slideContentUp = function () {
 
-  /**
-   * Float card to final position.
-   * @param {Function} callback The callback `onCardMove`.
-   * @private
-   */
-  Card.prototype._floatContainer = function(callback) {
+        var tween = TweenLite.to(this._content, 1, {
+            y: 0,
+            clearProps: 'all',
+            ease: Expo.easeInOut
+        });
 
-    $(document.body).addClass(CLASSES.bodyHidden);
+        return tween;
+    };
+
+    /**
+     * Close card.
+     */
+    Card.prototype.closeCard = function () {
+
+        TweenLite.to(this._container, 0.4, {
+            scrollTo: {
+                y: 0
+            },
+            onComplete: function () {
+                $(this._container).css('overflow', 'hidden');
+            }.bind(this),
+            ease: Power2.easeOut
+        });
+
+        this._TL.eventCallback('onReverseComplete', function () {
+
+            TweenLite.set([this._container, this._content], {
+                clearProps: 'all'
+            });
+
+            $(document.body).removeClass(CLASSES.bodyHidden);
+
+            this.isOpen = false;
+
+        }.bind(this));
+
+        return this._TL.reverse();
+    };
+
+    /**
+     * Hide card, called for all cards except the selected one.
+     */
+    Card.prototype.hideCard = function () {
+
+        var tween = TweenLite.to(this._el, 0.4, {
+            scale: 0.8,
+            autoAlpha: 0,
+            transformOrigin: 'center bottom',
+            ease: Expo.easeInOut
+        });
+
+        return tween;
+    };
 
-    var TL = new TimelineLite;
+    /**
+     * Show card, called for all cards except the selected one.
+     */
+    Card.prototype.showCard = function () {
 
-    var rect = this._container.getBoundingClientRect();
-    var windowW = window.innerWidth;
+        var tween = TweenLite.to(this._el, 0.5, {
+            scale: 1,
+            autoAlpha: 1,
+            clearProps: 'all',
+            ease: Expo.easeInOut
+        });
 
-    var track = {
-      width: 0,
-      x: rect.left + (rect.width / 2),
-      y: rect.top + (rect.height / 2),
+        return tween;
     };
 
-    TL.set(this._container, {
-      width: rect.width,
-      height: rect.height,
-      x: rect.left,
-      y: rect.top,
-      position: 'fixed',
-      overflow: 'hidden'
-    });
-
-    TL.to([this._container, track], 2, {
-      width: windowW,
-      height: '100%',
-      x: windowW / 2,
-      y: 0,
-      xPercent: -50,
-      ease: Expo.easeInOut,
-      clearProps: 'all',
-      className: '-=' + CLASSES.containerClosed,
-      onUpdate: callback.bind(this, track),
-      // Fix IE: if the image is set to fixed when CLASSES.containerClosed
-      // is removed IE doesn't follow the tween, fix by setting
-      // the image position to fixed when tween is completed.
-      onComplete: function() {
-        $(this._container).addClass('card__container--fix-image');
-      }.bind(this)
-    });
-
-    return TL;
-  };
-
-  /**
-   * Clip image out.
-   * @private
-   */
-  Card.prototype._clipImageOut = function() {
-
-    var tween = this._clipImageIn();
-
-    tween.reverse();
-
-    return tween;
-  };
-
-  /**
-   * Slide content up.
-   * @private
-   */
-  Card.prototype._slideContentUp = function() {
-
-    var tween = TweenLite.to(this._content, 1, {
-      y: 0,
-      clearProps: 'all',
-      ease: Expo.easeInOut
-    });
-
-    return tween;
-  };
-
-  /**
-   * Close card.
-   */
-  Card.prototype.closeCard = function() {
-
-    TweenLite.to(this._container, 0.4, {
-      scrollTo: {
-        y: 0
-      },
-      onComplete: function() {
-        $(this._container).css('overflow', 'hidden');
-      }.bind(this),
-      ease: Power2.easeOut
-    });
-
-    this._TL.eventCallback('onReverseComplete', function() {
-
-      TweenLite.set([this._container, this._content], {
-        clearProps: 'all'
-      });
-
-      $(document.body).removeClass(CLASSES.bodyHidden);
-
-      this.isOpen = false;
-
-    }.bind(this));
-
-    return this._TL.reverse();
-  };
-
-  /**
-   * Hide card, called for all cards except the selected one.
-   */
-  Card.prototype.hideCard = function() {
-
-    var tween = TweenLite.to(this._el, 0.4, {
-      scale: 0.8,
-      autoAlpha: 0,
-      transformOrigin: 'center bottom',
-      ease: Expo.easeInOut
-    });
-
-    return tween;
-  };
-
-  /**
-   * Show card, called for all cards except the selected one.
-   */
-  Card.prototype.showCard = function() {
-
-    var tween = TweenLite.to(this._el, 0.5, {
-      scale: 1,
-      autoAlpha: 1,
-      clearProps: 'all',
-      ease: Expo.easeInOut
-    });
-
-    return tween;
-  };
-
-  return Card;
+    return Card;
 
 })(window);
diff --git a/js/card-modern-blog.min.js b/js/card-modern-blog.min.js
deleted file mode 100644
index 941f2b91e08019c4ffb2faca3705b9ee99c875dc..0000000000000000000000000000000000000000
--- a/js/card-modern-blog.min.js
+++ /dev/null
@@ -1 +0,0 @@
-'use strict';var Card=(function(window,undefined){var SELECTORS={container:'.card__container',content:'.card__content',clip:'.clip'};var CLASSES={containerClosed:'card__container--closed',bodyHidden:'body--hidden'};function Card(id,el){this.id=id;this._el=el;this._container=$(this._el).find(SELECTORS.container)[0];this._clip=$(this._el).find(SELECTORS.clip)[0];this._content=$(this._el).find(SELECTORS.content)[0];this.isOpen=false;this._TL=null;};Card.prototype.openCard=function(callback){this._TL=new TimelineLite;var slideContentDown=this._slideContentDown();var clipImageIn=this._clipImageIn();var floatContainer=this._floatContainer(callback);var clipImageOut=this._clipImageOut();var slideContentUp=this._slideContentUp();this._TL.add(slideContentDown);this._TL.add(clipImageIn,0);this._TL.add(floatContainer,'-='+clipImageIn.duration()*0.6);this._TL.add(slideContentUp);this.isOpen=true;return this._TL;};Card.prototype._slideContentDown=function(){var tween=TweenLite.to(this._content,0.8,{y:window.innerHeight,ease:Expo.easeInOut});return tween;};Card.prototype._clipImageIn=function(){var TL=new TimelineLite;var start=[[0,1200],[0,0],[1920,0],[1920,1200]];var end=[[916,430],[1125,643],[960,607],[793,570]];var points=[];start.forEach(function(point,i){var tween=TweenLite.to(point,1.5,end[i]);end[i].onUpdate=function(){points.push(point.join());if(points.length===end.length){$(this._clip).attr('points',points.join(' '));points=[];};}.bind(this);tween.vars.ease=Expo.easeInOut;TL.add(tween,0);},this);return TL;};Card.prototype._floatContainer=function(callback){$(document.body).addClass(CLASSES.bodyHidden);var TL=new TimelineLite;var rect=this._container.getBoundingClientRect();var windowW=window.innerWidth;var track={width:0,x:rect.left+(rect.width/2),y:rect.top+(rect.height/2),};TL.set(this._container,{width:rect.width,height:rect.height,x:rect.left,y:rect.top,position:'fixed',overflow:'hidden'});TL.to([this._container,track],2,{width:windowW,height:'100%',x:windowW/2,y:0,xPercent:-50,ease:Expo.easeInOut,clearProps:'all',className:'-='+CLASSES.containerClosed,onUpdate:callback.bind(this,track),onComplete:function(){$(this._container).addClass('card__container--fix-image');}.bind(this)});return TL;};Card.prototype._clipImageOut=function(){var tween=this._clipImageIn();tween.reverse();return tween;};Card.prototype._slideContentUp=function(){var tween=TweenLite.to(this._content,1,{y:0,clearProps:'all',ease:Expo.easeInOut});return tween;};Card.prototype.closeCard=function(){TweenLite.to(this._container,0.4,{scrollTo:{y:0},onComplete:function(){$(this._container).css('overflow','hidden');}.bind(this),ease:Power2.easeOut});this._TL.eventCallback('onReverseComplete',function(){TweenLite.set([this._container,this._content],{clearProps:'all'});$(document.body).removeClass(CLASSES.bodyHidden);this.isOpen=false;}.bind(this));return this._TL.reverse();};Card.prototype.hideCard=function(){var tween=TweenLite.to(this._el,0.4,{scale:0.8,autoAlpha:0,transformOrigin:'center bottom',ease:Expo.easeInOut});return tween;};Card.prototype.showCard=function(){var tween=TweenLite.to(this._el,0.5,{scale:1,autoAlpha:1,clearProps:'all',ease:Expo.easeInOut});return tween;};return Card;})(window);
\ No newline at end of file
diff --git a/js/modern-blog.js b/js/modern-blog.js
index 5a49e17fbbd8c20dad5f20eab2f94a598ea44168..93aae8394e244e8144321be4d21fe25ecedb7c38 100644
--- a/js/modern-blog.js
+++ b/js/modern-blog.js
@@ -3,251 +3,305 @@
 /**
  * Demo.
  */
-var demo = (function(window, undefined) {
-
-  /**
-   * Enum of CSS selectors.
-   */
-  var SELECTORS = {
-    pattern: '.pattern',
-    card: '.card',
-    cardImage: '.card__image',
-    cardClose: '.card__btn-close',
-  };
-
-  /**
-   * Enum of CSS classes.
-   */
-  var CLASSES = {
-    patternHidden: 'pattern--hidden',
-    polygon: 'polygon',
-    polygonHidden: 'polygon--hidden'
-  };
-
-  /**
-   * Map of svg paths and points.
-   */
-  var polygonMap = {
-    paths: null,
-    points: null
-  };
-
-  /**
-   * Container of Card instances.
-   */
-  var layout = {};
-
-  /**
-   * Initialise demo.
-   */
-  function init() {
-
-    // For options see: https://github.com/qrohlf/Trianglify
-    var pattern = Trianglify({
-      width: window.innerWidth,
-      height: window.innerHeight,
-      cell_size: 90,
-      variance: 1,
-      stroke_width: 1,
-      x_colors: 'random',
-      y_colors: 'random'
-    }).svg(); // Render as SVG.
-
-    _mapPolygons(pattern);
-
-    _bindCards();
-  };
+var demo = (function (window) {
+
+    /**
+     * Enum of CSS selectors.
+     */
+    var SELECTORS = {
+        pattern: '.pattern',
+        card: '.card',
+        cardImage: '.card__image',
+        cardClose: '.card__btn-close'
+    };
+
+    /**
+     * Enum of CSS classes.
+     */
+    var CLASSES = {
+        patternHidden: 'pattern--hidden',
+        polygon: 'polygon',
+        polygonHidden: 'polygon--hidden'
+    };
+
+    var ATTRIBUTES = {
+        index: 'data-index',
+        id: 'data-id'
+    };
+
+    /**
+     * Map of svg paths and points.
+     */
+    var polygonMap = {
+        paths: null,
+        points: null
+    };
+
+    /**
+     * Container of Card instances.
+     */
+    var layout = {};
+
+    /**
+     * Initialise demo.
+     */
+    var init = function () {
+
+        // For options see: https://github.com/qrohlf/Trianglify
+        var pattern = Trianglify({
+            width: window.innerWidth,
+            height: window.innerHeight,
+            cell_size: 90,
+            variance: 1,
+            stroke_width: 1,
+            x_colors: 'random',
+            y_colors: 'random'
+        }).svg(); // Render as SVG.
+
+        _mapPolygons(pattern);
+
+        _bindCards();
+
+        _bindHashChange();
+
+        _triggerOpenCard('', _getHashFromURL(location.href));
+    };
 
-  /**
-   * Store path elements, map coordinates and sizes.
-   * @param {Element} pattern The SVG Element generated with Trianglify.
-   * @private
-   */
-  function _mapPolygons(pattern) {
-
-    // Append SVG to pattern container.
-    $(SELECTORS.pattern).append(pattern);
-
-    // Convert nodelist to array,
-    // Used `.childNodes` because IE doesn't support `.children` on SVG.
-    polygonMap.paths = [].slice.call(pattern.childNodes);
+    /**
+     * Store path elements, map coordinates and sizes.
+     * @param {Element} pattern The SVG Element generated with Trianglify.
+     * @private
+     */
+    var _mapPolygons = function (pattern) {
 
-    polygonMap.points = [];
+        // Append SVG to pattern container.
+        $(SELECTORS.pattern).append(pattern);
 
-    polygonMap.paths.forEach(function(polygon) {
+        // Convert nodelist to array,
+        // Used `.childNodes` because IE doesn't support `.children` on SVG.
+        polygonMap.paths = [].slice.call(pattern.childNodes);
 
-      // Hide polygons by adding CSS classes to each svg path (used attrs because of IE).
-      $(polygon).attr('class', CLASSES.polygon);
+        polygonMap.points = [];
 
-      var rect = polygon.getBoundingClientRect();
+        polygonMap.paths.forEach(function (polygon) {
 
-      var point = {
-        x: rect.left + rect.width / 2,
-        y: rect.top + rect.height / 2
-      };
+            // Hide polygons by adding CSS classes to each svg path (used attrs because of IE).
+            $(polygon).attr('class', CLASSES.polygon);
 
-      polygonMap.points.push(point);
-    });
+            var rect = polygon.getBoundingClientRect();
 
-    // All polygons are hidden now, display the pattern container.
-    $(SELECTORS.pattern).removeClass(CLASSES.patternHidden);
-  };
-
-  /**
-   * Bind Card elements.
-   * @private
-   */
-  function _bindCards() {
+            var point = {
+                x: rect.left + rect.width / 2,
+                y: rect.top + rect.height / 2
+            };
 
-    var elements = $(SELECTORS.card);
+            polygonMap.points.push(point);
+        });
 
-    $.each(elements, function(card, i) {
-
-      var instance = new Card(i, card);
-
-      layout[i] = {
-        card: instance
-      };
-
-      var cardImage = $(card).find(SELECTORS.cardImage);
-      var cardClose = $(card).find(SELECTORS.cardClose);
+        // All polygons are hidden now, display the pattern container.
+        $(SELECTORS.pattern).removeClass(CLASSES.patternHidden);
+    };
+
+    /**
+     * Bind Card elements.
+     * @private
+     */
+    var _bindCards = function () {
 
-      $(cardImage).on('click', _playSequence.bind(this, true, i));
-      $(cardClose).on('click', _playSequence.bind(this, false, i));
-    });
-  };
+        var elements = $(SELECTORS.card);
 
-  /**
-   * Create a sequence for the open or close animation and play.
-   * @param {boolean} isOpenClick Flag to detect when it's a click to open.
-   * @param {number} id The id of the clicked card.
-   * @param {Event} e The event object.
-   * @private
-   *
-   */
-  function _playSequence(isOpenClick, id, e) {
+        $.each(elements, function (card, i) {
 
-    var card = layout[id].card;
+            var instance = new Card(i, card);
 
-    // Prevent when card already open and user click on image.
-    if (card.isOpen && isOpenClick) return;
+            layout[i] = {
+                card: instance
+            };
 
-    // Create timeline for the whole sequence.
-    var sequence = new TimelineLite({paused: true});
+            var $card = $(card);
+            $card.attr(ATTRIBUTES.index, i + '');
 
-    var tweenOtherCards = _showHideOtherCards(id);
+            var cardImage = $card.find(SELECTORS.cardImage);
+            var cardClose = $card.find(SELECTORS.cardClose);
 
-    if (!card.isOpen) {
-      // Open sequence.
+            $(cardImage).on('click', function () {
+                location.hash = $card.attr(ATTRIBUTES.id);
+            });
+            $(cardClose).on('click', function () {
+                location.hash = '';
+            });
+        });
+    };
 
-      _setPatternBgImg(e.target);
+    /**
+     * Create a sequence for the open or close animation and play.
+     * @param {boolean} isOpenClick Flag to detect when it's a click to open.
+     * @param {number} id The id of the clicked card.
+     * @private
+     *
+     */
+    var _playSequence = function (isOpenClick, id) {
 
-      sequence.add(tweenOtherCards);
-      sequence.add(card.openCard(_onCardMove), 0);
+        var card = layout[id].card;
 
-    } else {
-      // Close sequence.
+        // Prevent when card already open and user click on image.
+        if (card.isOpen && isOpenClick) {
+            return;
+        }
 
-      var closeCard = card.closeCard();
-      var position = closeCard.duration() * 0.8; // 80% of close card tween.
+        // Create timeline for the whole sequence.
+        var sequence = new TimelineLite({paused: true});
 
-      sequence.add(closeCard);
-      sequence.add(tweenOtherCards, position);
-    }
+        var tweenOtherCards = _showHideOtherCards(id);
 
-    sequence.play();
-  };
+        if (!card.isOpen) {
+            // Open sequence.
 
-  /**
-   * Show/Hide all other cards.
-   * @param {number} id The id of the clcked card to be avoided.
-   * @private
-   */
-  function _showHideOtherCards(id) {
+            _setPatternBgImg($(this).find(SELECTORS.cardImage).find('image'));
 
-    var TL = new TimelineLite;
+            sequence.add(tweenOtherCards);
+            sequence.add(card.openCard(_onCardMove), 0);
 
-    var selectedCard = layout[id].card;
+        } else {
+            // Close sequence.
 
-    for (var i in layout) {
+            var closeCard = card.closeCard();
+            var position = closeCard.duration() * 0.8; // 80% of close card tween.
 
-      var card = layout[i].card;
+            sequence.add(closeCard);
+            sequence.add(tweenOtherCards, position);
+        }
 
-      // When called with `openCard`.
-      if (card.id !== id && !selectedCard.isOpen) {
-        TL.add(card.hideCard(), 0);
-      }
+        sequence.play();
+    };
 
-      // When called with `closeCard`.
-      if (card.id !== id && selectedCard.isOpen) {
-        TL.add(card.showCard(), 0);
-      }
-    }
+    /**
+     * Show/Hide all other cards.
+     * @param {number} id The id of the clcked card to be avoided.
+     * @private
+     */
+    var _showHideOtherCards = function (id) {
 
-    return TL;
-  };
+        var TL = new TimelineLite;
 
-  /**
-   * Add card image to pattern background.
-   * @param {Element} image The clicked SVG Image Element.
-   * @private
-   */
-  function _setPatternBgImg(image) {
+        var selectedCard = layout[id].card;
 
-    var imagePath = $(image).attr('xlink:href');
+        for (var i in layout) {
 
-    $(SELECTORS.pattern).css('background-image', 'url(' + imagePath + ')');
-  };
+            if (layout.hasOwnProperty(i)) {
+                var card = layout[i].card;
 
-  /**
-   * Callback to be executed on Tween update, whatever a polygon
-   * falls into a circular area defined by the card width the path's
-   * CSS class will change accordingly.
-   * @param {Object} track The card sizes and position during the floating.
-   * @private
-   */
-  function _onCardMove(track) {
+                // When called with `openCard`.
+                if (card.id !== id && !selectedCard.isOpen) {
+                    TL.add(card.hideCard(), 0);
+                }
 
-    var radius = track.width / 2;
+                // When called with `closeCard`.
+                if (card.id !== id && selectedCard.isOpen) {
+                    TL.add(card.showCard(), 0);
+                }
+            }
+        }
 
-    var center = {
-      x: track.x,
-      y: track.y
+        return TL;
     };
 
-    polygonMap.points.forEach(function(point, i) {
+    /**
+     * Add card image to pattern background.
+     * @param {Element} image The clicked SVG Image Element.
+     * @private
+     */
+    var _setPatternBgImg = function (image) {
 
-      if (_detectPointInCircle(point, radius, center)) {
-        $(polygonMap.paths[i]).attr('class', CLASSES.polygon + ' ' + CLASSES.polygonHidden);
-      } else {
-        $(polygonMap.paths[i]).attr('class', CLASSES.polygon);
-      }
-    });
-  }
+        var imagePath = $(image).attr('xlink:href');
 
-  /**
-   * Detect if a point is inside a circle area.
-   * @private
-   */
-  function _detectPointInCircle(point, radius, center) {
+        $(SELECTORS.pattern).css('background-image', 'url(' + imagePath + ')');
+    };
+
+    /**
+     * Callback to be executed on Tween update, whatever a polygon
+     * falls into a circular area defined by the card width the path's
+     * CSS class will change accordingly.
+     * @param {Object} track The card sizes and position during the floating.
+     * @private
+     */
+    var _onCardMove = function (track) {
+
+        var radius = track.width / 2;
+
+        var center = {
+            x: track.x,
+            y: track.y
+        };
+
+        polygonMap.points.forEach(function (point, i) {
+
+            if (_detectPointInCircle(point, radius, center)) {
+                $(polygonMap.paths[i]).attr('class', CLASSES.polygon + ' ' + CLASSES.polygonHidden);
+            } else {
+                $(polygonMap.paths[i]).attr('class', CLASSES.polygon);
+            }
+        });
+    };
 
-    var xp = point.x;
-    var yp = point.y;
+    /**
+     * Detect if a point is inside a circle area.
+     * @private
+     */
+    var _detectPointInCircle = function (point, radius, center) {
 
-    var xc = center.x;
-    var yc = center.y;
+        var xp = point.x;
+        var yp = point.y;
 
-    var d = radius * radius;
+        var xc = center.x;
+        var yc = center.y;
 
-    var isInside = Math.pow(xp - xc, 2) + Math.pow(yp - yc, 2) <= d;
+        var d = radius * radius;
 
-    return isInside;
-  };
+        return Math.pow(xp - xc, 2) + Math.pow(yp - yc, 2) <= d;
+    };
 
-  // Expose methods.
-  return {
-    init: init
-  };
+    /**
+     * initialize page view according to hash
+     * @private
+     */
+    var _triggerOpenCard = function (fromId, toId) {
+        var getIndex = function (card) {
+            var index = $(card).attr(ATTRIBUTES.index);
+            return parseInt(index, 10);
+        };
+        if (fromId) {
+            var fromBlogCard = $('[' + ATTRIBUTES.id + '="' + fromId + '"]')[0];
+            if (fromBlogCard) {
+                _playSequence.call(fromBlogCard, false, getIndex(fromBlogCard));
+            }
+        }
+        if (toId) {
+            var toBlogCard = $('[' + ATTRIBUTES.id + '="' + toId + '"]')[0];
+            if (toBlogCard) {
+                _playSequence.call(toBlogCard, true, getIndex(toBlogCard));
+            }
+        }
+    };
+
+    var _getHashFromURL = function (url) {
+        var a = document.createElement('a');
+        a.href = url;
+        return a.hash.slice(1);
+    };
+
+    var _bindHashChange = function () {
+        window.addEventListener('hashchange', function (e) {
+            var newHash = _getHashFromURL(e.newURL);
+            var oldHash = _getHashFromURL(e.oldURL);
+            _triggerOpenCard(oldHash, newHash);
+        });
+    };
+
+    // Expose methods.
+    return {
+        init: init
+    };
 
 })(window);
 
diff --git a/js/modern-blog.min.js b/js/modern-blog.min.js
deleted file mode 100644
index 4c3716488fb39d049a6473a4f6b3a8699a639740..0000000000000000000000000000000000000000
--- a/js/modern-blog.min.js
+++ /dev/null
@@ -1 +0,0 @@
-'use strict';var demo=(function(window,undefined){var SELECTORS={pattern:'.pattern',card:'.card',cardImage:'.card__image',cardClose:'.card__btn-close',};var CLASSES={patternHidden:'pattern--hidden',polygon:'polygon',polygonHidden:'polygon--hidden'};var polygonMap={paths:null,points:null};var layout={};function init(){var pattern=Trianglify({width:window.innerWidth,height:window.innerHeight,cell_size:90,variance:1,stroke_width:1,x_colors:'random',y_colors:'random'}).svg();_mapPolygons(pattern);_bindCards();};function _mapPolygons(pattern){$(SELECTORS.pattern).append(pattern);polygonMap.paths=[].slice.call(pattern.childNodes);polygonMap.points=[];polygonMap.paths.forEach(function(polygon){$(polygon).attr('class',CLASSES.polygon);var rect=polygon.getBoundingClientRect();var point={x:rect.left+rect.width/2,y:rect.top+rect.height/2};polygonMap.points.push(point);});$(SELECTORS.pattern).removeClass(CLASSES.patternHidden);};function _bindCards(){var elements=$(SELECTORS.card);$.each(elements,function(card,i){var instance=new Card(i,card);layout[i]={card:instance};var cardImage=$(card).find(SELECTORS.cardImage);var cardClose=$(card).find(SELECTORS.cardClose);$(cardImage).on('click',_playSequence.bind(this,true,i));$(cardClose).on('click',_playSequence.bind(this,false,i));});};function _playSequence(isOpenClick,id,e){var card=layout[id].card;if(card.isOpen&&isOpenClick)return;var sequence=new TimelineLite({paused:true});var tweenOtherCards=_showHideOtherCards(id);if(!card.isOpen){_setPatternBgImg(e.target);sequence.add(tweenOtherCards);sequence.add(card.openCard(_onCardMove),0);}else{var closeCard=card.closeCard();var position=closeCard.duration()*0.8;sequence.add(closeCard);sequence.add(tweenOtherCards,position);}sequence.play();};function _showHideOtherCards(id){var TL=new TimelineLite;var selectedCard=layout[id].card;for(var i in layout){var card=layout[i].card;if(card.id!==id&&!selectedCard.isOpen){TL.add(card.hideCard(),0);}if(card.id!==id&&selectedCard.isOpen){TL.add(card.showCard(),0);}}return TL;};function _setPatternBgImg(image){var imagePath=$(image).attr('xlink:href');$(SELECTORS.pattern).css('background-image','url('+imagePath+')');};function _onCardMove(track){var radius=track.width/2;var center={x:track.x,y:track.y};polygonMap.points.forEach(function(point,i){if(_detectPointInCircle(point,radius,center)){$(polygonMap.paths[i]).attr('class',CLASSES.polygon+' '+CLASSES.polygonHidden);}else{$(polygonMap.paths[i]).attr('class',CLASSES.polygon);}});}function _detectPointInCircle(point,radius,center){var xp=point.x;var yp=point.y;var xc=center.x;var yc=center.y;var d=radius*radius;var isInside=Math.pow(xp-xc,2)+Math.pow(yp-yc,2)<=d;return isInside;};return{init:init};})(window);window.onload=demo.init;
\ No newline at end of file
diff --git a/js/vendors/html5.min.js b/js/vendors/html5.min.js
new file mode 100644
index 0000000000000000000000000000000000000000..28342a8aa0031140f12e8e30d6c0fdfee26f2965
--- /dev/null
+++ b/js/vendors/html5.min.js
@@ -0,0 +1,8 @@
+/*
+ HTML5 Shiv v3.7.0 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
+*/
+(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
+    a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/[\w\-]+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x<style>article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}</style>";
+    c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="<xyz></xyz>";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode||
+    "undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:"3.7.0",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);
+    if(g)return a.createDocumentFragment();for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d<h;d++)c.createElement(e[d]);return c}};l.html5=e;q(f)})(this,document);