From 3b495ecfeff5f82c0503fdc4b82a60a4e501c35b Mon Sep 17 00:00:00 2001 From: Dave Cohen Date: Wed, 26 Jul 2023 19:08:52 -0500 Subject: [PATCH] Updates --- 10-issues-songwriters-face/index.html | 4 +- .../index.html | 4 +- 2020-decade-in-review/index.html | 4 +- .../index.html | 4 +- .../index.html | 4 +- 404.html | 2 +- 404/index.html | 2 +- 5-dysfunctions-of-a-band/index.html | 4 +- about-songmind-studios/index.html | 4 +- about/index.html | 4 +- ...e3928dc3.js => app-aae54d2eda84058ab49f.js | 4 +- ....js.map => app-aae54d2eda84058ab49f.js.map | 2 +- building-my-second-brain/index.html | 47 +++++++++++------- .../index.html | 4 +- chunk-map.json | 2 +- circular-dependencies-bug/index.html | 4 +- code-style-guide/index.html | 4 +- comparing-javascript-test-runners/index.html | 4 +- ...src-pages-index-js-296992e03646ca68cfab.js | 2 - ...src-pages-index-js-ba2f71ffe0ace2c2c83d.js | 2 + ...pages-index-js-ba2f71ffe0ace2c2c83d.js.map | 2 +- ...ges-music-index-js-12306a09d96c193df492.js | 2 + ...music-index-js-12306a09d96c193df492.js.map | 2 +- ...ges-music-index-js-14190e6a44d32a8b3676.js | 2 - ...ges-other-index-js-5cf19c9c5258a07ac857.js | 2 + ...other-index-js-5cf19c9c5258a07ac857.js.map | 2 +- ...ges-other-index-js-d366bf6afdd09c7b518b.js | 2 - ...ages-tech-index-js-27895506d838fb1f5138.js | 2 + ...-tech-index-js-27895506d838fb1f5138.js.map | 2 +- ...ages-tech-index-js-b2fb9efa597e0ce040ae.js | 2 - contact/index.html | 2 +- .../index.html | 4 +- custom-type-checking-isnan/index.html | 4 +- debugging-strategies-checklist/index.html | 4 +- design-patterns-curriculum/index.html | 4 +- design-patterns-intro/index.html | 4 +- git-commit-format-squash/index.html | 4 +- .../index.html | 6 +-- hash-tables-js/index.html | 4 +- .../index.html | 4 +- how-to-squash-commits/index.html | 4 +- index.html | 2 +- intro-to-js-frameworks01/index.html | 4 +- love-hate-immer-js/index.html | 4 +- marketable-programming-skills/index.html | 4 +- .../index.html | 4 +- music/discography/index.html | 2 +- music/index.html | 2 +- music/teaching-resources/index.html | 4 +- now-attending-fullstack/index.html | 4 +- offline-plugin-app-shell-fallback/index.html | 2 +- .../index.html | 4 +- other/index.html | 2 +- page-data/app-data.json | 2 +- .../building-my-second-brain/page-data.json | 2 +- .../page-data.json | 2 +- prepare-for-initial-screens/index.html | 4 +- preparing-demo-for-studio/index.html | 4 +- programming-with-more-ease/index.html | 4 +- python-classes-guess-the-number/index.html | 4 +- reading-list/index.html | 4 +- recruiters-and-junior-devs/index.html | 4 +- recursive-filter-function/index.html | 4 +- reflections-coding-bootcamp/index.html | 4 +- rss.xml | 49 ++++++++++++------- songwriting-and-serendipity/index.html | 4 +- songwriting-simplicity-complexity/index.html | 4 +- songwriting-snippet-challenge/index.html | 4 +- static/d/4156120491.json | 2 +- sw.js | 8 +-- tags/ava/index.html | 2 +- tags/bands/index.html | 2 +- tags/career/index.html | 2 +- tags/coding-bootcamps/index.html | 2 +- tags/composition/index.html | 2 +- tags/computer-science/index.html | 2 +- tags/creativity/index.html | 2 +- tags/design-patterns/index.html | 2 +- tags/electron/index.html | 2 +- tags/gatsbyjs/index.html | 2 +- tags/git/index.html | 2 +- tags/immerjs/index.html | 2 +- tags/immutablejs/index.html | 2 +- tags/index.html | 2 +- tags/javascript/index.html | 2 +- tags/jest/index.html | 2 +- tags/mental-health/index.html | 2 +- tags/mocha/index.html | 2 +- tags/music-education/index.html | 2 +- tags/node/index.html | 2 +- tags/oop/index.html | 2 +- tags/open-source/index.html | 2 +- tags/practicing/index.html | 2 +- tags/productivity/index.html | 2 +- tags/promotion/index.html | 2 +- tags/python/index.html | 2 +- tags/random-music-generators/index.html | 2 +- tags/react/index.html | 2 +- tags/recording/index.html | 2 +- tags/redux/index.html | 2 +- tags/sinon/index.html | 2 +- tags/songwriting/index.html | 2 +- tags/tech-talk/index.html | 2 +- tags/test-runners/index.html | 2 +- tags/testing/index.html | 2 +- tags/typescript/index.html | 2 +- tech-career-resources/index.html | 4 +- .../index.html | 4 +- tech/index.html | 2 +- tech/projects/index.html | 4 +- .../index.html | 4 +- type-check-jsdocs-typescript/index.html | 4 +- using-question-prompter/index.html | 4 +- ...=> webpack-runtime-e9f14361a30f5e19595e.js | 4 +- ...ebpack-runtime-e9f14361a30f5e19595e.js.map | 2 +- webpack.stats.json | 2 +- website-makeover-gatsby/index.html | 4 +- 117 files changed, 227 insertions(+), 205 deletions(-) rename app-e6d974cf9700e3928dc3.js => app-aae54d2eda84058ab49f.js (94%) rename app-e6d974cf9700e3928dc3.js.map => app-aae54d2eda84058ab49f.js.map (99%) delete mode 100644 component---src-pages-index-js-296992e03646ca68cfab.js create mode 100644 component---src-pages-index-js-ba2f71ffe0ace2c2c83d.js rename component---src-pages-index-js-296992e03646ca68cfab.js.map => component---src-pages-index-js-ba2f71ffe0ace2c2c83d.js.map (99%) create mode 100644 component---src-pages-music-index-js-12306a09d96c193df492.js rename component---src-pages-music-index-js-14190e6a44d32a8b3676.js.map => component---src-pages-music-index-js-12306a09d96c193df492.js.map (99%) delete mode 100644 component---src-pages-music-index-js-14190e6a44d32a8b3676.js create mode 100644 component---src-pages-other-index-js-5cf19c9c5258a07ac857.js rename component---src-pages-other-index-js-d366bf6afdd09c7b518b.js.map => component---src-pages-other-index-js-5cf19c9c5258a07ac857.js.map (99%) delete mode 100644 component---src-pages-other-index-js-d366bf6afdd09c7b518b.js create mode 100644 component---src-pages-tech-index-js-27895506d838fb1f5138.js rename component---src-pages-tech-index-js-b2fb9efa597e0ce040ae.js.map => component---src-pages-tech-index-js-27895506d838fb1f5138.js.map (99%) delete mode 100644 component---src-pages-tech-index-js-b2fb9efa597e0ce040ae.js rename webpack-runtime-a80e0e5c3c6ab082d7ca.js => webpack-runtime-e9f14361a30f5e19595e.js (90%) rename webpack-runtime-a80e0e5c3c6ab082d7ca.js.map => webpack-runtime-e9f14361a30f5e19595e.js.map (97%) diff --git a/10-issues-songwriters-face/index.html b/10-issues-songwriters-face/index.html index f8ff1798..a54b554b 100644 --- a/10-issues-songwriters-face/index.html +++ b/10-issues-songwriters-face/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

10 Issues Songwriters Face

It’s common for songwriters to feel overwhelmed when finishing their songs and getting them ready for their audience. There can be tremendous blocks going from inspiration to song completion. Listed below are the top issues I’ve encountered while interviewing songwriters and students of music who write music.

+

10 Issues Songwriters Face

It’s common for songwriters to feel overwhelmed when finishing their songs and getting them ready for their audience. There can be tremendous blocks going from inspiration to song completion. Listed below are the top issues I’ve encountered while interviewing songwriters and students of music who write music.

1. Not knowing “where to go next” with your song.

This is a major problem for many songwriters. They’ll write one or more good sections but get stuck without knowing what to write next. They’ll put the song on the shelf in hopes that they’ll have a fresh perspective and be able to finish the song when and if they come back to it later. Unfortunately, this can take a long time, multiple years, to get that perspective or new inspiration. This problem is a symptom of a greater problem: not properly diagnosing what the song issues are. Diagnosing means getting very specific about what’s not working and disrupting the flow of the song. There’s a great fear in admitting that certain parts are faulty and many songwriters take it personally. Write down exactly what is bothering you about your song. Use your imagination to come up with a “placeholder” section. It’s better to write placeholders and write a note to yourself saying “Rewrite the bridge” or whatever the specific issue is. Often-times, we’ve forgotten the listener when we’re trying to craft something brilliant. I wrote a post a while back about embracing simplicity and making sure your song is focused on a singular theme. My best recommendation is to make a demo of the song after putting in placeholders so you can hear what’s happening in real-time. Keep the listener in mind while doing so.

2. Feeling like your songs aren’t “good” enough so you don’t finish them.

@@ -395,4 +395,4 @@

8. Not having the means to record their music.

9. Not having a live and online promotion strategy.

Depending on what you want to achieve, there are ways to create an intelligent promotional strategy. If you’re just starting out, you probably want to perform and network with musicians. Playing your music at open mics is a great way to get started. Doing a Google search for ‘open mic (your state)’ will give you an idea what open mics are around you. If you have music recorded that you want to share online, I highly recommend Bandcamp over ReverbNation. Soundcloud was a great platform for sharing your music, but is in decline due to strange business practices. If you make a simple business card, you can point people to your websites at your live performances. When you (and possibly your band) are ready for more serious gig opportunities, the promotional strategy gets a little more intense. You’ll want to have an email list, a website, and CDs and merchandise to sell at your shows. Download cards are an excellent option for promoting your single before your full album is released.

10. Having a lack of faith in your abilities to make money with your music.

-

It’s easy to feel crushed under the weight of giants. You might ask “who wants to hear another original singer-songwriter?” I believe that any contribution to original art is valuable. Never belittle your desire to communicate something with your music. Your style is unique and your message will be meaningful to someone. An excellent resource in the existential music crisis department is the book Effortless Mastery. It might just be that you haven’t found your place yet. If your lyrics aren’t coming together, maybe you should team up with a lyricist (consider the story of Elton John). Maybe writing instrumental music for soundtracks could be your thing! Even though it’s getting more competitive for live musicians, if you become exceptional, there’s no way you can’t succeed.

\ No newline at end of file +

It’s easy to feel crushed under the weight of giants. You might ask “who wants to hear another original singer-songwriter?” I believe that any contribution to original art is valuable. Never belittle your desire to communicate something with your music. Your style is unique and your message will be meaningful to someone. An excellent resource in the existential music crisis department is the book Effortless Mastery. It might just be that you haven’t found your place yet. If your lyrics aren’t coming together, maybe you should team up with a lyricist (consider the story of Elton John). Maybe writing instrumental music for soundtracks could be your thing! Even though it’s getting more competitive for live musicians, if you become exceptional, there’s no way you can’t succeed.

\ No newline at end of file diff --git a/2020-01-27-random-music-generators-news/index.html b/2020-01-27-random-music-generators-news/index.html index ac9b9c19..cd17b119 100644 --- a/2020-01-27-random-music-generators-news/index.html +++ b/2020-01-27-random-music-generators-news/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

Random Music Generators News 2020-01-27

New in 1.1.0

+
\ No newline at end of file +

Random Music Generators

\ No newline at end of file diff --git a/2020-decade-in-review/index.html b/2020-decade-in-review/index.html index 9186ad91..de2cc453 100644 --- a/2020-decade-in-review/index.html +++ b/2020-decade-in-review/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

2020 Resolutions and Reviewing the Decade

I really enjoy reflecting on the past year during the holidays. If I get a chance to do this, I come up with New Years resolutions afterwards. Some years I go through a somewhat involved process of going through my journal entries and coming up with the best realizations.

+

2020 Resolutions and Reviewing the Decade

I really enjoy reflecting on the past year during the holidays. If I get a chance to do this, I come up with New Years resolutions afterwards. Some years I go through a somewhat involved process of going through my journal entries and coming up with the best realizations.

This year, my girlfriend wanted to try Marie Forleo’s recommendation of reviewing the past decade. We went through the exercises together and shared a majority of our writings with each other. During the process I realized that it’s been quite a formative decade!

The 2010s

    @@ -387,4 +387,4 @@

    2020 Resolutions (and beyond)

These exercises are really worth doing

During the process of working on these exercises, it dawned on me just how awesome it would’ve been if I had set up these guideposts for myself in 2010.

-

I can’t recommend doing these exercises enough. Check them out 👉 https://www.marieforleo.com/2019/12/decade-in-review-10-year-plan/

\ No newline at end of file +

I can’t recommend doing these exercises enough. Check them out 👉 https://www.marieforleo.com/2019/12/decade-in-review-10-year-plan/

\ No newline at end of file diff --git a/2021-01-30-random-music-generators-news/index.html b/2021-01-30-random-music-generators-news/index.html index 82c2d95e..25afb184 100644 --- a/2021-01-30-random-music-generators-news/index.html +++ b/2021-01-30-random-music-generators-news/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

Random Music Generators News 2021-01-30

New in 1.3.1

+
\ No newline at end of file +

Contact me

\ No newline at end of file diff --git a/2022-12-05-random-music-generators-news/index.html b/2022-12-05-random-music-generators-news/index.html index 3be9dd77..1c341dfa 100644 --- a/2022-12-05-random-music-generators-news/index.html +++ b/2022-12-05-random-music-generators-news/index.html @@ -368,5 +368,5 @@ domain: 'scraggo.com' }); woopra.track(); -
\ No newline at end of file +
\ No newline at end of file diff --git a/404.html b/404.html index 10d2a106..bbd84af1 100644 --- a/404.html +++ b/404.html @@ -368,4 +368,4 @@ domain: 'scraggo.com' }); woopra.track(); -

Not Found

The content you're looking for is not at this url. It may have been moved.

Please visit one of the pages above and contact the site administrator if you still can't find what you're looking for.

\ No newline at end of file +

Not Found

The content you're looking for is not at this url. It may have been moved.

Please visit one of the pages above and contact the site administrator if you still can't find what you're looking for.

\ No newline at end of file diff --git a/404/index.html b/404/index.html index d195155c..f05397f1 100644 --- a/404/index.html +++ b/404/index.html @@ -368,4 +368,4 @@ domain: 'scraggo.com' }); woopra.track(); -

Not Found

The content you're looking for is not at this url. It may have been moved.

Please visit one of the pages above and contact the site administrator if you still can't find what you're looking for.

\ No newline at end of file +

Not Found

The content you're looking for is not at this url. It may have been moved.

Please visit one of the pages above and contact the site administrator if you still can't find what you're looking for.

\ No newline at end of file diff --git a/5-dysfunctions-of-a-band/index.html b/5-dysfunctions-of-a-band/index.html index 679cb13c..cccaf148 100644 --- a/5-dysfunctions-of-a-band/index.html +++ b/5-dysfunctions-of-a-band/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

The Five Dysfunctions of a Band

The Five Dysfunctions of a Team (by Patrick Lencioni) is a highly recommended book for anyone that works with other people. (So - almost everyone!) The five dysfunctions are set up in a hierarchy. The bottom of the pyramid below shows that trust is the foundation and all else moves up from there.

+

The Five Dysfunctions of a Band

The Five Dysfunctions of a Team (by Patrick Lencioni) is a highly recommended book for anyone that works with other people. (So - almost everyone!) The five dysfunctions are set up in a hierarchy. The bottom of the pyramid below shows that trust is the foundation and all else moves up from there.

five-dysfunctions-pyramid

The book opens with a story that brings the main five principles / dysfunctions to life. At first, the principles may seem like trite common sense, but after some exploration, you’ll be able to see how time and time again teams fail because they haven’t mastered these time-honored truths.

The wisdom in this book can be applied to any relationship: with yourself, significant other, family, etc. My purpose here is to demonstrate how the principles in this book apply to bands by sharing some of my experiences. (Later, I’ll apply them to the teacher-student relationship in music education.)

@@ -429,4 +429,4 @@

Dysfunction 5: Lack of Results and Ego

  • The lead guitarist dissed one of the other members while talking to a fan in the audience.
  • The lead singer chose 3 songs (which he liked) that were inappropriate for the dance party we were playing.
  • -

    Playing music with others is an experience without match. You can learn a lot by being in a band, even if the teamwork is sub-par. Most of us have dreams we long to achieve and we have to temper that with the good of the band. If you can keep your ego in check, it will lead to more satisfying musical experiences. Cheers to improving your relationships with your current and future band members. Happy playing!

    \ No newline at end of file +

    Playing music with others is an experience without match. You can learn a lot by being in a band, even if the teamwork is sub-par. Most of us have dreams we long to achieve and we have to temper that with the good of the band. If you can keep your ego in check, it will lead to more satisfying musical experiences. Cheers to improving your relationships with your current and future band members. Happy playing!

    \ No newline at end of file diff --git a/about-songmind-studios/index.html b/about-songmind-studios/index.html index 908a94d2..d6954ac0 100644 --- a/about-songmind-studios/index.html +++ b/about-songmind-studios/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

    About Songmind Studios

    In 2016, I decided to start my own brand of music education. I took the role of music coach, agent, and collaborator. The student and I would write and record music together to integrate learning and creativity in a holistic way.

    +

    About Songmind Studios

    In 2016, I decided to start my own brand of music education. I took the role of music coach, agent, and collaborator. The student and I would write and record music together to integrate learning and creativity in a holistic way.

    While I’ve suspended these services for the foreseeable future, I’m posting are the core concepts and aims of Songmind Studios. I’ll eventually make all my teaching resources available on this site.

    Why I created SongMind Studios

    I’ve met so many people that have been unable to finish their songs or want to be much further along in their guitar and general musical abilities. They’ve tried taking e-courses, watching free videos, and studying with teachers that don’t seem to help. What I find sets great programs and teachers apart is their ability to help students learn to generate and refine spontaneously created music.

    @@ -469,4 +469,4 @@

    Discover even more about yourself in an audition unlike any you’ve ever ha Step 4: Performance - You perform a piece of music that demonstrates your proficiency on your instrument.
    Step 5: Studio Test - You are given the task of laying down a rhythm and lead part in a studio recording setting.
    Step 6: Assignment - You will be given the task of completing a surprise assignment in 48 hours or less

    -

    Many have found the insights gained from the insight audition alone to be a transformative musical experience.

    \ No newline at end of file +

    Many have found the insights gained from the insight audition alone to be a transformative musical experience.

    \ No newline at end of file diff --git a/about/index.html b/about/index.html index 5e64c30c..c7f569b8 100644 --- a/about/index.html +++ b/about/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

    About Dave Cohen

    +

    About Dave Cohen

    I'm a programmer, musician, writer, and educator. I'm fascinated with technology and its intersection with the creative process.

    Software Engineering

    I'm a full-stack developer who specializes in JavaScript, TypeScript, Node, and React. I enjoy building applications with a focus on great user experience - be it web, mobile, command-line, or desktop applications. My favorite technologies include NextJS, Gatsby, Electron, Web Audio APIs (ToneJS), SCSS, Express, Sequelize, and related testing frameworks. I'm also capable in utilizing deployment technologies (Github Actions, Gitlab Pipelines), AWS (Lambda, S3, ECS, etc), Python, and SQL (PostgreSQL).

    @@ -387,4 +387,4 @@

    Music

  • Music Blog
  • Other interests

    -

    I'm interested in psychology, philosophy, productivity, comedy, and more. Find my writings here. Find my reading list here.

    \ No newline at end of file +

    I'm interested in psychology, philosophy, productivity, comedy, and more. Find my writings here. Find my reading list here.

    \ No newline at end of file diff --git a/app-e6d974cf9700e3928dc3.js b/app-aae54d2eda84058ab49f.js similarity index 94% rename from app-e6d974cf9700e3928dc3.js rename to app-aae54d2eda84058ab49f.js index 42974b15..91e680ab 100644 --- a/app-e6d974cf9700e3928dc3.js +++ b/app-aae54d2eda84058ab49f.js @@ -1,2 +1,2 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{"+ZDr":function(t,e,n){"use strict";n("2Spj"),n("0l/t"),n("8+KV"),n("pIFo");var r=n("TqRt");e.__esModule=!0,e.withPrefix=h,e.withAssetPrefix=function(t){return[""].concat([t.replace(/^\//,"")]).join("/")},e.navigateTo=e.replace=e.push=e.navigate=e.default=void 0;var o=r(n("8OQS")),i=r(n("pVnL")),a=r(n("PJYZ")),c=r(n("VbXa")),u=r(n("lSNA")),s=r(n("17x9")),l=r(n("q1tI")),f=n("YwZP"),p=n("cu4x");function h(t){return function(t){return t.replace(/\/+/g,"/")}(["",t].join("/"))}e.parsePath=p.parsePath;var d={activeClassName:s.default.string,activeStyle:s.default.object,partiallyActive:s.default.bool},v=function(t){function e(e){var n;n=t.call(this,e)||this,(0,u.default)((0,a.default)(n),"defaultGetProps",(function(t){var e=t.isPartiallyCurrent,r=t.isCurrent;return(n.props.partiallyActive?e:r)?{className:[n.props.className,n.props.activeClassName].filter(Boolean).join(" "),style:(0,i.default)({},n.props.style,{},n.props.activeStyle)}:null}));var r=!1;return"undefined"!=typeof window&&window.IntersectionObserver&&(r=!0),n.state={IOSupported:r},n.handleRef=n.handleRef.bind((0,a.default)(n)),n}(0,c.default)(e,t);var n=e.prototype;return n.componentDidUpdate=function(t,e){this.props.to===t.to||this.state.IOSupported||___loader.enqueue((0,p.parsePath)(this.props.to).pathname)},n.componentDidMount=function(){this.state.IOSupported||___loader.enqueue((0,p.parsePath)(this.props.to).pathname)},n.componentWillUnmount=function(){if(this.io){var t=this.io,e=t.instance,n=t.el;e.unobserve(n),e.disconnect()}},n.handleRef=function(t){var e,n,r,o=this;this.props.innerRef&&this.props.innerRef.hasOwnProperty("current")?this.props.innerRef.current=t:this.props.innerRef&&this.props.innerRef(t),this.state.IOSupported&&t&&(this.io=(e=t,n=function(){___loader.enqueue((0,p.parsePath)(o.props.to).pathname)},(r=new window.IntersectionObserver((function(t){t.forEach((function(t){e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(r.unobserve(e),r.disconnect(),n())}))}))).observe(e),{instance:r,el:e}))},n.render=function(){var t=this,e=this.props,n=e.to,r=e.getProps,a=void 0===r?this.defaultGetProps:r,c=e.onClick,u=e.onMouseEnter,s=(e.activeClassName,e.activeStyle,e.innerRef,e.partiallyActive,e.state),d=e.replace,v=(0,o.default)(e,["to","getProps","onClick","onMouseEnter","activeClassName","activeStyle","innerRef","partiallyActive","state","replace"]);var g=h(n);return l.default.createElement(f.Link,(0,i.default)({to:g,state:s,getProps:a,innerRef:this.handleRef,onMouseEnter:function(t){u&&u(t),___loader.hovering((0,p.parsePath)(n).pathname)},onClick:function(e){return c&&c(e),0!==e.button||t.props.target||e.defaultPrevented||e.metaKey||e.altKey||e.ctrlKey||e.shiftKey||(e.preventDefault(),y(n,{state:s,replace:d})),!0}},v))},e}(l.default.Component);v.propTypes=(0,i.default)({},d,{onClick:s.default.func,to:s.default.string.isRequired,replace:s.default.bool});var g=function(t,e,n){return console.warn('The "'+t+'" method is now deprecated and will be removed in Gatsby v'+n+'. Please use "'+e+'" instead.')},m=l.default.forwardRef((function(t,e){return l.default.createElement(v,(0,i.default)({innerRef:e},t))}));e.default=m;var y=function(t,e){window.___navigate(h(t),e)};e.navigate=y;var w=function(t){g("push","navigate",3),window.___push(h(t))};e.push=w;e.replace=function(t){g("replace","navigate",3),window.___replace(h(t))};e.navigateTo=function(t){return g("navigateTo","navigate",3),w(t)}},"+i7v":function(t,e,n){"use strict";var r=n("TqRt");e.__esModule=!0,e.default=function(t,e){var n=(0,o.default)(t);if(void 0===e)return n?"pageXOffset"in n?n.pageXOffset:n.document.documentElement.scrollLeft:t.scrollLeft;n?n.scrollTo(e,"pageYOffset"in n?n.pageYOffset:n.document.documentElement.scrollTop):t.scrollLeft=e};var o=r(n("8Y+z"));t.exports=e.default},"+lvF":function(t,e,n){t.exports=n("VTer")("native-function-to-string",Function.toString)},"+rLv":function(t,e,n){var r=n("dyZX").document;t.exports=r&&r.documentElement},"/SS/":function(t,e,n){var r=n("XKFU");r(r.S,"Object",{setPrototypeOf:n("i5dc").set})},"/e88":function(t,e){t.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},"0/R4":function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},"0l/t":function(t,e,n){"use strict";var r=n("XKFU"),o=n("CkkT")(2);r(r.P+r.F*!n("LyE8")([].filter,!0),"Array",{filter:function(t){return o(this,t,arguments[1])}})},"0sh+":function(t,e,n){var r=n("quPj"),o=n("vhPU");t.exports=function(t,e,n){if(r(e))throw TypeError("String#"+n+" doesn't accept regex!");return String(o(t))}},"16Al":function(t,e,n){"use strict";n("f3/d");var r=n("WbBG");function o(){}function i(){}i.resetWarningCache=o,t.exports=function(){function t(t,e,n,o,i,a){if(a!==r){var c=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw c.name="Invariant Violation",c}}function e(){return t}t.isRequired=t;var n={array:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,elementType:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:i,resetWarningCache:o};return n.PropTypes=n,n}},"17x9":function(t,e,n){t.exports=n("16Al")()},"1MBn":function(t,e,n){var r=n("DVgA"),o=n("JiEa"),i=n("UqcF");t.exports=function(t){var e=r(t),n=o.f;if(n)for(var a,c=n(t),u=i.f,s=0;c.length>s;)u.call(t,a=c[s++])&&e.push(a);return e}},"1TsA":function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},"1fHE":function(t,e,n){"use strict";e.__esModule=!0,e.default=void 0;var r=function(){function t(){}var e=t.prototype;return e.read=function(t,e){var n=this.getStateKey(t,e);try{var r=window.sessionStorage.getItem(n);return JSON.parse(r)}catch(o){return window&&window.___GATSBY_REACT_ROUTER_SCROLL&&window.___GATSBY_REACT_ROUTER_SCROLL[n]?window.___GATSBY_REACT_ROUTER_SCROLL[n]:{}}},e.save=function(t,e,n){var r=this.getStateKey(t,e),o=JSON.stringify(n);try{window.sessionStorage.setItem(r,o)}catch(i){window&&window.___GATSBY_REACT_ROUTER_SCROLL?window.___GATSBY_REACT_ROUTER_SCROLL[r]=JSON.parse(o):(window.___GATSBY_REACT_ROUTER_SCROLL={},window.___GATSBY_REACT_ROUTER_SCROLL[r]=JSON.parse(o))}},e.getStateKey=function(t,e){var n="@@scroll|"+(t.key||t.pathname);return null==e?n:n+"|"+e},t}();e.default=r},"25dN":function(t,e,n){var r=n("XKFU");r(r.S,"Object",{is:n("g6HL")})},"2OiF":function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},"2Spj":function(t,e,n){var r=n("XKFU");r(r.P,"Function",{bind:n("8MEG")})},"3Lyj":function(t,e,n){var r=n("KroJ");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},"444f":function(t,e,n){"use strict";var r=n("TqRt");e.__esModule=!0,e.default=void 0;var o=r(n("PJYZ")),i=r(n("VbXa")),a=r(n("lSNA")),c=r(n("q1tI")),u=r(n("LHMV")),s=r(n("17x9")),l=n("9Xx/"),f=r(n("1fHE")),p={shouldUpdateScroll:s.default.func,children:s.default.element.isRequired,location:s.default.object.isRequired},h={scrollBehavior:s.default.object.isRequired},d=function(t){function e(e,n){var r;return r=t.call(this,e,n)||this,(0,a.default)((0,o.default)(r),"shouldUpdateScroll",(function(t,e){var n=r.props.shouldUpdateScroll;return!n||n.call(r.scrollBehavior,t,e)})),(0,a.default)((0,o.default)(r),"registerElement",(function(t,e,n){r.scrollBehavior.registerElement(t,e,n,r.getRouterProps())})),(0,a.default)((0,o.default)(r),"unregisterElement",(function(t){r.scrollBehavior.unregisterElement(t)})),r.scrollBehavior=new u.default({addTransitionHook:l.globalHistory.listen,stateStorage:new f.default,getCurrentLocation:function(){return r.props.location},shouldUpdateScroll:r.shouldUpdateScroll}),r}(0,i.default)(e,t);var n=e.prototype;return n.getChildContext=function(){return{scrollBehavior:this}},n.componentDidUpdate=function(t){var e=this.props.location;if(e!==t.location){var n={location:t.location};window.__navigatingToLink?e.action="PUSH":e.action="POP",this.scrollBehavior.updateScroll(n,{history:l.globalHistory,location:e})}},n.componentWillUnmount=function(){this.scrollBehavior.stop()},n.getRouterProps=function(){return{location:this.props.location,history:l.globalHistory}},n.render=function(){return c.default.Children.only(this.props.children)},e}(c.default.Component);d.propTypes=p,d.childContextTypes=h;var v=d;e.default=v},"4LiD":function(t,e,n){"use strict";var r=n("dyZX"),o=n("XKFU"),i=n("KroJ"),a=n("3Lyj"),c=n("Z6vF"),u=n("SlkY"),s=n("9gX7"),l=n("0/R4"),f=n("eeVq"),p=n("XMVh"),h=n("fyDq"),d=n("Xbzi");t.exports=function(t,e,n,v,g,m){var y=r[t],w=y,b=g?"set":"add",P=w&&w.prototype,_={},S=function(t){var e=P[t];i(P,t,"delete"==t?function(t){return!(m&&!l(t))&&e.call(this,0===t?0:t)}:"has"==t?function(t){return!(m&&!l(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return m&&!l(t)?void 0:e.call(this,0===t?0:t)}:"add"==t?function(t){return e.call(this,0===t?0:t),this}:function(t,n){return e.call(this,0===t?0:t,n),this})};if("function"==typeof w&&(m||P.forEach&&!f((function(){(new w).entries().next()})))){var x=new w,O=x[b](m?{}:-0,1)!=x,E=f((function(){x.has(1)})),j=p((function(t){new w(t)})),R=!m&&f((function(){for(var t=new w,e=5;e--;)t[b](e,e);return!t.has(-0)}));j||((w=e((function(e,n){s(e,w,t);var r=d(new y,e,w);return null!=n&&u(n,g,r[b],r),r}))).prototype=P,P.constructor=w),(E||R)&&(S("delete"),S("has"),g&&S("get")),(R||O)&&S(b),m&&P.clear&&delete P.clear}else w=v.getConstructor(e,t,g,b),a(w.prototype,n),c.NEED=!0;return h(w,t),_[t]=w,o(o.G+o.W+o.F*(w!=y),_),m||v.setStrong(w,t,g),w}},"4R4u":function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},"5yr3":function(t,e,n){"use strict";n("bWfx"),n("V+eJ"),n("hHhE");var r=function(t){return t=t||Object.create(null),{on:function(e,n){(t[e]||(t[e]=[])).push(n)},off:function(e,n){t[e]&&t[e].splice(t[e].indexOf(n)>>>0,1)},emit:function(e,n){(t[e]||[]).slice().map((function(t){t(n)})),(t["*"]||[]).slice().map((function(t){t(e,n)}))}}}();e.a=r},"69bn":function(t,e,n){var r=n("y3w9"),o=n("2OiF"),i=n("K0xU")("species");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},"6DQo":function(t,e,n){"use strict";n("pIFo");t.exports=function(){}},"6FMO":function(t,e,n){var r=n("0/R4"),o=n("EWmC"),i=n("K0xU")("species");t.exports=function(t){var e;return o(t)&&("function"!=typeof(e=t.constructor)||e!==Array&&!o(e.prototype)||(e=void 0),r(e)&&null===(e=e[i])&&(e=void 0)),void 0===e?Array:e}},"7hJ6":function(t,e,n){"use strict";var r=n("TqRt"),o=r(n("444f")),i=r(n("IVHb"));e.ScrollContainer=i.default,e.ScrollContext=o.default},"8+KV":function(t,e,n){"use strict";var r=n("XKFU"),o=n("CkkT")(0),i=n("LyE8")([].forEach,!0);r(r.P+r.F*!i,"Array",{forEach:function(t){return o(this,t,arguments[1])}})},"8MEG":function(t,e,n){"use strict";var r=n("2OiF"),o=n("0/R4"),i=n("MfQN"),a=[].slice,c={},u=function(t,e,n){if(!(e in c)){for(var r=[],o=0;o=0||(o[n]=t[n]);return o}},"8Y+z":function(t,e,n){"use strict";e.__esModule=!0,e.default=function(t){return t===t.window?t:9===t.nodeType&&(t.defaultView||t.parentWindow)},t.exports=e.default},"8a7r":function(t,e,n){"use strict";var r=n("hswa"),o=n("RjD/");t.exports=function(t,e,n){e in t?r.f(t,e,o(0,n)):t[e]=n}},"91GP":function(t,e,n){var r=n("XKFU");r(r.S+r.F,"Object",{assign:n("czNK")})},"94VI":function(t,e){e.polyfill=function(t){return t}},"9AAn":function(t,e,n){"use strict";var r=n("wmvG"),o=n("s5qY");t.exports=n("4LiD")("Map",(function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}}),{get:function(t){var e=r.getEntry(o(this,"Map"),t);return e&&e.v},set:function(t,e){return r.def(o(this,"Map"),0===t?0:t,e)}},r,!0)},"9VmF":function(t,e,n){"use strict";var r=n("XKFU"),o=n("ne8i"),i=n("0sh+"),a="".startsWith;r(r.P+r.F*n("UUeW")("startsWith"),"String",{startsWith:function(t){var e=i(this,t,"startsWith"),n=o(Math.min(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return a?a.call(e,r,n):e.slice(n,n+r.length)===r}})},"9Xx/":function(t,e,n){"use strict";n.r(e),n.d(e,"globalHistory",(function(){return u})),n.d(e,"navigate",(function(){return s})),n.d(e,"createHistory",(function(){return i})),n.d(e,"createMemorySource",(function(){return a}));n("KKXr"),n("8+KV"),n("VRzm"),n("Btvt"),n("eM6i"),n("pIFo"),n("0l/t"),n("91GP");var r=Object.assign||function(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},s=u.state,l=u.replace,f=void 0!==l&&l;s=r({},s,{key:Date.now()+""});try{a||f?t.history.replaceState(s,null,e):t.history.pushState(s,null,e)}catch(h){t.location[f?"replace":"assign"](e)}i=o(t),a=!0;var p=new Promise((function(t){return c=t}));return n.forEach((function(t){return t({location:i,action:"PUSH"})})),p}}},a=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/",e=0,n=[{pathname:t,search:""}],r=[];return{get location(){return n[e]},addEventListener:function(t,e){},removeEventListener:function(t,e){},history:{get entries(){return n},get index(){return e},get state(){return r[e]},pushState:function(t,o,i){var a=i.split("?"),c=a[0],u=a[1],s=void 0===u?"":u;e++,n.push({pathname:c,search:s}),r.push(t)},replaceState:function(t,o,i){var a=i.split("?"),c=a[0],u=a[1],s=void 0===u?"":u;n[e]={pathname:c,search:s},r[e]=t}}}},c=!("undefined"==typeof window||!window.document||!window.document.createElement),u=i(c?window:a()),s=u.navigate},"9gX7":function(t,e){t.exports=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+": incorrect invocation!");return t}},"9hXx":function(t,e,n){"use strict";n("9VmF"),n("dRSK"),e.__esModule=!0,e.default=void 0;e.default=function(t,e){if(!Array.isArray(e))return"manifest.webmanifest";var n=e.find((function(e){return t.startsWith(e.start_url)}));return n?"manifest_"+n.lang+".webmanifest":"manifest.webmanifest"}},A5AN:function(t,e,n){"use strict";var r=n("AvRE")(!0);t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},Afnz:function(t,e,n){"use strict";var r=n("LQAc"),o=n("XKFU"),i=n("KroJ"),a=n("Mukb"),c=n("hPIQ"),u=n("QaDb"),s=n("fyDq"),l=n("OP3Y"),f=n("K0xU")("iterator"),p=!([].keys&&"next"in[].keys()),h=function(){return this};t.exports=function(t,e,n,d,v,g,m){u(n,e,d);var y,w,b,P=function(t){if(!p&&t in O)return O[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},_=e+" Iterator",S="values"==v,x=!1,O=t.prototype,E=O[f]||O["@@iterator"]||v&&O[v],j=E||P(v),R=v?S?P("entries"):j:void 0,k="Array"==e&&O.entries||E;if(k&&(b=l(k.call(new t)))!==Object.prototype&&b.next&&(s(b,_,!0),r||"function"==typeof b[f]||a(b,f,h)),S&&E&&"values"!==E.name&&(x=!0,j=function(){return E.call(this)}),r&&!m||!p&&!x&&O[f]||a(O,f,j),c[e]=j,c[_]=h,v)if(y={values:S?j:P("values"),keys:g?j:P("keys"),entries:R},m)for(w in y)w in O||i(O,w,y[w]);else o(o.P+o.F*(p||x),e,y);return y}},AvRE:function(t,e,n){var r=n("RYi7"),o=n("vhPU");t.exports=function(t){return function(e,n){var i,a,c=String(o(e)),u=r(n),s=c.length;return u<0||u>=s?t?"":void 0:(i=c.charCodeAt(u))<55296||i>56319||u+1===s||(a=c.charCodeAt(u+1))<56320||a>57343?t?c.charAt(u):i:t?c.slice(u,u+2):a-56320+(i-55296<<10)+65536}}},Bp9Y:function(t,e,n){"use strict";e.__esModule=!0,e.default=void 0;var r=!("undefined"==typeof window||!window.document||!window.document.createElement);e.default=r,t.exports=e.default},Btvt:function(t,e,n){"use strict";var r=n("I8a+"),o={};o[n("K0xU")("toStringTag")]="z",o+""!="[object z]"&&n("KroJ")(Object.prototype,"toString",(function(){return"[object "+r(this)+"]"}),!0)},"C/va":function(t,e,n){"use strict";var r=n("y3w9");t.exports=function(){var t=r(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},CkkT:function(t,e,n){var r=n("m0Pp"),o=n("Ymqv"),i=n("S/j/"),a=n("ne8i"),c=n("zRwo");t.exports=function(t,e){var n=1==t,u=2==t,s=3==t,l=4==t,f=6==t,p=5==t||f,h=e||c;return function(e,c,d){for(var v,g,m=i(e),y=o(m),w=r(c,d,3),b=a(y.length),P=0,_=n?h(e,b):u?h(e,0):void 0;b>P;P++)if((p||P in y)&&(g=w(v=y[P],P,m),t))if(n)_[P]=g;else if(g)switch(t){case 3:return!0;case 5:return v;case 6:return P;case 2:_.push(v)}else if(l)return!1;return f?-1:s||l?l:_}}},DNiP:function(t,e,n){"use strict";var r=n("XKFU"),o=n("eyMr");r(r.P+r.F*!n("LyE8")([].reduce,!0),"Array",{reduce:function(t){return o(this,t,arguments.length,arguments[1],!1)}})},DVgA:function(t,e,n){var r=n("zhAb"),o=n("4R4u");t.exports=Object.keys||function(t){return r(t,o)}},EK0E:function(t,e,n){"use strict";var r,o=n("dyZX"),i=n("CkkT")(0),a=n("KroJ"),c=n("Z6vF"),u=n("czNK"),s=n("ZD67"),l=n("0/R4"),f=n("s5qY"),p=n("s5qY"),h=!o.ActiveXObject&&"ActiveXObject"in o,d=c.getWeak,v=Object.isExtensible,g=s.ufstore,m=function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},y={get:function(t){if(l(t)){var e=d(t);return!0===e?g(f(this,"WeakMap")).get(t):e?e[this._i]:void 0}},set:function(t,e){return s.def(f(this,"WeakMap"),t,e)}},w=t.exports=n("4LiD")("WeakMap",m,y,s,!0,!0);p&&h&&(u((r=s.getConstructor(m,"WeakMap")).prototype,y),c.NEED=!0,i(["delete","has","get","set"],(function(t){var e=w.prototype,n=e[t];a(e,t,(function(e,o){if(l(e)&&!v(e)){this._f||(this._f=new r);var i=this._f[t](e,o);return"set"==t?this:i}return n.call(this,e,o)}))})))},EWmC:function(t,e,n){var r=n("LZWt");t.exports=Array.isArray||function(t){return"Array"==r(t)}},EemH:function(t,e,n){var r=n("UqcF"),o=n("RjD/"),i=n("aCFj"),a=n("apmT"),c=n("aagx"),u=n("xpql"),s=Object.getOwnPropertyDescriptor;e.f=n("nh4g")?s:function(t,e){if(t=i(t),e=a(e,!0),u)try{return s(t,e)}catch(n){}if(c(t,e))return o(!r.f.call(t,e),t[e])}},FJW5:function(t,e,n){var r=n("hswa"),o=n("y3w9"),i=n("DVgA");t.exports=n("nh4g")?Object.defineProperties:function(t,e){o(t);for(var n,a=i(e),c=a.length,u=0;c>u;)r.f(t,n=a[u++],e[n]);return t}},GZEu:function(t,e,n){var r,o,i,a=n("m0Pp"),c=n("MfQN"),u=n("+rLv"),s=n("Iw71"),l=n("dyZX"),f=l.process,p=l.setImmediate,h=l.clearImmediate,d=l.MessageChannel,v=l.Dispatch,g=0,m={},y=function(){var t=+this;if(m.hasOwnProperty(t)){var e=m[t];delete m[t],e()}},w=function(t){y.call(t.data)};p&&h||(p=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return m[++g]=function(){c("function"==typeof t?t:Function(t),e)},r(g),g},h=function(t){delete m[t]},"process"==n("LZWt")(f)?r=function(t){f.nextTick(a(y,t,1))}:v&&v.now?r=function(t){v.now(a(y,t,1))}:d?(i=(o=new d).port2,o.port1.onmessage=w,r=a(i.postMessage,i,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(t){l.postMessage(t+"","*")},l.addEventListener("message",w,!1)):r="onreadystatechange"in s("script")?function(t){u.appendChild(s("script")).onreadystatechange=function(){u.removeChild(this),y.call(t)}}:function(t){setTimeout(a(y,t,1),0)}),t.exports={set:p,clear:h}},GddB:function(t,e,n){"use strict";n.r(e),n.d(e,"onRouteUpdate",(function(){return r}));n("xMo/"),n("qHiR"),n("t+Ps");var r=function(t,e){t.location;"undefined"!=typeof woopra&&(e&&e.debug&&console.log("woopra.track() called"),woopra.track())}},H6hf:function(t,e,n){var r=n("y3w9");t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},"HAE/":function(t,e,n){var r=n("XKFU");r(r.S+r.F*!n("nh4g"),"Object",{defineProperty:n("hswa").f})},HEwt:function(t,e,n){"use strict";var r=n("m0Pp"),o=n("XKFU"),i=n("S/j/"),a=n("H6hf"),c=n("M6Qj"),u=n("ne8i"),s=n("8a7r"),l=n("J+6e");o(o.S+o.F*!n("XMVh")((function(t){Array.from(t)})),"Array",{from:function(t){var e,n,o,f,p=i(t),h="function"==typeof this?this:Array,d=arguments.length,v=d>1?arguments[1]:void 0,g=void 0!==v,m=0,y=l(p);if(g&&(v=r(v,d>2?arguments[2]:void 0,2)),null==y||h==Array&&c(y))for(n=new h(e=u(p.length));e>m;m++)s(n,m,g?v(p[m],m):p[m]);else for(f=y.call(p),n=new h;!(o=f.next()).done;m++)s(n,m,g?a(f,v,[o.value,m],!0):o.value);return n.length=m,n}})},"I8a+":function(t,e,n){var r=n("LZWt"),o=n("K0xU")("toStringTag"),i="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),o))?n:i?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},IOVJ:function(t,e,n){"use strict";n("91GP");var r=n("q1tI"),o=n.n(r),i=n("emEt"),a=n("xtsi");var c=function(t){var e,n;function o(){return t.apply(this,arguments)||this}return n=t,(e=o).prototype=Object.create(n.prototype),e.prototype.constructor=e,e.__proto__=n,o.prototype.render=function(){var t=Object.assign({},this.props,{pathContext:this.props.pageContext}),e=Object(a.apiRunner)("replaceComponentRenderer",{props:this.props,loader:i.publicLoader})[0]||Object(r.createElement)(this.props.pageResources.component,Object.assign({},t,{key:this.props.path||this.props.pageResources.page.path}));return Object(a.apiRunner)("wrapPageElement",{element:e,props:t},e,(function(e){return{element:e.result,props:t}})).pop()},o}(o.a.Component);e.a=c},"IU+Z":function(t,e,n){"use strict";n("sMXx");var r=n("KroJ"),o=n("Mukb"),i=n("eeVq"),a=n("vhPU"),c=n("K0xU"),u=n("Ugos"),s=c("species"),l=!i((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")})),f=function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();t.exports=function(t,e,n){var p=c(t),h=!i((function(){var e={};return e[p]=function(){return 7},7!=""[t](e)})),d=h?!i((function(){var e=!1,n=/a/;return n.exec=function(){return e=!0,null},"split"===t&&(n.constructor={},n.constructor[s]=function(){return n}),n[p](""),!e})):void 0;if(!h||!d||"replace"===t&&!l||"split"===t&&!f){var v=/./[p],g=n(a,p,""[t],(function(t,e,n,r,o){return e.exec===u?h&&!o?{done:!0,value:v.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}})),m=g[0],y=g[1];r(String.prototype,t,m),o(RegExp.prototype,p,2==e?function(t,e){return y.call(t,this,e)}:function(t){return y.call(t,this)})}}},IVHb:function(t,e,n){"use strict";var r=n("TqRt");e.__esModule=!0,e.default=void 0;var o=r(n("PJYZ")),i=r(n("VbXa")),a=r(n("lSNA")),c=r(n("q1tI")),u=r(n("i8i4")),s=r(n("6DQo")),l=r(n("17x9")),f={scrollKey:l.default.string.isRequired,shouldUpdateScroll:l.default.func,children:l.default.element.isRequired},p={scrollBehavior:l.default.object},h=function(t){function e(e,n){var r;return r=t.call(this,e,n)||this,(0,a.default)((0,o.default)(r),"shouldUpdateScroll",(function(t,e){var n=r.props.shouldUpdateScroll;return!n||n.call(r.context.scrollBehavior.scrollBehavior,t,e)})),r.scrollKey=e.scrollKey,r}(0,i.default)(e,t);var n=e.prototype;return n.componentDidMount=function(){this.context.scrollBehavior.registerElement(this.props.scrollKey,u.default.findDOMNode(this),this.shouldUpdateScroll)},n.componentDidUpdate=function(t){(0,s.default)(t.scrollKey===this.props.scrollKey," does not support changing scrollKey.")},n.componentWillUnmount=function(){this.context.scrollBehavior.unregisterElement(this.scrollKey)},n.render=function(){return this.props.children},e}(c.default.Component);h.propTypes=f,h.contextTypes=p;var d=h;e.default=d},Iw71:function(t,e,n){var r=n("0/R4"),o=n("dyZX").document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},"J+6e":function(t,e,n){var r=n("I8a+"),o=n("K0xU")("iterator"),i=n("hPIQ");t.exports=n("g3g5").getIteratorMethod=function(t){if(null!=t)return t[o]||t["@@iterator"]||i[r(t)]}},JiEa:function(t,e){e.f=Object.getOwnPropertySymbols},K0xU:function(t,e,n){var r=n("VTer")("wks"),o=n("ylqs"),i=n("dyZX").Symbol,a="function"==typeof i;(t.exports=function(t){return r[t]||(r[t]=a&&i[t]||(a?i:o)("Symbol."+t))}).store=r},KKXr:function(t,e,n){"use strict";var r=n("quPj"),o=n("y3w9"),i=n("69bn"),a=n("A5AN"),c=n("ne8i"),u=n("Xxuz"),s=n("Ugos"),l=n("eeVq"),f=Math.min,p=[].push,h=!l((function(){RegExp(4294967295,"y")}));n("IU+Z")("split",2,(function(t,e,n,l){var d;return d="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,e){var o=String(this);if(void 0===t&&0===e)return[];if(!r(t))return n.call(o,t,e);for(var i,a,c,u=[],l=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),f=0,h=void 0===e?4294967295:e>>>0,d=new RegExp(t.source,l+"g");(i=s.call(d,o))&&!((a=d.lastIndex)>f&&(u.push(o.slice(f,i.index)),i.length>1&&i.index=h));)d.lastIndex===i.index&&d.lastIndex++;return f===o.length?!c&&d.test("")||u.push(""):u.push(o.slice(f)),u.length>h?u.slice(0,h):u}:"0".split(void 0,0).length?function(t,e){return void 0===t&&0===e?[]:n.call(this,t,e)}:n,[function(n,r){var o=t(this),i=null==n?void 0:n[e];return void 0!==i?i.call(n,o,r):d.call(String(o),n,r)},function(t,e){var r=l(d,t,this,e,d!==n);if(r.done)return r.value;var s=o(t),p=String(this),v=i(s,RegExp),g=s.unicode,m=(s.ignoreCase?"i":"")+(s.multiline?"m":"")+(s.unicode?"u":"")+(h?"y":"g"),y=new v(h?s:"^(?:"+s.source+")",m),w=void 0===e?4294967295:e>>>0;if(0===w)return[];if(0===p.length)return null===u(y,p)?[p]:[];for(var b=0,P=0,_=[];Pdocument.F=Object<\/script>"),t.close(),u=t.F;r--;)delete u.prototype[i[r]];return u()};t.exports=Object.create||function(t,e){var n;return null!==t?(c.prototype=r(t),n=new c,c.prototype=null,n[a]=t):n=u(),void 0===e?n:o(n,e)}},L9s1:function(t,e,n){"use strict";var r=n("XKFU"),o=n("0sh+");r(r.P+r.F*n("UUeW")("includes"),"String",{includes:function(t){return!!~o(this,t,"includes").indexOf(t,arguments.length>1?arguments[1]:void 0)}})},LHMV:function(t,e,n){"use strict";n("LK8F"),n("rGqo"),n("yt8O"),n("Btvt"),n("RW0V"),n("8+KV"),e.__esModule=!0;var r=l(n("c0Fl")),o=l(n("raBC")),i=l(n("+i7v")),a=l(n("ZfQF")),c=l(n("q5+k")),u=l(n("QLaP")),s=n("OysZ");function l(t){return t&&t.__esModule?t:{default:t}}var f=2,p=function(){function t(e){var n=this,r=e.addTransitionHook,u=e.stateStorage,l=e.getCurrentLocation,p=e.shouldUpdateScroll;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this._restoreScrollRestoration=function(){if(n._oldScrollRestoration)try{window.history.scrollRestoration=n._oldScrollRestoration}catch(t){}},this._onWindowScroll=function(){if(n._saveWindowPositionHandle||(n._saveWindowPositionHandle=(0,c.default)(n._saveWindowPosition)),n._windowScrollTarget){var t=n._windowScrollTarget,e=t[0],r=t[1],o=(0,i.default)(window),u=(0,a.default)(window);o===e&&u===r&&(n._windowScrollTarget=null,n._cancelCheckWindowScroll())}},this._saveWindowPosition=function(){n._saveWindowPositionHandle=null,n._savePosition(null,window)},this._checkWindowScrollPosition=function(){n._checkWindowScrollHandle=null,n._windowScrollTarget&&(n.scrollToTarget(window,n._windowScrollTarget),++n._numWindowScrollAttempts,n._numWindowScrollAttempts>=f?n._windowScrollTarget=null:n._checkWindowScrollHandle=(0,c.default)(n._checkWindowScrollPosition))},this._stateStorage=u,this._getCurrentLocation=l,this._shouldUpdateScroll=p,"scrollRestoration"in window.history&&!(0,s.isMobileSafari)()){this._oldScrollRestoration=window.history.scrollRestoration;try{window.history.scrollRestoration="manual",(0,o.default)(window,"beforeunload",this._restoreScrollRestoration)}catch(h){this._oldScrollRestoration=null}}else this._oldScrollRestoration=null;this._saveWindowPositionHandle=null,this._checkWindowScrollHandle=null,this._windowScrollTarget=null,this._numWindowScrollAttempts=0,this._scrollElements={},(0,o.default)(window,"scroll",this._onWindowScroll),this._removeTransitionHook=r((function(){c.default.cancel(n._saveWindowPositionHandle),n._saveWindowPositionHandle=null,Object.keys(n._scrollElements).forEach((function(t){var e=n._scrollElements[t];c.default.cancel(e.savePositionHandle),e.savePositionHandle=null,n._saveElementPosition(t)}))}))}return t.prototype.registerElement=function(t,e,n,r){var i=this;this._scrollElements[t]&&(0,u.default)(!1);var a=function(){i._saveElementPosition(t)},s={element:e,shouldUpdateScroll:n,savePositionHandle:null,onScroll:function(){s.savePositionHandle||(s.savePositionHandle=(0,c.default)(a))}};this._scrollElements[t]=s,(0,o.default)(e,"scroll",s.onScroll),this._updateElementScroll(t,null,r)},t.prototype.unregisterElement=function(t){this._scrollElements[t]||(0,u.default)(!1);var e=this._scrollElements[t],n=e.element,o=e.onScroll,i=e.savePositionHandle;(0,r.default)(n,"scroll",o),c.default.cancel(i),delete this._scrollElements[t]},t.prototype.updateScroll=function(t,e){var n=this;this._updateWindowScroll(t,e),Object.keys(this._scrollElements).forEach((function(r){n._updateElementScroll(r,t,e)}))},t.prototype.stop=function(){this._restoreScrollRestoration(),(0,r.default)(window,"scroll",this._onWindowScroll),this._cancelCheckWindowScroll(),this._removeTransitionHook()},t.prototype._cancelCheckWindowScroll=function(){c.default.cancel(this._checkWindowScrollHandle),this._checkWindowScrollHandle=null},t.prototype._saveElementPosition=function(t){var e=this._scrollElements[t];e.savePositionHandle=null,this._savePosition(t,e.element)},t.prototype._savePosition=function(t,e){this._stateStorage.save(this._getCurrentLocation(),t,[(0,i.default)(e),(0,a.default)(e)])},t.prototype._updateWindowScroll=function(t,e){this._cancelCheckWindowScroll(),this._windowScrollTarget=this._getScrollTarget(null,this._shouldUpdateScroll,t,e),this._numWindowScrollAttempts=0,this._checkWindowScrollPosition()},t.prototype._updateElementScroll=function(t,e,n){var r=this._scrollElements[t],o=r.element,i=r.shouldUpdateScroll,a=this._getScrollTarget(t,i,e,n);a&&this.scrollToTarget(o,a)},t.prototype._getDefaultScrollTarget=function(t){var e=t.hash;return e&&"#"!==e?"#"===e.charAt(0)?e.slice(1):e:[0,0]},t.prototype._getScrollTarget=function(t,e,n,r){var o=!e||e.call(this,n,r);if(!o||Array.isArray(o)||"string"==typeof o)return o;var i=this._getCurrentLocation();return this._getSavedScrollTarget(t,i)||this._getDefaultScrollTarget(i)},t.prototype._getSavedScrollTarget=function(t,e){return"PUSH"===e.action?null:this._stateStorage.read(e,t)},t.prototype.scrollToTarget=function(t,e){if("string"==typeof e){var n=document.getElementById(e)||document.getElementsByName(e)[0];if(n)return void n.scrollIntoView();e=[0,0]}var r=e,o=r[0],c=r[1];(0,i.default)(t,o),(0,a.default)(t,c)},t}();e.default=p,t.exports=e.default},LK8F:function(t,e,n){var r=n("XKFU");r(r.S,"Array",{isArray:n("EWmC")})},LQAc:function(t,e){t.exports=!1},LYrO:function(t,e,n){"use strict";n.d(e,"e",(function(){return i})),n.d(e,"c",(function(){return a})),n.d(e,"b",(function(){return c})),n.d(e,"d",(function(){return u})),n.d(e,"a",(function(){return s})),n.d(e,"f",(function(){return l}));n("pIFo"),n("DNiP"),n("0l/t"),n("Vd3H"),n("V+eJ"),n("bWfx"),n("KKXr");var r=n("QLaP"),o=n.n(r),i=function(t,e){return t.substr(0,e.length)===e},a=function(t,e){for(var n=void 0,r=void 0,i=e.split("?")[0],a=v(i),c=""===a[0],u=d(t),s=0,l=u.length;se.score?-1:t.index-e.index}))},v=function(t){return t.replace(/(^\/+|\/+$)/g,"").split("/")},g=function(t,e){return t+(e?"?"+e:"")},m=["uri","path"]},LZWt:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},LeKB:function(t,e,n){t.exports=[{plugin:n("q9nr"),options:{plugins:[],maxWidth:590}},{plugin:n("npZl"),options:{plugins:[],name:"Gatsby Starter Blog",short_name:"GatsbyJS",start_url:"/",background_color:"#ffffff",theme_color:"#663399",display:"minimal-ui",icon:"static/assets/img/site/site-icon.png"}},{plugin:n("e/UW"),options:{plugins:[]}},{plugin:n("GddB"),options:{plugins:[]}}]},LyE8:function(t,e,n){"use strict";var r=n("eeVq");t.exports=function(t,e){return!!t&&r((function(){e?t.call(null,(function(){}),1):t.call(null)}))}},M6Qj:function(t,e,n){var r=n("hPIQ"),o=n("K0xU")("iterator"),i=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||i[o]===t)}},MMVs:function(t,e,n){n("V+eJ"),t.exports=function(){var t=!1;-1!==navigator.appVersion.indexOf("MSIE 10")&&(t=!0);var e,n=[],r="object"==typeof document&&document,o=t?r.documentElement.doScroll():r.documentElement.doScroll,i=r&&(o?/^loaded|^c/:/^loaded|^i|^c/).test(r.readyState);return!i&&r&&r.addEventListener("DOMContentLoaded",e=function(){for(r.removeEventListener("DOMContentLoaded",e),i=1;e=n.shift();)e()}),function(t){i?setTimeout(t,0):n.push(t)}}()},MfQN:function(t,e){t.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},MgzW:function(t,e,n){"use strict";n("rGqo"),n("yt8O"),n("Btvt"),n("RW0V"),n("KKXr"),n("8+KV"),n("bWfx"),n("91GP"),n("ioFf");var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function a(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}t.exports=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map((function(t){return e[t]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(t){r[t]=t})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(t,e){for(var n,c,u=a(t),s=1;s0?r:n)(t)}},"RjD/":function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},"S/j/":function(t,e,n){var r=n("vhPU");t.exports=function(t){return Object(r(t))}},SRfc:function(t,e,n){"use strict";var r=n("y3w9"),o=n("ne8i"),i=n("A5AN"),a=n("Xxuz");n("IU+Z")("match",1,(function(t,e,n,c){return[function(n){var r=t(this),o=null==n?void 0:n[e];return void 0!==o?o.call(n,r):new RegExp(n)[e](String(r))},function(t){var e=c(n,t,this);if(e.done)return e.value;var u=r(t),s=String(this);if(!u.global)return a(u,s);var l=u.unicode;u.lastIndex=0;for(var f,p=[],h=0;null!==(f=a(u,s));){var d=String(f[0]);p[h]=d,""===d&&(u.lastIndex=i(s,o(u.lastIndex),l)),h++}return 0===h?null:p}]}))},SlkY:function(t,e,n){var r=n("m0Pp"),o=n("H6hf"),i=n("M6Qj"),a=n("y3w9"),c=n("ne8i"),u=n("J+6e"),s={},l={};(e=t.exports=function(t,e,n,f,p){var h,d,v,g,m=p?function(){return t}:u(t),y=r(n,f,e?2:1),w=0;if("function"!=typeof m)throw TypeError(t+" is not iterable!");if(i(m)){for(h=c(t.length);h>w;w++)if((g=e?y(a(d=t[w])[0],d[1]):y(t[w]))===s||g===l)return g}else for(v=m.call(t);!(d=v.next()).done;)if((g=o(v,y,d.value,e))===s||g===l)return g}).BREAK=s,e.RETURN=l},T39b:function(t,e,n){"use strict";var r=n("wmvG"),o=n("s5qY");t.exports=n("4LiD")("Set",(function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}}),{add:function(t){return r.def(o(this,"Set"),t=0===t?0:t,t)}},r)},TqRt:function(t,e){t.exports=function(t){return t&&t.__esModule?t:{default:t}}},Tze0:function(t,e,n){"use strict";n("qncB")("trim",(function(t){return function(){return t(this,3)}}))},UUeW:function(t,e,n){var r=n("K0xU")("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,!"/./"[t](e)}catch(o){}}return!0}},Ugos:function(t,e,n){"use strict";var r,o,i=n("C/va"),a=RegExp.prototype.exec,c=String.prototype.replace,u=a,s=(r=/a/,o=/b*/g,a.call(r,"a"),a.call(o,"a"),0!==r.lastIndex||0!==o.lastIndex),l=void 0!==/()??/.exec("")[1];(s||l)&&(u=function(t){var e,n,r,o,u=this;return l&&(n=new RegExp("^"+u.source+"$(?!\\s)",i.call(u))),s&&(e=u.lastIndex),r=a.call(u,t),s&&r&&(u.lastIndex=u.global?r.index+r[0].length:e),l&&r&&r.length>1&&c.call(r[0],n,(function(){for(o=1;o0)return c[c.length-1];if(t&&t.location.pathname===i)return a?decodeURI(a.slice(1)):[0,0];return!0}var _=function(t){var e,n;function r(e){var n;return n=t.call(this,e)||this,y(e.location,null),n}n=t,(e=r).prototype=Object.create(n.prototype),e.prototype.constructor=e,e.__proto__=n;var o=r.prototype;return o.componentDidMount=function(){w(this.props.location,null)},o.componentDidUpdate=function(t,e,n){n&&w(this.props.location,t.location)},o.getSnapshotBeforeUpdate=function(t){return this.props.location.pathname!==t.location.pathname&&(y(this.props.location,t.location),!0)},o.render=function(){return this.props.children},r}(i.a.Component),S=n("IOVJ"),x=n("pCP8"),O=n.n(x);function E(t,e){for(var n in t)if(!(n in e))return!0;for(var r in e)if(t[r]!==e[r])return!0;return!1}var j=function(t){var e,n;function r(e){var n;n=t.call(this)||this;var r=e.location,o=e.pageResources;return n.state={location:Object.assign({},r),pageResources:o||p.default.loadPageSync(r.pathname)},n}n=t,(e=r).prototype=Object.create(n.prototype),e.prototype.constructor=e,e.__proto__=n,r.getDerivedStateFromProps=function(t,e){var n=t.location;return e.location.href!==n.href?{pageResources:p.default.loadPageSync(n.pathname),location:Object.assign({},n)}:{location:Object.assign({},n)}};var o=r.prototype;return o.loadResources=function(t){var e=this;p.default.loadPage(t).then((function(n){n&&"error"!==n.status?e.setState({location:Object.assign({},window.location),pageResources:n}):(window.history.replaceState({},"",location.href),window.location=t)}))},o.shouldComponentUpdate=function(t,e){return e.pageResources?this.state.pageResources!==e.pageResources||(this.state.pageResources.component!==e.pageResources.component||(this.state.pageResources.json!==e.pageResources.json||(!(this.state.location.key===e.location.key||!e.pageResources.page||!e.pageResources.page.matchPath&&!e.pageResources.page.path)||function(t,e,n){return E(t.props,e)||E(t.state,n)}(this,t,e)))):(this.loadResources(t.location.pathname),!1)},o.render=function(){return this.props.children(this.state)},r}(i.a.Component),R=n("cSJ8"),k=n("vf9c");var T=new p.ProdLoader(O.a,k);Object(p.setLoader)(T),T.setApiRunner(r.apiRunner),window.asyncRequires=O.a,window.___emitter=d.a,window.___loader=p.publicLoader,window.__navigatingToLink=!1,window.___push=function(t){return b(t,{replace:!1})},window.___replace=function(t){return b(t,{replace:!0})},window.___navigate=function(t,e){return b(t,e)},m(window.location.pathname),Object(r.apiRunnerAsync)("onClientEntry").then((function(){Object(r.apiRunner)("registerServiceWorker").length>0&&n("NSX3");var t=function(t){return i.a.createElement(u.BaseContext.Provider,{value:{baseuri:"/",basepath:"/"}},i.a.createElement(S.a,t))},e=function(e){var n,r;function o(){return e.apply(this,arguments)||this}return r=e,(n=o).prototype=Object.create(r.prototype),n.prototype.constructor=n,n.__proto__=r,o.prototype.render=function(){var e=this,n=this.props.location;return i.a.createElement(j,{location:n},(function(n){var r=n.pageResources,o=n.location;return i.a.createElement(_,{location:o},i.a.createElement(s.ScrollContext,{location:o,shouldUpdateScroll:P},i.a.createElement(u.Router,{basepath:"",location:o,id:"gatsby-focus-wrapper"},i.a.createElement(t,Object.assign({path:encodeURI("/404.html"===r.page.path?Object(R.a)(o.pathname,""):r.page.matchPath||r.page.path)},e.props,{location:o,pageResources:r},r.json)))))}))},o}(i.a.Component),o=window,a=o.pagePath,l=o.location;a&&""+a!==l.pathname&&!(T.findMatchPath(Object(R.a)(l.pathname,""))||"/404.html"===a||a.match(/^\/404\/?$/)||a.match(/^\/offline-plugin-app-shell-fallback\/?$/))&&Object(u.navigate)(""+a+l.search+l.hash,{replace:!0}),p.publicLoader.loadPage(l.pathname).then((function(t){if(!t||"error"===t.status)throw new Error("page resources for "+l.pathname+" not found. Not rendering React");window.___webpackCompilationHash=t.page.webpackCompilationHash;var n=function(){return i.a.createElement(u.Location,null,(function(t){return i.a.createElement(e,t)}))},o=Object(r.apiRunner)("wrapRootElement",{element:i.a.createElement(n,null)},i.a.createElement(n,null),(function(t){return{element:t.result}})).pop(),a=function(){return o},s=Object(r.apiRunner)("replaceHydrateFunction",void 0,c.a.hydrate)[0];f()((function(){s(i.a.createElement(a,null),"undefined"!=typeof window?document.getElementById("___gatsby"):void 0,(function(){Object(r.apiRunner)("onInitialClientRender")}))}))}))}))},"V+eJ":function(t,e,n){"use strict";var r=n("XKFU"),o=n("w2a5")(!1),i=[].indexOf,a=!!i&&1/[1].indexOf(1,-0)<0;r(r.P+r.F*(a||!n("LyE8")(i)),"Array",{indexOf:function(t){return a?i.apply(this,arguments)||0:o(this,t,arguments[1])}})},VRzm:function(t,e,n){"use strict";var r,o,i,a,c=n("LQAc"),u=n("dyZX"),s=n("m0Pp"),l=n("I8a+"),f=n("XKFU"),p=n("0/R4"),h=n("2OiF"),d=n("9gX7"),v=n("SlkY"),g=n("69bn"),m=n("GZEu").set,y=n("gHnn")(),w=n("pbhE"),b=n("nICZ"),P=n("ol8x"),_=n("vKrd"),S=u.TypeError,x=u.process,O=x&&x.versions,E=O&&O.v8||"",j=u.Promise,R="process"==l(x),k=function(){},T=o=w.f,C=!!function(){try{var t=j.resolve(1),e=(t.constructor={})[n("K0xU")("species")]=function(t){t(k,k)};return(R||"function"==typeof PromiseRejectionEvent)&&t.then(k)instanceof e&&0!==E.indexOf("6.6")&&-1===P.indexOf("Chrome/66")}catch(r){}}(),F=function(t){var e;return!(!p(t)||"function"!=typeof(e=t.then))&&e},I=function(t,e){if(!t._n){t._n=!0;var n=t._c;y((function(){for(var r=t._v,o=1==t._s,i=0,a=function(e){var n,i,a,c=o?e.ok:e.fail,u=e.resolve,s=e.reject,l=e.domain;try{c?(o||(2==t._h&&U(t),t._h=1),!0===c?n=r:(l&&l.enter(),n=c(r),l&&(l.exit(),a=!0)),n===e.promise?s(S("Promise-chain cycle")):(i=F(n))?i.call(n,u,s):u(n)):s(r)}catch(f){l&&!a&&l.exit(),s(f)}};n.length>i;)a(n[i++]);t._c=[],t._n=!1,e&&!t._h&&L(t)}))}},L=function(t){m.call(u,(function(){var e,n,r,o=t._v,i=A(t);if(i&&(e=b((function(){R?x.emit("unhandledRejection",o,t):(n=u.onunhandledrejection)?n({promise:t,reason:o}):(r=u.console)&&r.error&&r.error("Unhandled promise rejection",o)})),t._h=R||A(t)?2:1),t._a=void 0,i&&e.e)throw e.v}))},A=function(t){return 1!==t._h&&0===(t._a||t._c).length},U=function(t){m.call(u,(function(){var e;R?x.emit("rejectionHandled",t):(e=u.onrejectionhandled)&&e({promise:t,reason:t._v})}))},M=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),I(e,!0))},W=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw S("Promise can't be resolved itself");(e=F(t))?y((function(){var r={_w:n,_d:!1};try{e.call(t,s(W,r,1),s(M,r,1))}catch(o){M.call(r,o)}})):(n._v=t,n._s=1,I(n,!1))}catch(r){M.call({_w:n,_d:!1},r)}}};C||(j=function(t){d(this,j,"Promise","_h"),h(t),r.call(this);try{t(s(W,this,1),s(M,this,1))}catch(e){M.call(this,e)}},(r=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n("3Lyj")(j.prototype,{then:function(t,e){var n=T(g(this,j));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=R?x.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&I(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),i=function(){var t=new r;this.promise=t,this.resolve=s(W,t,1),this.reject=s(M,t,1)},w.f=T=function(t){return t===j||t===a?new i(t):o(t)}),f(f.G+f.W+f.F*!C,{Promise:j}),n("fyDq")(j,"Promise"),n("elZq")("Promise"),a=n("g3g5").Promise,f(f.S+f.F*!C,"Promise",{reject:function(t){var e=T(this);return(0,e.reject)(t),e.promise}}),f(f.S+f.F*(c||!C),"Promise",{resolve:function(t){return _(c&&this===a?j:this,t)}}),f(f.S+f.F*!(C&&n("XMVh")((function(t){j.all(t).catch(k)}))),"Promise",{all:function(t){var e=this,n=T(e),r=n.resolve,o=n.reject,i=b((function(){var n=[],i=0,a=1;v(t,!1,(function(t){var c=i++,u=!1;n.push(void 0),a++,e.resolve(t).then((function(t){u||(u=!0,n[c]=t,--a||r(n))}),o)})),--a||r(n)}));return i.e&&o(i.v),n.promise},race:function(t){var e=this,n=T(e),r=n.reject,o=b((function(){v(t,!1,(function(t){e.resolve(t).then(n.resolve,r)}))}));return o.e&&r(o.v),n.promise}})},VTer:function(t,e,n){var r=n("g3g5"),o=n("dyZX"),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(t.exports=function(t,e){return i[t]||(i[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n("LQAc")?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},VbXa:function(t,e){t.exports=function(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}},Vd3H:function(t,e,n){"use strict";var r=n("XKFU"),o=n("2OiF"),i=n("S/j/"),a=n("eeVq"),c=[].sort,u=[1,2,3];r(r.P+r.F*(a((function(){u.sort(void 0)}))||!a((function(){u.sort(null)}))||!n("LyE8")(c)),"Array",{sort:function(t){return void 0===t?c.call(i(this)):c.call(i(this),o(t))}})},WbBG:function(t,e,n){"use strict";t.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},Wbzz:function(t,e,n){"use strict";n.r(e),n.d(e,"graphql",(function(){return d})),n.d(e,"StaticQueryContext",(function(){return l})),n.d(e,"StaticQuery",(function(){return p})),n.d(e,"useStaticQuery",(function(){return h})),n.d(e,"prefetchPathname",(function(){return s}));var r=n("q1tI"),o=n.n(r),i=n("+ZDr"),a=n.n(i);n.d(e,"Link",(function(){return a.a})),n.d(e,"withAssetPrefix",(function(){return i.withAssetPrefix})),n.d(e,"withPrefix",(function(){return i.withPrefix})),n.d(e,"parsePath",(function(){return i.parsePath})),n.d(e,"navigate",(function(){return i.navigate})),n.d(e,"push",(function(){return i.push})),n.d(e,"replace",(function(){return i.replace})),n.d(e,"navigateTo",(function(){return i.navigateTo}));var c=n("lw3w"),u=n.n(c);n.d(e,"PageRenderer",(function(){return u.a}));var s=n("emEt").default.enqueue,l=o.a.createContext({});function f(t){var e=t.staticQueryData,n=t.data,r=t.query,i=t.render,a=n?n.data:e[r]&&e[r].data;return o.a.createElement(o.a.Fragment,null,a&&i(a),!a&&o.a.createElement("div",null,"Loading (StaticQuery)"))}var p=function(t){var e=t.data,n=t.query,r=t.render,i=t.children;return o.a.createElement(l.Consumer,null,(function(t){return o.a.createElement(f,{data:e,query:n,render:r||i,staticQueryData:t})}))},h=function(t){o.a.useContext;var e=o.a.useContext(l);if(e[t]&&e[t].data)return e[t].data;throw new Error("The result of this StaticQuery could not be fetched.\n\nThis is likely a bug in Gatsby and if refreshing the page does not fix it, please open an issue in https://github.com/gatsbyjs/gatsby/issues")};function d(){throw new Error("It appears like Gatsby is misconfigured. Gatsby related `graphql` calls are supposed to only be evaluated at compile time, and then compiled away. Unfortunately, something went wrong and the query was left in the compiled code.\n\nUnless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.")}},XKFU:function(t,e,n){var r=n("dyZX"),o=n("g3g5"),i=n("Mukb"),a=n("KroJ"),c=n("m0Pp"),u=function(t,e,n){var s,l,f,p,h=t&u.F,d=t&u.G,v=t&u.S,g=t&u.P,m=t&u.B,y=d?r:v?r[e]||(r[e]={}):(r[e]||{}).prototype,w=d?o:o[e]||(o[e]={}),b=w.prototype||(w.prototype={});for(s in d&&(n=e),n)f=((l=!h&&y&&void 0!==y[s])?y:n)[s],p=m&&l?c(f,r):g&&"function"==typeof f?c(Function.call,f):f,y&&a(y,s,f,t&u.U),w[s]!=f&&i(w,s,p),g&&b[s]!=f&&(b[s]=f)};r.core=o,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},XMVh:function(t,e,n){var r=n("K0xU")("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,(function(){throw 2}))}catch(a){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i=[7],c=i[r]();c.next=function(){return{done:n=!0}},i[r]=function(){return c},t(i)}catch(a){}return n}},Xbzi:function(t,e,n){var r=n("0/R4"),o=n("i5dc").set;t.exports=function(t,e,n){var i,a=e.constructor;return a!==n&&"function"==typeof a&&(i=a.prototype)!==n.prototype&&r(i)&&o&&o(t,i),t}},XfO3:function(t,e,n){"use strict";var r=n("AvRE")(!0);n("Afnz")(String,"String",(function(t){this._t=String(t),this._i=0}),(function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})}))},Xtr8:function(t,e,n){var r=n("XKFU"),o=n("g3g5"),i=n("eeVq");t.exports=function(t,e){var n=(o.Object||{})[t]||Object[t],a={};a[t]=e(n),r(r.S+r.F*i((function(){n(1)})),"Object",a)}},Xxuz:function(t,e,n){"use strict";var r=n("I8a+"),o=RegExp.prototype.exec;t.exports=function(t,e){var n=t.exec;if("function"==typeof n){var i=n.call(t,e);if("object"!=typeof i)throw new TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==r(t))throw new TypeError("RegExp#exec called on incompatible receiver");return o.call(t,e)}},"YLt+":function(t){t.exports=JSON.parse('[{"fromPath":"/music/about-songmind-studios/","isPermanent":true,"redirectInBrowser":true,"toPath":"/about-songmind-studios/"},{"fromPath":"/music/10-issues-songwriters-face/","isPermanent":true,"redirectInBrowser":true,"toPath":"/10-issues-songwriters-face/"},{"fromPath":"/music/organizing-creativity-3-step-process/","isPermanent":true,"redirectInBrowser":true,"toPath":"/organizing-creativity-3-step-process/"},{"fromPath":"/music/honing-strengths-with-a-student-evaluation/","isPermanent":true,"redirectInBrowser":true,"toPath":"/honing-strengths-with-a-student-evaluation/"},{"fromPath":"/music/songwriting-and-serendipity/","isPermanent":true,"redirectInBrowser":true,"toPath":"/songwriting-and-serendipity/"},{"fromPath":"/music/songwriting-simplicity-complexity/","isPermanent":true,"redirectInBrowser":true,"toPath":"/songwriting-simplicity-complexity/"},{"fromPath":"/music/songwriting-snippet-challenge/","isPermanent":true,"redirectInBrowser":true,"toPath":"/songwriting-snippet-challenge/"},{"fromPath":"/music/preparing-demo-for-studio/","isPermanent":true,"redirectInBrowser":true,"toPath":"/preparing-demo-for-studio/"},{"fromPath":"/music/5-dysfunctions-of-a-band/","isPermanent":true,"redirectInBrowser":true,"toPath":"/5-dysfunctions-of-a-band/"},{"fromPath":"/music/guide-to-practicing-overcoming-plateaus/","isPermanent":true,"redirectInBrowser":true,"toPath":"/guide-to-practicing-overcoming-plateaus/"},{"fromPath":"/other/2020-decade-in-review/","isPermanent":true,"redirectInBrowser":true,"toPath":"/2020-decade-in-review/"},{"fromPath":"/tech/2022-12-05-random-music-generators-news/","isPermanent":true,"redirectInBrowser":true,"toPath":"/2022-12-05-random-music-generators-news/"},{"fromPath":"/tech/catching-handling-errors-promise-chains/","isPermanent":true,"redirectInBrowser":true,"toPath":"/catching-handling-errors-promise-chains/"},{"fromPath":"/javascript/2019/04/03/catching-handling-errors-promise-chains.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/catching-handling-errors-promise-chains/"},{"fromPath":"/tech/circular-dependencies-bug/","isPermanent":true,"redirectInBrowser":true,"toPath":"/circular-dependencies-bug/"},{"fromPath":"/javascript/2019/03/23/circular-dependencies-bug.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/circular-dependencies-bug/"},{"fromPath":"/tech/contributing-to-open-source-is-type-checking/","isPermanent":true,"redirectInBrowser":true,"toPath":"/contributing-to-open-source-is-type-checking/"},{"fromPath":"/tech/code-style-guide/","isPermanent":true,"redirectInBrowser":true,"toPath":"/code-style-guide/"},{"fromPath":"/javascript/2019/03/18/code-style-guide.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/code-style-guide/"},{"fromPath":"/tech/git-commit-format-squash/","isPermanent":true,"redirectInBrowser":true,"toPath":"/git-commit-format-squash/"},{"fromPath":"/git/2019/03/24/git-commit-format-squash.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/git-commit-format-squash/"},{"fromPath":"/tech/custom-type-checking-isnan/","isPermanent":true,"redirectInBrowser":true,"toPath":"/custom-type-checking-isnan/"},{"fromPath":"/javascript/2019/03/22/custom-type-checking-isnan.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/custom-type-checking-isnan/"},{"fromPath":"/tech/how-to-squash-commits/","isPermanent":true,"redirectInBrowser":true,"toPath":"/how-to-squash-commits/"},{"fromPath":"/git/2019/12/20/how-to-squash-commits.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/how-to-squash-commits/"},{"fromPath":"/tech/marketable-programming-skills/","isPermanent":true,"redirectInBrowser":true,"toPath":"/marketable-programming-skills/"},{"fromPath":"/career/2017/08/01/marketable-programming-skills.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/marketable-programming-skills/"},{"fromPath":"/tech/now-attending-fullstack/","isPermanent":true,"redirectInBrowser":true,"toPath":"/now-attending-fullstack/"},{"fromPath":"/javascript/2017/12/26/now-attending-fullstack.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/now-attending-fullstack/"},{"fromPath":"/tech/intro-to-js-frameworks01/","isPermanent":true,"redirectInBrowser":true,"toPath":"/intro-to-js-frameworks01/"},{"fromPath":"/javascript/2017/09/01/intro-to-js-frameworks01.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/intro-to-js-frameworks01/"},{"fromPath":"/career/2018/07/18/recruiters-and-junior-devs.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/recruiters-and-junior-devs/"},{"fromPath":"/tech/recruiters-and-junior-devs/","isPermanent":true,"redirectInBrowser":true,"toPath":"/recruiters-and-junior-devs/"},{"fromPath":"/career/2019/07/02/prepare-for-initial-screens.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/prepare-for-initial-screens/"},{"fromPath":"/tech/prepare-for-initial-screens/","isPermanent":true,"redirectInBrowser":true,"toPath":"/prepare-for-initial-screens/"},{"fromPath":"/tech/python-classes-guess-the-number/","isPermanent":true,"redirectInBrowser":true,"toPath":"/python-classes-guess-the-number/"},{"fromPath":"/python/2017/07/01/number-guess-oop.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/python-classes-guess-the-number/"},{"fromPath":"/tech/recursive-filter-function/","isPermanent":true,"redirectInBrowser":true,"toPath":"/recursive-filter-function/"},{"fromPath":"/javascript/2019/03/28/recursive-filter-function.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/recursive-filter-function/"},{"fromPath":"/tech/reflections-coding-bootcamp/","isPermanent":true,"redirectInBrowser":true,"toPath":"/reflections-coding-bootcamp/"},{"fromPath":"/javascript/2018/04/16/reflections-coding-bootcamp.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/reflections-coding-bootcamp/"},{"fromPath":"/tech/website-makeover-gatsby/","isPermanent":true,"redirectInBrowser":true,"toPath":"/website-makeover-gatsby/"},{"fromPath":"/gatsbyjs/2020/01/08/website-makeover-gatsby.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/website-makeover-gatsby/"},{"fromPath":"/tech/comparing-javascript-test-runners/","isPermanent":true,"redirectInBrowser":true,"toPath":"/comparing-javascript-test-runners/"},{"fromPath":"/tech/debugging-strategies/","isPermanent":true,"redirectInBrowser":true,"toPath":"/debugging-strategies-checklist/"},{"fromPath":"/computer%20science/2018/05/08/debugging-strategies.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/debugging-strategies-checklist/"},{"fromPath":"/computer_science/2018/05/08/debugging-strategies.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/debugging-strategies-checklist/"},{"fromPath":"/tech/2020-01-27-random-music-generators-news/","isPermanent":true,"redirectInBrowser":true,"toPath":"/2020-01-27-random-music-generators-news/"},{"fromPath":"/tech/hash-tables-js/","isPermanent":true,"redirectInBrowser":true,"toPath":"/hash-tables-js/"},{"fromPath":"/javascript/computer%20science/2018/02/20/hash-tables-js.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/hash-tables-js/"},{"fromPath":"/javascript/computer_science/2018/02/20/hash-tables-js.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/hash-tables-js/"}]')},YTvA:function(t,e,n){var r=n("VTer")("keys"),o=n("ylqs");t.exports=function(t){return r[t]||(r[t]=o(t))}},Ymqv:function(t,e,n){var r=n("LZWt");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},YwZP:function(t,e,n){"use strict";n.r(e);n("pIFo"),n("bWfx"),n("VRzm"),n("Btvt"),n("/SS/"),n("hHhE"),n("V+eJ"),n("91GP");var r=n("q1tI"),o=n.n(r),i=(n("6DQo"),n("17x9"),n("QLaP")),a=n.n(i),c=o.a.createContext,u=n("94VI"),s=n("LYrO"),l=n("9Xx/");n.d(e,"Link",(function(){return C})),n.d(e,"Location",(function(){return y})),n.d(e,"LocationProvider",(function(){return w})),n.d(e,"Match",(function(){return M})),n.d(e,"Redirect",(function(){return U})),n.d(e,"Router",(function(){return _})),n.d(e,"ServerLocation",(function(){return b})),n.d(e,"isRedirect",(function(){return I})),n.d(e,"redirectTo",(function(){return L})),n.d(e,"BaseContext",(function(){return P})),n.d(e,"createHistory",(function(){return l.createHistory})),n.d(e,"createMemorySource",(function(){return l.createMemorySource})),n.d(e,"navigate",(function(){return l.navigate})),n.d(e,"globalHistory",(function(){return l.globalHistory}));var f=Object.assign||function(t){for(var e=1;e=0||Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n}function h(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function d(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function v(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var g=function(t,e){var n=c(e);return n.Consumer.displayName=t+".Consumer",n.Provider.displayName=t+".Provider",n},m=g("Location"),y=function(t){var e=t.children;return o.a.createElement(m.Consumer,null,(function(t){return t?e(t):o.a.createElement(w,null,e)}))},w=function(t){function e(){var n,r;h(this,e);for(var o=arguments.length,i=Array(o),a=0;a1?arguments[1]:void 0)}}),n("nGyu")("includes")},Z6vF:function(t,e,n){var r=n("ylqs")("meta"),o=n("0/R4"),i=n("aagx"),a=n("hswa").f,c=0,u=Object.isExtensible||function(){return!0},s=!n("eeVq")((function(){return u(Object.preventExtensions({}))})),l=function(t){a(t,r,{value:{i:"O"+ ++c,w:{}}})},f=t.exports={KEY:r,NEED:!1,fastKey:function(t,e){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,r)){if(!u(t))return"F";if(!e)return"E";l(t)}return t[r].i},getWeak:function(t,e){if(!i(t,r)){if(!u(t))return!0;if(!e)return!1;l(t)}return t[r].w},onFreeze:function(t){return s&&f.NEED&&u(t)&&!i(t,r)&&l(t),t}}},ZD67:function(t,e,n){"use strict";var r=n("3Lyj"),o=n("Z6vF").getWeak,i=n("y3w9"),a=n("0/R4"),c=n("9gX7"),u=n("SlkY"),s=n("CkkT"),l=n("aagx"),f=n("s5qY"),p=s(5),h=s(6),d=0,v=function(t){return t._l||(t._l=new g)},g=function(){this.a=[]},m=function(t,e){return p(t.a,(function(t){return t[0]===e}))};g.prototype={get:function(t){var e=m(this,t);if(e)return e[1]},has:function(t){return!!m(this,t)},set:function(t,e){var n=m(this,t);n?n[1]=e:this.a.push([t,e])},delete:function(t){var e=h(this.a,(function(e){return e[0]===t}));return~e&&this.a.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,i){var s=t((function(t,r){c(t,s,e,"_i"),t._t=e,t._i=d++,t._l=void 0,null!=r&&u(r,n,t[i],t)}));return r(s.prototype,{delete:function(t){if(!a(t))return!1;var n=o(t);return!0===n?v(f(this,e)).delete(t):n&&l(n,this._i)&&delete n[this._i]},has:function(t){if(!a(t))return!1;var n=o(t);return!0===n?v(f(this,e)).has(t):n&&l(n,this._i)}}),s},def:function(t,e,n){var r=o(i(e),!0);return!0===r?v(t).set(e,n):r[t._i]=n,t},ufstore:v}},ZfQF:function(t,e,n){"use strict";var r=n("TqRt");e.__esModule=!0,e.default=function(t,e){var n=(0,o.default)(t);if(void 0===e)return n?"pageYOffset"in n?n.pageYOffset:n.document.documentElement.scrollTop:t.scrollTop;n?n.scrollTo("pageXOffset"in n?n.pageXOffset:n.document.documentElement.scrollLeft,e):t.scrollTop=e};var o=r(n("8Y+z"));t.exports=e.default},a1Th:function(t,e,n){"use strict";n("OEbY");var r=n("y3w9"),o=n("C/va"),i=n("nh4g"),a=/./.toString,c=function(t){n("KroJ")(RegExp.prototype,"toString",t,!0)};n("eeVq")((function(){return"/a/b"!=a.call({source:"a",flags:"b"})}))?c((function(){var t=r(this);return"/".concat(t.source,"/","flags"in t?t.flags:!i&&t instanceof RegExp?o.call(t):void 0)})):"toString"!=a.name&&c((function(){return a.call(this)}))},aCFj:function(t,e,n){var r=n("Ymqv"),o=n("vhPU");t.exports=function(t){return r(o(t))}},aagx:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},apmT:function(t,e,n){var r=n("0/R4");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},bWfx:function(t,e,n){"use strict";var r=n("XKFU"),o=n("CkkT")(1);r(r.P+r.F*!n("LyE8")([].map,!0),"Array",{map:function(t){return o(this,t,arguments[1])}})},c0Fl:function(t,e,n){"use strict";var r=n("TqRt");e.__esModule=!0,e.default=void 0;var o=function(){};r(n("Bp9Y")).default&&(o=document.addEventListener?function(t,e,n,r){return t.removeEventListener(e,n,r||!1)}:document.attachEvent?function(t,e,n){return t.detachEvent("on"+e,n)}:void 0);var i=o;e.default=i,t.exports=e.default},cSJ8:function(t,e,n){"use strict";e.a=function(t,e){return void 0===e&&(e=""),e?(e+="/",t.substr(0,e.length)===e?t.slice(e.length-1):t):t}},cu4x:function(t,e,n){"use strict";n("V+eJ"),e.__esModule=!0,e.parsePath=function(t){var e=t||"/",n="",r="",o=e.indexOf("#");-1!==o&&(r=e.substr(o),e=e.substr(0,o));var i=e.indexOf("?");-1!==i&&(n=e.substr(i),e=e.substr(0,i));return{pathname:e,search:"?"===n?"":n,hash:"#"===r?"":r}}},czNK:function(t,e,n){"use strict";var r=n("nh4g"),o=n("DVgA"),i=n("JiEa"),a=n("UqcF"),c=n("S/j/"),u=n("Ymqv"),s=Object.assign;t.exports=!s||n("eeVq")((function(){var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach((function(t){e[t]=t})),7!=s({},t)[n]||Object.keys(s({},e)).join("")!=r}))?function(t,e){for(var n=c(t),s=arguments.length,l=1,f=i.f,p=a.f;s>l;)for(var h,d=u(arguments[l++]),v=f?o(d).concat(f(d)):o(d),g=v.length,m=0;g>m;)h=v[m++],r&&!p.call(d,h)||(n[h]=d[h]);return n}:s},"d/Gc":function(t,e,n){var r=n("RYi7"),o=Math.max,i=Math.min;t.exports=function(t,e){return(t=r(t))<0?o(t+e,0):i(t,e)}},dRSK:function(t,e,n){"use strict";var r=n("XKFU"),o=n("CkkT")(5),i=!0;"find"in[]&&Array(1).find((function(){i=!1})),r(r.P+r.F*i,"Array",{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),n("nGyu")("find")},"dZ+Y":function(t,e,n){"use strict";var r=n("XKFU"),o=n("CkkT")(3);r(r.P+r.F*!n("LyE8")([].some,!0),"Array",{some:function(t){return o(this,t,arguments[1])}})},dyZX:function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},"e/UW":function(t,e,n){"use strict";n("pIFo"),e.registerServiceWorker=function(){return!0};var r=/^(stylesheet|preload)$/,o=[];function i(t,e){if(!window.___swUpdated&&"serviceWorker"in navigator){var n=navigator.serviceWorker;if(null===n.controller)o.push(t);else{var r=e(t);n.controller.postMessage({gatsbyApi:"setPathResources",path:t,resources:r})}}}e.onServiceWorkerActive=function(t){var e=t.getResourceURLsForPathname,n=t.serviceWorker;if(window.___swUpdated)n.active.postMessage({gatsbyApi:"clearPathResources"});else{var i=document.querySelectorAll("\n head > script[src],\n head > link[href],\n head > style[data-href]\n "),a=[].slice.call(i).filter((function(t){return"LINK"!==t.tagName||r.test(t.getAttribute("rel"))})).map((function(t){return t.src||t.href||t.getAttribute("data-href")})),c=[];o.forEach((function(t){var r=e(t);c.push.apply(c,r),n.active.postMessage({gatsbyApi:"setPathResources",path:t,resources:r})})),[].concat(a,c).forEach((function(t){var e=document.createElement("link");e.rel="prefetch",e.href=t,e.onload=e.remove,e.onerror=e.remove,document.head.appendChild(e)}))}},e.onRouteUpdate=function(t){var e=t.location,n=t.getResourceURLsForPathname;i(e.pathname.replace("",""),n),"serviceWorker"in navigator&&null!==navigator.serviceWorker.controller&&navigator.serviceWorker.controller.postMessage({gatsbyApi:"enableOfflineShell"})},e.onPostPrefetchPathname=function(t){i(t.pathname,t.getResourceURLsForPathname)}},e7yV:function(t,e,n){var r=n("aCFj"),o=n("kJMx").f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&"[object Window]"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},eM6i:function(t,e,n){var r=n("XKFU");r(r.S,"Date",{now:function(){return(new Date).getTime()}})},eeVq:function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},elZq:function(t,e,n){"use strict";var r=n("dyZX"),o=n("hswa"),i=n("nh4g"),a=n("K0xU")("species");t.exports=function(t){var e=r[t];i&&e&&!e[a]&&o.f(e,a,{configurable:!0,get:function(){return this}})}},emEt:function(t,e,n){"use strict";n.r(e);n("HEwt"),n("a1Th"),n("rE2o"),n("ioFf"),n("T39b"),n("rGqo"),n("yt8O"),n("XfO3"),n("9AAn"),n("Z2Ku"),n("L9s1"),n("91GP"),n("VRzm"),n("Btvt"),n("rvZc"),n("RW0V");var r=function(t){if("undefined"==typeof document)return!1;var e=document.createElement("link");try{if(e.relList&&"function"==typeof e.relList.supports)return e.relList.supports(t)}catch(n){return!1}return!1}("prefetch")?function(t,e){return new Promise((function(n,r){if("undefined"!=typeof document){var o=document.createElement("link");o.setAttribute("rel","prefetch"),o.setAttribute("href",t),Object.keys(e).forEach((function(t){o.setAttribute(t,e[t])})),o.onload=n,o.onerror=r,(document.getElementsByTagName("head")[0]||document.getElementsByName("script")[0].parentNode).appendChild(o)}else r()}))}:function(t){return new Promise((function(e,n){var r=new XMLHttpRequest;r.open("GET",t,!0),r.onload=function(){200===r.status?e():n()},r.send(null)}))},o={},i=function(t,e){return new Promise((function(n){o[t]?n():r(t,e).then((function(){n(),o[t]=!0})).catch((function(){}))}))},a=n("5yr3"),c=(n("KKXr"),n("LYrO")),u=n("cSJ8"),s=function(t){return void 0===t?t:"/"===t?"/":"/"===t.charAt(t.length-1)?t.slice(0,-1):t},l=new Map,f=[],p=function(t){var e=decodeURIComponent(t);return Object(u.a)(e,"").split("#")[0].split("?")[0]},h=function(t){f=t},d=function(t){var e=g(t),n=f,r=Array.isArray(n),o=0;for(n=r?n:n[Symbol.iterator]();;){var i;if(r){if(o>=n.length)break;i=n[o++]}else{if((o=n.next()).done)break;i=o.value}var a=i,u=a.matchPath,l=a.path;if(Object(c.b)(u,e))return s(l)}return null},v=function(t){var e=p(t);if(l.has(e))return l.get(e);var n=d(e);return n||(n=g(t)),l.set(e,n),n},g=function(t){var e=p(t);return"/index.html"===e&&(e="/"),e=s(e)};function m(t){return function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e=0:f>p;p+=h)p in l&&(c=e(c,l[p],p,s));return c}},"f3/d":function(t,e,n){var r=n("hswa").f,o=Function.prototype,i=/^\s*function ([^ (]*)/;"name"in o||n("nh4g")&&r(o,"name",{configurable:!0,get:function(){try{return(""+this).match(i)[1]}catch(t){return""}}})},fyDq:function(t,e,n){var r=n("hswa").f,o=n("aagx"),i=n("K0xU")("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},g3g5:function(t,e){var n=t.exports={version:"2.6.11"};"number"==typeof __e&&(__e=n)},g6HL:function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},gHnn:function(t,e,n){var r=n("dyZX"),o=n("GZEu").set,i=r.MutationObserver||r.WebKitMutationObserver,a=r.process,c=r.Promise,u="process"==n("LZWt")(a);t.exports=function(){var t,e,n,s=function(){var r,o;for(u&&(r=a.domain)&&r.exit();t;){o=t.fn,t=t.next;try{o()}catch(i){throw t?n():e=void 0,i}}e=void 0,r&&r.enter()};if(u)n=function(){a.nextTick(s)};else if(!i||r.navigator&&r.navigator.standalone)if(c&&c.resolve){var l=c.resolve(void 0);n=function(){l.then(s)}}else n=function(){o.call(r,s)};else{var f=!0,p=document.createTextNode("");new i(s).observe(p,{characterData:!0}),n=function(){p.data=f=!f}}return function(r){var o={fn:r,next:void 0};e&&(e.next=o),t||(t=o,n()),e=o}}},h7Nl:function(t,e,n){var r=Date.prototype,o=r.toString,i=r.getTime;new Date(NaN)+""!="Invalid Date"&&n("KroJ")(r,"toString",(function(){var t=i.call(this);return t==t?o.call(this):"Invalid Date"}))},hHhE:function(t,e,n){var r=n("XKFU");r(r.S,"Object",{create:n("Kuth")})},hPIQ:function(t,e){t.exports={}},hswa:function(t,e,n){var r=n("y3w9"),o=n("xpql"),i=n("apmT"),a=Object.defineProperty;e.f=n("nh4g")?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return a(t,e,n)}catch(c){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},i5dc:function(t,e,n){var r=n("0/R4"),o=n("y3w9"),i=function(t,e){if(o(t),!r(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,r){try{(r=n("m0Pp")(Function.call,n("EemH").f(Object.prototype,"__proto__").set,2))(t,[]),e=!(t instanceof Array)}catch(o){e=!0}return function(t,n){return i(t,n),e?t.__proto__=n:r(t,n),t}}({},!1):void 0),check:i}},ioFf:function(t,e,n){"use strict";var r=n("dyZX"),o=n("aagx"),i=n("nh4g"),a=n("XKFU"),c=n("KroJ"),u=n("Z6vF").KEY,s=n("eeVq"),l=n("VTer"),f=n("fyDq"),p=n("ylqs"),h=n("K0xU"),d=n("N8g3"),v=n("OnI7"),g=n("1MBn"),m=n("EWmC"),y=n("y3w9"),w=n("0/R4"),b=n("S/j/"),P=n("aCFj"),_=n("apmT"),S=n("RjD/"),x=n("Kuth"),O=n("e7yV"),E=n("EemH"),j=n("JiEa"),R=n("hswa"),k=n("DVgA"),T=E.f,C=R.f,F=O.f,I=r.Symbol,L=r.JSON,A=L&&L.stringify,U=h("_hidden"),M=h("toPrimitive"),W={}.propertyIsEnumerable,q=l("symbol-registry"),D=l("symbols"),K=l("op-symbols"),B=Object.prototype,X="function"==typeof I&&!!j.f,V=r.QObject,N=!V||!V.prototype||!V.prototype.findChild,H=i&&s((function(){return 7!=x(C({},"a",{get:function(){return C(this,"a",{value:7}).a}})).a}))?function(t,e,n){var r=T(B,e);r&&delete B[e],C(t,e,n),r&&t!==B&&C(B,e,r)}:C,Z=function(t){var e=D[t]=x(I.prototype);return e._k=t,e},Y=X&&"symbol"==typeof I.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof I},G=function(t,e,n){return t===B&&G(K,e,n),y(t),e=_(e,!0),y(n),o(D,e)?(n.enumerable?(o(t,U)&&t[U][e]&&(t[U][e]=!1),n=x(n,{enumerable:S(0,!1)})):(o(t,U)||C(t,U,S(1,{})),t[U][e]=!0),H(t,e,n)):C(t,e,n)},J=function(t,e){y(t);for(var n,r=g(e=P(e)),o=0,i=r.length;i>o;)G(t,n=r[o++],e[n]);return t},z=function(t){var e=W.call(this,t=_(t,!0));return!(this===B&&o(D,t)&&!o(K,t))&&(!(e||!o(this,t)||!o(D,t)||o(this,U)&&this[U][t])||e)},Q=function(t,e){if(t=P(t),e=_(e,!0),t!==B||!o(D,e)||o(K,e)){var n=T(t,e);return!n||!o(D,e)||o(t,U)&&t[U][e]||(n.enumerable=!0),n}},$=function(t){for(var e,n=F(P(t)),r=[],i=0;n.length>i;)o(D,e=n[i++])||e==U||e==u||r.push(e);return r},tt=function(t){for(var e,n=t===B,r=F(n?K:P(t)),i=[],a=0;r.length>a;)!o(D,e=r[a++])||n&&!o(B,e)||i.push(D[e]);return i};X||(c((I=function(){if(this instanceof I)throw TypeError("Symbol is not a constructor!");var t=p(arguments.length>0?arguments[0]:void 0),e=function(n){this===B&&e.call(K,n),o(this,U)&&o(this[U],t)&&(this[U][t]=!1),H(this,t,S(1,n))};return i&&N&&H(B,t,{configurable:!0,set:e}),Z(t)}).prototype,"toString",(function(){return this._k})),E.f=Q,R.f=G,n("kJMx").f=O.f=$,n("UqcF").f=z,j.f=tt,i&&!n("LQAc")&&c(B,"propertyIsEnumerable",z,!0),d.f=function(t){return Z(h(t))}),a(a.G+a.W+a.F*!X,{Symbol:I});for(var et="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),nt=0;et.length>nt;)h(et[nt++]);for(var rt=k(h.store),ot=0;rt.length>ot;)v(rt[ot++]);a(a.S+a.F*!X,"Symbol",{for:function(t){return o(q,t+="")?q[t]:q[t]=I(t)},keyFor:function(t){if(!Y(t))throw TypeError(t+" is not a symbol!");for(var e in q)if(q[e]===t)return e},useSetter:function(){N=!0},useSimple:function(){N=!1}}),a(a.S+a.F*!X,"Object",{create:function(t,e){return void 0===e?x(t):J(x(t),e)},defineProperty:G,defineProperties:J,getOwnPropertyDescriptor:Q,getOwnPropertyNames:$,getOwnPropertySymbols:tt});var it=s((function(){j.f(1)}));a(a.S+a.F*it,"Object",{getOwnPropertySymbols:function(t){return j.f(b(t))}}),L&&a(a.S+a.F*(!X||s((function(){var t=I();return"[null]"!=A([t])||"{}"!=A({a:t})||"{}"!=A(Object(t))}))),"JSON",{stringify:function(t){for(var e,n,r=[t],o=1;arguments.length>o;)r.push(arguments[o++]);if(n=e=r[1],(w(e)||void 0!==t)&&!Y(t))return m(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!Y(e))return e}),r[1]=e,A.apply(L,r)}}),I.prototype[M]||n("Mukb")(I.prototype,M,I.prototype.valueOf),f(I,"Symbol"),f(Math,"Math",!0),f(r.JSON,"JSON",!0)},kJMx:function(t,e,n){var r=n("zhAb"),o=n("4R4u").concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},lSNA:function(t,e){t.exports=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}},lw3w:function(t,e,n){var r;t.exports=(r=n("rzlk"))&&r.default||r},m0Pp:function(t,e,n){var r=n("2OiF");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},nGyu:function(t,e,n){var r=n("K0xU")("unscopables"),o=Array.prototype;null==o[r]&&n("Mukb")(o,r,{}),t.exports=function(t){o[r][t]=!0}},nICZ:function(t,e){t.exports=function(t){try{return{e:!1,v:t()}}catch(e){return{e:!0,v:e}}}},ne8i:function(t,e,n){var r=n("RYi7"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},nh4g:function(t,e,n){t.exports=!n("eeVq")((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},npZl:function(t,e,n){"use strict";var r=n("TqRt");n("Wbzz"),r(n("9hXx"))},nwwn:function(t,e,n){"use strict";e.DEFAULT_OPTIONS={maxWidth:650,wrapperStyle:"",backgroundColor:"white",linkImagesToOriginal:!0,showCaptions:!1,markdownCaptions:!1,withWebp:!1,tracedSVG:!1,loading:"lazy",disableBgImageOnAlpha:!1,disableBgImage:!1},e.imageClass="gatsby-resp-image-image",e.imageWrapperClass="gatsby-resp-image-wrapper",e.imageBackgroundClass="gatsby-resp-image-background-image"},ol8x:function(t,e,n){var r=n("dyZX").navigator;t.exports=r&&r.userAgent||""},pCP8:function(t,e,n){e.components={"component---node-modules-gatsby-plugin-offline-app-shell-js":function(){return n.e(3).then(n.t.bind(null,"MqWW",7))},"component---src-templates-blog-post-js":function(){return Promise.all([n.e(0),n.e(16)]).then(n.bind(null,"yZlL"))},"component---src-templates-tags-js":function(){return Promise.all([n.e(0),n.e(17)]).then(n.bind(null,"MN1z"))},"component---src-pages-404-js":function(){return Promise.all([n.e(0),n.e(4)]).then(n.bind(null,"w2l6"))},"component---src-pages-about-js":function(){return Promise.all([n.e(0),n.e(5)]).then(n.bind(null,"3XHS"))},"component---src-pages-contact-js":function(){return Promise.all([n.e(0),n.e(6)]).then(n.bind(null,"Cuy+"))},"component---src-pages-index-js":function(){return Promise.all([n.e(0),n.e(7)]).then(n.bind(null,"RXBc"))},"component---src-pages-music-discography-index-js":function(){return Promise.all([n.e(1),n.e(0),n.e(8)]).then(n.bind(null,"PTa2"))},"component---src-pages-music-index-js":function(){return Promise.all([n.e(0),n.e(9)]).then(n.bind(null,"e0vg"))},"component---src-pages-music-teaching-resources-index-js":function(){return Promise.all([n.e(0),n.e(10)]).then(n.bind(null,"0l1m"))},"component---src-pages-other-index-js":function(){return Promise.all([n.e(0),n.e(11)]).then(n.bind(null,"lw47"))},"component---src-pages-reading-list-index-js":function(){return Promise.all([n.e(1),n.e(0),n.e(12)]).then(n.bind(null,"14IF"))},"component---src-pages-tags-js":function(){return Promise.all([n.e(0),n.e(13)]).then(n.bind(null,"enK5"))},"component---src-pages-tech-index-js":function(){return Promise.all([n.e(0),n.e(14)]).then(n.bind(null,"hYRG"))},"component---src-pages-tech-projects-index-js":function(){return Promise.all([n.e(1),n.e(0),n.e(15)]).then(n.bind(null,"2BA8"))}}},pIFo:function(t,e,n){"use strict";var r=n("y3w9"),o=n("S/j/"),i=n("ne8i"),a=n("RYi7"),c=n("A5AN"),u=n("Xxuz"),s=Math.max,l=Math.min,f=Math.floor,p=/\$([$&`']|\d\d?|<[^>]*>)/g,h=/\$([$&`']|\d\d?)/g;n("IU+Z")("replace",2,(function(t,e,n,d){return[function(r,o){var i=t(this),a=null==r?void 0:r[e];return void 0!==a?a.call(r,i,o):n.call(String(i),r,o)},function(t,e){var o=d(n,t,this,e);if(o.done)return o.value;var f=r(t),p=String(this),h="function"==typeof e;h||(e=String(e));var g=f.global;if(g){var m=f.unicode;f.lastIndex=0}for(var y=[];;){var w=u(f,p);if(null===w)break;if(y.push(w),!g)break;""===String(w[0])&&(f.lastIndex=c(p,i(f.lastIndex),m))}for(var b,P="",_=0,S=0;S=_&&(P+=p.slice(_,O)+T,_=O+x.length)}return P+p.slice(_)}];function v(t,e,r,i,a,c){var u=r+t.length,s=i.length,l=h;return void 0!==a&&(a=o(a),l=p),n.call(c,l,(function(n,o){var c;switch(o.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,r);case"'":return e.slice(u);case"<":c=a[o.slice(1,-1)];break;default:var l=+o;if(0===l)return n;if(l>s){var p=f(l/10);return 0===p?n:p<=s?void 0===i[p-1]?o.charAt(1):i[p-1]+o.charAt(1):n}c=i[l-1]}return void 0===c?"":c}))}}))},pVnL:function(t,e){function n(){return t.exports=n=Object.assign||function(t){for(var e=1;e1?arguments[1]:void 0,r=o(e.length),c=void 0===n?r:Math.min(o(n),r),u=String(t);return a?a.call(e,u,c):e.slice(c-u.length,c)===u}})},rzlk:function(t,e,n){"use strict";n.r(e);n("91GP");var r=n("q1tI"),o=n.n(r),i=n("IOVJ");e.default=function(t){var e=t.location,n=t.pageResources;return n?o.a.createElement(i.a,Object.assign({location:e,pageResources:n},n.json)):null}},s5qY:function(t,e,n){var r=n("0/R4");t.exports=function(t,e){if(!r(t)||t._t!==e)throw TypeError("Incompatible receiver, "+e+" required!");return t}},sMXx:function(t,e,n){"use strict";var r=n("Ugos");n("XKFU")({target:"RegExp",proto:!0,forced:r!==/./.exec},{exec:r})},vKrd:function(t,e,n){var r=n("y3w9"),o=n("0/R4"),i=n("pbhE");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},vf9c:function(t){t.exports=JSON.parse("[]")},vhPU:function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},w2a5:function(t,e,n){var r=n("aCFj"),o=n("ne8i"),i=n("d/Gc");t.exports=function(t){return function(e,n,a){var c,u=r(e),s=o(u.length),l=i(a,s);if(t&&n!=n){for(;s>l;)if((c=u[l++])!=c)return!0}else for(;s>l;l++)if((t||l in u)&&u[l]===n)return t||l||0;return!t&&-1}}},wCsR:function(t,e,n){"use strict";var r=n("ZD67"),o=n("s5qY");n("4LiD")("WeakSet",(function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}}),{add:function(t){return r.def(o(this,"WeakSet"),t,!0)}},r,!1,!0)},wmvG:function(t,e,n){"use strict";var r=n("hswa").f,o=n("Kuth"),i=n("3Lyj"),a=n("m0Pp"),c=n("9gX7"),u=n("SlkY"),s=n("Afnz"),l=n("1TsA"),f=n("elZq"),p=n("nh4g"),h=n("Z6vF").fastKey,d=n("s5qY"),v=p?"_s":"size",g=function(t,e){var n,r=h(e);if("F"!==r)return t._i[r];for(n=t._f;n;n=n.n)if(n.k==e)return n};t.exports={getConstructor:function(t,e,n,s){var l=t((function(t,r){c(t,l,e,"_i"),t._t=e,t._i=o(null),t._f=void 0,t._l=void 0,t[v]=0,null!=r&&u(r,n,t[s],t)}));return i(l.prototype,{clear:function(){for(var t=d(this,e),n=t._i,r=t._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];t._f=t._l=void 0,t[v]=0},delete:function(t){var n=d(this,e),r=g(n,t);if(r){var o=r.n,i=r.p;delete n._i[r.i],r.r=!0,i&&(i.n=o),o&&(o.p=i),n._f==r&&(n._f=o),n._l==r&&(n._l=i),n[v]--}return!!r},forEach:function(t){d(this,e);for(var n,r=a(t,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(t){return!!g(d(this,e),t)}}),p&&r(l.prototype,"size",{get:function(){return d(this,e)[v]}}),l},def:function(t,e,n){var r,o,i=g(t,e);return i?i.v=n:(t._l=i={i:o=h(e,!0),k:e,v:n,p:r=t._l,n:void 0,r:!1},t._f||(t._f=i),r&&(r.n=i),t[v]++,"F"!==o&&(t._i[o]=i)),t},getEntry:g,setStrong:function(t,e,n){s(t,e,(function(t,n){this._t=d(t,e),this._k=n,this._l=void 0}),(function(){for(var t=this._k,e=this._l;e&&e.r;)e=e.p;return this._t&&(this._l=e=e?e.n:this._t._f)?l(0,"keys"==t?e.k:"values"==t?e.v:[e.k,e.v]):(this._t=void 0,l(1))}),n?"entries":"values",!n,!0),f(e)}}},xpql:function(t,e,n){t.exports=!n("nh4g")&&!n("eeVq")((function(){return 7!=Object.defineProperty(n("Iw71")("div"),"a",{get:function(){return 7}}).a}))},xtsi:function(t,e,n){n("VRzm"),n("Btvt");var r=n("LeKB"),o=n("emEt").publicLoader,i=o.getResourcesForPathname,a=o.getResourcesForPathnameSync,c=o.getResourceURLsForPathname,u=o.loadPage,s=o.loadPageSync;e.apiRunner=function(t,e,n,o){void 0===e&&(e={});var l=r.map((function(n){if(n.plugin[t]){e.getResourcesForPathnameSync=a,e.getResourcesForPathname=i,e.getResourceURLsForPathname=c,e.loadPage=u,e.loadPageSync=s;var r=n.plugin[t](e,n.options);return r&&o&&(e=o({args:e,result:r,plugin:n})),r}}));return(l=l.filter((function(t){return void 0!==t}))).length>0?l:n?[n]:[]},e.apiRunnerAsync=function(t,e,n){return r.reduce((function(n,r){return r.plugin[t]?n.then((function(){return r.plugin[t](e,r.options)})):n}),Promise.resolve())}},y3w9:function(t,e,n){var r=n("0/R4");t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},ylqs:function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},yt8O:function(t,e,n){"use strict";var r=n("nGyu"),o=n("1TsA"),i=n("hPIQ"),a=n("aCFj");t.exports=n("Afnz")(Array,"Array",(function(t,e){this._t=a(t),this._i=0,this._k=e}),(function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):o(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])}),"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},zRwo:function(t,e,n){var r=n("6FMO");t.exports=function(t,e){return new(r(t))(e)}},zhAb:function(t,e,n){var r=n("aagx"),o=n("aCFj"),i=n("w2a5")(!1),a=n("YTvA")("IE_PROTO");t.exports=function(t,e){var n,c=o(t),u=0,s=[];for(n in c)n!=a&&r(c,n)&&s.push(n);for(;e.length>u;)r(c,n=e[u++])&&(~i(s,n)||s.push(n));return s}}},[["UxWs",18,1,0]]]); -//# sourceMappingURL=app-e6d974cf9700e3928dc3.js.map \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{"+ZDr":function(t,e,n){"use strict";n("2Spj"),n("0l/t"),n("8+KV"),n("pIFo");var r=n("TqRt");e.__esModule=!0,e.withPrefix=h,e.withAssetPrefix=function(t){return[""].concat([t.replace(/^\//,"")]).join("/")},e.navigateTo=e.replace=e.push=e.navigate=e.default=void 0;var o=r(n("8OQS")),i=r(n("pVnL")),a=r(n("PJYZ")),c=r(n("VbXa")),u=r(n("lSNA")),s=r(n("17x9")),l=r(n("q1tI")),f=n("YwZP"),p=n("cu4x");function h(t){return function(t){return t.replace(/\/+/g,"/")}(["",t].join("/"))}e.parsePath=p.parsePath;var d={activeClassName:s.default.string,activeStyle:s.default.object,partiallyActive:s.default.bool},v=function(t){function e(e){var n;n=t.call(this,e)||this,(0,u.default)((0,a.default)(n),"defaultGetProps",(function(t){var e=t.isPartiallyCurrent,r=t.isCurrent;return(n.props.partiallyActive?e:r)?{className:[n.props.className,n.props.activeClassName].filter(Boolean).join(" "),style:(0,i.default)({},n.props.style,{},n.props.activeStyle)}:null}));var r=!1;return"undefined"!=typeof window&&window.IntersectionObserver&&(r=!0),n.state={IOSupported:r},n.handleRef=n.handleRef.bind((0,a.default)(n)),n}(0,c.default)(e,t);var n=e.prototype;return n.componentDidUpdate=function(t,e){this.props.to===t.to||this.state.IOSupported||___loader.enqueue((0,p.parsePath)(this.props.to).pathname)},n.componentDidMount=function(){this.state.IOSupported||___loader.enqueue((0,p.parsePath)(this.props.to).pathname)},n.componentWillUnmount=function(){if(this.io){var t=this.io,e=t.instance,n=t.el;e.unobserve(n),e.disconnect()}},n.handleRef=function(t){var e,n,r,o=this;this.props.innerRef&&this.props.innerRef.hasOwnProperty("current")?this.props.innerRef.current=t:this.props.innerRef&&this.props.innerRef(t),this.state.IOSupported&&t&&(this.io=(e=t,n=function(){___loader.enqueue((0,p.parsePath)(o.props.to).pathname)},(r=new window.IntersectionObserver((function(t){t.forEach((function(t){e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(r.unobserve(e),r.disconnect(),n())}))}))).observe(e),{instance:r,el:e}))},n.render=function(){var t=this,e=this.props,n=e.to,r=e.getProps,a=void 0===r?this.defaultGetProps:r,c=e.onClick,u=e.onMouseEnter,s=(e.activeClassName,e.activeStyle,e.innerRef,e.partiallyActive,e.state),d=e.replace,v=(0,o.default)(e,["to","getProps","onClick","onMouseEnter","activeClassName","activeStyle","innerRef","partiallyActive","state","replace"]);var g=h(n);return l.default.createElement(f.Link,(0,i.default)({to:g,state:s,getProps:a,innerRef:this.handleRef,onMouseEnter:function(t){u&&u(t),___loader.hovering((0,p.parsePath)(n).pathname)},onClick:function(e){return c&&c(e),0!==e.button||t.props.target||e.defaultPrevented||e.metaKey||e.altKey||e.ctrlKey||e.shiftKey||(e.preventDefault(),y(n,{state:s,replace:d})),!0}},v))},e}(l.default.Component);v.propTypes=(0,i.default)({},d,{onClick:s.default.func,to:s.default.string.isRequired,replace:s.default.bool});var g=function(t,e,n){return console.warn('The "'+t+'" method is now deprecated and will be removed in Gatsby v'+n+'. Please use "'+e+'" instead.')},m=l.default.forwardRef((function(t,e){return l.default.createElement(v,(0,i.default)({innerRef:e},t))}));e.default=m;var y=function(t,e){window.___navigate(h(t),e)};e.navigate=y;var w=function(t){g("push","navigate",3),window.___push(h(t))};e.push=w;e.replace=function(t){g("replace","navigate",3),window.___replace(h(t))};e.navigateTo=function(t){return g("navigateTo","navigate",3),w(t)}},"+i7v":function(t,e,n){"use strict";var r=n("TqRt");e.__esModule=!0,e.default=function(t,e){var n=(0,o.default)(t);if(void 0===e)return n?"pageXOffset"in n?n.pageXOffset:n.document.documentElement.scrollLeft:t.scrollLeft;n?n.scrollTo(e,"pageYOffset"in n?n.pageYOffset:n.document.documentElement.scrollTop):t.scrollLeft=e};var o=r(n("8Y+z"));t.exports=e.default},"+lvF":function(t,e,n){t.exports=n("VTer")("native-function-to-string",Function.toString)},"+rLv":function(t,e,n){var r=n("dyZX").document;t.exports=r&&r.documentElement},"/SS/":function(t,e,n){var r=n("XKFU");r(r.S,"Object",{setPrototypeOf:n("i5dc").set})},"/e88":function(t,e){t.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},"0/R4":function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},"0l/t":function(t,e,n){"use strict";var r=n("XKFU"),o=n("CkkT")(2);r(r.P+r.F*!n("LyE8")([].filter,!0),"Array",{filter:function(t){return o(this,t,arguments[1])}})},"0sh+":function(t,e,n){var r=n("quPj"),o=n("vhPU");t.exports=function(t,e,n){if(r(e))throw TypeError("String#"+n+" doesn't accept regex!");return String(o(t))}},"16Al":function(t,e,n){"use strict";n("f3/d");var r=n("WbBG");function o(){}function i(){}i.resetWarningCache=o,t.exports=function(){function t(t,e,n,o,i,a){if(a!==r){var c=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw c.name="Invariant Violation",c}}function e(){return t}t.isRequired=t;var n={array:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,elementType:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:i,resetWarningCache:o};return n.PropTypes=n,n}},"17x9":function(t,e,n){t.exports=n("16Al")()},"1MBn":function(t,e,n){var r=n("DVgA"),o=n("JiEa"),i=n("UqcF");t.exports=function(t){var e=r(t),n=o.f;if(n)for(var a,c=n(t),u=i.f,s=0;c.length>s;)u.call(t,a=c[s++])&&e.push(a);return e}},"1TsA":function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},"1fHE":function(t,e,n){"use strict";e.__esModule=!0,e.default=void 0;var r=function(){function t(){}var e=t.prototype;return e.read=function(t,e){var n=this.getStateKey(t,e);try{var r=window.sessionStorage.getItem(n);return JSON.parse(r)}catch(o){return window&&window.___GATSBY_REACT_ROUTER_SCROLL&&window.___GATSBY_REACT_ROUTER_SCROLL[n]?window.___GATSBY_REACT_ROUTER_SCROLL[n]:{}}},e.save=function(t,e,n){var r=this.getStateKey(t,e),o=JSON.stringify(n);try{window.sessionStorage.setItem(r,o)}catch(i){window&&window.___GATSBY_REACT_ROUTER_SCROLL?window.___GATSBY_REACT_ROUTER_SCROLL[r]=JSON.parse(o):(window.___GATSBY_REACT_ROUTER_SCROLL={},window.___GATSBY_REACT_ROUTER_SCROLL[r]=JSON.parse(o))}},e.getStateKey=function(t,e){var n="@@scroll|"+(t.key||t.pathname);return null==e?n:n+"|"+e},t}();e.default=r},"25dN":function(t,e,n){var r=n("XKFU");r(r.S,"Object",{is:n("g6HL")})},"2OiF":function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},"2Spj":function(t,e,n){var r=n("XKFU");r(r.P,"Function",{bind:n("8MEG")})},"3Lyj":function(t,e,n){var r=n("KroJ");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},"444f":function(t,e,n){"use strict";var r=n("TqRt");e.__esModule=!0,e.default=void 0;var o=r(n("PJYZ")),i=r(n("VbXa")),a=r(n("lSNA")),c=r(n("q1tI")),u=r(n("LHMV")),s=r(n("17x9")),l=n("9Xx/"),f=r(n("1fHE")),p={shouldUpdateScroll:s.default.func,children:s.default.element.isRequired,location:s.default.object.isRequired},h={scrollBehavior:s.default.object.isRequired},d=function(t){function e(e,n){var r;return r=t.call(this,e,n)||this,(0,a.default)((0,o.default)(r),"shouldUpdateScroll",(function(t,e){var n=r.props.shouldUpdateScroll;return!n||n.call(r.scrollBehavior,t,e)})),(0,a.default)((0,o.default)(r),"registerElement",(function(t,e,n){r.scrollBehavior.registerElement(t,e,n,r.getRouterProps())})),(0,a.default)((0,o.default)(r),"unregisterElement",(function(t){r.scrollBehavior.unregisterElement(t)})),r.scrollBehavior=new u.default({addTransitionHook:l.globalHistory.listen,stateStorage:new f.default,getCurrentLocation:function(){return r.props.location},shouldUpdateScroll:r.shouldUpdateScroll}),r}(0,i.default)(e,t);var n=e.prototype;return n.getChildContext=function(){return{scrollBehavior:this}},n.componentDidUpdate=function(t){var e=this.props.location;if(e!==t.location){var n={location:t.location};window.__navigatingToLink?e.action="PUSH":e.action="POP",this.scrollBehavior.updateScroll(n,{history:l.globalHistory,location:e})}},n.componentWillUnmount=function(){this.scrollBehavior.stop()},n.getRouterProps=function(){return{location:this.props.location,history:l.globalHistory}},n.render=function(){return c.default.Children.only(this.props.children)},e}(c.default.Component);d.propTypes=p,d.childContextTypes=h;var v=d;e.default=v},"4LiD":function(t,e,n){"use strict";var r=n("dyZX"),o=n("XKFU"),i=n("KroJ"),a=n("3Lyj"),c=n("Z6vF"),u=n("SlkY"),s=n("9gX7"),l=n("0/R4"),f=n("eeVq"),p=n("XMVh"),h=n("fyDq"),d=n("Xbzi");t.exports=function(t,e,n,v,g,m){var y=r[t],w=y,b=g?"set":"add",P=w&&w.prototype,_={},S=function(t){var e=P[t];i(P,t,"delete"==t?function(t){return!(m&&!l(t))&&e.call(this,0===t?0:t)}:"has"==t?function(t){return!(m&&!l(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return m&&!l(t)?void 0:e.call(this,0===t?0:t)}:"add"==t?function(t){return e.call(this,0===t?0:t),this}:function(t,n){return e.call(this,0===t?0:t,n),this})};if("function"==typeof w&&(m||P.forEach&&!f((function(){(new w).entries().next()})))){var x=new w,O=x[b](m?{}:-0,1)!=x,E=f((function(){x.has(1)})),j=p((function(t){new w(t)})),R=!m&&f((function(){for(var t=new w,e=5;e--;)t[b](e,e);return!t.has(-0)}));j||((w=e((function(e,n){s(e,w,t);var r=d(new y,e,w);return null!=n&&u(n,g,r[b],r),r}))).prototype=P,P.constructor=w),(E||R)&&(S("delete"),S("has"),g&&S("get")),(R||O)&&S(b),m&&P.clear&&delete P.clear}else w=v.getConstructor(e,t,g,b),a(w.prototype,n),c.NEED=!0;return h(w,t),_[t]=w,o(o.G+o.W+o.F*(w!=y),_),m||v.setStrong(w,t,g),w}},"4R4u":function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},"5yr3":function(t,e,n){"use strict";n("bWfx"),n("V+eJ"),n("hHhE");var r=function(t){return t=t||Object.create(null),{on:function(e,n){(t[e]||(t[e]=[])).push(n)},off:function(e,n){t[e]&&t[e].splice(t[e].indexOf(n)>>>0,1)},emit:function(e,n){(t[e]||[]).slice().map((function(t){t(n)})),(t["*"]||[]).slice().map((function(t){t(e,n)}))}}}();e.a=r},"69bn":function(t,e,n){var r=n("y3w9"),o=n("2OiF"),i=n("K0xU")("species");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},"6DQo":function(t,e,n){"use strict";n("pIFo");t.exports=function(){}},"6FMO":function(t,e,n){var r=n("0/R4"),o=n("EWmC"),i=n("K0xU")("species");t.exports=function(t){var e;return o(t)&&("function"!=typeof(e=t.constructor)||e!==Array&&!o(e.prototype)||(e=void 0),r(e)&&null===(e=e[i])&&(e=void 0)),void 0===e?Array:e}},"7hJ6":function(t,e,n){"use strict";var r=n("TqRt"),o=r(n("444f")),i=r(n("IVHb"));e.ScrollContainer=i.default,e.ScrollContext=o.default},"8+KV":function(t,e,n){"use strict";var r=n("XKFU"),o=n("CkkT")(0),i=n("LyE8")([].forEach,!0);r(r.P+r.F*!i,"Array",{forEach:function(t){return o(this,t,arguments[1])}})},"8MEG":function(t,e,n){"use strict";var r=n("2OiF"),o=n("0/R4"),i=n("MfQN"),a=[].slice,c={},u=function(t,e,n){if(!(e in c)){for(var r=[],o=0;o=0||(o[n]=t[n]);return o}},"8Y+z":function(t,e,n){"use strict";e.__esModule=!0,e.default=function(t){return t===t.window?t:9===t.nodeType&&(t.defaultView||t.parentWindow)},t.exports=e.default},"8a7r":function(t,e,n){"use strict";var r=n("hswa"),o=n("RjD/");t.exports=function(t,e,n){e in t?r.f(t,e,o(0,n)):t[e]=n}},"91GP":function(t,e,n){var r=n("XKFU");r(r.S+r.F,"Object",{assign:n("czNK")})},"94VI":function(t,e){e.polyfill=function(t){return t}},"9AAn":function(t,e,n){"use strict";var r=n("wmvG"),o=n("s5qY");t.exports=n("4LiD")("Map",(function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}}),{get:function(t){var e=r.getEntry(o(this,"Map"),t);return e&&e.v},set:function(t,e){return r.def(o(this,"Map"),0===t?0:t,e)}},r,!0)},"9VmF":function(t,e,n){"use strict";var r=n("XKFU"),o=n("ne8i"),i=n("0sh+"),a="".startsWith;r(r.P+r.F*n("UUeW")("startsWith"),"String",{startsWith:function(t){var e=i(this,t,"startsWith"),n=o(Math.min(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return a?a.call(e,r,n):e.slice(n,n+r.length)===r}})},"9Xx/":function(t,e,n){"use strict";n.r(e),n.d(e,"globalHistory",(function(){return u})),n.d(e,"navigate",(function(){return s})),n.d(e,"createHistory",(function(){return i})),n.d(e,"createMemorySource",(function(){return a}));n("KKXr"),n("8+KV"),n("VRzm"),n("Btvt"),n("eM6i"),n("pIFo"),n("0l/t"),n("91GP");var r=Object.assign||function(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},s=u.state,l=u.replace,f=void 0!==l&&l;s=r({},s,{key:Date.now()+""});try{a||f?t.history.replaceState(s,null,e):t.history.pushState(s,null,e)}catch(h){t.location[f?"replace":"assign"](e)}i=o(t),a=!0;var p=new Promise((function(t){return c=t}));return n.forEach((function(t){return t({location:i,action:"PUSH"})})),p}}},a=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/",e=0,n=[{pathname:t,search:""}],r=[];return{get location(){return n[e]},addEventListener:function(t,e){},removeEventListener:function(t,e){},history:{get entries(){return n},get index(){return e},get state(){return r[e]},pushState:function(t,o,i){var a=i.split("?"),c=a[0],u=a[1],s=void 0===u?"":u;e++,n.push({pathname:c,search:s}),r.push(t)},replaceState:function(t,o,i){var a=i.split("?"),c=a[0],u=a[1],s=void 0===u?"":u;n[e]={pathname:c,search:s},r[e]=t}}}},c=!("undefined"==typeof window||!window.document||!window.document.createElement),u=i(c?window:a()),s=u.navigate},"9gX7":function(t,e){t.exports=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+": incorrect invocation!");return t}},"9hXx":function(t,e,n){"use strict";n("9VmF"),n("dRSK"),e.__esModule=!0,e.default=void 0;e.default=function(t,e){if(!Array.isArray(e))return"manifest.webmanifest";var n=e.find((function(e){return t.startsWith(e.start_url)}));return n?"manifest_"+n.lang+".webmanifest":"manifest.webmanifest"}},A5AN:function(t,e,n){"use strict";var r=n("AvRE")(!0);t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},Afnz:function(t,e,n){"use strict";var r=n("LQAc"),o=n("XKFU"),i=n("KroJ"),a=n("Mukb"),c=n("hPIQ"),u=n("QaDb"),s=n("fyDq"),l=n("OP3Y"),f=n("K0xU")("iterator"),p=!([].keys&&"next"in[].keys()),h=function(){return this};t.exports=function(t,e,n,d,v,g,m){u(n,e,d);var y,w,b,P=function(t){if(!p&&t in O)return O[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},_=e+" Iterator",S="values"==v,x=!1,O=t.prototype,E=O[f]||O["@@iterator"]||v&&O[v],j=E||P(v),R=v?S?P("entries"):j:void 0,k="Array"==e&&O.entries||E;if(k&&(b=l(k.call(new t)))!==Object.prototype&&b.next&&(s(b,_,!0),r||"function"==typeof b[f]||a(b,f,h)),S&&E&&"values"!==E.name&&(x=!0,j=function(){return E.call(this)}),r&&!m||!p&&!x&&O[f]||a(O,f,j),c[e]=j,c[_]=h,v)if(y={values:S?j:P("values"),keys:g?j:P("keys"),entries:R},m)for(w in y)w in O||i(O,w,y[w]);else o(o.P+o.F*(p||x),e,y);return y}},AvRE:function(t,e,n){var r=n("RYi7"),o=n("vhPU");t.exports=function(t){return function(e,n){var i,a,c=String(o(e)),u=r(n),s=c.length;return u<0||u>=s?t?"":void 0:(i=c.charCodeAt(u))<55296||i>56319||u+1===s||(a=c.charCodeAt(u+1))<56320||a>57343?t?c.charAt(u):i:t?c.slice(u,u+2):a-56320+(i-55296<<10)+65536}}},Bp9Y:function(t,e,n){"use strict";e.__esModule=!0,e.default=void 0;var r=!("undefined"==typeof window||!window.document||!window.document.createElement);e.default=r,t.exports=e.default},Btvt:function(t,e,n){"use strict";var r=n("I8a+"),o={};o[n("K0xU")("toStringTag")]="z",o+""!="[object z]"&&n("KroJ")(Object.prototype,"toString",(function(){return"[object "+r(this)+"]"}),!0)},"C/va":function(t,e,n){"use strict";var r=n("y3w9");t.exports=function(){var t=r(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},CkkT:function(t,e,n){var r=n("m0Pp"),o=n("Ymqv"),i=n("S/j/"),a=n("ne8i"),c=n("zRwo");t.exports=function(t,e){var n=1==t,u=2==t,s=3==t,l=4==t,f=6==t,p=5==t||f,h=e||c;return function(e,c,d){for(var v,g,m=i(e),y=o(m),w=r(c,d,3),b=a(y.length),P=0,_=n?h(e,b):u?h(e,0):void 0;b>P;P++)if((p||P in y)&&(g=w(v=y[P],P,m),t))if(n)_[P]=g;else if(g)switch(t){case 3:return!0;case 5:return v;case 6:return P;case 2:_.push(v)}else if(l)return!1;return f?-1:s||l?l:_}}},DNiP:function(t,e,n){"use strict";var r=n("XKFU"),o=n("eyMr");r(r.P+r.F*!n("LyE8")([].reduce,!0),"Array",{reduce:function(t){return o(this,t,arguments.length,arguments[1],!1)}})},DVgA:function(t,e,n){var r=n("zhAb"),o=n("4R4u");t.exports=Object.keys||function(t){return r(t,o)}},EK0E:function(t,e,n){"use strict";var r,o=n("dyZX"),i=n("CkkT")(0),a=n("KroJ"),c=n("Z6vF"),u=n("czNK"),s=n("ZD67"),l=n("0/R4"),f=n("s5qY"),p=n("s5qY"),h=!o.ActiveXObject&&"ActiveXObject"in o,d=c.getWeak,v=Object.isExtensible,g=s.ufstore,m=function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},y={get:function(t){if(l(t)){var e=d(t);return!0===e?g(f(this,"WeakMap")).get(t):e?e[this._i]:void 0}},set:function(t,e){return s.def(f(this,"WeakMap"),t,e)}},w=t.exports=n("4LiD")("WeakMap",m,y,s,!0,!0);p&&h&&(u((r=s.getConstructor(m,"WeakMap")).prototype,y),c.NEED=!0,i(["delete","has","get","set"],(function(t){var e=w.prototype,n=e[t];a(e,t,(function(e,o){if(l(e)&&!v(e)){this._f||(this._f=new r);var i=this._f[t](e,o);return"set"==t?this:i}return n.call(this,e,o)}))})))},EWmC:function(t,e,n){var r=n("LZWt");t.exports=Array.isArray||function(t){return"Array"==r(t)}},EemH:function(t,e,n){var r=n("UqcF"),o=n("RjD/"),i=n("aCFj"),a=n("apmT"),c=n("aagx"),u=n("xpql"),s=Object.getOwnPropertyDescriptor;e.f=n("nh4g")?s:function(t,e){if(t=i(t),e=a(e,!0),u)try{return s(t,e)}catch(n){}if(c(t,e))return o(!r.f.call(t,e),t[e])}},FJW5:function(t,e,n){var r=n("hswa"),o=n("y3w9"),i=n("DVgA");t.exports=n("nh4g")?Object.defineProperties:function(t,e){o(t);for(var n,a=i(e),c=a.length,u=0;c>u;)r.f(t,n=a[u++],e[n]);return t}},GZEu:function(t,e,n){var r,o,i,a=n("m0Pp"),c=n("MfQN"),u=n("+rLv"),s=n("Iw71"),l=n("dyZX"),f=l.process,p=l.setImmediate,h=l.clearImmediate,d=l.MessageChannel,v=l.Dispatch,g=0,m={},y=function(){var t=+this;if(m.hasOwnProperty(t)){var e=m[t];delete m[t],e()}},w=function(t){y.call(t.data)};p&&h||(p=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return m[++g]=function(){c("function"==typeof t?t:Function(t),e)},r(g),g},h=function(t){delete m[t]},"process"==n("LZWt")(f)?r=function(t){f.nextTick(a(y,t,1))}:v&&v.now?r=function(t){v.now(a(y,t,1))}:d?(i=(o=new d).port2,o.port1.onmessage=w,r=a(i.postMessage,i,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(t){l.postMessage(t+"","*")},l.addEventListener("message",w,!1)):r="onreadystatechange"in s("script")?function(t){u.appendChild(s("script")).onreadystatechange=function(){u.removeChild(this),y.call(t)}}:function(t){setTimeout(a(y,t,1),0)}),t.exports={set:p,clear:h}},GddB:function(t,e,n){"use strict";n.r(e),n.d(e,"onRouteUpdate",(function(){return r}));n("xMo/"),n("qHiR"),n("t+Ps");var r=function(t,e){t.location;"undefined"!=typeof woopra&&(e&&e.debug&&console.log("woopra.track() called"),woopra.track())}},H6hf:function(t,e,n){var r=n("y3w9");t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},"HAE/":function(t,e,n){var r=n("XKFU");r(r.S+r.F*!n("nh4g"),"Object",{defineProperty:n("hswa").f})},HEwt:function(t,e,n){"use strict";var r=n("m0Pp"),o=n("XKFU"),i=n("S/j/"),a=n("H6hf"),c=n("M6Qj"),u=n("ne8i"),s=n("8a7r"),l=n("J+6e");o(o.S+o.F*!n("XMVh")((function(t){Array.from(t)})),"Array",{from:function(t){var e,n,o,f,p=i(t),h="function"==typeof this?this:Array,d=arguments.length,v=d>1?arguments[1]:void 0,g=void 0!==v,m=0,y=l(p);if(g&&(v=r(v,d>2?arguments[2]:void 0,2)),null==y||h==Array&&c(y))for(n=new h(e=u(p.length));e>m;m++)s(n,m,g?v(p[m],m):p[m]);else for(f=y.call(p),n=new h;!(o=f.next()).done;m++)s(n,m,g?a(f,v,[o.value,m],!0):o.value);return n.length=m,n}})},"I8a+":function(t,e,n){var r=n("LZWt"),o=n("K0xU")("toStringTag"),i="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),o))?n:i?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},IOVJ:function(t,e,n){"use strict";n("91GP");var r=n("q1tI"),o=n.n(r),i=n("emEt"),a=n("xtsi");var c=function(t){var e,n;function o(){return t.apply(this,arguments)||this}return n=t,(e=o).prototype=Object.create(n.prototype),e.prototype.constructor=e,e.__proto__=n,o.prototype.render=function(){var t=Object.assign({},this.props,{pathContext:this.props.pageContext}),e=Object(a.apiRunner)("replaceComponentRenderer",{props:this.props,loader:i.publicLoader})[0]||Object(r.createElement)(this.props.pageResources.component,Object.assign({},t,{key:this.props.path||this.props.pageResources.page.path}));return Object(a.apiRunner)("wrapPageElement",{element:e,props:t},e,(function(e){return{element:e.result,props:t}})).pop()},o}(o.a.Component);e.a=c},"IU+Z":function(t,e,n){"use strict";n("sMXx");var r=n("KroJ"),o=n("Mukb"),i=n("eeVq"),a=n("vhPU"),c=n("K0xU"),u=n("Ugos"),s=c("species"),l=!i((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")})),f=function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();t.exports=function(t,e,n){var p=c(t),h=!i((function(){var e={};return e[p]=function(){return 7},7!=""[t](e)})),d=h?!i((function(){var e=!1,n=/a/;return n.exec=function(){return e=!0,null},"split"===t&&(n.constructor={},n.constructor[s]=function(){return n}),n[p](""),!e})):void 0;if(!h||!d||"replace"===t&&!l||"split"===t&&!f){var v=/./[p],g=n(a,p,""[t],(function(t,e,n,r,o){return e.exec===u?h&&!o?{done:!0,value:v.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}})),m=g[0],y=g[1];r(String.prototype,t,m),o(RegExp.prototype,p,2==e?function(t,e){return y.call(t,this,e)}:function(t){return y.call(t,this)})}}},IVHb:function(t,e,n){"use strict";var r=n("TqRt");e.__esModule=!0,e.default=void 0;var o=r(n("PJYZ")),i=r(n("VbXa")),a=r(n("lSNA")),c=r(n("q1tI")),u=r(n("i8i4")),s=r(n("6DQo")),l=r(n("17x9")),f={scrollKey:l.default.string.isRequired,shouldUpdateScroll:l.default.func,children:l.default.element.isRequired},p={scrollBehavior:l.default.object},h=function(t){function e(e,n){var r;return r=t.call(this,e,n)||this,(0,a.default)((0,o.default)(r),"shouldUpdateScroll",(function(t,e){var n=r.props.shouldUpdateScroll;return!n||n.call(r.context.scrollBehavior.scrollBehavior,t,e)})),r.scrollKey=e.scrollKey,r}(0,i.default)(e,t);var n=e.prototype;return n.componentDidMount=function(){this.context.scrollBehavior.registerElement(this.props.scrollKey,u.default.findDOMNode(this),this.shouldUpdateScroll)},n.componentDidUpdate=function(t){(0,s.default)(t.scrollKey===this.props.scrollKey," does not support changing scrollKey.")},n.componentWillUnmount=function(){this.context.scrollBehavior.unregisterElement(this.scrollKey)},n.render=function(){return this.props.children},e}(c.default.Component);h.propTypes=f,h.contextTypes=p;var d=h;e.default=d},Iw71:function(t,e,n){var r=n("0/R4"),o=n("dyZX").document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},"J+6e":function(t,e,n){var r=n("I8a+"),o=n("K0xU")("iterator"),i=n("hPIQ");t.exports=n("g3g5").getIteratorMethod=function(t){if(null!=t)return t[o]||t["@@iterator"]||i[r(t)]}},JiEa:function(t,e){e.f=Object.getOwnPropertySymbols},K0xU:function(t,e,n){var r=n("VTer")("wks"),o=n("ylqs"),i=n("dyZX").Symbol,a="function"==typeof i;(t.exports=function(t){return r[t]||(r[t]=a&&i[t]||(a?i:o)("Symbol."+t))}).store=r},KKXr:function(t,e,n){"use strict";var r=n("quPj"),o=n("y3w9"),i=n("69bn"),a=n("A5AN"),c=n("ne8i"),u=n("Xxuz"),s=n("Ugos"),l=n("eeVq"),f=Math.min,p=[].push,h=!l((function(){RegExp(4294967295,"y")}));n("IU+Z")("split",2,(function(t,e,n,l){var d;return d="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,e){var o=String(this);if(void 0===t&&0===e)return[];if(!r(t))return n.call(o,t,e);for(var i,a,c,u=[],l=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),f=0,h=void 0===e?4294967295:e>>>0,d=new RegExp(t.source,l+"g");(i=s.call(d,o))&&!((a=d.lastIndex)>f&&(u.push(o.slice(f,i.index)),i.length>1&&i.index=h));)d.lastIndex===i.index&&d.lastIndex++;return f===o.length?!c&&d.test("")||u.push(""):u.push(o.slice(f)),u.length>h?u.slice(0,h):u}:"0".split(void 0,0).length?function(t,e){return void 0===t&&0===e?[]:n.call(this,t,e)}:n,[function(n,r){var o=t(this),i=null==n?void 0:n[e];return void 0!==i?i.call(n,o,r):d.call(String(o),n,r)},function(t,e){var r=l(d,t,this,e,d!==n);if(r.done)return r.value;var s=o(t),p=String(this),v=i(s,RegExp),g=s.unicode,m=(s.ignoreCase?"i":"")+(s.multiline?"m":"")+(s.unicode?"u":"")+(h?"y":"g"),y=new v(h?s:"^(?:"+s.source+")",m),w=void 0===e?4294967295:e>>>0;if(0===w)return[];if(0===p.length)return null===u(y,p)?[p]:[];for(var b=0,P=0,_=[];Pdocument.F=Object<\/script>"),t.close(),u=t.F;r--;)delete u.prototype[i[r]];return u()};t.exports=Object.create||function(t,e){var n;return null!==t?(c.prototype=r(t),n=new c,c.prototype=null,n[a]=t):n=u(),void 0===e?n:o(n,e)}},L9s1:function(t,e,n){"use strict";var r=n("XKFU"),o=n("0sh+");r(r.P+r.F*n("UUeW")("includes"),"String",{includes:function(t){return!!~o(this,t,"includes").indexOf(t,arguments.length>1?arguments[1]:void 0)}})},LHMV:function(t,e,n){"use strict";n("LK8F"),n("rGqo"),n("yt8O"),n("Btvt"),n("RW0V"),n("8+KV"),e.__esModule=!0;var r=l(n("c0Fl")),o=l(n("raBC")),i=l(n("+i7v")),a=l(n("ZfQF")),c=l(n("q5+k")),u=l(n("QLaP")),s=n("OysZ");function l(t){return t&&t.__esModule?t:{default:t}}var f=2,p=function(){function t(e){var n=this,r=e.addTransitionHook,u=e.stateStorage,l=e.getCurrentLocation,p=e.shouldUpdateScroll;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this._restoreScrollRestoration=function(){if(n._oldScrollRestoration)try{window.history.scrollRestoration=n._oldScrollRestoration}catch(t){}},this._onWindowScroll=function(){if(n._saveWindowPositionHandle||(n._saveWindowPositionHandle=(0,c.default)(n._saveWindowPosition)),n._windowScrollTarget){var t=n._windowScrollTarget,e=t[0],r=t[1],o=(0,i.default)(window),u=(0,a.default)(window);o===e&&u===r&&(n._windowScrollTarget=null,n._cancelCheckWindowScroll())}},this._saveWindowPosition=function(){n._saveWindowPositionHandle=null,n._savePosition(null,window)},this._checkWindowScrollPosition=function(){n._checkWindowScrollHandle=null,n._windowScrollTarget&&(n.scrollToTarget(window,n._windowScrollTarget),++n._numWindowScrollAttempts,n._numWindowScrollAttempts>=f?n._windowScrollTarget=null:n._checkWindowScrollHandle=(0,c.default)(n._checkWindowScrollPosition))},this._stateStorage=u,this._getCurrentLocation=l,this._shouldUpdateScroll=p,"scrollRestoration"in window.history&&!(0,s.isMobileSafari)()){this._oldScrollRestoration=window.history.scrollRestoration;try{window.history.scrollRestoration="manual",(0,o.default)(window,"beforeunload",this._restoreScrollRestoration)}catch(h){this._oldScrollRestoration=null}}else this._oldScrollRestoration=null;this._saveWindowPositionHandle=null,this._checkWindowScrollHandle=null,this._windowScrollTarget=null,this._numWindowScrollAttempts=0,this._scrollElements={},(0,o.default)(window,"scroll",this._onWindowScroll),this._removeTransitionHook=r((function(){c.default.cancel(n._saveWindowPositionHandle),n._saveWindowPositionHandle=null,Object.keys(n._scrollElements).forEach((function(t){var e=n._scrollElements[t];c.default.cancel(e.savePositionHandle),e.savePositionHandle=null,n._saveElementPosition(t)}))}))}return t.prototype.registerElement=function(t,e,n,r){var i=this;this._scrollElements[t]&&(0,u.default)(!1);var a=function(){i._saveElementPosition(t)},s={element:e,shouldUpdateScroll:n,savePositionHandle:null,onScroll:function(){s.savePositionHandle||(s.savePositionHandle=(0,c.default)(a))}};this._scrollElements[t]=s,(0,o.default)(e,"scroll",s.onScroll),this._updateElementScroll(t,null,r)},t.prototype.unregisterElement=function(t){this._scrollElements[t]||(0,u.default)(!1);var e=this._scrollElements[t],n=e.element,o=e.onScroll,i=e.savePositionHandle;(0,r.default)(n,"scroll",o),c.default.cancel(i),delete this._scrollElements[t]},t.prototype.updateScroll=function(t,e){var n=this;this._updateWindowScroll(t,e),Object.keys(this._scrollElements).forEach((function(r){n._updateElementScroll(r,t,e)}))},t.prototype.stop=function(){this._restoreScrollRestoration(),(0,r.default)(window,"scroll",this._onWindowScroll),this._cancelCheckWindowScroll(),this._removeTransitionHook()},t.prototype._cancelCheckWindowScroll=function(){c.default.cancel(this._checkWindowScrollHandle),this._checkWindowScrollHandle=null},t.prototype._saveElementPosition=function(t){var e=this._scrollElements[t];e.savePositionHandle=null,this._savePosition(t,e.element)},t.prototype._savePosition=function(t,e){this._stateStorage.save(this._getCurrentLocation(),t,[(0,i.default)(e),(0,a.default)(e)])},t.prototype._updateWindowScroll=function(t,e){this._cancelCheckWindowScroll(),this._windowScrollTarget=this._getScrollTarget(null,this._shouldUpdateScroll,t,e),this._numWindowScrollAttempts=0,this._checkWindowScrollPosition()},t.prototype._updateElementScroll=function(t,e,n){var r=this._scrollElements[t],o=r.element,i=r.shouldUpdateScroll,a=this._getScrollTarget(t,i,e,n);a&&this.scrollToTarget(o,a)},t.prototype._getDefaultScrollTarget=function(t){var e=t.hash;return e&&"#"!==e?"#"===e.charAt(0)?e.slice(1):e:[0,0]},t.prototype._getScrollTarget=function(t,e,n,r){var o=!e||e.call(this,n,r);if(!o||Array.isArray(o)||"string"==typeof o)return o;var i=this._getCurrentLocation();return this._getSavedScrollTarget(t,i)||this._getDefaultScrollTarget(i)},t.prototype._getSavedScrollTarget=function(t,e){return"PUSH"===e.action?null:this._stateStorage.read(e,t)},t.prototype.scrollToTarget=function(t,e){if("string"==typeof e){var n=document.getElementById(e)||document.getElementsByName(e)[0];if(n)return void n.scrollIntoView();e=[0,0]}var r=e,o=r[0],c=r[1];(0,i.default)(t,o),(0,a.default)(t,c)},t}();e.default=p,t.exports=e.default},LK8F:function(t,e,n){var r=n("XKFU");r(r.S,"Array",{isArray:n("EWmC")})},LQAc:function(t,e){t.exports=!1},LYrO:function(t,e,n){"use strict";n.d(e,"e",(function(){return i})),n.d(e,"c",(function(){return a})),n.d(e,"b",(function(){return c})),n.d(e,"d",(function(){return u})),n.d(e,"a",(function(){return s})),n.d(e,"f",(function(){return l}));n("pIFo"),n("DNiP"),n("0l/t"),n("Vd3H"),n("V+eJ"),n("bWfx"),n("KKXr");var r=n("QLaP"),o=n.n(r),i=function(t,e){return t.substr(0,e.length)===e},a=function(t,e){for(var n=void 0,r=void 0,i=e.split("?")[0],a=v(i),c=""===a[0],u=d(t),s=0,l=u.length;se.score?-1:t.index-e.index}))},v=function(t){return t.replace(/(^\/+|\/+$)/g,"").split("/")},g=function(t,e){return t+(e?"?"+e:"")},m=["uri","path"]},LZWt:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},LeKB:function(t,e,n){t.exports=[{plugin:n("q9nr"),options:{plugins:[],maxWidth:590}},{plugin:n("npZl"),options:{plugins:[],name:"Gatsby Starter Blog",short_name:"GatsbyJS",start_url:"/",background_color:"#ffffff",theme_color:"#663399",display:"minimal-ui",icon:"static/assets/img/site/site-icon.png"}},{plugin:n("e/UW"),options:{plugins:[]}},{plugin:n("GddB"),options:{plugins:[]}}]},LyE8:function(t,e,n){"use strict";var r=n("eeVq");t.exports=function(t,e){return!!t&&r((function(){e?t.call(null,(function(){}),1):t.call(null)}))}},M6Qj:function(t,e,n){var r=n("hPIQ"),o=n("K0xU")("iterator"),i=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||i[o]===t)}},MMVs:function(t,e,n){n("V+eJ"),t.exports=function(){var t=!1;-1!==navigator.appVersion.indexOf("MSIE 10")&&(t=!0);var e,n=[],r="object"==typeof document&&document,o=t?r.documentElement.doScroll():r.documentElement.doScroll,i=r&&(o?/^loaded|^c/:/^loaded|^i|^c/).test(r.readyState);return!i&&r&&r.addEventListener("DOMContentLoaded",e=function(){for(r.removeEventListener("DOMContentLoaded",e),i=1;e=n.shift();)e()}),function(t){i?setTimeout(t,0):n.push(t)}}()},MfQN:function(t,e){t.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},MgzW:function(t,e,n){"use strict";n("rGqo"),n("yt8O"),n("Btvt"),n("RW0V"),n("KKXr"),n("8+KV"),n("bWfx"),n("91GP"),n("ioFf");var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function a(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}t.exports=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map((function(t){return e[t]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(t){r[t]=t})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(t,e){for(var n,c,u=a(t),s=1;s0?r:n)(t)}},"RjD/":function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},"S/j/":function(t,e,n){var r=n("vhPU");t.exports=function(t){return Object(r(t))}},SRfc:function(t,e,n){"use strict";var r=n("y3w9"),o=n("ne8i"),i=n("A5AN"),a=n("Xxuz");n("IU+Z")("match",1,(function(t,e,n,c){return[function(n){var r=t(this),o=null==n?void 0:n[e];return void 0!==o?o.call(n,r):new RegExp(n)[e](String(r))},function(t){var e=c(n,t,this);if(e.done)return e.value;var u=r(t),s=String(this);if(!u.global)return a(u,s);var l=u.unicode;u.lastIndex=0;for(var f,p=[],h=0;null!==(f=a(u,s));){var d=String(f[0]);p[h]=d,""===d&&(u.lastIndex=i(s,o(u.lastIndex),l)),h++}return 0===h?null:p}]}))},SlkY:function(t,e,n){var r=n("m0Pp"),o=n("H6hf"),i=n("M6Qj"),a=n("y3w9"),c=n("ne8i"),u=n("J+6e"),s={},l={};(e=t.exports=function(t,e,n,f,p){var h,d,v,g,m=p?function(){return t}:u(t),y=r(n,f,e?2:1),w=0;if("function"!=typeof m)throw TypeError(t+" is not iterable!");if(i(m)){for(h=c(t.length);h>w;w++)if((g=e?y(a(d=t[w])[0],d[1]):y(t[w]))===s||g===l)return g}else for(v=m.call(t);!(d=v.next()).done;)if((g=o(v,y,d.value,e))===s||g===l)return g}).BREAK=s,e.RETURN=l},T39b:function(t,e,n){"use strict";var r=n("wmvG"),o=n("s5qY");t.exports=n("4LiD")("Set",(function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}}),{add:function(t){return r.def(o(this,"Set"),t=0===t?0:t,t)}},r)},TqRt:function(t,e){t.exports=function(t){return t&&t.__esModule?t:{default:t}}},Tze0:function(t,e,n){"use strict";n("qncB")("trim",(function(t){return function(){return t(this,3)}}))},UUeW:function(t,e,n){var r=n("K0xU")("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,!"/./"[t](e)}catch(o){}}return!0}},Ugos:function(t,e,n){"use strict";var r,o,i=n("C/va"),a=RegExp.prototype.exec,c=String.prototype.replace,u=a,s=(r=/a/,o=/b*/g,a.call(r,"a"),a.call(o,"a"),0!==r.lastIndex||0!==o.lastIndex),l=void 0!==/()??/.exec("")[1];(s||l)&&(u=function(t){var e,n,r,o,u=this;return l&&(n=new RegExp("^"+u.source+"$(?!\\s)",i.call(u))),s&&(e=u.lastIndex),r=a.call(u,t),s&&r&&(u.lastIndex=u.global?r.index+r[0].length:e),l&&r&&r.length>1&&c.call(r[0],n,(function(){for(o=1;o0)return c[c.length-1];if(t&&t.location.pathname===i)return a?decodeURI(a.slice(1)):[0,0];return!0}var _=function(t){var e,n;function r(e){var n;return n=t.call(this,e)||this,y(e.location,null),n}n=t,(e=r).prototype=Object.create(n.prototype),e.prototype.constructor=e,e.__proto__=n;var o=r.prototype;return o.componentDidMount=function(){w(this.props.location,null)},o.componentDidUpdate=function(t,e,n){n&&w(this.props.location,t.location)},o.getSnapshotBeforeUpdate=function(t){return this.props.location.pathname!==t.location.pathname&&(y(this.props.location,t.location),!0)},o.render=function(){return this.props.children},r}(i.a.Component),S=n("IOVJ"),x=n("pCP8"),O=n.n(x);function E(t,e){for(var n in t)if(!(n in e))return!0;for(var r in e)if(t[r]!==e[r])return!0;return!1}var j=function(t){var e,n;function r(e){var n;n=t.call(this)||this;var r=e.location,o=e.pageResources;return n.state={location:Object.assign({},r),pageResources:o||p.default.loadPageSync(r.pathname)},n}n=t,(e=r).prototype=Object.create(n.prototype),e.prototype.constructor=e,e.__proto__=n,r.getDerivedStateFromProps=function(t,e){var n=t.location;return e.location.href!==n.href?{pageResources:p.default.loadPageSync(n.pathname),location:Object.assign({},n)}:{location:Object.assign({},n)}};var o=r.prototype;return o.loadResources=function(t){var e=this;p.default.loadPage(t).then((function(n){n&&"error"!==n.status?e.setState({location:Object.assign({},window.location),pageResources:n}):(window.history.replaceState({},"",location.href),window.location=t)}))},o.shouldComponentUpdate=function(t,e){return e.pageResources?this.state.pageResources!==e.pageResources||(this.state.pageResources.component!==e.pageResources.component||(this.state.pageResources.json!==e.pageResources.json||(!(this.state.location.key===e.location.key||!e.pageResources.page||!e.pageResources.page.matchPath&&!e.pageResources.page.path)||function(t,e,n){return E(t.props,e)||E(t.state,n)}(this,t,e)))):(this.loadResources(t.location.pathname),!1)},o.render=function(){return this.props.children(this.state)},r}(i.a.Component),R=n("cSJ8"),k=n("vf9c");var T=new p.ProdLoader(O.a,k);Object(p.setLoader)(T),T.setApiRunner(r.apiRunner),window.asyncRequires=O.a,window.___emitter=d.a,window.___loader=p.publicLoader,window.__navigatingToLink=!1,window.___push=function(t){return b(t,{replace:!1})},window.___replace=function(t){return b(t,{replace:!0})},window.___navigate=function(t,e){return b(t,e)},m(window.location.pathname),Object(r.apiRunnerAsync)("onClientEntry").then((function(){Object(r.apiRunner)("registerServiceWorker").length>0&&n("NSX3");var t=function(t){return i.a.createElement(u.BaseContext.Provider,{value:{baseuri:"/",basepath:"/"}},i.a.createElement(S.a,t))},e=function(e){var n,r;function o(){return e.apply(this,arguments)||this}return r=e,(n=o).prototype=Object.create(r.prototype),n.prototype.constructor=n,n.__proto__=r,o.prototype.render=function(){var e=this,n=this.props.location;return i.a.createElement(j,{location:n},(function(n){var r=n.pageResources,o=n.location;return i.a.createElement(_,{location:o},i.a.createElement(s.ScrollContext,{location:o,shouldUpdateScroll:P},i.a.createElement(u.Router,{basepath:"",location:o,id:"gatsby-focus-wrapper"},i.a.createElement(t,Object.assign({path:encodeURI("/404.html"===r.page.path?Object(R.a)(o.pathname,""):r.page.matchPath||r.page.path)},e.props,{location:o,pageResources:r},r.json)))))}))},o}(i.a.Component),o=window,a=o.pagePath,l=o.location;a&&""+a!==l.pathname&&!(T.findMatchPath(Object(R.a)(l.pathname,""))||"/404.html"===a||a.match(/^\/404\/?$/)||a.match(/^\/offline-plugin-app-shell-fallback\/?$/))&&Object(u.navigate)(""+a+l.search+l.hash,{replace:!0}),p.publicLoader.loadPage(l.pathname).then((function(t){if(!t||"error"===t.status)throw new Error("page resources for "+l.pathname+" not found. Not rendering React");window.___webpackCompilationHash=t.page.webpackCompilationHash;var n=function(){return i.a.createElement(u.Location,null,(function(t){return i.a.createElement(e,t)}))},o=Object(r.apiRunner)("wrapRootElement",{element:i.a.createElement(n,null)},i.a.createElement(n,null),(function(t){return{element:t.result}})).pop(),a=function(){return o},s=Object(r.apiRunner)("replaceHydrateFunction",void 0,c.a.hydrate)[0];f()((function(){s(i.a.createElement(a,null),"undefined"!=typeof window?document.getElementById("___gatsby"):void 0,(function(){Object(r.apiRunner)("onInitialClientRender")}))}))}))}))},"V+eJ":function(t,e,n){"use strict";var r=n("XKFU"),o=n("w2a5")(!1),i=[].indexOf,a=!!i&&1/[1].indexOf(1,-0)<0;r(r.P+r.F*(a||!n("LyE8")(i)),"Array",{indexOf:function(t){return a?i.apply(this,arguments)||0:o(this,t,arguments[1])}})},VRzm:function(t,e,n){"use strict";var r,o,i,a,c=n("LQAc"),u=n("dyZX"),s=n("m0Pp"),l=n("I8a+"),f=n("XKFU"),p=n("0/R4"),h=n("2OiF"),d=n("9gX7"),v=n("SlkY"),g=n("69bn"),m=n("GZEu").set,y=n("gHnn")(),w=n("pbhE"),b=n("nICZ"),P=n("ol8x"),_=n("vKrd"),S=u.TypeError,x=u.process,O=x&&x.versions,E=O&&O.v8||"",j=u.Promise,R="process"==l(x),k=function(){},T=o=w.f,C=!!function(){try{var t=j.resolve(1),e=(t.constructor={})[n("K0xU")("species")]=function(t){t(k,k)};return(R||"function"==typeof PromiseRejectionEvent)&&t.then(k)instanceof e&&0!==E.indexOf("6.6")&&-1===P.indexOf("Chrome/66")}catch(r){}}(),F=function(t){var e;return!(!p(t)||"function"!=typeof(e=t.then))&&e},I=function(t,e){if(!t._n){t._n=!0;var n=t._c;y((function(){for(var r=t._v,o=1==t._s,i=0,a=function(e){var n,i,a,c=o?e.ok:e.fail,u=e.resolve,s=e.reject,l=e.domain;try{c?(o||(2==t._h&&U(t),t._h=1),!0===c?n=r:(l&&l.enter(),n=c(r),l&&(l.exit(),a=!0)),n===e.promise?s(S("Promise-chain cycle")):(i=F(n))?i.call(n,u,s):u(n)):s(r)}catch(f){l&&!a&&l.exit(),s(f)}};n.length>i;)a(n[i++]);t._c=[],t._n=!1,e&&!t._h&&L(t)}))}},L=function(t){m.call(u,(function(){var e,n,r,o=t._v,i=A(t);if(i&&(e=b((function(){R?x.emit("unhandledRejection",o,t):(n=u.onunhandledrejection)?n({promise:t,reason:o}):(r=u.console)&&r.error&&r.error("Unhandled promise rejection",o)})),t._h=R||A(t)?2:1),t._a=void 0,i&&e.e)throw e.v}))},A=function(t){return 1!==t._h&&0===(t._a||t._c).length},U=function(t){m.call(u,(function(){var e;R?x.emit("rejectionHandled",t):(e=u.onrejectionhandled)&&e({promise:t,reason:t._v})}))},M=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),I(e,!0))},W=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw S("Promise can't be resolved itself");(e=F(t))?y((function(){var r={_w:n,_d:!1};try{e.call(t,s(W,r,1),s(M,r,1))}catch(o){M.call(r,o)}})):(n._v=t,n._s=1,I(n,!1))}catch(r){M.call({_w:n,_d:!1},r)}}};C||(j=function(t){d(this,j,"Promise","_h"),h(t),r.call(this);try{t(s(W,this,1),s(M,this,1))}catch(e){M.call(this,e)}},(r=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n("3Lyj")(j.prototype,{then:function(t,e){var n=T(g(this,j));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=R?x.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&I(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),i=function(){var t=new r;this.promise=t,this.resolve=s(W,t,1),this.reject=s(M,t,1)},w.f=T=function(t){return t===j||t===a?new i(t):o(t)}),f(f.G+f.W+f.F*!C,{Promise:j}),n("fyDq")(j,"Promise"),n("elZq")("Promise"),a=n("g3g5").Promise,f(f.S+f.F*!C,"Promise",{reject:function(t){var e=T(this);return(0,e.reject)(t),e.promise}}),f(f.S+f.F*(c||!C),"Promise",{resolve:function(t){return _(c&&this===a?j:this,t)}}),f(f.S+f.F*!(C&&n("XMVh")((function(t){j.all(t).catch(k)}))),"Promise",{all:function(t){var e=this,n=T(e),r=n.resolve,o=n.reject,i=b((function(){var n=[],i=0,a=1;v(t,!1,(function(t){var c=i++,u=!1;n.push(void 0),a++,e.resolve(t).then((function(t){u||(u=!0,n[c]=t,--a||r(n))}),o)})),--a||r(n)}));return i.e&&o(i.v),n.promise},race:function(t){var e=this,n=T(e),r=n.reject,o=b((function(){v(t,!1,(function(t){e.resolve(t).then(n.resolve,r)}))}));return o.e&&r(o.v),n.promise}})},VTer:function(t,e,n){var r=n("g3g5"),o=n("dyZX"),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(t.exports=function(t,e){return i[t]||(i[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n("LQAc")?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},VbXa:function(t,e){t.exports=function(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}},Vd3H:function(t,e,n){"use strict";var r=n("XKFU"),o=n("2OiF"),i=n("S/j/"),a=n("eeVq"),c=[].sort,u=[1,2,3];r(r.P+r.F*(a((function(){u.sort(void 0)}))||!a((function(){u.sort(null)}))||!n("LyE8")(c)),"Array",{sort:function(t){return void 0===t?c.call(i(this)):c.call(i(this),o(t))}})},WbBG:function(t,e,n){"use strict";t.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},Wbzz:function(t,e,n){"use strict";n.r(e),n.d(e,"graphql",(function(){return d})),n.d(e,"StaticQueryContext",(function(){return l})),n.d(e,"StaticQuery",(function(){return p})),n.d(e,"useStaticQuery",(function(){return h})),n.d(e,"prefetchPathname",(function(){return s}));var r=n("q1tI"),o=n.n(r),i=n("+ZDr"),a=n.n(i);n.d(e,"Link",(function(){return a.a})),n.d(e,"withAssetPrefix",(function(){return i.withAssetPrefix})),n.d(e,"withPrefix",(function(){return i.withPrefix})),n.d(e,"parsePath",(function(){return i.parsePath})),n.d(e,"navigate",(function(){return i.navigate})),n.d(e,"push",(function(){return i.push})),n.d(e,"replace",(function(){return i.replace})),n.d(e,"navigateTo",(function(){return i.navigateTo}));var c=n("lw3w"),u=n.n(c);n.d(e,"PageRenderer",(function(){return u.a}));var s=n("emEt").default.enqueue,l=o.a.createContext({});function f(t){var e=t.staticQueryData,n=t.data,r=t.query,i=t.render,a=n?n.data:e[r]&&e[r].data;return o.a.createElement(o.a.Fragment,null,a&&i(a),!a&&o.a.createElement("div",null,"Loading (StaticQuery)"))}var p=function(t){var e=t.data,n=t.query,r=t.render,i=t.children;return o.a.createElement(l.Consumer,null,(function(t){return o.a.createElement(f,{data:e,query:n,render:r||i,staticQueryData:t})}))},h=function(t){o.a.useContext;var e=o.a.useContext(l);if(e[t]&&e[t].data)return e[t].data;throw new Error("The result of this StaticQuery could not be fetched.\n\nThis is likely a bug in Gatsby and if refreshing the page does not fix it, please open an issue in https://github.com/gatsbyjs/gatsby/issues")};function d(){throw new Error("It appears like Gatsby is misconfigured. Gatsby related `graphql` calls are supposed to only be evaluated at compile time, and then compiled away. Unfortunately, something went wrong and the query was left in the compiled code.\n\nUnless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.")}},XKFU:function(t,e,n){var r=n("dyZX"),o=n("g3g5"),i=n("Mukb"),a=n("KroJ"),c=n("m0Pp"),u=function(t,e,n){var s,l,f,p,h=t&u.F,d=t&u.G,v=t&u.S,g=t&u.P,m=t&u.B,y=d?r:v?r[e]||(r[e]={}):(r[e]||{}).prototype,w=d?o:o[e]||(o[e]={}),b=w.prototype||(w.prototype={});for(s in d&&(n=e),n)f=((l=!h&&y&&void 0!==y[s])?y:n)[s],p=m&&l?c(f,r):g&&"function"==typeof f?c(Function.call,f):f,y&&a(y,s,f,t&u.U),w[s]!=f&&i(w,s,p),g&&b[s]!=f&&(b[s]=f)};r.core=o,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},XMVh:function(t,e,n){var r=n("K0xU")("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,(function(){throw 2}))}catch(a){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i=[7],c=i[r]();c.next=function(){return{done:n=!0}},i[r]=function(){return c},t(i)}catch(a){}return n}},Xbzi:function(t,e,n){var r=n("0/R4"),o=n("i5dc").set;t.exports=function(t,e,n){var i,a=e.constructor;return a!==n&&"function"==typeof a&&(i=a.prototype)!==n.prototype&&r(i)&&o&&o(t,i),t}},XfO3:function(t,e,n){"use strict";var r=n("AvRE")(!0);n("Afnz")(String,"String",(function(t){this._t=String(t),this._i=0}),(function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})}))},Xtr8:function(t,e,n){var r=n("XKFU"),o=n("g3g5"),i=n("eeVq");t.exports=function(t,e){var n=(o.Object||{})[t]||Object[t],a={};a[t]=e(n),r(r.S+r.F*i((function(){n(1)})),"Object",a)}},Xxuz:function(t,e,n){"use strict";var r=n("I8a+"),o=RegExp.prototype.exec;t.exports=function(t,e){var n=t.exec;if("function"==typeof n){var i=n.call(t,e);if("object"!=typeof i)throw new TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==r(t))throw new TypeError("RegExp#exec called on incompatible receiver");return o.call(t,e)}},"YLt+":function(t){t.exports=JSON.parse('[{"fromPath":"/music/about-songmind-studios/","isPermanent":true,"redirectInBrowser":true,"toPath":"/about-songmind-studios/"},{"fromPath":"/music/10-issues-songwriters-face/","isPermanent":true,"redirectInBrowser":true,"toPath":"/10-issues-songwriters-face/"},{"fromPath":"/music/honing-strengths-with-a-student-evaluation/","isPermanent":true,"redirectInBrowser":true,"toPath":"/honing-strengths-with-a-student-evaluation/"},{"fromPath":"/music/organizing-creativity-3-step-process/","isPermanent":true,"redirectInBrowser":true,"toPath":"/organizing-creativity-3-step-process/"},{"fromPath":"/music/songwriting-snippet-challenge/","isPermanent":true,"redirectInBrowser":true,"toPath":"/songwriting-snippet-challenge/"},{"fromPath":"/music/songwriting-and-serendipity/","isPermanent":true,"redirectInBrowser":true,"toPath":"/songwriting-and-serendipity/"},{"fromPath":"/music/songwriting-simplicity-complexity/","isPermanent":true,"redirectInBrowser":true,"toPath":"/songwriting-simplicity-complexity/"},{"fromPath":"/music/preparing-demo-for-studio/","isPermanent":true,"redirectInBrowser":true,"toPath":"/preparing-demo-for-studio/"},{"fromPath":"/music/guide-to-practicing-overcoming-plateaus/","isPermanent":true,"redirectInBrowser":true,"toPath":"/guide-to-practicing-overcoming-plateaus/"},{"fromPath":"/music/5-dysfunctions-of-a-band/","isPermanent":true,"redirectInBrowser":true,"toPath":"/5-dysfunctions-of-a-band/"},{"fromPath":"/other/2020-decade-in-review/","isPermanent":true,"redirectInBrowser":true,"toPath":"/2020-decade-in-review/"},{"fromPath":"/tech/2022-12-05-random-music-generators-news/","isPermanent":true,"redirectInBrowser":true,"toPath":"/2022-12-05-random-music-generators-news/"},{"fromPath":"/tech/circular-dependencies-bug/","isPermanent":true,"redirectInBrowser":true,"toPath":"/circular-dependencies-bug/"},{"fromPath":"/javascript/2019/03/23/circular-dependencies-bug.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/circular-dependencies-bug/"},{"fromPath":"/tech/catching-handling-errors-promise-chains/","isPermanent":true,"redirectInBrowser":true,"toPath":"/catching-handling-errors-promise-chains/"},{"fromPath":"/javascript/2019/04/03/catching-handling-errors-promise-chains.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/catching-handling-errors-promise-chains/"},{"fromPath":"/tech/contributing-to-open-source-is-type-checking/","isPermanent":true,"redirectInBrowser":true,"toPath":"/contributing-to-open-source-is-type-checking/"},{"fromPath":"/tech/code-style-guide/","isPermanent":true,"redirectInBrowser":true,"toPath":"/code-style-guide/"},{"fromPath":"/javascript/2019/03/18/code-style-guide.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/code-style-guide/"},{"fromPath":"/tech/git-commit-format-squash/","isPermanent":true,"redirectInBrowser":true,"toPath":"/git-commit-format-squash/"},{"fromPath":"/git/2019/03/24/git-commit-format-squash.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/git-commit-format-squash/"},{"fromPath":"/tech/custom-type-checking-isnan/","isPermanent":true,"redirectInBrowser":true,"toPath":"/custom-type-checking-isnan/"},{"fromPath":"/javascript/2019/03/22/custom-type-checking-isnan.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/custom-type-checking-isnan/"},{"fromPath":"/tech/how-to-squash-commits/","isPermanent":true,"redirectInBrowser":true,"toPath":"/how-to-squash-commits/"},{"fromPath":"/git/2019/12/20/how-to-squash-commits.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/how-to-squash-commits/"},{"fromPath":"/tech/hash-tables-js/","isPermanent":true,"redirectInBrowser":true,"toPath":"/hash-tables-js/"},{"fromPath":"/javascript/computer%20science/2018/02/20/hash-tables-js.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/hash-tables-js/"},{"fromPath":"/javascript/computer_science/2018/02/20/hash-tables-js.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/hash-tables-js/"},{"fromPath":"/tech/marketable-programming-skills/","isPermanent":true,"redirectInBrowser":true,"toPath":"/marketable-programming-skills/"},{"fromPath":"/career/2017/08/01/marketable-programming-skills.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/marketable-programming-skills/"},{"fromPath":"/tech/now-attending-fullstack/","isPermanent":true,"redirectInBrowser":true,"toPath":"/now-attending-fullstack/"},{"fromPath":"/javascript/2017/12/26/now-attending-fullstack.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/now-attending-fullstack/"},{"fromPath":"/career/2018/07/18/recruiters-and-junior-devs.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/recruiters-and-junior-devs/"},{"fromPath":"/tech/recruiters-and-junior-devs/","isPermanent":true,"redirectInBrowser":true,"toPath":"/recruiters-and-junior-devs/"},{"fromPath":"/career/2019/07/02/prepare-for-initial-screens.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/prepare-for-initial-screens/"},{"fromPath":"/tech/prepare-for-initial-screens/","isPermanent":true,"redirectInBrowser":true,"toPath":"/prepare-for-initial-screens/"},{"fromPath":"/tech/python-classes-guess-the-number/","isPermanent":true,"redirectInBrowser":true,"toPath":"/python-classes-guess-the-number/"},{"fromPath":"/python/2017/07/01/number-guess-oop.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/python-classes-guess-the-number/"},{"fromPath":"/tech/recursive-filter-function/","isPermanent":true,"redirectInBrowser":true,"toPath":"/recursive-filter-function/"},{"fromPath":"/javascript/2019/03/28/recursive-filter-function.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/recursive-filter-function/"},{"fromPath":"/tech/reflections-coding-bootcamp/","isPermanent":true,"redirectInBrowser":true,"toPath":"/reflections-coding-bootcamp/"},{"fromPath":"/javascript/2018/04/16/reflections-coding-bootcamp.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/reflections-coding-bootcamp/"},{"fromPath":"/tech/website-makeover-gatsby/","isPermanent":true,"redirectInBrowser":true,"toPath":"/website-makeover-gatsby/"},{"fromPath":"/gatsbyjs/2020/01/08/website-makeover-gatsby.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/website-makeover-gatsby/"},{"fromPath":"/tech/debugging-strategies/","isPermanent":true,"redirectInBrowser":true,"toPath":"/debugging-strategies-checklist/"},{"fromPath":"/computer%20science/2018/05/08/debugging-strategies.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/debugging-strategies-checklist/"},{"fromPath":"/computer_science/2018/05/08/debugging-strategies.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/debugging-strategies-checklist/"},{"fromPath":"/tech/comparing-javascript-test-runners/","isPermanent":true,"redirectInBrowser":true,"toPath":"/comparing-javascript-test-runners/"},{"fromPath":"/tech/2020-01-27-random-music-generators-news/","isPermanent":true,"redirectInBrowser":true,"toPath":"/2020-01-27-random-music-generators-news/"},{"fromPath":"/tech/intro-to-js-frameworks01/","isPermanent":true,"redirectInBrowser":true,"toPath":"/intro-to-js-frameworks01/"},{"fromPath":"/javascript/2017/09/01/intro-to-js-frameworks01.html","isPermanent":true,"redirectInBrowser":true,"toPath":"/intro-to-js-frameworks01/"}]')},YTvA:function(t,e,n){var r=n("VTer")("keys"),o=n("ylqs");t.exports=function(t){return r[t]||(r[t]=o(t))}},Ymqv:function(t,e,n){var r=n("LZWt");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},YwZP:function(t,e,n){"use strict";n.r(e);n("pIFo"),n("bWfx"),n("VRzm"),n("Btvt"),n("/SS/"),n("hHhE"),n("V+eJ"),n("91GP");var r=n("q1tI"),o=n.n(r),i=(n("6DQo"),n("17x9"),n("QLaP")),a=n.n(i),c=o.a.createContext,u=n("94VI"),s=n("LYrO"),l=n("9Xx/");n.d(e,"Link",(function(){return C})),n.d(e,"Location",(function(){return y})),n.d(e,"LocationProvider",(function(){return w})),n.d(e,"Match",(function(){return M})),n.d(e,"Redirect",(function(){return U})),n.d(e,"Router",(function(){return _})),n.d(e,"ServerLocation",(function(){return b})),n.d(e,"isRedirect",(function(){return I})),n.d(e,"redirectTo",(function(){return L})),n.d(e,"BaseContext",(function(){return P})),n.d(e,"createHistory",(function(){return l.createHistory})),n.d(e,"createMemorySource",(function(){return l.createMemorySource})),n.d(e,"navigate",(function(){return l.navigate})),n.d(e,"globalHistory",(function(){return l.globalHistory}));var f=Object.assign||function(t){for(var e=1;e=0||Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n}function h(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function d(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function v(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var g=function(t,e){var n=c(e);return n.Consumer.displayName=t+".Consumer",n.Provider.displayName=t+".Provider",n},m=g("Location"),y=function(t){var e=t.children;return o.a.createElement(m.Consumer,null,(function(t){return t?e(t):o.a.createElement(w,null,e)}))},w=function(t){function e(){var n,r;h(this,e);for(var o=arguments.length,i=Array(o),a=0;a1?arguments[1]:void 0)}}),n("nGyu")("includes")},Z6vF:function(t,e,n){var r=n("ylqs")("meta"),o=n("0/R4"),i=n("aagx"),a=n("hswa").f,c=0,u=Object.isExtensible||function(){return!0},s=!n("eeVq")((function(){return u(Object.preventExtensions({}))})),l=function(t){a(t,r,{value:{i:"O"+ ++c,w:{}}})},f=t.exports={KEY:r,NEED:!1,fastKey:function(t,e){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,r)){if(!u(t))return"F";if(!e)return"E";l(t)}return t[r].i},getWeak:function(t,e){if(!i(t,r)){if(!u(t))return!0;if(!e)return!1;l(t)}return t[r].w},onFreeze:function(t){return s&&f.NEED&&u(t)&&!i(t,r)&&l(t),t}}},ZD67:function(t,e,n){"use strict";var r=n("3Lyj"),o=n("Z6vF").getWeak,i=n("y3w9"),a=n("0/R4"),c=n("9gX7"),u=n("SlkY"),s=n("CkkT"),l=n("aagx"),f=n("s5qY"),p=s(5),h=s(6),d=0,v=function(t){return t._l||(t._l=new g)},g=function(){this.a=[]},m=function(t,e){return p(t.a,(function(t){return t[0]===e}))};g.prototype={get:function(t){var e=m(this,t);if(e)return e[1]},has:function(t){return!!m(this,t)},set:function(t,e){var n=m(this,t);n?n[1]=e:this.a.push([t,e])},delete:function(t){var e=h(this.a,(function(e){return e[0]===t}));return~e&&this.a.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,i){var s=t((function(t,r){c(t,s,e,"_i"),t._t=e,t._i=d++,t._l=void 0,null!=r&&u(r,n,t[i],t)}));return r(s.prototype,{delete:function(t){if(!a(t))return!1;var n=o(t);return!0===n?v(f(this,e)).delete(t):n&&l(n,this._i)&&delete n[this._i]},has:function(t){if(!a(t))return!1;var n=o(t);return!0===n?v(f(this,e)).has(t):n&&l(n,this._i)}}),s},def:function(t,e,n){var r=o(i(e),!0);return!0===r?v(t).set(e,n):r[t._i]=n,t},ufstore:v}},ZfQF:function(t,e,n){"use strict";var r=n("TqRt");e.__esModule=!0,e.default=function(t,e){var n=(0,o.default)(t);if(void 0===e)return n?"pageYOffset"in n?n.pageYOffset:n.document.documentElement.scrollTop:t.scrollTop;n?n.scrollTo("pageXOffset"in n?n.pageXOffset:n.document.documentElement.scrollLeft,e):t.scrollTop=e};var o=r(n("8Y+z"));t.exports=e.default},a1Th:function(t,e,n){"use strict";n("OEbY");var r=n("y3w9"),o=n("C/va"),i=n("nh4g"),a=/./.toString,c=function(t){n("KroJ")(RegExp.prototype,"toString",t,!0)};n("eeVq")((function(){return"/a/b"!=a.call({source:"a",flags:"b"})}))?c((function(){var t=r(this);return"/".concat(t.source,"/","flags"in t?t.flags:!i&&t instanceof RegExp?o.call(t):void 0)})):"toString"!=a.name&&c((function(){return a.call(this)}))},aCFj:function(t,e,n){var r=n("Ymqv"),o=n("vhPU");t.exports=function(t){return r(o(t))}},aagx:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},apmT:function(t,e,n){var r=n("0/R4");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},bWfx:function(t,e,n){"use strict";var r=n("XKFU"),o=n("CkkT")(1);r(r.P+r.F*!n("LyE8")([].map,!0),"Array",{map:function(t){return o(this,t,arguments[1])}})},c0Fl:function(t,e,n){"use strict";var r=n("TqRt");e.__esModule=!0,e.default=void 0;var o=function(){};r(n("Bp9Y")).default&&(o=document.addEventListener?function(t,e,n,r){return t.removeEventListener(e,n,r||!1)}:document.attachEvent?function(t,e,n){return t.detachEvent("on"+e,n)}:void 0);var i=o;e.default=i,t.exports=e.default},cSJ8:function(t,e,n){"use strict";e.a=function(t,e){return void 0===e&&(e=""),e?(e+="/",t.substr(0,e.length)===e?t.slice(e.length-1):t):t}},cu4x:function(t,e,n){"use strict";n("V+eJ"),e.__esModule=!0,e.parsePath=function(t){var e=t||"/",n="",r="",o=e.indexOf("#");-1!==o&&(r=e.substr(o),e=e.substr(0,o));var i=e.indexOf("?");-1!==i&&(n=e.substr(i),e=e.substr(0,i));return{pathname:e,search:"?"===n?"":n,hash:"#"===r?"":r}}},czNK:function(t,e,n){"use strict";var r=n("nh4g"),o=n("DVgA"),i=n("JiEa"),a=n("UqcF"),c=n("S/j/"),u=n("Ymqv"),s=Object.assign;t.exports=!s||n("eeVq")((function(){var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach((function(t){e[t]=t})),7!=s({},t)[n]||Object.keys(s({},e)).join("")!=r}))?function(t,e){for(var n=c(t),s=arguments.length,l=1,f=i.f,p=a.f;s>l;)for(var h,d=u(arguments[l++]),v=f?o(d).concat(f(d)):o(d),g=v.length,m=0;g>m;)h=v[m++],r&&!p.call(d,h)||(n[h]=d[h]);return n}:s},"d/Gc":function(t,e,n){var r=n("RYi7"),o=Math.max,i=Math.min;t.exports=function(t,e){return(t=r(t))<0?o(t+e,0):i(t,e)}},dRSK:function(t,e,n){"use strict";var r=n("XKFU"),o=n("CkkT")(5),i=!0;"find"in[]&&Array(1).find((function(){i=!1})),r(r.P+r.F*i,"Array",{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),n("nGyu")("find")},"dZ+Y":function(t,e,n){"use strict";var r=n("XKFU"),o=n("CkkT")(3);r(r.P+r.F*!n("LyE8")([].some,!0),"Array",{some:function(t){return o(this,t,arguments[1])}})},dyZX:function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},"e/UW":function(t,e,n){"use strict";n("pIFo"),e.registerServiceWorker=function(){return!0};var r=/^(stylesheet|preload)$/,o=[];function i(t,e){if(!window.___swUpdated&&"serviceWorker"in navigator){var n=navigator.serviceWorker;if(null===n.controller)o.push(t);else{var r=e(t);n.controller.postMessage({gatsbyApi:"setPathResources",path:t,resources:r})}}}e.onServiceWorkerActive=function(t){var e=t.getResourceURLsForPathname,n=t.serviceWorker;if(window.___swUpdated)n.active.postMessage({gatsbyApi:"clearPathResources"});else{var i=document.querySelectorAll("\n head > script[src],\n head > link[href],\n head > style[data-href]\n "),a=[].slice.call(i).filter((function(t){return"LINK"!==t.tagName||r.test(t.getAttribute("rel"))})).map((function(t){return t.src||t.href||t.getAttribute("data-href")})),c=[];o.forEach((function(t){var r=e(t);c.push.apply(c,r),n.active.postMessage({gatsbyApi:"setPathResources",path:t,resources:r})})),[].concat(a,c).forEach((function(t){var e=document.createElement("link");e.rel="prefetch",e.href=t,e.onload=e.remove,e.onerror=e.remove,document.head.appendChild(e)}))}},e.onRouteUpdate=function(t){var e=t.location,n=t.getResourceURLsForPathname;i(e.pathname.replace("",""),n),"serviceWorker"in navigator&&null!==navigator.serviceWorker.controller&&navigator.serviceWorker.controller.postMessage({gatsbyApi:"enableOfflineShell"})},e.onPostPrefetchPathname=function(t){i(t.pathname,t.getResourceURLsForPathname)}},e7yV:function(t,e,n){var r=n("aCFj"),o=n("kJMx").f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&"[object Window]"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},eM6i:function(t,e,n){var r=n("XKFU");r(r.S,"Date",{now:function(){return(new Date).getTime()}})},eeVq:function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},elZq:function(t,e,n){"use strict";var r=n("dyZX"),o=n("hswa"),i=n("nh4g"),a=n("K0xU")("species");t.exports=function(t){var e=r[t];i&&e&&!e[a]&&o.f(e,a,{configurable:!0,get:function(){return this}})}},emEt:function(t,e,n){"use strict";n.r(e);n("HEwt"),n("a1Th"),n("rE2o"),n("ioFf"),n("T39b"),n("rGqo"),n("yt8O"),n("XfO3"),n("9AAn"),n("Z2Ku"),n("L9s1"),n("91GP"),n("VRzm"),n("Btvt"),n("rvZc"),n("RW0V");var r=function(t){if("undefined"==typeof document)return!1;var e=document.createElement("link");try{if(e.relList&&"function"==typeof e.relList.supports)return e.relList.supports(t)}catch(n){return!1}return!1}("prefetch")?function(t,e){return new Promise((function(n,r){if("undefined"!=typeof document){var o=document.createElement("link");o.setAttribute("rel","prefetch"),o.setAttribute("href",t),Object.keys(e).forEach((function(t){o.setAttribute(t,e[t])})),o.onload=n,o.onerror=r,(document.getElementsByTagName("head")[0]||document.getElementsByName("script")[0].parentNode).appendChild(o)}else r()}))}:function(t){return new Promise((function(e,n){var r=new XMLHttpRequest;r.open("GET",t,!0),r.onload=function(){200===r.status?e():n()},r.send(null)}))},o={},i=function(t,e){return new Promise((function(n){o[t]?n():r(t,e).then((function(){n(),o[t]=!0})).catch((function(){}))}))},a=n("5yr3"),c=(n("KKXr"),n("LYrO")),u=n("cSJ8"),s=function(t){return void 0===t?t:"/"===t?"/":"/"===t.charAt(t.length-1)?t.slice(0,-1):t},l=new Map,f=[],p=function(t){var e=decodeURIComponent(t);return Object(u.a)(e,"").split("#")[0].split("?")[0]},h=function(t){f=t},d=function(t){var e=g(t),n=f,r=Array.isArray(n),o=0;for(n=r?n:n[Symbol.iterator]();;){var i;if(r){if(o>=n.length)break;i=n[o++]}else{if((o=n.next()).done)break;i=o.value}var a=i,u=a.matchPath,l=a.path;if(Object(c.b)(u,e))return s(l)}return null},v=function(t){var e=p(t);if(l.has(e))return l.get(e);var n=d(e);return n||(n=g(t)),l.set(e,n),n},g=function(t){var e=p(t);return"/index.html"===e&&(e="/"),e=s(e)};function m(t){return function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e=0:f>p;p+=h)p in l&&(c=e(c,l[p],p,s));return c}},"f3/d":function(t,e,n){var r=n("hswa").f,o=Function.prototype,i=/^\s*function ([^ (]*)/;"name"in o||n("nh4g")&&r(o,"name",{configurable:!0,get:function(){try{return(""+this).match(i)[1]}catch(t){return""}}})},fyDq:function(t,e,n){var r=n("hswa").f,o=n("aagx"),i=n("K0xU")("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},g3g5:function(t,e){var n=t.exports={version:"2.6.11"};"number"==typeof __e&&(__e=n)},g6HL:function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},gHnn:function(t,e,n){var r=n("dyZX"),o=n("GZEu").set,i=r.MutationObserver||r.WebKitMutationObserver,a=r.process,c=r.Promise,u="process"==n("LZWt")(a);t.exports=function(){var t,e,n,s=function(){var r,o;for(u&&(r=a.domain)&&r.exit();t;){o=t.fn,t=t.next;try{o()}catch(i){throw t?n():e=void 0,i}}e=void 0,r&&r.enter()};if(u)n=function(){a.nextTick(s)};else if(!i||r.navigator&&r.navigator.standalone)if(c&&c.resolve){var l=c.resolve(void 0);n=function(){l.then(s)}}else n=function(){o.call(r,s)};else{var f=!0,p=document.createTextNode("");new i(s).observe(p,{characterData:!0}),n=function(){p.data=f=!f}}return function(r){var o={fn:r,next:void 0};e&&(e.next=o),t||(t=o,n()),e=o}}},h7Nl:function(t,e,n){var r=Date.prototype,o=r.toString,i=r.getTime;new Date(NaN)+""!="Invalid Date"&&n("KroJ")(r,"toString",(function(){var t=i.call(this);return t==t?o.call(this):"Invalid Date"}))},hHhE:function(t,e,n){var r=n("XKFU");r(r.S,"Object",{create:n("Kuth")})},hPIQ:function(t,e){t.exports={}},hswa:function(t,e,n){var r=n("y3w9"),o=n("xpql"),i=n("apmT"),a=Object.defineProperty;e.f=n("nh4g")?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return a(t,e,n)}catch(c){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},i5dc:function(t,e,n){var r=n("0/R4"),o=n("y3w9"),i=function(t,e){if(o(t),!r(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,r){try{(r=n("m0Pp")(Function.call,n("EemH").f(Object.prototype,"__proto__").set,2))(t,[]),e=!(t instanceof Array)}catch(o){e=!0}return function(t,n){return i(t,n),e?t.__proto__=n:r(t,n),t}}({},!1):void 0),check:i}},ioFf:function(t,e,n){"use strict";var r=n("dyZX"),o=n("aagx"),i=n("nh4g"),a=n("XKFU"),c=n("KroJ"),u=n("Z6vF").KEY,s=n("eeVq"),l=n("VTer"),f=n("fyDq"),p=n("ylqs"),h=n("K0xU"),d=n("N8g3"),v=n("OnI7"),g=n("1MBn"),m=n("EWmC"),y=n("y3w9"),w=n("0/R4"),b=n("S/j/"),P=n("aCFj"),_=n("apmT"),S=n("RjD/"),x=n("Kuth"),O=n("e7yV"),E=n("EemH"),j=n("JiEa"),R=n("hswa"),k=n("DVgA"),T=E.f,C=R.f,F=O.f,I=r.Symbol,L=r.JSON,A=L&&L.stringify,U=h("_hidden"),M=h("toPrimitive"),W={}.propertyIsEnumerable,q=l("symbol-registry"),D=l("symbols"),K=l("op-symbols"),B=Object.prototype,X="function"==typeof I&&!!j.f,V=r.QObject,N=!V||!V.prototype||!V.prototype.findChild,H=i&&s((function(){return 7!=x(C({},"a",{get:function(){return C(this,"a",{value:7}).a}})).a}))?function(t,e,n){var r=T(B,e);r&&delete B[e],C(t,e,n),r&&t!==B&&C(B,e,r)}:C,Z=function(t){var e=D[t]=x(I.prototype);return e._k=t,e},Y=X&&"symbol"==typeof I.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof I},G=function(t,e,n){return t===B&&G(K,e,n),y(t),e=_(e,!0),y(n),o(D,e)?(n.enumerable?(o(t,U)&&t[U][e]&&(t[U][e]=!1),n=x(n,{enumerable:S(0,!1)})):(o(t,U)||C(t,U,S(1,{})),t[U][e]=!0),H(t,e,n)):C(t,e,n)},J=function(t,e){y(t);for(var n,r=g(e=P(e)),o=0,i=r.length;i>o;)G(t,n=r[o++],e[n]);return t},z=function(t){var e=W.call(this,t=_(t,!0));return!(this===B&&o(D,t)&&!o(K,t))&&(!(e||!o(this,t)||!o(D,t)||o(this,U)&&this[U][t])||e)},Q=function(t,e){if(t=P(t),e=_(e,!0),t!==B||!o(D,e)||o(K,e)){var n=T(t,e);return!n||!o(D,e)||o(t,U)&&t[U][e]||(n.enumerable=!0),n}},$=function(t){for(var e,n=F(P(t)),r=[],i=0;n.length>i;)o(D,e=n[i++])||e==U||e==u||r.push(e);return r},tt=function(t){for(var e,n=t===B,r=F(n?K:P(t)),i=[],a=0;r.length>a;)!o(D,e=r[a++])||n&&!o(B,e)||i.push(D[e]);return i};X||(c((I=function(){if(this instanceof I)throw TypeError("Symbol is not a constructor!");var t=p(arguments.length>0?arguments[0]:void 0),e=function(n){this===B&&e.call(K,n),o(this,U)&&o(this[U],t)&&(this[U][t]=!1),H(this,t,S(1,n))};return i&&N&&H(B,t,{configurable:!0,set:e}),Z(t)}).prototype,"toString",(function(){return this._k})),E.f=Q,R.f=G,n("kJMx").f=O.f=$,n("UqcF").f=z,j.f=tt,i&&!n("LQAc")&&c(B,"propertyIsEnumerable",z,!0),d.f=function(t){return Z(h(t))}),a(a.G+a.W+a.F*!X,{Symbol:I});for(var et="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),nt=0;et.length>nt;)h(et[nt++]);for(var rt=k(h.store),ot=0;rt.length>ot;)v(rt[ot++]);a(a.S+a.F*!X,"Symbol",{for:function(t){return o(q,t+="")?q[t]:q[t]=I(t)},keyFor:function(t){if(!Y(t))throw TypeError(t+" is not a symbol!");for(var e in q)if(q[e]===t)return e},useSetter:function(){N=!0},useSimple:function(){N=!1}}),a(a.S+a.F*!X,"Object",{create:function(t,e){return void 0===e?x(t):J(x(t),e)},defineProperty:G,defineProperties:J,getOwnPropertyDescriptor:Q,getOwnPropertyNames:$,getOwnPropertySymbols:tt});var it=s((function(){j.f(1)}));a(a.S+a.F*it,"Object",{getOwnPropertySymbols:function(t){return j.f(b(t))}}),L&&a(a.S+a.F*(!X||s((function(){var t=I();return"[null]"!=A([t])||"{}"!=A({a:t})||"{}"!=A(Object(t))}))),"JSON",{stringify:function(t){for(var e,n,r=[t],o=1;arguments.length>o;)r.push(arguments[o++]);if(n=e=r[1],(w(e)||void 0!==t)&&!Y(t))return m(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!Y(e))return e}),r[1]=e,A.apply(L,r)}}),I.prototype[M]||n("Mukb")(I.prototype,M,I.prototype.valueOf),f(I,"Symbol"),f(Math,"Math",!0),f(r.JSON,"JSON",!0)},kJMx:function(t,e,n){var r=n("zhAb"),o=n("4R4u").concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},lSNA:function(t,e){t.exports=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}},lw3w:function(t,e,n){var r;t.exports=(r=n("rzlk"))&&r.default||r},m0Pp:function(t,e,n){var r=n("2OiF");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},nGyu:function(t,e,n){var r=n("K0xU")("unscopables"),o=Array.prototype;null==o[r]&&n("Mukb")(o,r,{}),t.exports=function(t){o[r][t]=!0}},nICZ:function(t,e){t.exports=function(t){try{return{e:!1,v:t()}}catch(e){return{e:!0,v:e}}}},ne8i:function(t,e,n){var r=n("RYi7"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},nh4g:function(t,e,n){t.exports=!n("eeVq")((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},npZl:function(t,e,n){"use strict";var r=n("TqRt");n("Wbzz"),r(n("9hXx"))},nwwn:function(t,e,n){"use strict";e.DEFAULT_OPTIONS={maxWidth:650,wrapperStyle:"",backgroundColor:"white",linkImagesToOriginal:!0,showCaptions:!1,markdownCaptions:!1,withWebp:!1,tracedSVG:!1,loading:"lazy",disableBgImageOnAlpha:!1,disableBgImage:!1},e.imageClass="gatsby-resp-image-image",e.imageWrapperClass="gatsby-resp-image-wrapper",e.imageBackgroundClass="gatsby-resp-image-background-image"},ol8x:function(t,e,n){var r=n("dyZX").navigator;t.exports=r&&r.userAgent||""},pCP8:function(t,e,n){e.components={"component---node-modules-gatsby-plugin-offline-app-shell-js":function(){return n.e(3).then(n.t.bind(null,"MqWW",7))},"component---src-templates-blog-post-js":function(){return Promise.all([n.e(0),n.e(16)]).then(n.bind(null,"yZlL"))},"component---src-templates-tags-js":function(){return Promise.all([n.e(0),n.e(17)]).then(n.bind(null,"MN1z"))},"component---src-pages-404-js":function(){return Promise.all([n.e(0),n.e(4)]).then(n.bind(null,"w2l6"))},"component---src-pages-about-js":function(){return Promise.all([n.e(0),n.e(5)]).then(n.bind(null,"3XHS"))},"component---src-pages-contact-js":function(){return Promise.all([n.e(0),n.e(6)]).then(n.bind(null,"Cuy+"))},"component---src-pages-index-js":function(){return Promise.all([n.e(0),n.e(7)]).then(n.bind(null,"RXBc"))},"component---src-pages-music-discography-index-js":function(){return Promise.all([n.e(1),n.e(0),n.e(8)]).then(n.bind(null,"PTa2"))},"component---src-pages-music-index-js":function(){return Promise.all([n.e(0),n.e(9)]).then(n.bind(null,"e0vg"))},"component---src-pages-music-teaching-resources-index-js":function(){return Promise.all([n.e(0),n.e(10)]).then(n.bind(null,"0l1m"))},"component---src-pages-other-index-js":function(){return Promise.all([n.e(0),n.e(11)]).then(n.bind(null,"lw47"))},"component---src-pages-reading-list-index-js":function(){return Promise.all([n.e(1),n.e(0),n.e(12)]).then(n.bind(null,"14IF"))},"component---src-pages-tags-js":function(){return Promise.all([n.e(0),n.e(13)]).then(n.bind(null,"enK5"))},"component---src-pages-tech-index-js":function(){return Promise.all([n.e(0),n.e(14)]).then(n.bind(null,"hYRG"))},"component---src-pages-tech-projects-index-js":function(){return Promise.all([n.e(1),n.e(0),n.e(15)]).then(n.bind(null,"2BA8"))}}},pIFo:function(t,e,n){"use strict";var r=n("y3w9"),o=n("S/j/"),i=n("ne8i"),a=n("RYi7"),c=n("A5AN"),u=n("Xxuz"),s=Math.max,l=Math.min,f=Math.floor,p=/\$([$&`']|\d\d?|<[^>]*>)/g,h=/\$([$&`']|\d\d?)/g;n("IU+Z")("replace",2,(function(t,e,n,d){return[function(r,o){var i=t(this),a=null==r?void 0:r[e];return void 0!==a?a.call(r,i,o):n.call(String(i),r,o)},function(t,e){var o=d(n,t,this,e);if(o.done)return o.value;var f=r(t),p=String(this),h="function"==typeof e;h||(e=String(e));var g=f.global;if(g){var m=f.unicode;f.lastIndex=0}for(var y=[];;){var w=u(f,p);if(null===w)break;if(y.push(w),!g)break;""===String(w[0])&&(f.lastIndex=c(p,i(f.lastIndex),m))}for(var b,P="",_=0,S=0;S=_&&(P+=p.slice(_,O)+T,_=O+x.length)}return P+p.slice(_)}];function v(t,e,r,i,a,c){var u=r+t.length,s=i.length,l=h;return void 0!==a&&(a=o(a),l=p),n.call(c,l,(function(n,o){var c;switch(o.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,r);case"'":return e.slice(u);case"<":c=a[o.slice(1,-1)];break;default:var l=+o;if(0===l)return n;if(l>s){var p=f(l/10);return 0===p?n:p<=s?void 0===i[p-1]?o.charAt(1):i[p-1]+o.charAt(1):n}c=i[l-1]}return void 0===c?"":c}))}}))},pVnL:function(t,e){function n(){return t.exports=n=Object.assign||function(t){for(var e=1;e1?arguments[1]:void 0,r=o(e.length),c=void 0===n?r:Math.min(o(n),r),u=String(t);return a?a.call(e,u,c):e.slice(c-u.length,c)===u}})},rzlk:function(t,e,n){"use strict";n.r(e);n("91GP");var r=n("q1tI"),o=n.n(r),i=n("IOVJ");e.default=function(t){var e=t.location,n=t.pageResources;return n?o.a.createElement(i.a,Object.assign({location:e,pageResources:n},n.json)):null}},s5qY:function(t,e,n){var r=n("0/R4");t.exports=function(t,e){if(!r(t)||t._t!==e)throw TypeError("Incompatible receiver, "+e+" required!");return t}},sMXx:function(t,e,n){"use strict";var r=n("Ugos");n("XKFU")({target:"RegExp",proto:!0,forced:r!==/./.exec},{exec:r})},vKrd:function(t,e,n){var r=n("y3w9"),o=n("0/R4"),i=n("pbhE");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},vf9c:function(t){t.exports=JSON.parse("[]")},vhPU:function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},w2a5:function(t,e,n){var r=n("aCFj"),o=n("ne8i"),i=n("d/Gc");t.exports=function(t){return function(e,n,a){var c,u=r(e),s=o(u.length),l=i(a,s);if(t&&n!=n){for(;s>l;)if((c=u[l++])!=c)return!0}else for(;s>l;l++)if((t||l in u)&&u[l]===n)return t||l||0;return!t&&-1}}},wCsR:function(t,e,n){"use strict";var r=n("ZD67"),o=n("s5qY");n("4LiD")("WeakSet",(function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}}),{add:function(t){return r.def(o(this,"WeakSet"),t,!0)}},r,!1,!0)},wmvG:function(t,e,n){"use strict";var r=n("hswa").f,o=n("Kuth"),i=n("3Lyj"),a=n("m0Pp"),c=n("9gX7"),u=n("SlkY"),s=n("Afnz"),l=n("1TsA"),f=n("elZq"),p=n("nh4g"),h=n("Z6vF").fastKey,d=n("s5qY"),v=p?"_s":"size",g=function(t,e){var n,r=h(e);if("F"!==r)return t._i[r];for(n=t._f;n;n=n.n)if(n.k==e)return n};t.exports={getConstructor:function(t,e,n,s){var l=t((function(t,r){c(t,l,e,"_i"),t._t=e,t._i=o(null),t._f=void 0,t._l=void 0,t[v]=0,null!=r&&u(r,n,t[s],t)}));return i(l.prototype,{clear:function(){for(var t=d(this,e),n=t._i,r=t._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];t._f=t._l=void 0,t[v]=0},delete:function(t){var n=d(this,e),r=g(n,t);if(r){var o=r.n,i=r.p;delete n._i[r.i],r.r=!0,i&&(i.n=o),o&&(o.p=i),n._f==r&&(n._f=o),n._l==r&&(n._l=i),n[v]--}return!!r},forEach:function(t){d(this,e);for(var n,r=a(t,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(t){return!!g(d(this,e),t)}}),p&&r(l.prototype,"size",{get:function(){return d(this,e)[v]}}),l},def:function(t,e,n){var r,o,i=g(t,e);return i?i.v=n:(t._l=i={i:o=h(e,!0),k:e,v:n,p:r=t._l,n:void 0,r:!1},t._f||(t._f=i),r&&(r.n=i),t[v]++,"F"!==o&&(t._i[o]=i)),t},getEntry:g,setStrong:function(t,e,n){s(t,e,(function(t,n){this._t=d(t,e),this._k=n,this._l=void 0}),(function(){for(var t=this._k,e=this._l;e&&e.r;)e=e.p;return this._t&&(this._l=e=e?e.n:this._t._f)?l(0,"keys"==t?e.k:"values"==t?e.v:[e.k,e.v]):(this._t=void 0,l(1))}),n?"entries":"values",!n,!0),f(e)}}},xpql:function(t,e,n){t.exports=!n("nh4g")&&!n("eeVq")((function(){return 7!=Object.defineProperty(n("Iw71")("div"),"a",{get:function(){return 7}}).a}))},xtsi:function(t,e,n){n("VRzm"),n("Btvt");var r=n("LeKB"),o=n("emEt").publicLoader,i=o.getResourcesForPathname,a=o.getResourcesForPathnameSync,c=o.getResourceURLsForPathname,u=o.loadPage,s=o.loadPageSync;e.apiRunner=function(t,e,n,o){void 0===e&&(e={});var l=r.map((function(n){if(n.plugin[t]){e.getResourcesForPathnameSync=a,e.getResourcesForPathname=i,e.getResourceURLsForPathname=c,e.loadPage=u,e.loadPageSync=s;var r=n.plugin[t](e,n.options);return r&&o&&(e=o({args:e,result:r,plugin:n})),r}}));return(l=l.filter((function(t){return void 0!==t}))).length>0?l:n?[n]:[]},e.apiRunnerAsync=function(t,e,n){return r.reduce((function(n,r){return r.plugin[t]?n.then((function(){return r.plugin[t](e,r.options)})):n}),Promise.resolve())}},y3w9:function(t,e,n){var r=n("0/R4");t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},ylqs:function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},yt8O:function(t,e,n){"use strict";var r=n("nGyu"),o=n("1TsA"),i=n("hPIQ"),a=n("aCFj");t.exports=n("Afnz")(Array,"Array",(function(t,e){this._t=a(t),this._i=0,this._k=e}),(function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):o(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])}),"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},zRwo:function(t,e,n){var r=n("6FMO");t.exports=function(t,e){return new(r(t))(e)}},zhAb:function(t,e,n){var r=n("aagx"),o=n("aCFj"),i=n("w2a5")(!1),a=n("YTvA")("IE_PROTO");t.exports=function(t,e){var n,c=o(t),u=0,s=[];for(n in c)n!=a&&r(c,n)&&s.push(n);for(;e.length>u;)r(c,n=e[u++])&&(~i(s,n)||s.push(n));return s}}},[["UxWs",18,1,0]]]); +//# sourceMappingURL=app-aae54d2eda84058ab49f.js.map \ No newline at end of file diff --git a/app-e6d974cf9700e3928dc3.js.map b/app-aae54d2eda84058ab49f.js.map similarity index 99% rename from app-e6d974cf9700e3928dc3.js.map rename to app-aae54d2eda84058ab49f.js.map index e63c2407..cbc9fd36 100644 --- a/app-e6d974cf9700e3928dc3.js.map +++ b/app-aae54d2eda84058ab49f.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/gatsby-link/index.js","webpack:///./node_modules/dom-helpers/query/scrollLeft.js","webpack:///./node_modules/core-js/modules/_function-to-string.js","webpack:///./node_modules/core-js/modules/_html.js","webpack:///./node_modules/core-js/modules/es6.object.set-prototype-of.js","webpack:///./node_modules/core-js/modules/_string-ws.js","webpack:///./node_modules/core-js/modules/_is-object.js","webpack:///./node_modules/core-js/modules/es6.array.filter.js","webpack:///./node_modules/core-js/modules/_string-context.js","webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/core-js/modules/_enum-keys.js","webpack:///./node_modules/core-js/modules/_iter-step.js","webpack:///./node_modules/gatsby-react-router-scroll/StateStorage.js","webpack:///./node_modules/core-js/modules/es6.object.is.js","webpack:///./node_modules/core-js/modules/_a-function.js","webpack:///./node_modules/core-js/modules/es6.function.bind.js","webpack:///./node_modules/core-js/modules/_redefine-all.js","webpack:///./node_modules/gatsby-react-router-scroll/ScrollBehaviorContext.js","webpack:///./node_modules/core-js/modules/_collection.js","webpack:///./node_modules/core-js/modules/_enum-bug-keys.js","webpack:///./node_modules/mitt/dist/mitt.es.js","webpack:///./.cache/emitter.js","webpack:///./node_modules/core-js/modules/_species-constructor.js","webpack:///./node_modules/warning/browser.js","webpack:///./node_modules/core-js/modules/_array-species-constructor.js","webpack:///./node_modules/gatsby-react-router-scroll/index.js","webpack:///./node_modules/core-js/modules/es6.array.for-each.js","webpack:///./node_modules/core-js/modules/_bind.js","webpack:///./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack:///./node_modules/dom-helpers/query/isWindow.js","webpack:///./node_modules/core-js/modules/_create-property.js","webpack:///./node_modules/core-js/modules/es6.object.assign.js","webpack:///./.cache/react-lifecycles-compat.js","webpack:///./node_modules/core-js/modules/es6.map.js","webpack:///./node_modules/core-js/modules/es6.string.starts-with.js","webpack:///./node_modules/@reach/router/es/lib/history.js","webpack:///./node_modules/core-js/modules/_an-instance.js","webpack:///./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack:///./node_modules/core-js/modules/_advance-string-index.js","webpack:///./node_modules/core-js/modules/_iter-define.js","webpack:///./node_modules/core-js/modules/_string-at.js","webpack:///./node_modules/dom-helpers/util/inDOM.js","webpack:///./node_modules/core-js/modules/es6.object.to-string.js","webpack:///./node_modules/core-js/modules/_flags.js","webpack:///./node_modules/core-js/modules/_array-methods.js","webpack:///./node_modules/core-js/modules/es6.array.reduce.js","webpack:///./node_modules/core-js/modules/_object-keys.js","webpack:///./node_modules/core-js/modules/es6.weak-map.js","webpack:///./node_modules/core-js/modules/_is-array.js","webpack:///./node_modules/core-js/modules/_object-gopd.js","webpack:///./node_modules/core-js/modules/_object-dps.js","webpack:///./node_modules/core-js/modules/_task.js","webpack:///./gatsby-browser.js","webpack:///./node_modules/core-js/modules/_iter-call.js","webpack:///./node_modules/core-js/modules/es6.object.define-property.js","webpack:///./node_modules/core-js/modules/es6.array.from.js","webpack:///./node_modules/core-js/modules/_classof.js","webpack:///./.cache/page-renderer.js","webpack:///./node_modules/core-js/modules/_fix-re-wks.js","webpack:///./node_modules/gatsby-react-router-scroll/ScrollContainer.js","webpack:///./node_modules/core-js/modules/_dom-create.js","webpack:///./node_modules/core-js/modules/core.get-iterator-method.js","webpack:///./node_modules/core-js/modules/_object-gops.js","webpack:///./node_modules/core-js/modules/_wks.js","webpack:///./node_modules/core-js/modules/es6.regexp.split.js","webpack:///./node_modules/core-js/modules/_redefine.js","webpack:///./node_modules/core-js/modules/_object-create.js","webpack:///./node_modules/core-js/modules/es6.string.includes.js","webpack:///./node_modules/scroll-behavior/lib/index.js","webpack:///./node_modules/core-js/modules/es6.array.is-array.js","webpack:///./node_modules/core-js/modules/_library.js","webpack:///./node_modules/@reach/router/es/lib/utils.js","webpack:///./node_modules/core-js/modules/_cof.js","webpack:///./.cache/api-runner-browser-plugins.js","webpack:///./node_modules/core-js/modules/_strict-method.js","webpack:///./node_modules/core-js/modules/_is-array-iter.js","webpack:///./node_modules/@mikaelkristiansson/domready/ready.js","webpack:///./node_modules/core-js/modules/_invoke.js","webpack:///./node_modules/object-assign/index.js","webpack:///./node_modules/core-js/modules/_hide.js","webpack:///./node_modules/core-js/modules/_wks-ext.js","webpack:///./.cache/register-service-worker.js","webpack:///./node_modules/core-js/modules/es6.regexp.flags.js","webpack:///./node_modules/core-js/modules/es6.regexp.search.js","webpack:///./node_modules/core-js/modules/_object-gpo.js","webpack:///./node_modules/core-js/modules/_wks-define.js","webpack:///./node_modules/scroll-behavior/lib/utils.js","webpack:///./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack:///./node_modules/invariant/browser.js","webpack:///./node_modules/core-js/modules/_iter-create.js","webpack:///./node_modules/core-js/modules/es6.object.keys.js","webpack:///./node_modules/core-js/modules/_to-integer.js","webpack:///./node_modules/core-js/modules/_property-desc.js","webpack:///./node_modules/core-js/modules/_to-object.js","webpack:///./node_modules/core-js/modules/es6.regexp.match.js","webpack:///./node_modules/core-js/modules/_for-of.js","webpack:///./node_modules/core-js/modules/es6.set.js","webpack:///./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack:///./node_modules/core-js/modules/es6.string.trim.js","webpack:///./node_modules/core-js/modules/_fails-is-regexp.js","webpack:///./node_modules/core-js/modules/_regexp-exec.js","webpack:///./node_modules/core-js/modules/_object-pie.js","webpack:///./.cache/navigation.js","webpack:///./node_modules/shallow-compare/es/index.js","webpack:///./.cache/ensure-resources.js","webpack:///./.cache/production-app.js","webpack:///./node_modules/core-js/modules/es6.array.index-of.js","webpack:///./node_modules/core-js/modules/es6.promise.js","webpack:///./node_modules/core-js/modules/_shared.js","webpack:///./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack:///./node_modules/core-js/modules/es6.array.sort.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./.cache/gatsby-browser-entry.js","webpack:///./node_modules/core-js/modules/_export.js","webpack:///./node_modules/core-js/modules/_iter-detect.js","webpack:///./node_modules/core-js/modules/_inherit-if-required.js","webpack:///./node_modules/core-js/modules/es6.string.iterator.js","webpack:///./node_modules/core-js/modules/_object-sap.js","webpack:///./node_modules/core-js/modules/_regexp-exec-abstract.js","webpack:///./node_modules/core-js/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/_iobject.js","webpack:///./.cache/create-react-context.js","webpack:///./node_modules/@reach/router/es/index.js","webpack:///./node_modules/core-js/modules/es7.array.includes.js","webpack:///./node_modules/core-js/modules/_meta.js","webpack:///./node_modules/core-js/modules/_collection-weak.js","webpack:///./node_modules/dom-helpers/query/scrollTop.js","webpack:///./node_modules/core-js/modules/es6.regexp.to-string.js","webpack:///./node_modules/core-js/modules/_to-iobject.js","webpack:///./node_modules/core-js/modules/_has.js","webpack:///./node_modules/core-js/modules/_to-primitive.js","webpack:///./node_modules/core-js/modules/es6.array.map.js","webpack:///./node_modules/dom-helpers/events/off.js","webpack:///./.cache/strip-prefix.js","webpack:///./node_modules/gatsby-link/parse-path.js","webpack:///./node_modules/core-js/modules/_object-assign.js","webpack:///./node_modules/core-js/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/modules/es6.array.find.js","webpack:///./node_modules/core-js/modules/es6.array.some.js","webpack:///./node_modules/core-js/modules/_global.js","webpack:///./node_modules/gatsby-plugin-offline/gatsby-browser.js","webpack:///./node_modules/core-js/modules/_object-gopn-ext.js","webpack:///./node_modules/core-js/modules/es6.date.now.js","webpack:///./node_modules/core-js/modules/_fails.js","webpack:///./node_modules/core-js/modules/_set-species.js","webpack:///./.cache/prefetch.js","webpack:///./.cache/normalize-page-path.js","webpack:///./.cache/find-path.js","webpack:///./.cache/loader.js","webpack:///./node_modules/core-js/modules/_array-reduce.js","webpack:///./node_modules/core-js/modules/es6.function.name.js","webpack:///./node_modules/core-js/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/modules/_core.js","webpack:///./node_modules/core-js/modules/_same-value.js","webpack:///./node_modules/core-js/modules/_microtask.js","webpack:///./node_modules/core-js/modules/es6.date.to-string.js","webpack:///./node_modules/core-js/modules/es6.object.create.js","webpack:///./node_modules/core-js/modules/_iterators.js","webpack:///./node_modules/core-js/modules/_object-dp.js","webpack:///./node_modules/core-js/modules/_set-proto.js","webpack:///./node_modules/core-js/modules/es6.symbol.js","webpack:///./node_modules/core-js/modules/_object-gopn.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./.cache/public-page-renderer.js","webpack:///./node_modules/core-js/modules/_ctx.js","webpack:///./node_modules/core-js/modules/_add-to-unscopables.js","webpack:///./node_modules/core-js/modules/_perform.js","webpack:///./node_modules/core-js/modules/_to-length.js","webpack:///./node_modules/core-js/modules/_descriptors.js","webpack:///./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack:///./node_modules/gatsby-remark-images/constants.js","webpack:///./node_modules/core-js/modules/_user-agent.js","webpack:///./.cache/async-requires.js","webpack:///./node_modules/core-js/modules/es6.regexp.replace.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/core-js/modules/_new-promise-capability.js","webpack:///./node_modules/dom-helpers/util/requestAnimationFrame.js","webpack:///./node_modules/gatsby-remark-images/gatsby-browser.js","webpack:///./node_modules/core-js/modules/_string-trim.js","webpack:///./node_modules/core-js/modules/_is-regexp.js","webpack:///./node_modules/core-js/modules/es7.symbol.async-iterator.js","webpack:///./node_modules/core-js/modules/web.dom.iterable.js","webpack:///./node_modules/dom-helpers/events/on.js","webpack:///./node_modules/core-js/modules/es6.string.ends-with.js","webpack:///./.cache/public-page-renderer-prod.js","webpack:///./node_modules/core-js/modules/_validate-collection.js","webpack:///./node_modules/core-js/modules/es6.regexp.exec.js","webpack:///./node_modules/core-js/modules/_promise-resolve.js","webpack:///./node_modules/core-js/modules/_defined.js","webpack:///./node_modules/core-js/modules/_array-includes.js","webpack:///./node_modules/core-js/modules/es6.weak-set.js","webpack:///./node_modules/core-js/modules/_collection-strong.js","webpack:///./node_modules/core-js/modules/_ie8-dom-define.js","webpack:///./.cache/api-runner-browser.js","webpack:///./node_modules/core-js/modules/_an-object.js","webpack:///./node_modules/core-js/modules/_uid.js","webpack:///./node_modules/core-js/modules/es6.array.iterator.js","webpack:///./node_modules/core-js/modules/_array-species-create.js","webpack:///./node_modules/core-js/modules/_object-keys-internal.js"],"names":["_interopRequireDefault","exports","__esModule","withPrefix","withAssetPrefix","path","concat","replace","join","navigateTo","push","navigate","_objectWithoutPropertiesLoose2","_extends2","_assertThisInitialized2","_inheritsLoose2","_defineProperty2","_propTypes","_react","_router","_parsePath","normalizePath","parsePath","NavLinkPropTypes","activeClassName","string","activeStyle","object","partiallyActive","bool","GatsbyLink","_React$Component","props","_this","call","this","_ref","isPartiallyCurrent","isCurrent","className","filter","Boolean","style","IOSupported","window","IntersectionObserver","state","handleRef","bind","_proto","prototype","componentDidUpdate","prevProps","prevState","to","___loader","enqueue","pathname","componentDidMount","componentWillUnmount","io","_this$io","instance","el","unobserve","disconnect","ref","cb","_this2","innerRef","hasOwnProperty","current","entries","forEach","entry","target","isIntersecting","intersectionRatio","observe","render","_this3","_this$props","_this$props$getProps","getProps","defaultGetProps","_onClick","onClick","_onMouseEnter","onMouseEnter","rest","prefixedTo","createElement","Link","e","hovering","button","defaultPrevented","metaKey","altKey","ctrlKey","shiftKey","preventDefault","Component","propTypes","func","isRequired","showDeprecationWarning","functionName","altFunctionName","version","console","warn","_default","forwardRef","options","___navigate","___push","___replace","node","val","win","_isWindow","undefined","pageXOffset","document","documentElement","scrollLeft","scrollTo","pageYOffset","scrollTop","module","Function","toString","$export","S","setPrototypeOf","set","it","$filter","P","F","callbackfn","arguments","isRegExp","defined","that","searchString","NAME","TypeError","String","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","location","propFullName","secret","err","Error","name","getShim","ReactPropTypes","array","number","symbol","any","arrayOf","element","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","getKeys","gOPS","pIE","result","getSymbols","f","key","symbols","isEnum","i","length","done","value","SessionStorage","read","stateKey","getStateKey","sessionStorage","getItem","JSON","parse","save","storedValue","stringify","setItem","stateKeyBase","is","redefine","src","safe","_scrollBehavior","_history","_StateStorage","shouldUpdateScroll","children","childContextTypes","scrollBehavior","ScrollContext","context","prevRouterProps","routerProps","registerElement","getRouterProps","unregisterElement","addTransitionHook","globalHistory","listen","stateStorage","getCurrentLocation","getChildContext","__navigatingToLink","action","updateScroll","history","stop","Children","only","global","redefineAll","meta","forOf","anInstance","isObject","fails","$iterDetect","setToStringTag","inheritIfRequired","wrapper","methods","common","IS_MAP","IS_WEAK","Base","C","ADDER","proto","O","fixMethod","KEY","fn","a","b","next","HASNT_CHAINING","THROWS_ON_PRIMITIVES","has","ACCEPT_ITERABLES","iter","BUGGY_ZERO","$instance","index","iterable","constructor","clear","getConstructor","NEED","G","W","setStrong","split","emitter","all","Object","create","on","type","handler","off","splice","indexOf","emit","evt","slice","map","mitt","anObject","aFunction","SPECIES","D","isArray","original","Array","_ScrollBehaviorContext","_ScrollContainer","ScrollContainer","$forEach","STRICT","invoke","arraySlice","factories","construct","len","args","n","partArgs","bound","source","excluded","sourceKeys","keys","nodeType","defaultView","parentWindow","$defineProperty","createDesc","assign","polyfill","strong","validate","get","getEntry","v","def","toLength","$startsWith","startsWith","Math","min","search","_extends","getLocation","createHistory","listeners","transitioning","resolveTransition","_onTransitionComplete","listener","popstateListener","addEventListener","removeEventListener","_ref$replace","Date","now","replaceState","pushState","transition","Promise","res","createMemorySource","initialPathname","stack","states","_","uri","_uri$split","_uri$split$","_uri$split2","_uri$split2$","canUseDOM","Constructor","forbiddenField","localizedManifests","localizedManifest","find","app","start_url","lang","at","unicode","LIBRARY","hide","Iterators","$iterCreate","getPrototypeOf","ITERATOR","BUGGY","returnThis","DEFAULT","IS_SET","FORCED","IteratorPrototype","getMethod","kind","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","values","toInteger","TO_STRING","pos","s","l","charCodeAt","charAt","classof","test","ignoreCase","multiline","sticky","ctx","IObject","toObject","asc","TYPE","$create","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","self","$reduce","reduce","$keys","enumBugKeys","InternalMap","each","weak","NATIVE_WEAK_MAP","IS_IE11","ActiveXObject","getWeak","isExtensible","uncaughtFrozenStore","ufstore","data","_i","$WeakMap","method","_f","cof","arg","toIObject","toPrimitive","IE8_DOM_DEFINE","gOPD","getOwnPropertyDescriptor","dP","defineProperties","Properties","defer","channel","port","html","cel","process","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","queue","run","id","event","nextTick","port2","port1","onmessage","postMessage","importScripts","appendChild","removeChild","setTimeout","onRouteUpdate","woopra","debug","log","track","iterator","ret","defineProperty","isArrayIter","createProperty","getIterFn","from","arrayLike","step","aLen","mapfn","mapping","iterFn","ARG","T","B","tryGet","callee","PageRenderer","pathContext","pageContext","pageElement","apiRunner","loader","publicLoader","pageResources","component","page","pop","React","wks","regexpExec","REPLACE_SUPPORTS_NAMED_GROUPS","re","exec","groups","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","apply","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","regexp","str","arg2","forceStringMethod","strfn","rxfn","RegExp","_reactDom","_warning","scrollKey","contextTypes","findDOMNode","getIteratorMethod","getOwnPropertySymbols","store","uid","Symbol","USE_SYMBOL","speciesConstructor","advanceStringIndex","callRegExpExec","$min","$push","SUPPORTS_Y","SPLIT","$split","maybeCallNative","internalSplit","separator","limit","match","lastIndex","lastLength","output","flags","lastLastIndex","splitLimit","separatorCopy","splitter","rx","unicodeMatching","lim","p","q","A","z","SRC","$toString","TPL","inspectSource","isFunction","dPs","IE_PROTO","Empty","createDict","iframeDocument","iframe","display","contentWindow","open","write","lt","close","includes","_off2","_on2","_scrollLeft2","_scrollTop2","_requestAnimationFrame2","_invariant2","_utils","obj","MAX_SCROLL_ATTEMPTS","ScrollBehavior","_classCallCheck","_restoreScrollRestoration","_oldScrollRestoration","scrollRestoration","_onWindowScroll","_saveWindowPositionHandle","_saveWindowPosition","_windowScrollTarget","xTarget","yTarget","x","y","_cancelCheckWindowScroll","_savePosition","_checkWindowScrollPosition","_checkWindowScrollHandle","scrollToTarget","_numWindowScrollAttempts","_stateStorage","_getCurrentLocation","_shouldUpdateScroll","isMobileSafari","_scrollElements","_removeTransitionHook","cancel","scrollElement","savePositionHandle","_saveElementPosition","saveElementPosition","onScroll","_updateElementScroll","_scrollElements$key","prevContext","_updateWindowScroll","_getScrollTarget","_scrollElements$key2","scrollTarget","_getDefaultScrollTarget","hash","_getSavedScrollTarget","targetElement","getElementById","getElementsByName","scrollIntoView","_target","left","top","substr","pick","routes","default_","uriPathname","uriSegments","segmentize","isRootUri","ranked","rankRoutes","missed","route","params","routeSegments","max","routeSegment","uriSegment","decodeURIComponent","dynamicMatch","paramRe","reservedNames","resolve","base","_to$split","toPathname","toQuery","basePathname","toSegments","baseSegments","addQuery","allSegments","segments","segment","insertParams","validateRedirect","isDynamic","sort","rankRoute","score","isRootSegment","isSplat","SEGMENT_POINTS","query","plugin","require","ArrayProto","ie10","navigator","appVersion","_listener","doc","hack","doScroll","loaded","readyState","shift","definition","un","propIsEnumerable","propertyIsEnumerable","test1","getOwnPropertyNames","test2","fromCharCode","test3","letter","shouldUseNative","protocol","hostname","error","serviceWorker","register","then","reg","installingWorker","installing","controller","___swUpdated","___failedResources","reload","catch","configurable","sameValue","regExpExec","SEARCH","$search","previousLastIndex","ObjectProto","core","wksExt","$Symbol","platform","userAgent","ReferenceError","condition","format","c","d","argIndex","framesToPop","descriptor","ceil","floor","isNaN","bitmap","enumerable","writable","MATCH","$match","fullUnicode","matchStr","BREAK","RETURN","add","$trim","re1","re2","regexpFlags","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","redirectMap","redirects","redirect","fromPath","maybeRedirect","toPath","onPreRouteUpdate","prevLocation","timeoutId","loadPage","status","href","webpackCompilationHash","___webpackCompilationHash","gatsbyApi","reachNavigate","clearTimeout","results","getSavedScrollPosition","decodeURI","RouteUpdates","shouldFireRouteUpdate","getSnapshotBeforeUpdate","shallowDiffers","EnsureResources","loadPageSync","getDerivedStateFromProps","loadResources","rawPath","setState","shouldComponentUpdate","nextProps","nextState","json","matchPath","shallowCompare","ProdLoader","asyncRequires","matchPaths","setLoader","setApiRunner","___emitter","apiRunnerAsync","RouteHandler","Provider","baseuri","basepath","LocationHandler","__BASE_PATH__","encodeURI","stripPrefix","pagePath","browserLoc","findMatchPath","Root","locationContext","WrappedRoot","NewRoot","renderer","ReactDOM","hydrate","domReady","$indexOf","NEGATIVE_ZERO","searchElement","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","task","microtask","newPromiseCapabilityModule","perform","promiseResolve","versions","v8","$Promise","isNode","empty","newPromiseCapability","USE_NATIVE","promise","FakePromise","PromiseRejectionEvent","isThenable","notify","isReject","_n","chain","_c","_v","ok","_s","reaction","exited","fail","reject","domain","_h","onHandleUnhandled","enter","exit","onUnhandled","unhandled","isUnhandled","onunhandledrejection","reason","_a","onrejectionhandled","$reject","_d","_w","$resolve","executor","onFulfilled","onRejected","r","capability","$$reject","remaining","$index","alreadyCalled","race","mode","copyright","subClass","superClass","__proto__","$sort","comparefn","prefetchPathname","StaticQueryContext","createContext","StaticQueryDataRenderer","staticQueryData","finalData","Fragment","StaticQuery","Consumer","useStaticQuery","useContext","graphql","own","out","exp","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","expProto","U","R","SAFE_CLOSING","riter","skipClosing","arr","$at","iterated","_t","point","builtinExec","shared","_objectWithoutProperties","_possibleConstructorReturn","_inherits","defaultValue","Ctx","displayName","LocationContext","LocationProvider","_temp","_len","_key","getContext","refs","unlisten","_props$history","componentDidCatch","info","isRedirect","_navigate","requestAnimationFrame","unmounted","defaultProps","_ref2","url","BaseContext","baseContext","_React$PureComponent","RouterImpl","_props","_navigate2","primary","_props$component","domProps","clone","cloneElement","FocusWrapper","wrapperProps","PureComponent","FocusContext","_ref3","requestFocus","initialRender","focusHandlerCount","_React$Component2","FocusHandlerImpl","_temp2","_this4","_len2","_key2","shouldFocus","focus","myURIChanged","navigatedUpToMe","contains","activeElement","_this5","_props2","_props2$role","role","_props2$component","Comp","outline","tabIndex","k","_ref4","_ref5","_ref6","_props$getProps","anchorProps","shouldNavigate","RedirectRequest","o","redirectTo","_React$Component3","RedirectImpl","_props3","_props3$replace","noThrow","_props4","_ref7","_ref8","_ref9","resolvedPath","stripSlashes","elementPath","$includes","META","setDesc","FREEZE","preventExtensions","setMeta","w","fastKey","onFreeze","createArrayMethod","$has","arrayFind","arrayFindIndex","_l","UncaughtFrozenStore","findUncaughtFrozen","$flags","DESCRIPTORS","define","valueOf","$map","eventName","capture","attachEvent","detachEvent","prefix","hashIndex","searchIndex","$assign","K","j","$find","forced","$some","some","__g","registerServiceWorker","whiteListLinkRels","prefetchedPathnames","setPathResources","getResourceURLsForPathname","resources","onServiceWorkerActive","active","nodes","querySelectorAll","headerResources","tagName","getAttribute","prefetchedResources","resource","link","rel","onload","remove","onerror","head","onPostPrefetchPathname","gOPN","windowNames","getWindowNames","getTime","supportedPrefetchStrategy","feature","fakeLink","relList","supports","support","setAttribute","getElementsByTagName","parentNode","req","XMLHttpRequest","send","preFetched","prefetch","pathCache","Map","trimPathname","rawPathname","setMatchPaths","trimmedPathname","cleanPath","normalizePagePath","findPath","foundPath","preferDefault","m","default","createPageDataUrl","endsWith","doFetch","onreadystatechange","loadPageDataJson","loadObj","retries","responseText","jsonPayload","payload","notFound","toPageResources","pageData","componentChunkName","BaseLoader","loadComponent","pageDb","inFlightDb","pageDataDb","prefetchTriggered","Set","prefetchCompleted","prefetchDisabled","inFlight","loadAppData","allData","finalResult","createdAt","response","delete","shouldPrefetch","connection","effectiveType","saveData","doesConnectionSupportPrefetch","realPath","doPrefetch","createComponentUrls","isPageNotFound","appData","___chunkMapping","chunk","__PATH_PREFIX__","chunkName","components","pageDataUrl","prefetchHelper","crossOrigin","as","componentUrls","_loader","getResourcesForPathname","getResourcesForPathnameSync","memo","isRight","FProto","nameRE","tag","stat","__e","macrotask","Observer","MutationObserver","WebKitMutationObserver","last","flush","parent","standalone","toggle","createTextNode","characterData","DateProto","NaN","Attributes","check","buggy","$fails","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$GOPS","$DP","$JSON","_stringify","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","QObject","setter","findChild","setSymbolDesc","protoDesc","wrap","sym","_k","isSymbol","$defineProperties","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","names","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","wellKnownSymbols","keyFor","useSetter","useSimple","FAILS_ON_PRIMITIVES","replacer","$replacer","hiddenKeys","UNSCOPABLES","DEFAULT_OPTIONS","maxWidth","wrapperStyle","backgroundColor","linkImagesToOriginal","showCaptions","markdownCaptions","withWebp","tracedSVG","loading","disableBgImageOnAlpha","disableBgImage","imageClass","imageWrapperClass","imageBackgroundClass","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","REPLACE","$replace","searchValue","replaceValue","functionalReplace","accumulatedResult","nextSourcePosition","matched","position","captures","namedCaptures","replacerArgs","replacement","getSubstitution","tailPos","ch","PromiseCapability","$$resolve","compatRaf","_inDOM","raf","curr","ms","prev","getKey","vendor","toUpperCase","rafKey","_require","apiCallbackContext","pluginOptions","imageWrappers","_loop","imageWrapper","backgroundElement","querySelector","imageElement","onImageLoad","onImageComplete","opacity","color","boxShadow","complete","spaces","space","ltrim","rtrim","exporter","ALIAS","FORCE","trim","$iterators","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","srcElement","currentTarget","$endsWith","endPosition","end","ProdPageRenderer","InternalPageRenderer","promiseCapability","toAbsoluteIndex","IS_INCLUDES","fromIndex","$iterDefine","setSpecies","SIZE","plugins","api","defaultReturn","argTransform","previous","px","random","addToUnscopables","Arguments","arrayIndexOf"],"mappings":"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","file":"app-e6d974cf9700e3928dc3.js","sourcesContent":["\"use strict\";\n\nrequire(\"core-js/modules/es6.function.bind\");\n\nrequire(\"core-js/modules/es6.array.filter\");\n\nrequire(\"core-js/modules/es6.array.for-each\");\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.withPrefix = withPrefix;\nexports.withAssetPrefix = withAssetPrefix;\nexports.navigateTo = exports.replace = exports.push = exports.navigate = exports[\"default\"] = void 0;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _router = require(\"@reach/router\");\n\nvar _parsePath = require(\"./parse-path\");\n\nexports.parsePath = _parsePath.parsePath;\n\nfunction withPrefix(path) {\n return normalizePath([typeof __BASE_PATH__ !== \"undefined\" ? __BASE_PATH__ : __PATH_PREFIX__, path].join(\"/\"));\n}\n\nfunction withAssetPrefix(path) {\n return [__PATH_PREFIX__].concat([path.replace(/^\\//, \"\")]).join(\"/\");\n}\n\nfunction normalizePath(path) {\n return path.replace(/\\/+/g, \"/\");\n}\n\nvar NavLinkPropTypes = {\n activeClassName: _propTypes[\"default\"].string,\n activeStyle: _propTypes[\"default\"].object,\n partiallyActive: _propTypes[\"default\"].bool\n}; // Set up IntersectionObserver\n\nvar createIntersectionObserver = function createIntersectionObserver(el, cb) {\n var io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (el === entry.target) {\n // Check if element is within viewport, remove listener, destroy observer, and run link callback.\n // MSEdge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(el);\n io.disconnect();\n cb();\n }\n }\n });\n }); // Add element to the observer\n\n io.observe(el);\n return {\n instance: io,\n el: el\n };\n};\n\nvar GatsbyLink =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inheritsLoose2[\"default\"])(GatsbyLink, _React$Component);\n\n function GatsbyLink(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // Default to no support for IntersectionObserver\n\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"defaultGetProps\", function (_ref) {\n var isPartiallyCurrent = _ref.isPartiallyCurrent,\n isCurrent = _ref.isCurrent;\n\n if (_this.props.partiallyActive ? isPartiallyCurrent : isCurrent) {\n return {\n className: [_this.props.className, _this.props.activeClassName].filter(Boolean).join(\" \"),\n style: (0, _extends2[\"default\"])({}, _this.props.style, {}, _this.props.activeStyle)\n };\n }\n\n return null;\n });\n var IOSupported = false;\n\n if (typeof window !== \"undefined\" && window.IntersectionObserver) {\n IOSupported = true;\n }\n\n _this.state = {\n IOSupported: IOSupported\n };\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n var _proto = GatsbyLink.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // Preserve non IO functionality if no support\n if (this.props.to !== prevProps.to && !this.state.IOSupported) {\n ___loader.enqueue((0, _parsePath.parsePath)(this.props.to).pathname);\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n // Preserve non IO functionality if no support\n if (!this.state.IOSupported) {\n ___loader.enqueue((0, _parsePath.parsePath)(this.props.to).pathname);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (!this.io) {\n return;\n }\n\n var _this$io = this.io,\n instance = _this$io.instance,\n el = _this$io.el;\n instance.unobserve(el);\n instance.disconnect();\n };\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.props.innerRef && this.props.innerRef.hasOwnProperty(\"current\")) {\n this.props.innerRef.current = ref;\n } else if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n if (this.state.IOSupported && ref) {\n // If IO supported and element reference found, setup Observer functionality\n this.io = createIntersectionObserver(ref, function () {\n ___loader.enqueue((0, _parsePath.parsePath)(_this2.props.to).pathname);\n });\n }\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n to = _this$props.to,\n _this$props$getProps = _this$props.getProps,\n getProps = _this$props$getProps === void 0 ? this.defaultGetProps : _this$props$getProps,\n _onClick = _this$props.onClick,\n _onMouseEnter = _this$props.onMouseEnter,\n $activeClassName = _this$props.activeClassName,\n $activeStyle = _this$props.activeStyle,\n $innerRef = _this$props.innerRef,\n partiallyActive = _this$props.partiallyActive,\n state = _this$props.state,\n replace = _this$props.replace,\n rest = (0, _objectWithoutPropertiesLoose2[\"default\"])(_this$props, [\"to\", \"getProps\", \"onClick\", \"onMouseEnter\", \"activeClassName\", \"activeStyle\", \"innerRef\", \"partiallyActive\", \"state\", \"replace\"]);\n var LOCAL_URL = /^\\/(?!\\/)/;\n\n if (process.env.NODE_ENV !== \"production\" && !LOCAL_URL.test(to)) {\n console.warn(\"External link \" + to + \" was detected in a Link component. Use the Link component only for internal links. See: https://gatsby.dev/internal-links\");\n }\n\n var prefixedTo = withPrefix(to);\n return _react[\"default\"].createElement(_router.Link, (0, _extends2[\"default\"])({\n to: prefixedTo,\n state: state,\n getProps: getProps,\n innerRef: this.handleRef,\n onMouseEnter: function onMouseEnter(e) {\n if (_onMouseEnter) {\n _onMouseEnter(e);\n }\n\n ___loader.hovering((0, _parsePath.parsePath)(to).pathname);\n },\n onClick: function onClick(e) {\n if (_onClick) {\n _onClick(e);\n }\n\n if (e.button === 0 && // ignore right clicks\n !_this3.props.target && // let browser handle \"target=_blank\"\n !e.defaultPrevented && // onClick prevented default\n !e.metaKey && // ignore clicks with modifier keys...\n !e.altKey && !e.ctrlKey && !e.shiftKey) {\n e.preventDefault(); // Make sure the necessary scripts and data are\n // loaded before continuing.\n\n navigate(to, {\n state: state,\n replace: replace\n });\n }\n\n return true;\n }\n }, rest));\n };\n\n return GatsbyLink;\n}(_react[\"default\"].Component);\n\nGatsbyLink.propTypes = (0, _extends2[\"default\"])({}, NavLinkPropTypes, {\n onClick: _propTypes[\"default\"].func,\n to: _propTypes[\"default\"].string.isRequired,\n replace: _propTypes[\"default\"].bool\n});\n\nvar showDeprecationWarning = function showDeprecationWarning(functionName, altFunctionName, version) {\n return console.warn(\"The \\\"\" + functionName + \"\\\" method is now deprecated and will be removed in Gatsby v\" + version + \". Please use \\\"\" + altFunctionName + \"\\\" instead.\");\n};\n\nvar _default = _react[\"default\"].forwardRef(function (props, ref) {\n return _react[\"default\"].createElement(GatsbyLink, (0, _extends2[\"default\"])({\n innerRef: ref\n }, props));\n});\n\nexports[\"default\"] = _default;\n\nvar navigate = function navigate(to, options) {\n window.___navigate(withPrefix(to), options);\n};\n\nexports.navigate = navigate;\n\nvar push = function push(to) {\n showDeprecationWarning(\"push\", \"navigate\", 3);\n\n window.___push(withPrefix(to));\n};\n\nexports.push = push;\n\nvar replace = function replace(to) {\n showDeprecationWarning(\"replace\", \"navigate\", 3);\n\n window.___replace(withPrefix(to));\n}; // TODO: Remove navigateTo for Gatsby v3\n\n\nexports.replace = replace;\n\nvar navigateTo = function navigateTo(to) {\n showDeprecationWarning(\"navigateTo\", \"navigate\", 3);\n return push(to);\n};\n\nexports.navigateTo = navigateTo;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = scrollTop;\n\nvar _isWindow = _interopRequireDefault(require(\"./isWindow\"));\n\nfunction scrollTop(node, val) {\n var win = (0, _isWindow[\"default\"])(node);\n if (val === undefined) return win ? 'pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft : node.scrollLeft;\n if (win) win.scrollTo(val, 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop);else node.scrollLeft = val;\n}\n\nmodule.exports = exports[\"default\"];","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","'use strict';\nvar $export = require('./_export');\nvar $filter = require('./_array-methods')(2);\n\n$export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {\n // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments[1]);\n }\n});\n","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nrequire(\"core-js/modules/es6.function.name\");\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\n\nfunction emptyFunctionWithReset() {}\n\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n ;\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n\n ; // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n};","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is'); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\n\nvar SessionStorage =\n/*#__PURE__*/\nfunction () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return JSON.parse(value);\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return {};\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n\n _proto.getStateKey = function getStateKey(location, key) {\n var locationKey = location.key || location.pathname;\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + locationKey;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports[\"default\"] = SessionStorage;","// 19.1.3.10 Object.is(value1, value2)\nvar $export = require('./_export');\n$export($export.S, 'Object', { is: require('./_same-value') });\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)\nvar $export = require('./_export');\n\n$export($export.P, 'Function', { bind: require('./_bind') });\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _scrollBehavior = _interopRequireDefault(require(\"scroll-behavior\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _history = require(\"@reach/router/lib/history\");\n\nvar _StateStorage = _interopRequireDefault(require(\"./StateStorage\"));\n\nvar propTypes = {\n shouldUpdateScroll: _propTypes[\"default\"].func,\n children: _propTypes[\"default\"].element.isRequired,\n location: _propTypes[\"default\"].object.isRequired\n};\nvar childContextTypes = {\n scrollBehavior: _propTypes[\"default\"].object.isRequired\n};\n\nvar ScrollContext =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inheritsLoose2[\"default\"])(ScrollContext, _React$Component);\n\n function ScrollContext(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"shouldUpdateScroll\", function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing scrollBehavior._stateStorage.\n\n\n return shouldUpdateScroll.call(_this.scrollBehavior, prevRouterProps, routerProps);\n });\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"registerElement\", function (key, element, shouldUpdateScroll) {\n _this.scrollBehavior.registerElement(key, element, shouldUpdateScroll, _this.getRouterProps());\n });\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"unregisterElement\", function (key) {\n _this.scrollBehavior.unregisterElement(key);\n });\n _this.scrollBehavior = new _scrollBehavior[\"default\"]({\n addTransitionHook: _history.globalHistory.listen,\n stateStorage: new _StateStorage[\"default\"](),\n getCurrentLocation: function getCurrentLocation() {\n return _this.props.location;\n },\n shouldUpdateScroll: _this.shouldUpdateScroll\n });\n return _this;\n }\n\n var _proto = ScrollContext.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n scrollBehavior: this\n };\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var location = this.props.location;\n var prevLocation = prevProps.location;\n\n if (location === prevLocation) {\n return;\n }\n\n var prevRouterProps = {\n location: prevProps.location\n }; // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n // Temp hack while awaiting https://github.com/reach/router/issues/119\n\n if (window.__navigatingToLink) {\n location.action = \"PUSH\";\n } else {\n location.action = \"POP\";\n }\n\n this.scrollBehavior.updateScroll(prevRouterProps, {\n history: _history.globalHistory,\n location: location\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.scrollBehavior.stop();\n };\n\n _proto.getRouterProps = function getRouterProps() {\n var location = this.props.location;\n return {\n location: location,\n history: _history.globalHistory\n };\n };\n\n _proto.render = function render() {\n return _react[\"default\"].Children.only(this.props.children);\n };\n\n return ScrollContext;\n}(_react[\"default\"].Component);\n\nScrollContext.propTypes = propTypes;\nScrollContext.childContextTypes = childContextTypes;\nvar _default = ScrollContext;\nexports[\"default\"] = _default;","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","import \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.array.index-of\";\nimport \"core-js/modules/es6.object.create\";\n\n// \n// An event handler can take an optional event argument\n// and should not return a value\n// An array of all currently registered event handlers for a type\n// A map of event types and their corresponding event handlers.\n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all) {\n all = all || Object.create(null);\n return {\n /**\n * Register an event handler for the given type.\n *\n * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n * @param {Function} handler Function to call in response to given event\n * @memberOf mitt\n */\n on: function on(type, handler) {\n (all[type] || (all[type] = [])).push(handler);\n },\n\n /**\n * Remove an event handler for the given type.\n *\n * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n * @param {Function} handler Handler function to remove\n * @memberOf mitt\n */\n off: function off(type, handler) {\n if (all[type]) {\n all[type].splice(all[type].indexOf(handler) >>> 0, 1);\n }\n },\n\n /**\n * Invoke all handlers for the given type.\n * If present, `\"*\"` handlers are invoked after type-matched handlers.\n *\n * @param {String} type The event type to invoke\n * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n * @memberOf mitt\n */\n emit: function emit(type, evt) {\n (all[type] || []).slice().map(function (handler) {\n handler(evt);\n });\n (all['*'] || []).slice().map(function (handler) {\n handler(type, evt);\n });\n }\n };\n}\n\nexport default mitt;","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n'use strict';\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nvar warning = function warning() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function warning(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.length < 10 || /^[s\\W]*$/.test(format)) {\n throw new Error('The warning format should be able to uniquely identify this ' + 'warning. Please, use a more descriptive format than: ' + format);\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n };\n}\n\nmodule.exports = warning;","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _ScrollBehaviorContext = _interopRequireDefault(require(\"./ScrollBehaviorContext\"));\n\nvar _ScrollContainer = _interopRequireDefault(require(\"./ScrollContainer\"));\n\nexports.ScrollContainer = _ScrollContainer[\"default\"];\nexports.ScrollContext = _ScrollBehaviorContext[\"default\"];","'use strict';\nvar $export = require('./_export');\nvar $forEach = require('./_array-methods')(0);\nvar STRICT = require('./_strict-method')([].forEach, true);\n\n$export($export.P + $export.F * !STRICT, 'Array', {\n // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])\n forEach: function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n if (!(len in factories)) {\n for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = arraySlice.call(arguments, 1);\n var bound = function (/* args... */) {\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n return bound;\n};\n","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = getWindow;\n\nfunction getWindow(node) {\n return node === node.window ? node : node.nodeType === 9 ? node.defaultView || node.parentWindow : false;\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","exports.polyfill = Component => Component\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n","// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","import \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/es6.promise\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.date.now\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.array.filter\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar getLocation = function getLocation(source) {\n return _extends({}, source.location, {\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n });\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({\n location: location,\n action: \"POP\"\n });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n state = _extends({}, state, {\n key: Date.now() + \"\"\n }); // try...catch iOS Safari limits to 100 pushState calls\n\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\n\n\nvar createMemorySource = function createMemorySource() {\n var initialPathname = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var index = 0;\n var stack = [{\n pathname: initialPathname,\n search: \"\"\n }];\n var states = [];\n return {\n get location() {\n return stack[index];\n },\n\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n\n get index() {\n return index;\n },\n\n get state() {\n return states[index];\n },\n\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({\n pathname: pathname,\n search: search\n });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = {\n pathname: pathname,\n search: search\n };\n states[index] = state;\n }\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\n\n\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate; ////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @return string\n */\nvar _default = function _default(pathname, localizedManifests) {\n var defaultFilename = \"manifest.webmanifest\";\n\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n\n var localizedManifest = localizedManifests.find(function (app) {\n return pathname.startsWith(app.start_url);\n });\n\n if (!localizedManifest) {\n return defaultFilename;\n }\n\n return \"manifest_\" + localizedManifest.lang + \".webmanifest\";\n};\n\nexports[\"default\"] = _default;","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _default = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nexports[\"default\"] = _default;\nmodule.exports = exports[\"default\"];","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {\n // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], false);\n }\n});\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","'use strict';\nvar global = require('./_global');\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar validate = require('./_validate-collection');\nvar NATIVE_WEAK_MAP = require('./_validate-collection');\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","import 'semantic-ui-css/semantic.min.css';\nimport 'prismjs/themes/prism.css';\nimport './src/styles/global.scss';\n\n/* global woopra */\n\nexport const onRouteUpdate = ({ location }, options) => {\n if (typeof woopra !== 'undefined') {\n if (options && options.debug) {\n console.log('woopra.track() called');\n }\n // On every route change fire this code!!\n woopra.track();\n }\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","import React, { createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { publicLoader } from \"./loader\"\nimport { apiRunner } from \"./api-runner-browser\"\n\n// Renders page\nclass PageRenderer extends React.Component {\n render() {\n const props = {\n ...this.props,\n pathContext: this.props.pageContext,\n }\n\n const [replacementElement] = apiRunner(`replaceComponentRenderer`, {\n props: this.props,\n loader: publicLoader,\n })\n\n const pageElement =\n replacementElement ||\n createElement(this.props.pageResources.component, {\n ...props,\n key: this.props.path || this.props.pageResources.page.path,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n { element: pageElement, props },\n pageElement,\n ({ result }) => {\n return { element: result, props }\n }\n ).pop()\n\n return wrappedPage\n }\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","'use strict';\nrequire('./es6.regexp.exec');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\nvar regexpExec = require('./_regexp-exec');\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar propTypes = {\n scrollKey: _propTypes[\"default\"].string.isRequired,\n shouldUpdateScroll: _propTypes[\"default\"].func,\n children: _propTypes[\"default\"].element.isRequired\n};\nvar contextTypes = {\n // This is necessary when rendering on the client. However, when rendering on\n // the server, this container will do nothing, and thus does not require the\n // scroll behavior context.\n scrollBehavior: _propTypes[\"default\"].object\n};\n\nvar ScrollContainer =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inheritsLoose2[\"default\"])(ScrollContainer, _React$Component);\n\n function ScrollContainer(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this; // We don't re-register if the scroll key changes, so make sure we\n // unregister with the initial scroll key just in case the user changes it.\n\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"shouldUpdateScroll\", function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing scrollBehavior._stateStorage.\n\n\n return shouldUpdateScroll.call(_this.context.scrollBehavior.scrollBehavior, prevRouterProps, routerProps);\n });\n _this.scrollKey = props.scrollKey;\n return _this;\n }\n\n var _proto = ScrollContainer.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.context.scrollBehavior.registerElement(this.props.scrollKey, _reactDom[\"default\"].findDOMNode(this), // eslint-disable-line react/no-find-dom-node\n this.shouldUpdateScroll); // Only keep around the current DOM node in development, as this is only\n // for emitting the appropriate warning.\n\n if (process.env.NODE_ENV !== \"production\") {\n this.domNode = _reactDom[\"default\"].findDOMNode(this); // eslint-disable-line react/no-find-dom-node\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n (0, _warning[\"default\"])(prevProps.scrollKey === this.props.scrollKey, \" does not support changing scrollKey.\");\n\n if (process.env.NODE_ENV !== \"production\") {\n var prevDomNode = this.domNode;\n this.domNode = _reactDom[\"default\"].findDOMNode(this); // eslint-disable-line react/no-find-dom-node\n\n (0, _warning[\"default\"])(this.domNode === prevDomNode, \" does not support changing DOM node.\");\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.context.scrollBehavior.unregisterElement(this.scrollKey);\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return ScrollContainer;\n}(_react[\"default\"].Component);\n\nScrollContainer.propTypes = propTypes;\nScrollContainer.contextTypes = contextTypes;\nvar _default = ScrollContainer;\nexports[\"default\"] = _default;","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","exports.f = Object.getOwnPropertySymbols;\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","'use strict';\n\nvar isRegExp = require('./_is-regexp');\nvar anObject = require('./_an-object');\nvar speciesConstructor = require('./_species-constructor');\nvar advanceStringIndex = require('./_advance-string-index');\nvar toLength = require('./_to-length');\nvar callRegExpExec = require('./_regexp-exec-abstract');\nvar regexpExec = require('./_regexp-exec');\nvar fails = require('./_fails');\nvar $min = Math.min;\nvar $push = [].push;\nvar $SPLIT = 'split';\nvar LENGTH = 'length';\nvar LAST_INDEX = 'lastIndex';\nvar MAX_UINT32 = 0xffffffff;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return $split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy[LAST_INDEX];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n };\n } else {\n internalSplit = $split;\n }\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = defined(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n});\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\n\nrequire(\"core-js/modules/es6.array.is-array\");\n\nrequire(\"core-js/modules/web.dom.iterable\");\n\nrequire(\"core-js/modules/es6.array.iterator\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es6.object.keys\");\n\nrequire(\"core-js/modules/es6.array.for-each\");\n\nexports.__esModule = true;\n\nvar _off = require('dom-helpers/events/off');\n\nvar _off2 = _interopRequireDefault(_off);\n\nvar _on = require('dom-helpers/events/on');\n\nvar _on2 = _interopRequireDefault(_on);\n\nvar _scrollLeft = require('dom-helpers/query/scrollLeft');\n\nvar _scrollLeft2 = _interopRequireDefault(_scrollLeft);\n\nvar _scrollTop = require('dom-helpers/query/scrollTop');\n\nvar _scrollTop2 = _interopRequireDefault(_scrollTop);\n\nvar _requestAnimationFrame = require('dom-helpers/util/requestAnimationFrame');\n\nvar _requestAnimationFrame2 = _interopRequireDefault(_requestAnimationFrame);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _utils = require('./utils');\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n/* eslint-disable no-underscore-dangle */\n// Try at most this many times to scroll, to avoid getting stuck.\n\n\nvar MAX_SCROLL_ATTEMPTS = 2;\n\nvar ScrollBehavior = function () {\n function ScrollBehavior(_ref) {\n var _this = this;\n\n var addTransitionHook = _ref.addTransitionHook,\n stateStorage = _ref.stateStorage,\n getCurrentLocation = _ref.getCurrentLocation,\n shouldUpdateScroll = _ref.shouldUpdateScroll;\n\n _classCallCheck(this, ScrollBehavior);\n\n this._restoreScrollRestoration = function () {\n /* istanbul ignore if: not supported by any browsers on Travis */\n if (_this._oldScrollRestoration) {\n try {\n window.history.scrollRestoration = _this._oldScrollRestoration;\n } catch (e) {\n /* silence */\n }\n }\n };\n\n this._onWindowScroll = function () {\n // It's possible that this scroll operation was triggered by what will be a\n // `POP` transition. Instead of updating the saved location immediately, we\n // have to enqueue the update, then potentially cancel it if we observe a\n // location update.\n if (!_this._saveWindowPositionHandle) {\n _this._saveWindowPositionHandle = (0, _requestAnimationFrame2[\"default\"])(_this._saveWindowPosition);\n }\n\n if (_this._windowScrollTarget) {\n var _windowScrollTarget = _this._windowScrollTarget,\n xTarget = _windowScrollTarget[0],\n yTarget = _windowScrollTarget[1];\n var x = (0, _scrollLeft2[\"default\"])(window);\n var y = (0, _scrollTop2[\"default\"])(window);\n\n if (x === xTarget && y === yTarget) {\n _this._windowScrollTarget = null;\n\n _this._cancelCheckWindowScroll();\n }\n }\n };\n\n this._saveWindowPosition = function () {\n _this._saveWindowPositionHandle = null;\n\n _this._savePosition(null, window);\n };\n\n this._checkWindowScrollPosition = function () {\n _this._checkWindowScrollHandle = null; // We can only get here if scrollTarget is set. Every code path that unsets\n // scroll target also cancels the handle to avoid calling this handler.\n // Still, check anyway just in case.\n\n /* istanbul ignore if: paranoid guard */\n\n if (!_this._windowScrollTarget) {\n return;\n }\n\n _this.scrollToTarget(window, _this._windowScrollTarget);\n\n ++_this._numWindowScrollAttempts;\n /* istanbul ignore if: paranoid guard */\n\n if (_this._numWindowScrollAttempts >= MAX_SCROLL_ATTEMPTS) {\n _this._windowScrollTarget = null;\n return;\n }\n\n _this._checkWindowScrollHandle = (0, _requestAnimationFrame2[\"default\"])(_this._checkWindowScrollPosition);\n };\n\n this._stateStorage = stateStorage;\n this._getCurrentLocation = getCurrentLocation;\n this._shouldUpdateScroll = shouldUpdateScroll; // This helps avoid some jankiness in fighting against the browser's\n // default scroll behavior on `POP` transitions.\n\n /* istanbul ignore else: Travis browsers all support this */\n\n if ('scrollRestoration' in window.history && // Unfortunately, Safari on iOS freezes for 2-6s after the user swipes to\n // navigate through history with scrollRestoration being 'manual', so we\n // need to detect this browser and exclude it from the following code\n // until this bug is fixed by Apple.\n !(0, _utils.isMobileSafari)()) {\n this._oldScrollRestoration = window.history.scrollRestoration;\n\n try {\n window.history.scrollRestoration = 'manual'; // Scroll restoration persists across page reloads. We want to reset\n // this to the original value, so that we can let the browser handle\n // restoring the initial scroll position on server-rendered pages.\n\n (0, _on2[\"default\"])(window, 'beforeunload', this._restoreScrollRestoration);\n } catch (e) {\n this._oldScrollRestoration = null;\n }\n } else {\n this._oldScrollRestoration = null;\n }\n\n this._saveWindowPositionHandle = null;\n this._checkWindowScrollHandle = null;\n this._windowScrollTarget = null;\n this._numWindowScrollAttempts = 0;\n this._scrollElements = {}; // We have to listen to each window scroll update rather than to just\n // location updates, because some browsers will update scroll position\n // before emitting the location change.\n\n (0, _on2[\"default\"])(window, 'scroll', this._onWindowScroll);\n this._removeTransitionHook = addTransitionHook(function () {\n _requestAnimationFrame2[\"default\"].cancel(_this._saveWindowPositionHandle);\n\n _this._saveWindowPositionHandle = null;\n Object.keys(_this._scrollElements).forEach(function (key) {\n var scrollElement = _this._scrollElements[key];\n\n _requestAnimationFrame2[\"default\"].cancel(scrollElement.savePositionHandle);\n\n scrollElement.savePositionHandle = null; // It's fine to save element scroll positions here, though; the browser\n // won't modify them.\n\n _this._saveElementPosition(key);\n });\n });\n }\n\n ScrollBehavior.prototype.registerElement = function registerElement(key, element, shouldUpdateScroll, context) {\n var _this2 = this;\n\n !!this._scrollElements[key] ? process.env.NODE_ENV !== 'production' ? (0, _invariant2[\"default\"])(false, 'ScrollBehavior: There is already an element registered for `%s`.', key) : (0, _invariant2[\"default\"])(false) : void 0;\n\n var saveElementPosition = function saveElementPosition() {\n _this2._saveElementPosition(key);\n };\n\n var scrollElement = {\n element: element,\n shouldUpdateScroll: shouldUpdateScroll,\n savePositionHandle: null,\n onScroll: function onScroll() {\n if (!scrollElement.savePositionHandle) {\n scrollElement.savePositionHandle = (0, _requestAnimationFrame2[\"default\"])(saveElementPosition);\n }\n }\n };\n this._scrollElements[key] = scrollElement;\n (0, _on2[\"default\"])(element, 'scroll', scrollElement.onScroll);\n\n this._updateElementScroll(key, null, context);\n };\n\n ScrollBehavior.prototype.unregisterElement = function unregisterElement(key) {\n !this._scrollElements[key] ? process.env.NODE_ENV !== 'production' ? (0, _invariant2[\"default\"])(false, 'ScrollBehavior: There is no element registered for `%s`.', key) : (0, _invariant2[\"default\"])(false) : void 0;\n var _scrollElements$key = this._scrollElements[key],\n element = _scrollElements$key.element,\n onScroll = _scrollElements$key.onScroll,\n savePositionHandle = _scrollElements$key.savePositionHandle;\n (0, _off2[\"default\"])(element, 'scroll', onScroll);\n\n _requestAnimationFrame2[\"default\"].cancel(savePositionHandle);\n\n delete this._scrollElements[key];\n };\n\n ScrollBehavior.prototype.updateScroll = function updateScroll(prevContext, context) {\n var _this3 = this;\n\n this._updateWindowScroll(prevContext, context);\n\n Object.keys(this._scrollElements).forEach(function (key) {\n _this3._updateElementScroll(key, prevContext, context);\n });\n };\n\n ScrollBehavior.prototype.stop = function stop() {\n this._restoreScrollRestoration();\n\n (0, _off2[\"default\"])(window, 'scroll', this._onWindowScroll);\n\n this._cancelCheckWindowScroll();\n\n this._removeTransitionHook();\n };\n\n ScrollBehavior.prototype._cancelCheckWindowScroll = function _cancelCheckWindowScroll() {\n _requestAnimationFrame2[\"default\"].cancel(this._checkWindowScrollHandle);\n\n this._checkWindowScrollHandle = null;\n };\n\n ScrollBehavior.prototype._saveElementPosition = function _saveElementPosition(key) {\n var scrollElement = this._scrollElements[key];\n scrollElement.savePositionHandle = null;\n\n this._savePosition(key, scrollElement.element);\n };\n\n ScrollBehavior.prototype._savePosition = function _savePosition(key, element) {\n this._stateStorage.save(this._getCurrentLocation(), key, [(0, _scrollLeft2[\"default\"])(element), (0, _scrollTop2[\"default\"])(element)]);\n };\n\n ScrollBehavior.prototype._updateWindowScroll = function _updateWindowScroll(prevContext, context) {\n // Whatever we were doing before isn't relevant any more.\n this._cancelCheckWindowScroll();\n\n this._windowScrollTarget = this._getScrollTarget(null, this._shouldUpdateScroll, prevContext, context); // Updating the window scroll position is really flaky. Just trying to\n // scroll it isn't enough. Instead, try to scroll a few times until it\n // works.\n\n this._numWindowScrollAttempts = 0;\n\n this._checkWindowScrollPosition();\n };\n\n ScrollBehavior.prototype._updateElementScroll = function _updateElementScroll(key, prevContext, context) {\n var _scrollElements$key2 = this._scrollElements[key],\n element = _scrollElements$key2.element,\n shouldUpdateScroll = _scrollElements$key2.shouldUpdateScroll;\n\n var scrollTarget = this._getScrollTarget(key, shouldUpdateScroll, prevContext, context);\n\n if (!scrollTarget) {\n return;\n } // Unlike with the window, there shouldn't be any flakiness to deal with\n // here.\n\n\n this.scrollToTarget(element, scrollTarget);\n };\n\n ScrollBehavior.prototype._getDefaultScrollTarget = function _getDefaultScrollTarget(location) {\n var hash = location.hash;\n\n if (hash && hash !== '#') {\n return hash.charAt(0) === '#' ? hash.slice(1) : hash;\n }\n\n return [0, 0];\n };\n\n ScrollBehavior.prototype._getScrollTarget = function _getScrollTarget(key, shouldUpdateScroll, prevContext, context) {\n var scrollTarget = shouldUpdateScroll ? shouldUpdateScroll.call(this, prevContext, context) : true;\n\n if (!scrollTarget || Array.isArray(scrollTarget) || typeof scrollTarget === 'string') {\n return scrollTarget;\n }\n\n var location = this._getCurrentLocation();\n\n return this._getSavedScrollTarget(key, location) || this._getDefaultScrollTarget(location);\n };\n\n ScrollBehavior.prototype._getSavedScrollTarget = function _getSavedScrollTarget(key, location) {\n if (location.action === 'PUSH') {\n return null;\n }\n\n return this._stateStorage.read(location, key);\n };\n\n ScrollBehavior.prototype.scrollToTarget = function scrollToTarget(element, target) {\n if (typeof target === 'string') {\n var targetElement = document.getElementById(target) || document.getElementsByName(target)[0];\n\n if (targetElement) {\n targetElement.scrollIntoView();\n return;\n } // Fallback to scrolling to top when target fragment doesn't exist.\n\n\n target = [0, 0]; // eslint-disable-line no-param-reassign\n }\n\n var _target = target,\n left = _target[0],\n top = _target[1];\n (0, _scrollLeft2[\"default\"])(element, left);\n (0, _scrollTop2[\"default\"])(element, top);\n };\n\n return ScrollBehavior;\n}();\n\nexports[\"default\"] = ScrollBehavior;\nmodule.exports = exports['default'];","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","module.exports = false;\n","import \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.array.reduce\";\nimport \"core-js/modules/es6.array.filter\";\nimport \"core-js/modules/es6.array.sort\";\nimport \"core-js/modules/es6.array.index-of\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.regexp.split\";\nimport invariant from \"invariant\"; ////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\n\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n}; ////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\n\n\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route[\"default\"]) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n var _isSplat = routeSegment === \"*\";\n\n if (_isSplat) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n params[\"*\"] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : invariant(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\n\n\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\n}; ////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\n\n\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname); // ?a=b, /users?b=c => /users?a=b\n\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n } // profile, /users/789 => /users/789/profile\n\n\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n } // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n\n\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n}; ////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\n\nvar insertParams = function insertParams(path, params) {\n var segments = segmentize(path);\n return \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar paramRe = /^:(.+)/;\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\n\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\n\nvar isSplat = function isSplat(segment) {\n return segment === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route[\"default\"] ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return {\n route: route,\n score: score,\n index: index\n };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname, query) {\n return pathname + (query ? \"?\" + query : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"]; ////////////////////////////////////////////////////////////////////////////////\n\nexport { startsWith, pick, match, resolve, insertParams, validateRedirect };","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","module.exports = [{\n plugin: require('../node_modules/gatsby-remark-images/gatsby-browser.js'),\n options: {\"plugins\":[],\"maxWidth\":590},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"Gatsby Starter Blog\",\"short_name\":\"GatsbyJS\",\"start_url\":\"/\",\"background_color\":\"#ffffff\",\"theme_color\":\"#663399\",\"display\":\"minimal-ui\",\"icon\":\"static/assets/img/site/site-icon.png\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-offline/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","'use strict';\nvar fails = require('./_fails');\n\nmodule.exports = function (method, arg) {\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call\n arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n });\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","require(\"core-js/modules/es6.array.index-of\");\n\n/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n * ie10 fix - Mikael Kristiansson 2019\n */\n!function (name, definition) {\n if (typeof module != 'undefined') module.exports = definition();else if (typeof define == 'function' && typeof define.amd == 'object') define(definition);else this[name] = definition();\n}('domready', function () {\n var ie10 = false;\n\n if (navigator.appVersion.indexOf(\"MSIE 10\") !== -1) {\n ie10 = true;\n }\n\n var fns = [],\n _listener,\n doc = typeof document === 'object' && document,\n hack = ie10 ? doc.documentElement.doScroll() : doc.documentElement.doScroll,\n domContentLoaded = 'DOMContentLoaded',\n loaded = doc && (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState);\n\n if (!loaded && doc) doc.addEventListener(domContentLoaded, _listener = function listener() {\n doc.removeEventListener(domContentLoaded, _listener);\n loaded = 1;\n\n while (_listener = fns.shift()) {\n _listener();\n }\n });\n return function (fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn);\n };\n});","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n'use strict';\n/* eslint-disable no-unused-vars */\n\nrequire(\"core-js/modules/web.dom.iterable\");\n\nrequire(\"core-js/modules/es6.array.iterator\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es6.object.keys\");\n\nrequire(\"core-js/modules/es6.regexp.split\");\n\nrequire(\"core-js/modules/es6.array.for-each\");\n\nrequire(\"core-js/modules/es6.array.map\");\n\nrequire(\"core-js/modules/es6.object.assign\");\n\nrequire(\"core-js/modules/es6.symbol\");\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n\n return Object(val);\n}\n\nfunction shouldUseNative() {\n try {\n if (!Object.assign) {\n return false;\n } // Detect buggy property enumeration order in older V8 versions.\n // https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\n\n var test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\n test1[5] = 'de';\n\n if (Object.getOwnPropertyNames(test1)[0] === '5') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test2 = {};\n\n for (var i = 0; i < 10; i++) {\n test2['_' + String.fromCharCode(i)] = i;\n }\n\n var order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n return test2[n];\n });\n\n if (order2.join('') !== '0123456789') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test3 = {};\n 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n test3[letter] = letter;\n });\n\n if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n return false;\n }\n\n return true;\n } catch (err) {\n // We don't expect any of the above to throw, but better to be safe.\n return false;\n }\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n\n return to;\n};","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","exports.f = require('./_wks');\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function(reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function(e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar sameValue = require('./_same-value');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative($search, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","\"use strict\";\n\nexports.__esModule = true;\nexports.isMobileSafari = isMobileSafari;\n\nfunction isMobileSafari() {\n return /iPad|iPhone|iPod/.test(window.navigator.platform) && /^((?!CriOS).)*Safari/.test(window.navigator.userAgent);\n}","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nrequire(\"core-js/modules/es6.function.name\");\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nvar invariant = function invariant(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n\n throw error;\n }\n};\n\nmodule.exports = invariant;","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative($match, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n if (!rx.global) return regExpExec(rx, S);\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","'use strict';\n// 21.1.3.25 String.prototype.trim()\nrequire('./_string-trim')('trim', function ($trim) {\n return function trim() {\n return $trim(this, 3);\n };\n});\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n","'use strict';\n\nvar regexpFlags = require('./_flags');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","exports.f = {}.propertyIsEnumerable;\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader from \"./loader\"\nimport redirects from \"./redirects.json\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { navigate as reachNavigate } from \"@reach/router\"\nimport { parsePath } from \"gatsby-link\"\n\n// Convert to a map for faster lookup in maybeRedirect()\nconst redirectMap = redirects.reduce((map, redirect) => {\n map[redirect.fromPath] = redirect\n return map\n}, {})\n\nfunction maybeRedirect(pathname) {\n const redirect = redirectMap[pathname]\n\n if (redirect != null) {\n if (process.env.NODE_ENV !== `production`) {\n const pageResources = loader.loadPageSync(pathname)\n\n if (pageResources != null) {\n console.error(\n `The route \"${pathname}\" matches both a page and a redirect; this is probably not intentional.`\n )\n }\n }\n\n window.___replace(redirect.toPath)\n return true\n } else {\n return false\n }\n}\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n\n // Temp hack while awaiting https://github.com/reach/router/issues/119\n window.__navigatingToLink = false\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Temp hack while awaiting https://github.com/reach/router/issues/119\n if (!options.replace) {\n window.__navigatingToLink = true\n }\n\n let { pathname } = parsePath(to)\n const redirect = redirectMap[pathname]\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath\n pathname = parsePath(to).pathname\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === `error`) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n }\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n console.log(`Site has changed on server. Reloading browser`)\n window.location = pathname\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => this._stateStorage.read(args),\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // Temp hack while awaiting https://github.com/reach/router/issues/119\n window.__navigatingToLink = false\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n\n // Check for initial page-load redirect\n maybeRedirect(window.location.pathname)\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n componentDidUpdate(prevProps, prevState, shouldFireRouteUpdate) {\n if (shouldFireRouteUpdate) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n getSnapshotBeforeUpdate(prevProps) {\n if (this.props.location.pathname !== prevProps.location.pathname) {\n onPreRouteUpdate(this.props.location, prevProps.location)\n return true\n }\n\n return false\n }\n\n render() {\n return this.props.children\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }\n\n for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }\n\n return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources: pageResources || loader.loadPageSync(location.pathname),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(location.pathname)\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== `error`) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(nextProps.location.pathname)\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport { Router, navigate, Location, BaseContext } from \"@reach/router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport domReady from \"@mikaelkristiansson/domready\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"./async-requires\"\nimport { setLoader, ProdLoader, publicLoader } from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"./match-paths.json\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n class LocationHandler extends React.Component {\n render() {\n const { location } = this.props\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n \n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). But\n // only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !== browserLoc.pathname &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath === `/404.html` ||\n pagePath.match(/^\\/404\\/?$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(__BASE_PATH__ + pagePath + browserLoc.search + browserLoc.hash, {\n replace: true,\n })\n }\n\n publicLoader.loadPage(browserLoc.pathname).then(page => {\n if (!page || page.status === `error`) {\n throw new Error(\n `page resources for ${browserLoc.pathname} not found. Not rendering React`\n )\n }\n\n window.___webpackCompilationHash = page.page.webpackCompilationHash\n\n const Root = () => (\n \n {locationContext => }\n \n )\n\n const WrappedRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n let NewRoot = () => WrappedRoot\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n ReactDOM.hydrate\n )[0]\n\n domReady(() => {\n renderer(\n ,\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : void 0,\n () => {\n apiRunner(`onInitialClientRender`)\n }\n )\n })\n })\n})\n","'use strict';\nvar $export = require('./_export');\nvar $indexOf = require('./_array-includes')(false);\nvar $native = [].indexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? $native.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments[1]);\n }\n});\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nmodule.exports = _inheritsLoose;","'use strict';\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar fails = require('./_fails');\nvar $sort = [].sort;\nvar test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function () {\n // IE8-\n test.sort(undefined);\n}) || !fails(function () {\n // V8 bug\n test.sort(null);\n // Old WebKit\n}) || !require('./_strict-method')($sort)), 'Array', {\n // 22.1.3.25 Array.prototype.sort(comparefn)\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? $sort.call(toObject(this))\n : $sort.call(toObject(this), aFunction(comparefn));\n }\n});\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\nmodule.exports = ReactPropTypesSecret;","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Link, {\n withPrefix,\n withAssetPrefix,\n navigate,\n push,\n replace,\n navigateTo,\n parsePath,\n} from \"gatsby-link\"\nimport PageRenderer from \"./public-page-renderer\"\nimport loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nconst StaticQueryContext = React.createContext({})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
    Loading (StaticQuery)
    }\n
    \n )\n}\n\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n const context = React.useContext(StaticQueryContext)\n if (context[query] && context[query].data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport {\n Link,\n withAssetPrefix,\n withPrefix,\n graphql,\n parsePath,\n navigate,\n push, // TODO replace for v3\n replace, // TODO remove replace for v3\n navigateTo, // TODO: remove navigateTo for v3\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n useStaticQuery,\n prefetchPathname,\n}\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","'use strict';\n\nvar classof = require('./_classof');\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","import React from \"react\"\n\nexport default React.createContext\n","import \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.promise\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.array.index-of\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n/* eslint-disable jsx-a11y/anchor-has-content */\n\n\nimport React from \"react\";\nimport warning from \"warning\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"invariant\";\nimport createContext from \"create-react-context\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { startsWith, pick, resolve, match, insertParams, validateRedirect } from \"./lib/utils\";\nimport { globalHistory, navigate, createHistory, createMemorySource } from \"./lib/history\"; ////////////////////////////////////////////////////////////////////////////////\n\nvar createNamedContext = function createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.Consumer.displayName = name + \".Consumer\";\n Ctx.Provider.displayName = name + \".Provider\";\n return Ctx;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Location Context/Provider\n\n\nvar LocationContext = createNamedContext(\"Location\"); // sets up a listener if there isn't one already so apps don't need to be\n// wrapped in some top level provider\n\nvar Location = function Location(_ref) {\n var children = _ref.children;\n return React.createElement(LocationContext.Consumer, null, function (context) {\n return context ? children(context) : React.createElement(LocationProvider, null, children);\n });\n};\n\nvar LocationProvider = function (_React$Component) {\n _inherits(LocationProvider, _React$Component);\n\n function LocationProvider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, LocationProvider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n context: _this.getContext(),\n refs: {\n unlisten: null\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n LocationProvider.prototype.getContext = function getContext() {\n var _props$history = this.props.history,\n navigate = _props$history.navigate,\n location = _props$history.location;\n return {\n navigate: navigate,\n location: location\n };\n };\n\n LocationProvider.prototype.componentDidCatch = function componentDidCatch(error, info) {\n if (isRedirect(error)) {\n var _navigate = this.props.history.navigate;\n\n _navigate(error.uri, {\n replace: true\n });\n } else {\n throw error;\n }\n };\n\n LocationProvider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevState.context.location !== this.state.context.location) {\n this.props.history._onTransitionComplete();\n }\n };\n\n LocationProvider.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n var refs = this.state.refs,\n history = this.props.history;\n refs.unlisten = history.listen(function () {\n Promise.resolve().then(function () {\n // TODO: replace rAF with react deferred update API when it's ready https://github.com/facebook/react/issues/13306\n requestAnimationFrame(function () {\n if (!_this2.unmounted) {\n _this2.setState(function () {\n return {\n context: _this2.getContext()\n };\n });\n }\n });\n });\n });\n };\n\n LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n var refs = this.state.refs;\n this.unmounted = true;\n refs.unlisten();\n };\n\n LocationProvider.prototype.render = function render() {\n var context = this.state.context,\n children = this.props.children;\n return React.createElement(LocationContext.Provider, {\n value: context\n }, typeof children === \"function\" ? children(context) : children || null);\n };\n\n return LocationProvider;\n}(React.Component); ////////////////////////////////////////////////////////////////////////////////\n\n\nLocationProvider.defaultProps = {\n history: globalHistory\n};\nprocess.env.NODE_ENV !== \"production\" ? LocationProvider.propTypes = {\n history: PropTypes.object.isRequired\n} : void 0;\n\nvar ServerLocation = function ServerLocation(_ref2) {\n var url = _ref2.url,\n children = _ref2.children;\n return React.createElement(LocationContext.Provider, {\n value: {\n location: {\n pathname: url,\n search: \"\",\n hash: \"\"\n },\n navigate: function navigate() {\n throw new Error(\"You can't call navigate on the server.\");\n }\n }\n }, children);\n}; ////////////////////////////////////////////////////////////////////////////////\n// Sets baseuri and basepath for nested routers and links\n\n\nvar BaseContext = createNamedContext(\"Base\", {\n baseuri: \"/\",\n basepath: \"/\"\n}); ////////////////////////////////////////////////////////////////////////////////\n// The main event, welcome to the show everybody.\n\nvar Router = function Router(props) {\n return React.createElement(BaseContext.Consumer, null, function (baseContext) {\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RouterImpl, _extends({}, baseContext, locationContext, props));\n });\n });\n};\n\nvar RouterImpl = function (_React$PureComponent) {\n _inherits(RouterImpl, _React$PureComponent);\n\n function RouterImpl() {\n _classCallCheck(this, RouterImpl);\n\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n\n RouterImpl.prototype.render = function render() {\n var _props = this.props,\n location = _props.location,\n _navigate2 = _props.navigate,\n basepath = _props.basepath,\n primary = _props.primary,\n children = _props.children,\n baseuri = _props.baseuri,\n _props$component = _props.component,\n component = _props$component === undefined ? \"div\" : _props$component,\n domProps = _objectWithoutProperties(_props, [\"location\", \"navigate\", \"basepath\", \"primary\", \"children\", \"baseuri\", \"component\"]);\n\n var routes = React.Children.map(children, createRoute(basepath));\n var pathname = location.pathname;\n var match = pick(routes, pathname);\n\n if (match) {\n var params = match.params,\n uri = match.uri,\n route = match.route,\n element = match.route.value; // remove the /* from the end for child routes relative paths\n\n basepath = route[\"default\"] ? basepath : route.path.replace(/\\*$/, \"\");\n\n var props = _extends({}, params, {\n uri: uri,\n location: location,\n navigate: function navigate(to, options) {\n return _navigate2(resolve(to, uri), options);\n }\n });\n\n var clone = React.cloneElement(element, props, element.props.children ? React.createElement(Router, {\n primary: primary\n }, element.props.children) : undefined); // using 'div' for < 16.3 support\n\n var FocusWrapper = primary ? FocusHandler : component; // don't pass any props to 'div'\n\n var wrapperProps = primary ? _extends({\n uri: uri,\n location: location,\n component: component\n }, domProps) : domProps;\n return React.createElement(BaseContext.Provider, {\n value: {\n baseuri: uri,\n basepath: basepath\n }\n }, React.createElement(FocusWrapper, wrapperProps, clone));\n } else {\n // Not sure if we want this, would require index routes at every level\n // warning(\n // false,\n // `\\n\\nNothing matched:\\n\\t${\n // location.pathname\n // }\\n\\nPaths checked: \\n\\t${routes\n // .map(route => route.path)\n // .join(\n // \"\\n\\t\"\n // )}\\n\\nTo get rid of this warning, add a default NotFound component as child of Router:\n // \\n\\tlet NotFound = () =>
    Not Found!
    \n // \\n\\t\\n\\t \\n\\t {/* ... */}\\n\\t`\n // );\n return null;\n }\n };\n\n return RouterImpl;\n}(React.PureComponent);\n\nRouterImpl.defaultProps = {\n primary: true\n};\nvar FocusContext = createNamedContext(\"Focus\");\n\nvar FocusHandler = function FocusHandler(_ref3) {\n var uri = _ref3.uri,\n location = _ref3.location,\n component = _ref3.component,\n domProps = _objectWithoutProperties(_ref3, [\"uri\", \"location\", \"component\"]);\n\n return React.createElement(FocusContext.Consumer, null, function (requestFocus) {\n return React.createElement(FocusHandlerImpl, _extends({}, domProps, {\n component: component,\n requestFocus: requestFocus,\n uri: uri,\n location: location\n }));\n });\n}; // don't focus on initial render\n\n\nvar initialRender = true;\nvar focusHandlerCount = 0;\n\nvar FocusHandlerImpl = function (_React$Component2) {\n _inherits(FocusHandlerImpl, _React$Component2);\n\n function FocusHandlerImpl() {\n var _temp2, _this4, _ret2;\n\n _classCallCheck(this, FocusHandlerImpl);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this4 = _possibleConstructorReturn(this, _React$Component2.call.apply(_React$Component2, [this].concat(args))), _this4), _this4.state = {}, _this4.requestFocus = function (node) {\n if (!_this4.state.shouldFocus) {\n node.focus();\n }\n }, _temp2), _possibleConstructorReturn(_this4, _ret2);\n }\n\n FocusHandlerImpl.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var initial = prevState.uri == null;\n\n if (initial) {\n return _extends({\n shouldFocus: true\n }, nextProps);\n } else {\n var myURIChanged = nextProps.uri !== prevState.uri;\n var navigatedUpToMe = prevState.location.pathname !== nextProps.location.pathname && nextProps.location.pathname === nextProps.uri;\n return _extends({\n shouldFocus: myURIChanged || navigatedUpToMe\n }, nextProps);\n }\n };\n\n FocusHandlerImpl.prototype.componentDidMount = function componentDidMount() {\n focusHandlerCount++;\n this.focus();\n };\n\n FocusHandlerImpl.prototype.componentWillUnmount = function componentWillUnmount() {\n focusHandlerCount--;\n\n if (focusHandlerCount === 0) {\n initialRender = true;\n }\n };\n\n FocusHandlerImpl.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevProps.location !== this.props.location && this.state.shouldFocus) {\n this.focus();\n }\n };\n\n FocusHandlerImpl.prototype.focus = function focus() {\n if (process.env.NODE_ENV === \"test\") {\n // getting cannot read property focus of null in the tests\n // and that bit of global `initialRender` state causes problems\n // should probably figure it out!\n return;\n }\n\n var requestFocus = this.props.requestFocus;\n\n if (requestFocus) {\n requestFocus(this.node);\n } else {\n if (initialRender) {\n initialRender = false;\n } else {\n // React polyfills [autofocus] and it fires earlier than cDM,\n // so we were stealing focus away, this line prevents that.\n if (!this.node.contains(document.activeElement)) {\n this.node.focus();\n }\n }\n }\n };\n\n FocusHandlerImpl.prototype.render = function render() {\n var _this5 = this;\n\n var _props2 = this.props,\n children = _props2.children,\n style = _props2.style,\n requestFocus = _props2.requestFocus,\n _props2$role = _props2.role,\n role = _props2$role === undefined ? \"group\" : _props2$role,\n _props2$component = _props2.component,\n Comp = _props2$component === undefined ? \"div\" : _props2$component,\n uri = _props2.uri,\n location = _props2.location,\n domProps = _objectWithoutProperties(_props2, [\"children\", \"style\", \"requestFocus\", \"role\", \"component\", \"uri\", \"location\"]);\n\n return React.createElement(Comp, _extends({\n style: _extends({\n outline: \"none\"\n }, style),\n tabIndex: \"-1\",\n role: role,\n ref: function ref(n) {\n return _this5.node = n;\n }\n }, domProps), React.createElement(FocusContext.Provider, {\n value: this.requestFocus\n }, this.props.children));\n };\n\n return FocusHandlerImpl;\n}(React.Component);\n\npolyfill(FocusHandlerImpl);\n\nvar k = function k() {}; ////////////////////////////////////////////////////////////////////////////////\n\n\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = function forwardRef(C) {\n return C;\n };\n}\n\nvar Link = forwardRef(function (_ref4, ref) {\n var innerRef = _ref4.innerRef,\n props = _objectWithoutProperties(_ref4, [\"innerRef\"]);\n\n return React.createElement(BaseContext.Consumer, null, function (_ref5) {\n var basepath = _ref5.basepath,\n baseuri = _ref5.baseuri;\n return React.createElement(Location, null, function (_ref6) {\n var location = _ref6.location,\n navigate = _ref6.navigate;\n\n var to = props.to,\n state = props.state,\n replace = props.replace,\n _props$getProps = props.getProps,\n getProps = _props$getProps === undefined ? k : _props$getProps,\n anchorProps = _objectWithoutProperties(props, [\"to\", \"state\", \"replace\", \"getProps\"]);\n\n var href = resolve(to, baseuri);\n var isCurrent = location.pathname === href;\n var isPartiallyCurrent = startsWith(location.pathname, href);\n return React.createElement(\"a\", _extends({\n ref: ref || innerRef,\n \"aria-current\": isCurrent ? \"page\" : undefined\n }, anchorProps, getProps({\n isCurrent: isCurrent,\n isPartiallyCurrent: isPartiallyCurrent,\n href: href,\n location: location\n }), {\n href: href,\n onClick: function onClick(event) {\n if (anchorProps.onClick) anchorProps.onClick(event);\n\n if (shouldNavigate(event)) {\n event.preventDefault();\n navigate(href, {\n state: state,\n replace: replace\n });\n }\n }\n }));\n });\n });\n}); ////////////////////////////////////////////////////////////////////////////////\n\nfunction RedirectRequest(uri) {\n this.uri = uri;\n}\n\nvar isRedirect = function isRedirect(o) {\n return o instanceof RedirectRequest;\n};\n\nvar redirectTo = function redirectTo(to) {\n throw new RedirectRequest(to);\n};\n\nvar RedirectImpl = function (_React$Component3) {\n _inherits(RedirectImpl, _React$Component3);\n\n function RedirectImpl() {\n _classCallCheck(this, RedirectImpl);\n\n return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));\n } // Support React < 16 with this hook\n\n\n RedirectImpl.prototype.componentDidMount = function componentDidMount() {\n var _props3 = this.props,\n navigate = _props3.navigate,\n to = _props3.to,\n from = _props3.from,\n _props3$replace = _props3.replace,\n replace = _props3$replace === undefined ? true : _props3$replace,\n state = _props3.state,\n noThrow = _props3.noThrow,\n props = _objectWithoutProperties(_props3, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\"]);\n\n Promise.resolve().then(function () {\n navigate(insertParams(to, props), {\n replace: replace,\n state: state\n });\n });\n };\n\n RedirectImpl.prototype.render = function render() {\n var _props4 = this.props,\n navigate = _props4.navigate,\n to = _props4.to,\n from = _props4.from,\n replace = _props4.replace,\n state = _props4.state,\n noThrow = _props4.noThrow,\n props = _objectWithoutProperties(_props4, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\"]);\n\n if (!noThrow) redirectTo(insertParams(to, props));\n return null;\n };\n\n return RedirectImpl;\n}(React.Component);\n\nvar Redirect = function Redirect(props) {\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RedirectImpl, _extends({}, locationContext, props));\n });\n};\n\nprocess.env.NODE_ENV !== \"production\" ? Redirect.propTypes = {\n from: PropTypes.string,\n to: PropTypes.string.isRequired\n} : void 0; ////////////////////////////////////////////////////////////////////////////////\n\nvar Match = function Match(_ref7) {\n var path = _ref7.path,\n children = _ref7.children;\n return React.createElement(BaseContext.Consumer, null, function (_ref8) {\n var baseuri = _ref8.baseuri;\n return React.createElement(Location, null, function (_ref9) {\n var navigate = _ref9.navigate,\n location = _ref9.location;\n var resolvedPath = resolve(path, baseuri);\n var result = match(resolvedPath, location.pathname);\n return children({\n navigate: navigate,\n location: location,\n match: result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null\n });\n });\n });\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar stripSlashes = function stripSlashes(str) {\n return str.replace(/(^\\/+|\\/+$)/g, \"\");\n};\n\nvar createRoute = function createRoute(basepath) {\n return function (element) {\n if (!element) {\n return null;\n }\n\n !(element.props.path || element.props[\"default\"] || element.type === Redirect) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \": Children of must have a `path` or `default` prop, or be a ``. None found on element type `\" + element.type + \"`\") : invariant(false) : void 0;\n !!(element.type === Redirect && (!element.props.from || !element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" requires both \\\"from\\\" and \\\"to\\\" props when inside a .\") : invariant(false) : void 0;\n !!(element.type === Redirect && !validateRedirect(element.props.from, element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.\") : invariant(false) : void 0;\n\n if (element.props[\"default\"]) {\n return {\n value: element,\n \"default\": true\n };\n }\n\n var elementPath = element.type === Redirect ? element.props.from : element.props.path;\n var path = elementPath === \"/\" ? basepath : stripSlashes(basepath) + \"/\" + stripSlashes(elementPath);\n return {\n value: element,\n \"default\": element.props[\"default\"],\n path: element.props.children ? stripSlashes(path) + \"/*\" : path\n };\n };\n};\n\nvar shouldNavigate = function shouldNavigate(event) {\n return !event.defaultPrevented && event.button === 0 && !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}; ////////////////////////////////////////////////////////////////////////\n\n\nexport { Link, Location, LocationProvider, Match, Redirect, Router, ServerLocation, createHistory, createMemorySource, isRedirect, navigate, redirectTo, globalHistory , BaseContext };","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = scrollTop;\n\nvar _isWindow = _interopRequireDefault(require(\"./isWindow\"));\n\nfunction scrollTop(node, val) {\n var win = (0, _isWindow[\"default\"])(node);\n if (val === undefined) return win ? 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop : node.scrollTop;\n if (win) win.scrollTo('pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft, val);else node.scrollTop = val;\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object');\nvar $flags = require('./_flags');\nvar DESCRIPTORS = require('./_descriptors');\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n define(function toString() {\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n define(function toString() {\n return $toString.call(this);\n });\n}\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar $export = require('./_export');\nvar $map = require('./_array-methods')(1);\n\n$export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {\n // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments[1]);\n }\n});\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\n\nvar off = function off() {};\n\nif (_inDOM[\"default\"]) {\n off = function () {\n if (document.addEventListener) return function (node, eventName, handler, capture) {\n return node.removeEventListener(eventName, handler, capture || false);\n };else if (document.attachEvent) return function (node, eventName, handler) {\n return node.detachEvent('on' + eventName, handler);\n };\n }();\n}\n\nvar _default = off;\nexports[\"default\"] = _default;\nmodule.exports = exports[\"default\"];","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default (str, prefix = ``) => {\n if (!prefix) {\n return str\n }\n\n prefix += `/`\n\n if (str.substr(0, prefix.length) === prefix) {\n return str.slice(prefix.length - 1)\n }\n\n return str\n}\n","\"use strict\";\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nexports.__esModule = true;\nexports.parsePath = parsePath;\n\nfunction parsePath(path) {\n var pathname = path || \"/\";\n var search = \"\";\n var hash = \"\";\n var hashIndex = pathname.indexOf(\"#\");\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf(\"?\");\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === \"?\" ? \"\" : search,\n hash: hash === \"#\" ? \"\" : hash\n };\n}","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","'use strict';\nvar $export = require('./_export');\nvar $some = require('./_array-methods')(3);\n\n$export($export.P + $export.F * !require('./_strict-method')([].some, true), 'Array', {\n // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments[1]);\n }\n});\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","\"use strict\";\n\nexports.registerServiceWorker = function () {\n return true;\n}; // only cache relevant resources for this page\n\n\nvar whiteListLinkRels = /^(stylesheet|preload)$/;\nvar prefetchedPathnames = [];\n\nexports.onServiceWorkerActive = function (_ref) {\n var getResourceURLsForPathname = _ref.getResourceURLsForPathname,\n serviceWorker = _ref.serviceWorker;\n\n // if the SW has just updated then clear the path dependencies and don't cache\n // stuff, since we're on the old revision until we navigate to another page\n if (window.___swUpdated) {\n serviceWorker.active.postMessage({\n gatsbyApi: \"clearPathResources\"\n });\n return;\n } // grab nodes from head of document\n\n\n var nodes = document.querySelectorAll(\"\\n head > script[src],\\n head > link[href],\\n head > style[data-href]\\n \"); // get all resource URLs\n\n var headerResources = [].slice.call(nodes) // don't include preconnect/prefetch/prerender resources\n .filter(function (node) {\n return node.tagName !== \"LINK\" || whiteListLinkRels.test(node.getAttribute(\"rel\"));\n }).map(function (node) {\n return node.src || node.href || node.getAttribute(\"data-href\");\n }); // Loop over prefetched pages and add their resources to an array,\n // plus specify which resources are required for those paths.\n\n var prefetchedResources = [];\n prefetchedPathnames.forEach(function (path) {\n var resources = getResourceURLsForPathname(path);\n prefetchedResources.push.apply(prefetchedResources, resources);\n serviceWorker.active.postMessage({\n gatsbyApi: \"setPathResources\",\n path: path,\n resources: resources\n });\n }); // Loop over all resources and fetch the page component + JSON data\n // to add it to the SW cache.\n\n var resources = [].concat(headerResources, prefetchedResources);\n resources.forEach(function (resource) {\n // Create a prefetch link for each resource, so Workbox runtime-caches them\n var link = document.createElement(\"link\");\n link.rel = \"prefetch\";\n link.href = resource;\n link.onload = link.remove;\n link.onerror = link.remove;\n document.head.appendChild(link);\n });\n};\n\nfunction setPathResources(path, getResourceURLsForPathname) {\n // do nothing if the SW has just updated, since we still have old pages in\n // memory which we don't want to be whitelisted\n if (window.___swUpdated) return;\n\n if (\"serviceWorker\" in navigator) {\n var _navigator = navigator,\n serviceWorker = _navigator.serviceWorker;\n\n if (serviceWorker.controller === null) {\n // if SW is not installed, we need to record any prefetches\n // that happen so we can then add them to SW cache once installed\n prefetchedPathnames.push(path);\n } else {\n var resources = getResourceURLsForPathname(path);\n serviceWorker.controller.postMessage({\n gatsbyApi: \"setPathResources\",\n path: path,\n resources: resources\n });\n }\n }\n}\n\nexports.onRouteUpdate = function (_ref2) {\n var location = _ref2.location,\n getResourceURLsForPathname = _ref2.getResourceURLsForPathname;\n var pathname = location.pathname.replace(__BASE_PATH__, \"\");\n setPathResources(pathname, getResourceURLsForPathname);\n\n if (\"serviceWorker\" in navigator && navigator.serviceWorker.controller !== null) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: \"enableOfflineShell\"\n });\n }\n};\n\nexports.onPostPrefetchPathname = function (_ref3) {\n var pathname = _ref3.pathname,\n getResourceURLsForPathname = _ref3.getResourceURLsForPathname;\n setPathResources(pathname, getResourceURLsForPathname);\n};","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 20.3.3.1 / 15.9.4.4 Date.now()\nvar $export = require('./_export');\n\n$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","const support = function(feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function(url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function(url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function(url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","export default path => {\n if (path === undefined) {\n return path\n }\n if (path === `/`) {\n return `/`\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1)\n }\n return path\n}\n","import { match } from \"@reach/router/lib/utils\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n const pathname = decodeURIComponent(rawPathname)\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(pathname, __BASE_PATH__)\n // Remove any hashfragment\n .split(`#`)[0]\n // Remove search query\n .split(`?`)[0]\n\n return trimmedPathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n for (const { matchPath, path } of matchPaths) {\n if (match(matchPath, trimmedPathname)) {\n return normalizePagePath(path)\n }\n }\n\n return null\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(rawPathname)\n\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(rawPathname)\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","import prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = path => {\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json`\n}\n\nconst doFetch = (url, method = `GET`) =>\n new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n\nconst loadPageDataJson = loadObj => {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return doFetch(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n return Object.assign(loadObj, {\n status: `success`,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404 page and it doesn't exist, we're done\n if (pagePath === `/404.html`) {\n return Object.assign(loadObj, {\n status: `failure`,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return loadPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return Object.assign(loadObj, {\n status: `error`,\n })\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return loadPageDataJson(Object.assign(loadObj, { retries: retries + 1 }))\n }\n\n // Retried 3 times already, result is a failure.\n return Object.assign(loadObj, {\n status: `error`,\n })\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\nconst toPageResources = (pageData, component = null) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n }\n\n return {\n component,\n json: pageData.result,\n page,\n }\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: `success` || `error`,\n // payload: PageResources, // undefined if `error`\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // }\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.pageDataDb = new Map()\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n return Promise.resolve(this.pageDataDb.get(pagePath))\n }\n\n return loadPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n return Promise.resolve(page.payload)\n }\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const inFlight = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ])\n .then(allData => {\n const result = allData[1]\n if (result.status === `error`) {\n return {\n status: `error`,\n }\n }\n if (result.status === `failure`) {\n // throw an error so error trackers can pick this up\n throw new Error(\n `404 page could not be found. Checkout https://www.gatsbyjs.org/docs/add-404-page/`\n )\n }\n\n let pageData = result.payload\n const { componentChunkName } = pageData\n return this.loadComponent(componentChunkName).then(component => {\n const finalResult = { createdAt: new Date() }\n let pageResources\n if (!component) {\n finalResult.status = `error`\n } else {\n finalResult.status = `success`\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: allData[0]\n ? allData[0].webpackCompilationHash\n : ``,\n })\n pageResources = toPageResources(pageData, component)\n finalResult.payload = pageResources\n emitter.emit(`onPostLoadPageResources`, {\n page: pageResources,\n pageResources,\n })\n }\n this.pageDb.set(pagePath, finalResult)\n // undefined if final result is an error\n return pageResources\n })\n })\n // prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n .then(response => {\n this.inFlightDb.delete(pagePath)\n return response\n })\n .catch(err => {\n this.inFlightDb.delete(pagePath)\n throw err\n })\n\n this.inFlightDb.set(pagePath, inFlight)\n return inFlight\n }\n\n // returns undefined if loading page ran into errors\n loadPageSync(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n return this.pageDb.get(pagePath).payload\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return false\n }\n\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return false\n }\n\n const realPath = findPath(pagePath)\n // Todo make doPrefetch logic cacheable\n // eslint-disable-next-line consistent-return\n this.doPrefetch(realPath).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n })\n\n return true\n }\n\n doPrefetch(pagePath) {\n throw new Error(`doPrefetch not implemented`)\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return page && page.notFound === true\n }\n\n loadAppData(retries = 0) {\n return doFetch(`${__PATH_PREFIX__}/page-data/app-data.json`).then(req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of failures\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n })\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n window.___chunkMapping[componentChunkName].map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths) {\n const loadComponent = chunkName =>\n asyncRequires.components[chunkName]().then(preferDefault)\n\n super(loadComponent, matchPaths)\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n })\n .then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n .then(result => {\n if (result.status !== `success`) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(\n () => pageData\n )\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n // Deprecated methods. As far as we're aware, these are only used by\n // core gatsby and the offline plugin, however there's a very small\n // chance they're called by others.\n getResourcesForPathname: rawPath => {\n console.warn(\n `Warning: getResourcesForPathname is deprecated. Use loadPage instead`\n )\n return instance.i.loadPage(rawPath)\n },\n getResourcesForPathnameSync: rawPath => {\n console.warn(\n `Warning: getResourcesForPathnameSync is deprecated. Use loadPageSync instead`\n )\n return instance.i.loadPageSync(rawPath)\n },\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n loadPageSync: rawPath => instance.loadPageSync(rawPath),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n","var aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar toLength = require('./_to-length');\n\nmodule.exports = function (that, callbackfn, aLen, memo, isRight) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IObject(O);\n var length = toLength(O.length);\n var index = isRight ? length - 1 : 0;\n var i = isRight ? -1 : 1;\n if (aLen < 2) for (;;) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (isRight ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n};\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var core = module.exports = { version: '2.6.11' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","var DateProto = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar $toString = DateProto[TO_STRING];\nvar getTime = DateProto.getTime;\nif (new Date(NaN) + '' != INVALID_DATE) {\n require('./_redefine')(DateProto, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare\n return value === value ? $toString.call(this) : INVALID_DATE;\n });\n}\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","module.exports = {};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _gatsby = require(\"gatsby\");\n\nvar _getManifestPathname = _interopRequireDefault(require(\"./get-manifest-pathname\"));\n\n/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\n// when we don't have localisation in our manifest, we tree shake everything away\nif (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n var withPrefix = _gatsby.withAssetPrefix || _gatsby.withPrefix;\n\n exports.onRouteUpdate = function (_ref, pluginOptions) {\n var location = _ref.location;\n var localize = pluginOptions.localize;\n var manifestFilename = (0, _getManifestPathname[\"default\"])(location.pathname, localize);\n var manifestEl = document.head.querySelector(\"link[rel=\\\"manifest\\\"]\");\n\n if (manifestEl) {\n manifestEl.setAttribute(\"href\", withPrefix(manifestFilename));\n }\n };\n}","\"use strict\";\n\nexports.DEFAULT_OPTIONS = {\n maxWidth: 650,\n wrapperStyle: \"\",\n backgroundColor: \"white\",\n linkImagesToOriginal: true,\n showCaptions: false,\n markdownCaptions: false,\n withWebp: false,\n tracedSVG: false,\n loading: \"lazy\",\n disableBgImageOnAlpha: false,\n disableBgImage: false\n};\nexports.imageClass = \"gatsby-resp-image-image\";\nexports.imageWrapperClass = \"gatsby-resp-image-wrapper\";\nexports.imageBackgroundClass = \"gatsby-resp-image-background-image\";","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","// prefer default export if available\nconst preferDefault = m => m && m.default || m\n\nexports.components = {\n \"component---node-modules-gatsby-plugin-offline-app-shell-js\": () => import(\"../node_modules/gatsby-plugin-offline/app-shell.js\" /* webpackChunkName: \"component---node-modules-gatsby-plugin-offline-app-shell-js\" */),\n \"component---src-templates-blog-post-js\": () => import(\"../src/templates/blog-post.js\" /* webpackChunkName: \"component---src-templates-blog-post-js\" */),\n \"component---src-templates-tags-js\": () => import(\"../src/templates/tags.js\" /* webpackChunkName: \"component---src-templates-tags-js\" */),\n \"component---src-pages-404-js\": () => import(\"../src/pages/404.js\" /* webpackChunkName: \"component---src-pages-404-js\" */),\n \"component---src-pages-about-js\": () => import(\"../src/pages/about.js\" /* webpackChunkName: \"component---src-pages-about-js\" */),\n \"component---src-pages-contact-js\": () => import(\"../src/pages/contact.js\" /* webpackChunkName: \"component---src-pages-contact-js\" */),\n \"component---src-pages-index-js\": () => import(\"../src/pages/index.js\" /* webpackChunkName: \"component---src-pages-index-js\" */),\n \"component---src-pages-music-discography-index-js\": () => import(\"../src/pages/music/discography/index.js\" /* webpackChunkName: \"component---src-pages-music-discography-index-js\" */),\n \"component---src-pages-music-index-js\": () => import(\"../src/pages/music/index.js\" /* webpackChunkName: \"component---src-pages-music-index-js\" */),\n \"component---src-pages-music-teaching-resources-index-js\": () => import(\"../src/pages/music/teaching-resources/index.js\" /* webpackChunkName: \"component---src-pages-music-teaching-resources-index-js\" */),\n \"component---src-pages-other-index-js\": () => import(\"../src/pages/other/index.js\" /* webpackChunkName: \"component---src-pages-other-index-js\" */),\n \"component---src-pages-reading-list-index-js\": () => import(\"../src/pages/reading-list/index.js\" /* webpackChunkName: \"component---src-pages-reading-list-index-js\" */),\n \"component---src-pages-tags-js\": () => import(\"../src/pages/tags.js\" /* webpackChunkName: \"component---src-pages-tags-js\" */),\n \"component---src-pages-tech-index-js\": () => import(\"../src/pages/tech/index.js\" /* webpackChunkName: \"component---src-pages-tech-index-js\" */),\n \"component---src-pages-tech-projects-index-js\": () => import(\"../src/pages/tech/projects/index.js\" /* webpackChunkName: \"component---src-pages-tech-projects-index-js\" */)\n}\n\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar toInteger = require('./_to-integer');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","\"use strict\";\n\nrequire(\"core-js/modules/es6.array.some\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _inDOM = _interopRequireDefault(require(\"./inDOM\"));\n\nvar vendors = ['', 'webkit', 'moz', 'o', 'ms'];\nvar cancel = 'clearTimeout';\nvar raf = fallback;\nvar compatRaf;\n\nvar getKey = function getKey(vendor, k) {\n return vendor + (!vendor ? k : k[0].toUpperCase() + k.substr(1)) + 'AnimationFrame';\n};\n\nif (_inDOM[\"default\"]) {\n vendors.some(function (vendor) {\n var rafKey = getKey(vendor, 'request');\n\n if (rafKey in window) {\n cancel = getKey(vendor, 'cancel');\n return raf = function raf(cb) {\n return window[rafKey](cb);\n };\n }\n });\n}\n/* https://github.com/component/raf */\n\n\nvar prev = new Date().getTime();\n\nfunction fallback(fn) {\n var curr = new Date().getTime(),\n ms = Math.max(0, 16 - (curr - prev)),\n req = setTimeout(fn, ms);\n prev = curr;\n return req;\n}\n\ncompatRaf = function compatRaf(cb) {\n return raf(cb);\n};\n\ncompatRaf.cancel = function (id) {\n window[cancel] && typeof window[cancel] === 'function' && window[cancel](id);\n};\n\nvar _default = compatRaf;\nexports[\"default\"] = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _require = require(\"./constants\"),\n DEFAULT_OPTIONS = _require.DEFAULT_OPTIONS,\n imageClass = _require.imageClass,\n imageBackgroundClass = _require.imageBackgroundClass,\n imageWrapperClass = _require.imageWrapperClass;\n\nexports.onRouteUpdate = function (apiCallbackContext, pluginOptions) {\n var options = Object.assign({}, DEFAULT_OPTIONS, pluginOptions);\n var imageWrappers = document.querySelectorAll(\".\" + imageWrapperClass); // https://css-tricks.com/snippets/javascript/loop-queryselectorall-matches/\n // for cross-browser looping through NodeList without polyfills\n\n var _loop = function _loop(i) {\n var imageWrapper = imageWrappers[i];\n var backgroundElement = imageWrapper.querySelector(\".\" + imageBackgroundClass);\n var imageElement = imageWrapper.querySelector(\".\" + imageClass);\n\n var onImageLoad = function onImageLoad() {\n backgroundElement.style.transition = \"opacity 0.5s 0.5s\";\n imageElement.style.transition = \"opacity 0.5s\";\n onImageComplete();\n };\n\n var onImageComplete = function onImageComplete() {\n backgroundElement.style.opacity = 0;\n imageElement.style.opacity = 1;\n imageElement.style.color = \"inherit\";\n imageElement.style.boxShadow = \"inset 0px 0px 0px 400px \" + options.backgroundColor;\n imageElement.removeEventListener(\"load\", onImageLoad);\n imageElement.removeEventListener(\"error\", onImageComplete);\n };\n\n imageElement.style.opacity = 0;\n imageElement.addEventListener(\"load\", onImageLoad);\n imageElement.addEventListener(\"error\", onImageComplete);\n\n if (imageElement.complete) {\n onImageComplete();\n }\n };\n\n for (var i = 0; i < imageWrappers.length; i++) {\n _loop(i);\n }\n};","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","require('./_wks-define')('asyncIterator');\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\n\nvar on = function on() {};\n\nif (_inDOM[\"default\"]) {\n on = function () {\n if (document.addEventListener) return function (node, eventName, handler, capture) {\n return node.addEventListener(eventName, handler, capture || false);\n };else if (document.attachEvent) return function (node, eventName, handler) {\n return node.attachEvent('on' + eventName, function (e) {\n e = e || window.event;\n e.target = e.target || e.srcElement;\n e.currentTarget = node;\n handler.call(node, e);\n });\n };\n }();\n}\n\nvar _default = on;\nexports[\"default\"] = _default;\nmodule.exports = exports[\"default\"];","// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = context(this, searchString, ENDS_WITH);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location, pageResources }) => {\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","'use strict';\nvar regexpExec = require('./_regexp-exec');\nrequire('./_export')({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","'use strict';\nvar weak = require('./_collection-weak');\nvar validate = require('./_validate-collection');\nvar WEAK_SET = 'WeakSet';\n\n// 23.4 WeakSet Objects\nrequire('./_collection')(WEAK_SET, function (get) {\n return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return weak.def(validate(this, WEAK_SET), value, true);\n }\n}, weak, false, true);\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","const plugins = require(`./api-runner-browser-plugins`)\nconst {\n getResourcesForPathname,\n getResourcesForPathnameSync,\n getResourceURLsForPathname,\n loadPage,\n loadPageSync,\n} = require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n // Deprecated April 2019. Use `loadPageSync` instead\n args.getResourcesForPathnameSync = getResourcesForPathnameSync\n // Deprecated April 2019. Use `loadPage` instead\n args.getResourcesForPathname = getResourcesForPathname\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/gatsby-link/index.js","webpack:///./node_modules/dom-helpers/query/scrollLeft.js","webpack:///./node_modules/core-js/modules/_function-to-string.js","webpack:///./node_modules/core-js/modules/_html.js","webpack:///./node_modules/core-js/modules/es6.object.set-prototype-of.js","webpack:///./node_modules/core-js/modules/_string-ws.js","webpack:///./node_modules/core-js/modules/_is-object.js","webpack:///./node_modules/core-js/modules/es6.array.filter.js","webpack:///./node_modules/core-js/modules/_string-context.js","webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/core-js/modules/_enum-keys.js","webpack:///./node_modules/core-js/modules/_iter-step.js","webpack:///./node_modules/gatsby-react-router-scroll/StateStorage.js","webpack:///./node_modules/core-js/modules/es6.object.is.js","webpack:///./node_modules/core-js/modules/_a-function.js","webpack:///./node_modules/core-js/modules/es6.function.bind.js","webpack:///./node_modules/core-js/modules/_redefine-all.js","webpack:///./node_modules/gatsby-react-router-scroll/ScrollBehaviorContext.js","webpack:///./node_modules/core-js/modules/_collection.js","webpack:///./node_modules/core-js/modules/_enum-bug-keys.js","webpack:///./node_modules/mitt/dist/mitt.es.js","webpack:///./.cache/emitter.js","webpack:///./node_modules/core-js/modules/_species-constructor.js","webpack:///./node_modules/warning/browser.js","webpack:///./node_modules/core-js/modules/_array-species-constructor.js","webpack:///./node_modules/gatsby-react-router-scroll/index.js","webpack:///./node_modules/core-js/modules/es6.array.for-each.js","webpack:///./node_modules/core-js/modules/_bind.js","webpack:///./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack:///./node_modules/dom-helpers/query/isWindow.js","webpack:///./node_modules/core-js/modules/_create-property.js","webpack:///./node_modules/core-js/modules/es6.object.assign.js","webpack:///./.cache/react-lifecycles-compat.js","webpack:///./node_modules/core-js/modules/es6.map.js","webpack:///./node_modules/core-js/modules/es6.string.starts-with.js","webpack:///./node_modules/@reach/router/es/lib/history.js","webpack:///./node_modules/core-js/modules/_an-instance.js","webpack:///./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack:///./node_modules/core-js/modules/_advance-string-index.js","webpack:///./node_modules/core-js/modules/_iter-define.js","webpack:///./node_modules/core-js/modules/_string-at.js","webpack:///./node_modules/dom-helpers/util/inDOM.js","webpack:///./node_modules/core-js/modules/es6.object.to-string.js","webpack:///./node_modules/core-js/modules/_flags.js","webpack:///./node_modules/core-js/modules/_array-methods.js","webpack:///./node_modules/core-js/modules/es6.array.reduce.js","webpack:///./node_modules/core-js/modules/_object-keys.js","webpack:///./node_modules/core-js/modules/es6.weak-map.js","webpack:///./node_modules/core-js/modules/_is-array.js","webpack:///./node_modules/core-js/modules/_object-gopd.js","webpack:///./node_modules/core-js/modules/_object-dps.js","webpack:///./node_modules/core-js/modules/_task.js","webpack:///./gatsby-browser.js","webpack:///./node_modules/core-js/modules/_iter-call.js","webpack:///./node_modules/core-js/modules/es6.object.define-property.js","webpack:///./node_modules/core-js/modules/es6.array.from.js","webpack:///./node_modules/core-js/modules/_classof.js","webpack:///./.cache/page-renderer.js","webpack:///./node_modules/core-js/modules/_fix-re-wks.js","webpack:///./node_modules/gatsby-react-router-scroll/ScrollContainer.js","webpack:///./node_modules/core-js/modules/_dom-create.js","webpack:///./node_modules/core-js/modules/core.get-iterator-method.js","webpack:///./node_modules/core-js/modules/_object-gops.js","webpack:///./node_modules/core-js/modules/_wks.js","webpack:///./node_modules/core-js/modules/es6.regexp.split.js","webpack:///./node_modules/core-js/modules/_redefine.js","webpack:///./node_modules/core-js/modules/_object-create.js","webpack:///./node_modules/core-js/modules/es6.string.includes.js","webpack:///./node_modules/scroll-behavior/lib/index.js","webpack:///./node_modules/core-js/modules/es6.array.is-array.js","webpack:///./node_modules/core-js/modules/_library.js","webpack:///./node_modules/@reach/router/es/lib/utils.js","webpack:///./node_modules/core-js/modules/_cof.js","webpack:///./.cache/api-runner-browser-plugins.js","webpack:///./node_modules/core-js/modules/_strict-method.js","webpack:///./node_modules/core-js/modules/_is-array-iter.js","webpack:///./node_modules/@mikaelkristiansson/domready/ready.js","webpack:///./node_modules/core-js/modules/_invoke.js","webpack:///./node_modules/object-assign/index.js","webpack:///./node_modules/core-js/modules/_hide.js","webpack:///./node_modules/core-js/modules/_wks-ext.js","webpack:///./.cache/register-service-worker.js","webpack:///./node_modules/core-js/modules/es6.regexp.flags.js","webpack:///./node_modules/core-js/modules/es6.regexp.search.js","webpack:///./node_modules/core-js/modules/_object-gpo.js","webpack:///./node_modules/core-js/modules/_wks-define.js","webpack:///./node_modules/scroll-behavior/lib/utils.js","webpack:///./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack:///./node_modules/invariant/browser.js","webpack:///./node_modules/core-js/modules/_iter-create.js","webpack:///./node_modules/core-js/modules/es6.object.keys.js","webpack:///./node_modules/core-js/modules/_to-integer.js","webpack:///./node_modules/core-js/modules/_property-desc.js","webpack:///./node_modules/core-js/modules/_to-object.js","webpack:///./node_modules/core-js/modules/es6.regexp.match.js","webpack:///./node_modules/core-js/modules/_for-of.js","webpack:///./node_modules/core-js/modules/es6.set.js","webpack:///./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack:///./node_modules/core-js/modules/es6.string.trim.js","webpack:///./node_modules/core-js/modules/_fails-is-regexp.js","webpack:///./node_modules/core-js/modules/_regexp-exec.js","webpack:///./node_modules/core-js/modules/_object-pie.js","webpack:///./.cache/navigation.js","webpack:///./node_modules/shallow-compare/es/index.js","webpack:///./.cache/ensure-resources.js","webpack:///./.cache/production-app.js","webpack:///./node_modules/core-js/modules/es6.array.index-of.js","webpack:///./node_modules/core-js/modules/es6.promise.js","webpack:///./node_modules/core-js/modules/_shared.js","webpack:///./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack:///./node_modules/core-js/modules/es6.array.sort.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./.cache/gatsby-browser-entry.js","webpack:///./node_modules/core-js/modules/_export.js","webpack:///./node_modules/core-js/modules/_iter-detect.js","webpack:///./node_modules/core-js/modules/_inherit-if-required.js","webpack:///./node_modules/core-js/modules/es6.string.iterator.js","webpack:///./node_modules/core-js/modules/_object-sap.js","webpack:///./node_modules/core-js/modules/_regexp-exec-abstract.js","webpack:///./node_modules/core-js/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/_iobject.js","webpack:///./.cache/create-react-context.js","webpack:///./node_modules/@reach/router/es/index.js","webpack:///./node_modules/core-js/modules/es7.array.includes.js","webpack:///./node_modules/core-js/modules/_meta.js","webpack:///./node_modules/core-js/modules/_collection-weak.js","webpack:///./node_modules/dom-helpers/query/scrollTop.js","webpack:///./node_modules/core-js/modules/es6.regexp.to-string.js","webpack:///./node_modules/core-js/modules/_to-iobject.js","webpack:///./node_modules/core-js/modules/_has.js","webpack:///./node_modules/core-js/modules/_to-primitive.js","webpack:///./node_modules/core-js/modules/es6.array.map.js","webpack:///./node_modules/dom-helpers/events/off.js","webpack:///./.cache/strip-prefix.js","webpack:///./node_modules/gatsby-link/parse-path.js","webpack:///./node_modules/core-js/modules/_object-assign.js","webpack:///./node_modules/core-js/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/modules/es6.array.find.js","webpack:///./node_modules/core-js/modules/es6.array.some.js","webpack:///./node_modules/core-js/modules/_global.js","webpack:///./node_modules/gatsby-plugin-offline/gatsby-browser.js","webpack:///./node_modules/core-js/modules/_object-gopn-ext.js","webpack:///./node_modules/core-js/modules/es6.date.now.js","webpack:///./node_modules/core-js/modules/_fails.js","webpack:///./node_modules/core-js/modules/_set-species.js","webpack:///./.cache/prefetch.js","webpack:///./.cache/normalize-page-path.js","webpack:///./.cache/find-path.js","webpack:///./.cache/loader.js","webpack:///./node_modules/core-js/modules/_array-reduce.js","webpack:///./node_modules/core-js/modules/es6.function.name.js","webpack:///./node_modules/core-js/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/modules/_core.js","webpack:///./node_modules/core-js/modules/_same-value.js","webpack:///./node_modules/core-js/modules/_microtask.js","webpack:///./node_modules/core-js/modules/es6.date.to-string.js","webpack:///./node_modules/core-js/modules/es6.object.create.js","webpack:///./node_modules/core-js/modules/_iterators.js","webpack:///./node_modules/core-js/modules/_object-dp.js","webpack:///./node_modules/core-js/modules/_set-proto.js","webpack:///./node_modules/core-js/modules/es6.symbol.js","webpack:///./node_modules/core-js/modules/_object-gopn.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./.cache/public-page-renderer.js","webpack:///./node_modules/core-js/modules/_ctx.js","webpack:///./node_modules/core-js/modules/_add-to-unscopables.js","webpack:///./node_modules/core-js/modules/_perform.js","webpack:///./node_modules/core-js/modules/_to-length.js","webpack:///./node_modules/core-js/modules/_descriptors.js","webpack:///./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack:///./node_modules/gatsby-remark-images/constants.js","webpack:///./node_modules/core-js/modules/_user-agent.js","webpack:///./.cache/async-requires.js","webpack:///./node_modules/core-js/modules/es6.regexp.replace.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/core-js/modules/_new-promise-capability.js","webpack:///./node_modules/dom-helpers/util/requestAnimationFrame.js","webpack:///./node_modules/gatsby-remark-images/gatsby-browser.js","webpack:///./node_modules/core-js/modules/_string-trim.js","webpack:///./node_modules/core-js/modules/_is-regexp.js","webpack:///./node_modules/core-js/modules/es7.symbol.async-iterator.js","webpack:///./node_modules/core-js/modules/web.dom.iterable.js","webpack:///./node_modules/dom-helpers/events/on.js","webpack:///./node_modules/core-js/modules/es6.string.ends-with.js","webpack:///./.cache/public-page-renderer-prod.js","webpack:///./node_modules/core-js/modules/_validate-collection.js","webpack:///./node_modules/core-js/modules/es6.regexp.exec.js","webpack:///./node_modules/core-js/modules/_promise-resolve.js","webpack:///./node_modules/core-js/modules/_defined.js","webpack:///./node_modules/core-js/modules/_array-includes.js","webpack:///./node_modules/core-js/modules/es6.weak-set.js","webpack:///./node_modules/core-js/modules/_collection-strong.js","webpack:///./node_modules/core-js/modules/_ie8-dom-define.js","webpack:///./.cache/api-runner-browser.js","webpack:///./node_modules/core-js/modules/_an-object.js","webpack:///./node_modules/core-js/modules/_uid.js","webpack:///./node_modules/core-js/modules/es6.array.iterator.js","webpack:///./node_modules/core-js/modules/_array-species-create.js","webpack:///./node_modules/core-js/modules/_object-keys-internal.js"],"names":["_interopRequireDefault","exports","__esModule","withPrefix","withAssetPrefix","path","concat","replace","join","navigateTo","push","navigate","_objectWithoutPropertiesLoose2","_extends2","_assertThisInitialized2","_inheritsLoose2","_defineProperty2","_propTypes","_react","_router","_parsePath","normalizePath","parsePath","NavLinkPropTypes","activeClassName","string","activeStyle","object","partiallyActive","bool","GatsbyLink","_React$Component","props","_this","call","this","_ref","isPartiallyCurrent","isCurrent","className","filter","Boolean","style","IOSupported","window","IntersectionObserver","state","handleRef","bind","_proto","prototype","componentDidUpdate","prevProps","prevState","to","___loader","enqueue","pathname","componentDidMount","componentWillUnmount","io","_this$io","instance","el","unobserve","disconnect","ref","cb","_this2","innerRef","hasOwnProperty","current","entries","forEach","entry","target","isIntersecting","intersectionRatio","observe","render","_this3","_this$props","_this$props$getProps","getProps","defaultGetProps","_onClick","onClick","_onMouseEnter","onMouseEnter","rest","prefixedTo","createElement","Link","e","hovering","button","defaultPrevented","metaKey","altKey","ctrlKey","shiftKey","preventDefault","Component","propTypes","func","isRequired","showDeprecationWarning","functionName","altFunctionName","version","console","warn","_default","forwardRef","options","___navigate","___push","___replace","node","val","win","_isWindow","undefined","pageXOffset","document","documentElement","scrollLeft","scrollTo","pageYOffset","scrollTop","module","Function","toString","$export","S","setPrototypeOf","set","it","$filter","P","F","callbackfn","arguments","isRegExp","defined","that","searchString","NAME","TypeError","String","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","location","propFullName","secret","err","Error","name","getShim","ReactPropTypes","array","number","symbol","any","arrayOf","element","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","getKeys","gOPS","pIE","result","getSymbols","f","key","symbols","isEnum","i","length","done","value","SessionStorage","read","stateKey","getStateKey","sessionStorage","getItem","JSON","parse","save","storedValue","stringify","setItem","stateKeyBase","is","redefine","src","safe","_scrollBehavior","_history","_StateStorage","shouldUpdateScroll","children","childContextTypes","scrollBehavior","ScrollContext","context","prevRouterProps","routerProps","registerElement","getRouterProps","unregisterElement","addTransitionHook","globalHistory","listen","stateStorage","getCurrentLocation","getChildContext","__navigatingToLink","action","updateScroll","history","stop","Children","only","global","redefineAll","meta","forOf","anInstance","isObject","fails","$iterDetect","setToStringTag","inheritIfRequired","wrapper","methods","common","IS_MAP","IS_WEAK","Base","C","ADDER","proto","O","fixMethod","KEY","fn","a","b","next","HASNT_CHAINING","THROWS_ON_PRIMITIVES","has","ACCEPT_ITERABLES","iter","BUGGY_ZERO","$instance","index","iterable","constructor","clear","getConstructor","NEED","G","W","setStrong","split","emitter","all","Object","create","on","type","handler","off","splice","indexOf","emit","evt","slice","map","mitt","anObject","aFunction","SPECIES","D","isArray","original","Array","_ScrollBehaviorContext","_ScrollContainer","ScrollContainer","$forEach","STRICT","invoke","arraySlice","factories","construct","len","args","n","partArgs","bound","source","excluded","sourceKeys","keys","nodeType","defaultView","parentWindow","$defineProperty","createDesc","assign","polyfill","strong","validate","get","getEntry","v","def","toLength","$startsWith","startsWith","Math","min","search","_extends","getLocation","createHistory","listeners","transitioning","resolveTransition","_onTransitionComplete","listener","popstateListener","addEventListener","removeEventListener","_ref$replace","Date","now","replaceState","pushState","transition","Promise","res","createMemorySource","initialPathname","stack","states","_","uri","_uri$split","_uri$split$","_uri$split2","_uri$split2$","canUseDOM","Constructor","forbiddenField","localizedManifests","localizedManifest","find","app","start_url","lang","at","unicode","LIBRARY","hide","Iterators","$iterCreate","getPrototypeOf","ITERATOR","BUGGY","returnThis","DEFAULT","IS_SET","FORCED","IteratorPrototype","getMethod","kind","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","values","toInteger","TO_STRING","pos","s","l","charCodeAt","charAt","classof","test","ignoreCase","multiline","sticky","ctx","IObject","toObject","asc","TYPE","$create","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","self","$reduce","reduce","$keys","enumBugKeys","InternalMap","each","weak","NATIVE_WEAK_MAP","IS_IE11","ActiveXObject","getWeak","isExtensible","uncaughtFrozenStore","ufstore","data","_i","$WeakMap","method","_f","cof","arg","toIObject","toPrimitive","IE8_DOM_DEFINE","gOPD","getOwnPropertyDescriptor","dP","defineProperties","Properties","defer","channel","port","html","cel","process","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","queue","run","id","event","nextTick","port2","port1","onmessage","postMessage","importScripts","appendChild","removeChild","setTimeout","onRouteUpdate","woopra","debug","log","track","iterator","ret","defineProperty","isArrayIter","createProperty","getIterFn","from","arrayLike","step","aLen","mapfn","mapping","iterFn","ARG","T","B","tryGet","callee","PageRenderer","pathContext","pageContext","pageElement","apiRunner","loader","publicLoader","pageResources","component","page","pop","React","wks","regexpExec","REPLACE_SUPPORTS_NAMED_GROUPS","re","exec","groups","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","apply","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","regexp","str","arg2","forceStringMethod","strfn","rxfn","RegExp","_reactDom","_warning","scrollKey","contextTypes","findDOMNode","getIteratorMethod","getOwnPropertySymbols","store","uid","Symbol","USE_SYMBOL","speciesConstructor","advanceStringIndex","callRegExpExec","$min","$push","SUPPORTS_Y","SPLIT","$split","maybeCallNative","internalSplit","separator","limit","match","lastIndex","lastLength","output","flags","lastLastIndex","splitLimit","separatorCopy","splitter","rx","unicodeMatching","lim","p","q","A","z","SRC","$toString","TPL","inspectSource","isFunction","dPs","IE_PROTO","Empty","createDict","iframeDocument","iframe","display","contentWindow","open","write","lt","close","includes","_off2","_on2","_scrollLeft2","_scrollTop2","_requestAnimationFrame2","_invariant2","_utils","obj","MAX_SCROLL_ATTEMPTS","ScrollBehavior","_classCallCheck","_restoreScrollRestoration","_oldScrollRestoration","scrollRestoration","_onWindowScroll","_saveWindowPositionHandle","_saveWindowPosition","_windowScrollTarget","xTarget","yTarget","x","y","_cancelCheckWindowScroll","_savePosition","_checkWindowScrollPosition","_checkWindowScrollHandle","scrollToTarget","_numWindowScrollAttempts","_stateStorage","_getCurrentLocation","_shouldUpdateScroll","isMobileSafari","_scrollElements","_removeTransitionHook","cancel","scrollElement","savePositionHandle","_saveElementPosition","saveElementPosition","onScroll","_updateElementScroll","_scrollElements$key","prevContext","_updateWindowScroll","_getScrollTarget","_scrollElements$key2","scrollTarget","_getDefaultScrollTarget","hash","_getSavedScrollTarget","targetElement","getElementById","getElementsByName","scrollIntoView","_target","left","top","substr","pick","routes","default_","uriPathname","uriSegments","segmentize","isRootUri","ranked","rankRoutes","missed","route","params","routeSegments","max","routeSegment","uriSegment","decodeURIComponent","dynamicMatch","paramRe","reservedNames","resolve","base","_to$split","toPathname","toQuery","basePathname","toSegments","baseSegments","addQuery","allSegments","segments","segment","insertParams","validateRedirect","isDynamic","sort","rankRoute","score","isRootSegment","isSplat","SEGMENT_POINTS","query","plugin","require","ArrayProto","ie10","navigator","appVersion","_listener","doc","hack","doScroll","loaded","readyState","shift","definition","un","propIsEnumerable","propertyIsEnumerable","test1","getOwnPropertyNames","test2","fromCharCode","test3","letter","shouldUseNative","protocol","hostname","error","serviceWorker","register","then","reg","installingWorker","installing","controller","___swUpdated","___failedResources","reload","catch","configurable","sameValue","regExpExec","SEARCH","$search","previousLastIndex","ObjectProto","core","wksExt","$Symbol","platform","userAgent","ReferenceError","condition","format","c","d","argIndex","framesToPop","descriptor","ceil","floor","isNaN","bitmap","enumerable","writable","MATCH","$match","fullUnicode","matchStr","BREAK","RETURN","add","$trim","re1","re2","regexpFlags","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","redirectMap","redirects","redirect","fromPath","maybeRedirect","toPath","onPreRouteUpdate","prevLocation","timeoutId","loadPage","status","href","webpackCompilationHash","___webpackCompilationHash","gatsbyApi","reachNavigate","clearTimeout","results","getSavedScrollPosition","decodeURI","RouteUpdates","shouldFireRouteUpdate","getSnapshotBeforeUpdate","shallowDiffers","EnsureResources","loadPageSync","getDerivedStateFromProps","loadResources","rawPath","setState","shouldComponentUpdate","nextProps","nextState","json","matchPath","shallowCompare","ProdLoader","asyncRequires","matchPaths","setLoader","setApiRunner","___emitter","apiRunnerAsync","RouteHandler","Provider","baseuri","basepath","LocationHandler","__BASE_PATH__","encodeURI","stripPrefix","pagePath","browserLoc","findMatchPath","Root","locationContext","WrappedRoot","NewRoot","renderer","ReactDOM","hydrate","domReady","$indexOf","NEGATIVE_ZERO","searchElement","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","task","microtask","newPromiseCapabilityModule","perform","promiseResolve","versions","v8","$Promise","isNode","empty","newPromiseCapability","USE_NATIVE","promise","FakePromise","PromiseRejectionEvent","isThenable","notify","isReject","_n","chain","_c","_v","ok","_s","reaction","exited","fail","reject","domain","_h","onHandleUnhandled","enter","exit","onUnhandled","unhandled","isUnhandled","onunhandledrejection","reason","_a","onrejectionhandled","$reject","_d","_w","$resolve","executor","onFulfilled","onRejected","r","capability","$$reject","remaining","$index","alreadyCalled","race","mode","copyright","subClass","superClass","__proto__","$sort","comparefn","prefetchPathname","StaticQueryContext","createContext","StaticQueryDataRenderer","staticQueryData","finalData","Fragment","StaticQuery","Consumer","useStaticQuery","useContext","graphql","own","out","exp","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","expProto","U","R","SAFE_CLOSING","riter","skipClosing","arr","$at","iterated","_t","point","builtinExec","shared","_objectWithoutProperties","_possibleConstructorReturn","_inherits","defaultValue","Ctx","displayName","LocationContext","LocationProvider","_temp","_len","_key","getContext","refs","unlisten","_props$history","componentDidCatch","info","isRedirect","_navigate","requestAnimationFrame","unmounted","defaultProps","_ref2","url","BaseContext","baseContext","_React$PureComponent","RouterImpl","_props","_navigate2","primary","_props$component","domProps","clone","cloneElement","FocusWrapper","wrapperProps","PureComponent","FocusContext","_ref3","requestFocus","initialRender","focusHandlerCount","_React$Component2","FocusHandlerImpl","_temp2","_this4","_len2","_key2","shouldFocus","focus","myURIChanged","navigatedUpToMe","contains","activeElement","_this5","_props2","_props2$role","role","_props2$component","Comp","outline","tabIndex","k","_ref4","_ref5","_ref6","_props$getProps","anchorProps","shouldNavigate","RedirectRequest","o","redirectTo","_React$Component3","RedirectImpl","_props3","_props3$replace","noThrow","_props4","_ref7","_ref8","_ref9","resolvedPath","stripSlashes","elementPath","$includes","META","setDesc","FREEZE","preventExtensions","setMeta","w","fastKey","onFreeze","createArrayMethod","$has","arrayFind","arrayFindIndex","_l","UncaughtFrozenStore","findUncaughtFrozen","$flags","DESCRIPTORS","define","valueOf","$map","eventName","capture","attachEvent","detachEvent","prefix","hashIndex","searchIndex","$assign","K","j","$find","forced","$some","some","__g","registerServiceWorker","whiteListLinkRels","prefetchedPathnames","setPathResources","getResourceURLsForPathname","resources","onServiceWorkerActive","active","nodes","querySelectorAll","headerResources","tagName","getAttribute","prefetchedResources","resource","link","rel","onload","remove","onerror","head","onPostPrefetchPathname","gOPN","windowNames","getWindowNames","getTime","supportedPrefetchStrategy","feature","fakeLink","relList","supports","support","setAttribute","getElementsByTagName","parentNode","req","XMLHttpRequest","send","preFetched","prefetch","pathCache","Map","trimPathname","rawPathname","setMatchPaths","trimmedPathname","cleanPath","normalizePagePath","findPath","foundPath","preferDefault","m","default","createPageDataUrl","endsWith","doFetch","onreadystatechange","loadPageDataJson","loadObj","retries","responseText","jsonPayload","payload","notFound","toPageResources","pageData","componentChunkName","BaseLoader","loadComponent","pageDb","inFlightDb","pageDataDb","prefetchTriggered","Set","prefetchCompleted","prefetchDisabled","inFlight","loadAppData","allData","finalResult","createdAt","response","delete","shouldPrefetch","connection","effectiveType","saveData","doesConnectionSupportPrefetch","realPath","doPrefetch","createComponentUrls","isPageNotFound","appData","___chunkMapping","chunk","__PATH_PREFIX__","chunkName","components","pageDataUrl","prefetchHelper","crossOrigin","as","componentUrls","_loader","getResourcesForPathname","getResourcesForPathnameSync","memo","isRight","FProto","nameRE","tag","stat","__e","macrotask","Observer","MutationObserver","WebKitMutationObserver","last","flush","parent","standalone","toggle","createTextNode","characterData","DateProto","NaN","Attributes","check","buggy","$fails","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$GOPS","$DP","$JSON","_stringify","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","QObject","setter","findChild","setSymbolDesc","protoDesc","wrap","sym","_k","isSymbol","$defineProperties","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","names","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","wellKnownSymbols","keyFor","useSetter","useSimple","FAILS_ON_PRIMITIVES","replacer","$replacer","hiddenKeys","UNSCOPABLES","DEFAULT_OPTIONS","maxWidth","wrapperStyle","backgroundColor","linkImagesToOriginal","showCaptions","markdownCaptions","withWebp","tracedSVG","loading","disableBgImageOnAlpha","disableBgImage","imageClass","imageWrapperClass","imageBackgroundClass","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","REPLACE","$replace","searchValue","replaceValue","functionalReplace","accumulatedResult","nextSourcePosition","matched","position","captures","namedCaptures","replacerArgs","replacement","getSubstitution","tailPos","ch","PromiseCapability","$$resolve","compatRaf","_inDOM","raf","curr","ms","prev","getKey","vendor","toUpperCase","rafKey","_require","apiCallbackContext","pluginOptions","imageWrappers","_loop","imageWrapper","backgroundElement","querySelector","imageElement","onImageLoad","onImageComplete","opacity","color","boxShadow","complete","spaces","space","ltrim","rtrim","exporter","ALIAS","FORCE","trim","$iterators","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","srcElement","currentTarget","$endsWith","endPosition","end","ProdPageRenderer","InternalPageRenderer","promiseCapability","toAbsoluteIndex","IS_INCLUDES","fromIndex","$iterDefine","setSpecies","SIZE","plugins","api","defaultReturn","argTransform","previous","px","random","addToUnscopables","Arguments","arrayIndexOf"],"mappings":"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","file":"app-aae54d2eda84058ab49f.js","sourcesContent":["\"use strict\";\n\nrequire(\"core-js/modules/es6.function.bind\");\n\nrequire(\"core-js/modules/es6.array.filter\");\n\nrequire(\"core-js/modules/es6.array.for-each\");\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.withPrefix = withPrefix;\nexports.withAssetPrefix = withAssetPrefix;\nexports.navigateTo = exports.replace = exports.push = exports.navigate = exports[\"default\"] = void 0;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _router = require(\"@reach/router\");\n\nvar _parsePath = require(\"./parse-path\");\n\nexports.parsePath = _parsePath.parsePath;\n\nfunction withPrefix(path) {\n return normalizePath([typeof __BASE_PATH__ !== \"undefined\" ? __BASE_PATH__ : __PATH_PREFIX__, path].join(\"/\"));\n}\n\nfunction withAssetPrefix(path) {\n return [__PATH_PREFIX__].concat([path.replace(/^\\//, \"\")]).join(\"/\");\n}\n\nfunction normalizePath(path) {\n return path.replace(/\\/+/g, \"/\");\n}\n\nvar NavLinkPropTypes = {\n activeClassName: _propTypes[\"default\"].string,\n activeStyle: _propTypes[\"default\"].object,\n partiallyActive: _propTypes[\"default\"].bool\n}; // Set up IntersectionObserver\n\nvar createIntersectionObserver = function createIntersectionObserver(el, cb) {\n var io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (el === entry.target) {\n // Check if element is within viewport, remove listener, destroy observer, and run link callback.\n // MSEdge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(el);\n io.disconnect();\n cb();\n }\n }\n });\n }); // Add element to the observer\n\n io.observe(el);\n return {\n instance: io,\n el: el\n };\n};\n\nvar GatsbyLink =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inheritsLoose2[\"default\"])(GatsbyLink, _React$Component);\n\n function GatsbyLink(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // Default to no support for IntersectionObserver\n\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"defaultGetProps\", function (_ref) {\n var isPartiallyCurrent = _ref.isPartiallyCurrent,\n isCurrent = _ref.isCurrent;\n\n if (_this.props.partiallyActive ? isPartiallyCurrent : isCurrent) {\n return {\n className: [_this.props.className, _this.props.activeClassName].filter(Boolean).join(\" \"),\n style: (0, _extends2[\"default\"])({}, _this.props.style, {}, _this.props.activeStyle)\n };\n }\n\n return null;\n });\n var IOSupported = false;\n\n if (typeof window !== \"undefined\" && window.IntersectionObserver) {\n IOSupported = true;\n }\n\n _this.state = {\n IOSupported: IOSupported\n };\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n var _proto = GatsbyLink.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // Preserve non IO functionality if no support\n if (this.props.to !== prevProps.to && !this.state.IOSupported) {\n ___loader.enqueue((0, _parsePath.parsePath)(this.props.to).pathname);\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n // Preserve non IO functionality if no support\n if (!this.state.IOSupported) {\n ___loader.enqueue((0, _parsePath.parsePath)(this.props.to).pathname);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (!this.io) {\n return;\n }\n\n var _this$io = this.io,\n instance = _this$io.instance,\n el = _this$io.el;\n instance.unobserve(el);\n instance.disconnect();\n };\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.props.innerRef && this.props.innerRef.hasOwnProperty(\"current\")) {\n this.props.innerRef.current = ref;\n } else if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n if (this.state.IOSupported && ref) {\n // If IO supported and element reference found, setup Observer functionality\n this.io = createIntersectionObserver(ref, function () {\n ___loader.enqueue((0, _parsePath.parsePath)(_this2.props.to).pathname);\n });\n }\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n to = _this$props.to,\n _this$props$getProps = _this$props.getProps,\n getProps = _this$props$getProps === void 0 ? this.defaultGetProps : _this$props$getProps,\n _onClick = _this$props.onClick,\n _onMouseEnter = _this$props.onMouseEnter,\n $activeClassName = _this$props.activeClassName,\n $activeStyle = _this$props.activeStyle,\n $innerRef = _this$props.innerRef,\n partiallyActive = _this$props.partiallyActive,\n state = _this$props.state,\n replace = _this$props.replace,\n rest = (0, _objectWithoutPropertiesLoose2[\"default\"])(_this$props, [\"to\", \"getProps\", \"onClick\", \"onMouseEnter\", \"activeClassName\", \"activeStyle\", \"innerRef\", \"partiallyActive\", \"state\", \"replace\"]);\n var LOCAL_URL = /^\\/(?!\\/)/;\n\n if (process.env.NODE_ENV !== \"production\" && !LOCAL_URL.test(to)) {\n console.warn(\"External link \" + to + \" was detected in a Link component. Use the Link component only for internal links. See: https://gatsby.dev/internal-links\");\n }\n\n var prefixedTo = withPrefix(to);\n return _react[\"default\"].createElement(_router.Link, (0, _extends2[\"default\"])({\n to: prefixedTo,\n state: state,\n getProps: getProps,\n innerRef: this.handleRef,\n onMouseEnter: function onMouseEnter(e) {\n if (_onMouseEnter) {\n _onMouseEnter(e);\n }\n\n ___loader.hovering((0, _parsePath.parsePath)(to).pathname);\n },\n onClick: function onClick(e) {\n if (_onClick) {\n _onClick(e);\n }\n\n if (e.button === 0 && // ignore right clicks\n !_this3.props.target && // let browser handle \"target=_blank\"\n !e.defaultPrevented && // onClick prevented default\n !e.metaKey && // ignore clicks with modifier keys...\n !e.altKey && !e.ctrlKey && !e.shiftKey) {\n e.preventDefault(); // Make sure the necessary scripts and data are\n // loaded before continuing.\n\n navigate(to, {\n state: state,\n replace: replace\n });\n }\n\n return true;\n }\n }, rest));\n };\n\n return GatsbyLink;\n}(_react[\"default\"].Component);\n\nGatsbyLink.propTypes = (0, _extends2[\"default\"])({}, NavLinkPropTypes, {\n onClick: _propTypes[\"default\"].func,\n to: _propTypes[\"default\"].string.isRequired,\n replace: _propTypes[\"default\"].bool\n});\n\nvar showDeprecationWarning = function showDeprecationWarning(functionName, altFunctionName, version) {\n return console.warn(\"The \\\"\" + functionName + \"\\\" method is now deprecated and will be removed in Gatsby v\" + version + \". Please use \\\"\" + altFunctionName + \"\\\" instead.\");\n};\n\nvar _default = _react[\"default\"].forwardRef(function (props, ref) {\n return _react[\"default\"].createElement(GatsbyLink, (0, _extends2[\"default\"])({\n innerRef: ref\n }, props));\n});\n\nexports[\"default\"] = _default;\n\nvar navigate = function navigate(to, options) {\n window.___navigate(withPrefix(to), options);\n};\n\nexports.navigate = navigate;\n\nvar push = function push(to) {\n showDeprecationWarning(\"push\", \"navigate\", 3);\n\n window.___push(withPrefix(to));\n};\n\nexports.push = push;\n\nvar replace = function replace(to) {\n showDeprecationWarning(\"replace\", \"navigate\", 3);\n\n window.___replace(withPrefix(to));\n}; // TODO: Remove navigateTo for Gatsby v3\n\n\nexports.replace = replace;\n\nvar navigateTo = function navigateTo(to) {\n showDeprecationWarning(\"navigateTo\", \"navigate\", 3);\n return push(to);\n};\n\nexports.navigateTo = navigateTo;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = scrollTop;\n\nvar _isWindow = _interopRequireDefault(require(\"./isWindow\"));\n\nfunction scrollTop(node, val) {\n var win = (0, _isWindow[\"default\"])(node);\n if (val === undefined) return win ? 'pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft : node.scrollLeft;\n if (win) win.scrollTo(val, 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop);else node.scrollLeft = val;\n}\n\nmodule.exports = exports[\"default\"];","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","'use strict';\nvar $export = require('./_export');\nvar $filter = require('./_array-methods')(2);\n\n$export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {\n // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments[1]);\n }\n});\n","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nrequire(\"core-js/modules/es6.function.name\");\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\n\nfunction emptyFunctionWithReset() {}\n\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n ;\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n\n ; // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n};","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is'); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\n\nvar SessionStorage =\n/*#__PURE__*/\nfunction () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return JSON.parse(value);\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return {};\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n\n _proto.getStateKey = function getStateKey(location, key) {\n var locationKey = location.key || location.pathname;\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + locationKey;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports[\"default\"] = SessionStorage;","// 19.1.3.10 Object.is(value1, value2)\nvar $export = require('./_export');\n$export($export.S, 'Object', { is: require('./_same-value') });\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)\nvar $export = require('./_export');\n\n$export($export.P, 'Function', { bind: require('./_bind') });\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _scrollBehavior = _interopRequireDefault(require(\"scroll-behavior\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _history = require(\"@reach/router/lib/history\");\n\nvar _StateStorage = _interopRequireDefault(require(\"./StateStorage\"));\n\nvar propTypes = {\n shouldUpdateScroll: _propTypes[\"default\"].func,\n children: _propTypes[\"default\"].element.isRequired,\n location: _propTypes[\"default\"].object.isRequired\n};\nvar childContextTypes = {\n scrollBehavior: _propTypes[\"default\"].object.isRequired\n};\n\nvar ScrollContext =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inheritsLoose2[\"default\"])(ScrollContext, _React$Component);\n\n function ScrollContext(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"shouldUpdateScroll\", function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing scrollBehavior._stateStorage.\n\n\n return shouldUpdateScroll.call(_this.scrollBehavior, prevRouterProps, routerProps);\n });\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"registerElement\", function (key, element, shouldUpdateScroll) {\n _this.scrollBehavior.registerElement(key, element, shouldUpdateScroll, _this.getRouterProps());\n });\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"unregisterElement\", function (key) {\n _this.scrollBehavior.unregisterElement(key);\n });\n _this.scrollBehavior = new _scrollBehavior[\"default\"]({\n addTransitionHook: _history.globalHistory.listen,\n stateStorage: new _StateStorage[\"default\"](),\n getCurrentLocation: function getCurrentLocation() {\n return _this.props.location;\n },\n shouldUpdateScroll: _this.shouldUpdateScroll\n });\n return _this;\n }\n\n var _proto = ScrollContext.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n scrollBehavior: this\n };\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var location = this.props.location;\n var prevLocation = prevProps.location;\n\n if (location === prevLocation) {\n return;\n }\n\n var prevRouterProps = {\n location: prevProps.location\n }; // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n // Temp hack while awaiting https://github.com/reach/router/issues/119\n\n if (window.__navigatingToLink) {\n location.action = \"PUSH\";\n } else {\n location.action = \"POP\";\n }\n\n this.scrollBehavior.updateScroll(prevRouterProps, {\n history: _history.globalHistory,\n location: location\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.scrollBehavior.stop();\n };\n\n _proto.getRouterProps = function getRouterProps() {\n var location = this.props.location;\n return {\n location: location,\n history: _history.globalHistory\n };\n };\n\n _proto.render = function render() {\n return _react[\"default\"].Children.only(this.props.children);\n };\n\n return ScrollContext;\n}(_react[\"default\"].Component);\n\nScrollContext.propTypes = propTypes;\nScrollContext.childContextTypes = childContextTypes;\nvar _default = ScrollContext;\nexports[\"default\"] = _default;","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","import \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.array.index-of\";\nimport \"core-js/modules/es6.object.create\";\n\n// \n// An event handler can take an optional event argument\n// and should not return a value\n// An array of all currently registered event handlers for a type\n// A map of event types and their corresponding event handlers.\n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all) {\n all = all || Object.create(null);\n return {\n /**\n * Register an event handler for the given type.\n *\n * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n * @param {Function} handler Function to call in response to given event\n * @memberOf mitt\n */\n on: function on(type, handler) {\n (all[type] || (all[type] = [])).push(handler);\n },\n\n /**\n * Remove an event handler for the given type.\n *\n * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n * @param {Function} handler Handler function to remove\n * @memberOf mitt\n */\n off: function off(type, handler) {\n if (all[type]) {\n all[type].splice(all[type].indexOf(handler) >>> 0, 1);\n }\n },\n\n /**\n * Invoke all handlers for the given type.\n * If present, `\"*\"` handlers are invoked after type-matched handlers.\n *\n * @param {String} type The event type to invoke\n * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n * @memberOf mitt\n */\n emit: function emit(type, evt) {\n (all[type] || []).slice().map(function (handler) {\n handler(evt);\n });\n (all['*'] || []).slice().map(function (handler) {\n handler(type, evt);\n });\n }\n };\n}\n\nexport default mitt;","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n'use strict';\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nvar warning = function warning() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function warning(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.length < 10 || /^[s\\W]*$/.test(format)) {\n throw new Error('The warning format should be able to uniquely identify this ' + 'warning. Please, use a more descriptive format than: ' + format);\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n };\n}\n\nmodule.exports = warning;","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _ScrollBehaviorContext = _interopRequireDefault(require(\"./ScrollBehaviorContext\"));\n\nvar _ScrollContainer = _interopRequireDefault(require(\"./ScrollContainer\"));\n\nexports.ScrollContainer = _ScrollContainer[\"default\"];\nexports.ScrollContext = _ScrollBehaviorContext[\"default\"];","'use strict';\nvar $export = require('./_export');\nvar $forEach = require('./_array-methods')(0);\nvar STRICT = require('./_strict-method')([].forEach, true);\n\n$export($export.P + $export.F * !STRICT, 'Array', {\n // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])\n forEach: function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n if (!(len in factories)) {\n for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = arraySlice.call(arguments, 1);\n var bound = function (/* args... */) {\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n return bound;\n};\n","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = getWindow;\n\nfunction getWindow(node) {\n return node === node.window ? node : node.nodeType === 9 ? node.defaultView || node.parentWindow : false;\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","exports.polyfill = Component => Component\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n","// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","import \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/es6.promise\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.date.now\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.array.filter\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar getLocation = function getLocation(source) {\n return _extends({}, source.location, {\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n });\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({\n location: location,\n action: \"POP\"\n });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n state = _extends({}, state, {\n key: Date.now() + \"\"\n }); // try...catch iOS Safari limits to 100 pushState calls\n\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\n\n\nvar createMemorySource = function createMemorySource() {\n var initialPathname = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var index = 0;\n var stack = [{\n pathname: initialPathname,\n search: \"\"\n }];\n var states = [];\n return {\n get location() {\n return stack[index];\n },\n\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n\n get index() {\n return index;\n },\n\n get state() {\n return states[index];\n },\n\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({\n pathname: pathname,\n search: search\n });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = {\n pathname: pathname,\n search: search\n };\n states[index] = state;\n }\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\n\n\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate; ////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @return string\n */\nvar _default = function _default(pathname, localizedManifests) {\n var defaultFilename = \"manifest.webmanifest\";\n\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n\n var localizedManifest = localizedManifests.find(function (app) {\n return pathname.startsWith(app.start_url);\n });\n\n if (!localizedManifest) {\n return defaultFilename;\n }\n\n return \"manifest_\" + localizedManifest.lang + \".webmanifest\";\n};\n\nexports[\"default\"] = _default;","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _default = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nexports[\"default\"] = _default;\nmodule.exports = exports[\"default\"];","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {\n // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], false);\n }\n});\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","'use strict';\nvar global = require('./_global');\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar validate = require('./_validate-collection');\nvar NATIVE_WEAK_MAP = require('./_validate-collection');\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","import 'semantic-ui-css/semantic.min.css';\nimport 'prismjs/themes/prism.css';\nimport './src/styles/global.scss';\n\n/* global woopra */\n\nexport const onRouteUpdate = ({ location }, options) => {\n if (typeof woopra !== 'undefined') {\n if (options && options.debug) {\n console.log('woopra.track() called');\n }\n // On every route change fire this code!!\n woopra.track();\n }\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","import React, { createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { publicLoader } from \"./loader\"\nimport { apiRunner } from \"./api-runner-browser\"\n\n// Renders page\nclass PageRenderer extends React.Component {\n render() {\n const props = {\n ...this.props,\n pathContext: this.props.pageContext,\n }\n\n const [replacementElement] = apiRunner(`replaceComponentRenderer`, {\n props: this.props,\n loader: publicLoader,\n })\n\n const pageElement =\n replacementElement ||\n createElement(this.props.pageResources.component, {\n ...props,\n key: this.props.path || this.props.pageResources.page.path,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n { element: pageElement, props },\n pageElement,\n ({ result }) => {\n return { element: result, props }\n }\n ).pop()\n\n return wrappedPage\n }\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","'use strict';\nrequire('./es6.regexp.exec');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\nvar regexpExec = require('./_regexp-exec');\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$
    ') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar propTypes = {\n scrollKey: _propTypes[\"default\"].string.isRequired,\n shouldUpdateScroll: _propTypes[\"default\"].func,\n children: _propTypes[\"default\"].element.isRequired\n};\nvar contextTypes = {\n // This is necessary when rendering on the client. However, when rendering on\n // the server, this container will do nothing, and thus does not require the\n // scroll behavior context.\n scrollBehavior: _propTypes[\"default\"].object\n};\n\nvar ScrollContainer =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inheritsLoose2[\"default\"])(ScrollContainer, _React$Component);\n\n function ScrollContainer(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this; // We don't re-register if the scroll key changes, so make sure we\n // unregister with the initial scroll key just in case the user changes it.\n\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"shouldUpdateScroll\", function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing scrollBehavior._stateStorage.\n\n\n return shouldUpdateScroll.call(_this.context.scrollBehavior.scrollBehavior, prevRouterProps, routerProps);\n });\n _this.scrollKey = props.scrollKey;\n return _this;\n }\n\n var _proto = ScrollContainer.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.context.scrollBehavior.registerElement(this.props.scrollKey, _reactDom[\"default\"].findDOMNode(this), // eslint-disable-line react/no-find-dom-node\n this.shouldUpdateScroll); // Only keep around the current DOM node in development, as this is only\n // for emitting the appropriate warning.\n\n if (process.env.NODE_ENV !== \"production\") {\n this.domNode = _reactDom[\"default\"].findDOMNode(this); // eslint-disable-line react/no-find-dom-node\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n (0, _warning[\"default\"])(prevProps.scrollKey === this.props.scrollKey, \" does not support changing scrollKey.\");\n\n if (process.env.NODE_ENV !== \"production\") {\n var prevDomNode = this.domNode;\n this.domNode = _reactDom[\"default\"].findDOMNode(this); // eslint-disable-line react/no-find-dom-node\n\n (0, _warning[\"default\"])(this.domNode === prevDomNode, \" does not support changing DOM node.\");\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.context.scrollBehavior.unregisterElement(this.scrollKey);\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return ScrollContainer;\n}(_react[\"default\"].Component);\n\nScrollContainer.propTypes = propTypes;\nScrollContainer.contextTypes = contextTypes;\nvar _default = ScrollContainer;\nexports[\"default\"] = _default;","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","exports.f = Object.getOwnPropertySymbols;\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","'use strict';\n\nvar isRegExp = require('./_is-regexp');\nvar anObject = require('./_an-object');\nvar speciesConstructor = require('./_species-constructor');\nvar advanceStringIndex = require('./_advance-string-index');\nvar toLength = require('./_to-length');\nvar callRegExpExec = require('./_regexp-exec-abstract');\nvar regexpExec = require('./_regexp-exec');\nvar fails = require('./_fails');\nvar $min = Math.min;\nvar $push = [].push;\nvar $SPLIT = 'split';\nvar LENGTH = 'length';\nvar LAST_INDEX = 'lastIndex';\nvar MAX_UINT32 = 0xffffffff;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return $split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy[LAST_INDEX];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n };\n } else {\n internalSplit = $split;\n }\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = defined(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n});\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\n\nrequire(\"core-js/modules/es6.array.is-array\");\n\nrequire(\"core-js/modules/web.dom.iterable\");\n\nrequire(\"core-js/modules/es6.array.iterator\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es6.object.keys\");\n\nrequire(\"core-js/modules/es6.array.for-each\");\n\nexports.__esModule = true;\n\nvar _off = require('dom-helpers/events/off');\n\nvar _off2 = _interopRequireDefault(_off);\n\nvar _on = require('dom-helpers/events/on');\n\nvar _on2 = _interopRequireDefault(_on);\n\nvar _scrollLeft = require('dom-helpers/query/scrollLeft');\n\nvar _scrollLeft2 = _interopRequireDefault(_scrollLeft);\n\nvar _scrollTop = require('dom-helpers/query/scrollTop');\n\nvar _scrollTop2 = _interopRequireDefault(_scrollTop);\n\nvar _requestAnimationFrame = require('dom-helpers/util/requestAnimationFrame');\n\nvar _requestAnimationFrame2 = _interopRequireDefault(_requestAnimationFrame);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _utils = require('./utils');\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n/* eslint-disable no-underscore-dangle */\n// Try at most this many times to scroll, to avoid getting stuck.\n\n\nvar MAX_SCROLL_ATTEMPTS = 2;\n\nvar ScrollBehavior = function () {\n function ScrollBehavior(_ref) {\n var _this = this;\n\n var addTransitionHook = _ref.addTransitionHook,\n stateStorage = _ref.stateStorage,\n getCurrentLocation = _ref.getCurrentLocation,\n shouldUpdateScroll = _ref.shouldUpdateScroll;\n\n _classCallCheck(this, ScrollBehavior);\n\n this._restoreScrollRestoration = function () {\n /* istanbul ignore if: not supported by any browsers on Travis */\n if (_this._oldScrollRestoration) {\n try {\n window.history.scrollRestoration = _this._oldScrollRestoration;\n } catch (e) {\n /* silence */\n }\n }\n };\n\n this._onWindowScroll = function () {\n // It's possible that this scroll operation was triggered by what will be a\n // `POP` transition. Instead of updating the saved location immediately, we\n // have to enqueue the update, then potentially cancel it if we observe a\n // location update.\n if (!_this._saveWindowPositionHandle) {\n _this._saveWindowPositionHandle = (0, _requestAnimationFrame2[\"default\"])(_this._saveWindowPosition);\n }\n\n if (_this._windowScrollTarget) {\n var _windowScrollTarget = _this._windowScrollTarget,\n xTarget = _windowScrollTarget[0],\n yTarget = _windowScrollTarget[1];\n var x = (0, _scrollLeft2[\"default\"])(window);\n var y = (0, _scrollTop2[\"default\"])(window);\n\n if (x === xTarget && y === yTarget) {\n _this._windowScrollTarget = null;\n\n _this._cancelCheckWindowScroll();\n }\n }\n };\n\n this._saveWindowPosition = function () {\n _this._saveWindowPositionHandle = null;\n\n _this._savePosition(null, window);\n };\n\n this._checkWindowScrollPosition = function () {\n _this._checkWindowScrollHandle = null; // We can only get here if scrollTarget is set. Every code path that unsets\n // scroll target also cancels the handle to avoid calling this handler.\n // Still, check anyway just in case.\n\n /* istanbul ignore if: paranoid guard */\n\n if (!_this._windowScrollTarget) {\n return;\n }\n\n _this.scrollToTarget(window, _this._windowScrollTarget);\n\n ++_this._numWindowScrollAttempts;\n /* istanbul ignore if: paranoid guard */\n\n if (_this._numWindowScrollAttempts >= MAX_SCROLL_ATTEMPTS) {\n _this._windowScrollTarget = null;\n return;\n }\n\n _this._checkWindowScrollHandle = (0, _requestAnimationFrame2[\"default\"])(_this._checkWindowScrollPosition);\n };\n\n this._stateStorage = stateStorage;\n this._getCurrentLocation = getCurrentLocation;\n this._shouldUpdateScroll = shouldUpdateScroll; // This helps avoid some jankiness in fighting against the browser's\n // default scroll behavior on `POP` transitions.\n\n /* istanbul ignore else: Travis browsers all support this */\n\n if ('scrollRestoration' in window.history && // Unfortunately, Safari on iOS freezes for 2-6s after the user swipes to\n // navigate through history with scrollRestoration being 'manual', so we\n // need to detect this browser and exclude it from the following code\n // until this bug is fixed by Apple.\n !(0, _utils.isMobileSafari)()) {\n this._oldScrollRestoration = window.history.scrollRestoration;\n\n try {\n window.history.scrollRestoration = 'manual'; // Scroll restoration persists across page reloads. We want to reset\n // this to the original value, so that we can let the browser handle\n // restoring the initial scroll position on server-rendered pages.\n\n (0, _on2[\"default\"])(window, 'beforeunload', this._restoreScrollRestoration);\n } catch (e) {\n this._oldScrollRestoration = null;\n }\n } else {\n this._oldScrollRestoration = null;\n }\n\n this._saveWindowPositionHandle = null;\n this._checkWindowScrollHandle = null;\n this._windowScrollTarget = null;\n this._numWindowScrollAttempts = 0;\n this._scrollElements = {}; // We have to listen to each window scroll update rather than to just\n // location updates, because some browsers will update scroll position\n // before emitting the location change.\n\n (0, _on2[\"default\"])(window, 'scroll', this._onWindowScroll);\n this._removeTransitionHook = addTransitionHook(function () {\n _requestAnimationFrame2[\"default\"].cancel(_this._saveWindowPositionHandle);\n\n _this._saveWindowPositionHandle = null;\n Object.keys(_this._scrollElements).forEach(function (key) {\n var scrollElement = _this._scrollElements[key];\n\n _requestAnimationFrame2[\"default\"].cancel(scrollElement.savePositionHandle);\n\n scrollElement.savePositionHandle = null; // It's fine to save element scroll positions here, though; the browser\n // won't modify them.\n\n _this._saveElementPosition(key);\n });\n });\n }\n\n ScrollBehavior.prototype.registerElement = function registerElement(key, element, shouldUpdateScroll, context) {\n var _this2 = this;\n\n !!this._scrollElements[key] ? process.env.NODE_ENV !== 'production' ? (0, _invariant2[\"default\"])(false, 'ScrollBehavior: There is already an element registered for `%s`.', key) : (0, _invariant2[\"default\"])(false) : void 0;\n\n var saveElementPosition = function saveElementPosition() {\n _this2._saveElementPosition(key);\n };\n\n var scrollElement = {\n element: element,\n shouldUpdateScroll: shouldUpdateScroll,\n savePositionHandle: null,\n onScroll: function onScroll() {\n if (!scrollElement.savePositionHandle) {\n scrollElement.savePositionHandle = (0, _requestAnimationFrame2[\"default\"])(saveElementPosition);\n }\n }\n };\n this._scrollElements[key] = scrollElement;\n (0, _on2[\"default\"])(element, 'scroll', scrollElement.onScroll);\n\n this._updateElementScroll(key, null, context);\n };\n\n ScrollBehavior.prototype.unregisterElement = function unregisterElement(key) {\n !this._scrollElements[key] ? process.env.NODE_ENV !== 'production' ? (0, _invariant2[\"default\"])(false, 'ScrollBehavior: There is no element registered for `%s`.', key) : (0, _invariant2[\"default\"])(false) : void 0;\n var _scrollElements$key = this._scrollElements[key],\n element = _scrollElements$key.element,\n onScroll = _scrollElements$key.onScroll,\n savePositionHandle = _scrollElements$key.savePositionHandle;\n (0, _off2[\"default\"])(element, 'scroll', onScroll);\n\n _requestAnimationFrame2[\"default\"].cancel(savePositionHandle);\n\n delete this._scrollElements[key];\n };\n\n ScrollBehavior.prototype.updateScroll = function updateScroll(prevContext, context) {\n var _this3 = this;\n\n this._updateWindowScroll(prevContext, context);\n\n Object.keys(this._scrollElements).forEach(function (key) {\n _this3._updateElementScroll(key, prevContext, context);\n });\n };\n\n ScrollBehavior.prototype.stop = function stop() {\n this._restoreScrollRestoration();\n\n (0, _off2[\"default\"])(window, 'scroll', this._onWindowScroll);\n\n this._cancelCheckWindowScroll();\n\n this._removeTransitionHook();\n };\n\n ScrollBehavior.prototype._cancelCheckWindowScroll = function _cancelCheckWindowScroll() {\n _requestAnimationFrame2[\"default\"].cancel(this._checkWindowScrollHandle);\n\n this._checkWindowScrollHandle = null;\n };\n\n ScrollBehavior.prototype._saveElementPosition = function _saveElementPosition(key) {\n var scrollElement = this._scrollElements[key];\n scrollElement.savePositionHandle = null;\n\n this._savePosition(key, scrollElement.element);\n };\n\n ScrollBehavior.prototype._savePosition = function _savePosition(key, element) {\n this._stateStorage.save(this._getCurrentLocation(), key, [(0, _scrollLeft2[\"default\"])(element), (0, _scrollTop2[\"default\"])(element)]);\n };\n\n ScrollBehavior.prototype._updateWindowScroll = function _updateWindowScroll(prevContext, context) {\n // Whatever we were doing before isn't relevant any more.\n this._cancelCheckWindowScroll();\n\n this._windowScrollTarget = this._getScrollTarget(null, this._shouldUpdateScroll, prevContext, context); // Updating the window scroll position is really flaky. Just trying to\n // scroll it isn't enough. Instead, try to scroll a few times until it\n // works.\n\n this._numWindowScrollAttempts = 0;\n\n this._checkWindowScrollPosition();\n };\n\n ScrollBehavior.prototype._updateElementScroll = function _updateElementScroll(key, prevContext, context) {\n var _scrollElements$key2 = this._scrollElements[key],\n element = _scrollElements$key2.element,\n shouldUpdateScroll = _scrollElements$key2.shouldUpdateScroll;\n\n var scrollTarget = this._getScrollTarget(key, shouldUpdateScroll, prevContext, context);\n\n if (!scrollTarget) {\n return;\n } // Unlike with the window, there shouldn't be any flakiness to deal with\n // here.\n\n\n this.scrollToTarget(element, scrollTarget);\n };\n\n ScrollBehavior.prototype._getDefaultScrollTarget = function _getDefaultScrollTarget(location) {\n var hash = location.hash;\n\n if (hash && hash !== '#') {\n return hash.charAt(0) === '#' ? hash.slice(1) : hash;\n }\n\n return [0, 0];\n };\n\n ScrollBehavior.prototype._getScrollTarget = function _getScrollTarget(key, shouldUpdateScroll, prevContext, context) {\n var scrollTarget = shouldUpdateScroll ? shouldUpdateScroll.call(this, prevContext, context) : true;\n\n if (!scrollTarget || Array.isArray(scrollTarget) || typeof scrollTarget === 'string') {\n return scrollTarget;\n }\n\n var location = this._getCurrentLocation();\n\n return this._getSavedScrollTarget(key, location) || this._getDefaultScrollTarget(location);\n };\n\n ScrollBehavior.prototype._getSavedScrollTarget = function _getSavedScrollTarget(key, location) {\n if (location.action === 'PUSH') {\n return null;\n }\n\n return this._stateStorage.read(location, key);\n };\n\n ScrollBehavior.prototype.scrollToTarget = function scrollToTarget(element, target) {\n if (typeof target === 'string') {\n var targetElement = document.getElementById(target) || document.getElementsByName(target)[0];\n\n if (targetElement) {\n targetElement.scrollIntoView();\n return;\n } // Fallback to scrolling to top when target fragment doesn't exist.\n\n\n target = [0, 0]; // eslint-disable-line no-param-reassign\n }\n\n var _target = target,\n left = _target[0],\n top = _target[1];\n (0, _scrollLeft2[\"default\"])(element, left);\n (0, _scrollTop2[\"default\"])(element, top);\n };\n\n return ScrollBehavior;\n}();\n\nexports[\"default\"] = ScrollBehavior;\nmodule.exports = exports['default'];","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","module.exports = false;\n","import \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.array.reduce\";\nimport \"core-js/modules/es6.array.filter\";\nimport \"core-js/modules/es6.array.sort\";\nimport \"core-js/modules/es6.array.index-of\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.regexp.split\";\nimport invariant from \"invariant\"; ////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\n\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n}; ////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\n\n\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route[\"default\"]) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n var _isSplat = routeSegment === \"*\";\n\n if (_isSplat) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n params[\"*\"] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : invariant(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\n\n\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\n}; ////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\n\n\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname); // ?a=b, /users?b=c => /users?a=b\n\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n } // profile, /users/789 => /users/789/profile\n\n\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n } // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n\n\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n}; ////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\n\nvar insertParams = function insertParams(path, params) {\n var segments = segmentize(path);\n return \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar paramRe = /^:(.+)/;\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\n\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\n\nvar isSplat = function isSplat(segment) {\n return segment === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route[\"default\"] ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return {\n route: route,\n score: score,\n index: index\n };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname, query) {\n return pathname + (query ? \"?\" + query : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"]; ////////////////////////////////////////////////////////////////////////////////\n\nexport { startsWith, pick, match, resolve, insertParams, validateRedirect };","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","module.exports = [{\n plugin: require('../node_modules/gatsby-remark-images/gatsby-browser.js'),\n options: {\"plugins\":[],\"maxWidth\":590},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"Gatsby Starter Blog\",\"short_name\":\"GatsbyJS\",\"start_url\":\"/\",\"background_color\":\"#ffffff\",\"theme_color\":\"#663399\",\"display\":\"minimal-ui\",\"icon\":\"static/assets/img/site/site-icon.png\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-offline/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","'use strict';\nvar fails = require('./_fails');\n\nmodule.exports = function (method, arg) {\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call\n arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n });\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","require(\"core-js/modules/es6.array.index-of\");\n\n/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n * ie10 fix - Mikael Kristiansson 2019\n */\n!function (name, definition) {\n if (typeof module != 'undefined') module.exports = definition();else if (typeof define == 'function' && typeof define.amd == 'object') define(definition);else this[name] = definition();\n}('domready', function () {\n var ie10 = false;\n\n if (navigator.appVersion.indexOf(\"MSIE 10\") !== -1) {\n ie10 = true;\n }\n\n var fns = [],\n _listener,\n doc = typeof document === 'object' && document,\n hack = ie10 ? doc.documentElement.doScroll() : doc.documentElement.doScroll,\n domContentLoaded = 'DOMContentLoaded',\n loaded = doc && (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState);\n\n if (!loaded && doc) doc.addEventListener(domContentLoaded, _listener = function listener() {\n doc.removeEventListener(domContentLoaded, _listener);\n loaded = 1;\n\n while (_listener = fns.shift()) {\n _listener();\n }\n });\n return function (fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn);\n };\n});","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n'use strict';\n/* eslint-disable no-unused-vars */\n\nrequire(\"core-js/modules/web.dom.iterable\");\n\nrequire(\"core-js/modules/es6.array.iterator\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es6.object.keys\");\n\nrequire(\"core-js/modules/es6.regexp.split\");\n\nrequire(\"core-js/modules/es6.array.for-each\");\n\nrequire(\"core-js/modules/es6.array.map\");\n\nrequire(\"core-js/modules/es6.object.assign\");\n\nrequire(\"core-js/modules/es6.symbol\");\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n\n return Object(val);\n}\n\nfunction shouldUseNative() {\n try {\n if (!Object.assign) {\n return false;\n } // Detect buggy property enumeration order in older V8 versions.\n // https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\n\n var test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\n test1[5] = 'de';\n\n if (Object.getOwnPropertyNames(test1)[0] === '5') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test2 = {};\n\n for (var i = 0; i < 10; i++) {\n test2['_' + String.fromCharCode(i)] = i;\n }\n\n var order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n return test2[n];\n });\n\n if (order2.join('') !== '0123456789') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test3 = {};\n 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n test3[letter] = letter;\n });\n\n if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n return false;\n }\n\n return true;\n } catch (err) {\n // We don't expect any of the above to throw, but better to be safe.\n return false;\n }\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n\n return to;\n};","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","exports.f = require('./_wks');\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function(reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function(e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar sameValue = require('./_same-value');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative($search, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","\"use strict\";\n\nexports.__esModule = true;\nexports.isMobileSafari = isMobileSafari;\n\nfunction isMobileSafari() {\n return /iPad|iPhone|iPod/.test(window.navigator.platform) && /^((?!CriOS).)*Safari/.test(window.navigator.userAgent);\n}","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nrequire(\"core-js/modules/es6.function.name\");\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nvar invariant = function invariant(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n\n throw error;\n }\n};\n\nmodule.exports = invariant;","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative($match, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n if (!rx.global) return regExpExec(rx, S);\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","'use strict';\n// 21.1.3.25 String.prototype.trim()\nrequire('./_string-trim')('trim', function ($trim) {\n return function trim() {\n return $trim(this, 3);\n };\n});\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n","'use strict';\n\nvar regexpFlags = require('./_flags');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","exports.f = {}.propertyIsEnumerable;\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader from \"./loader\"\nimport redirects from \"./redirects.json\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { navigate as reachNavigate } from \"@reach/router\"\nimport { parsePath } from \"gatsby-link\"\n\n// Convert to a map for faster lookup in maybeRedirect()\nconst redirectMap = redirects.reduce((map, redirect) => {\n map[redirect.fromPath] = redirect\n return map\n}, {})\n\nfunction maybeRedirect(pathname) {\n const redirect = redirectMap[pathname]\n\n if (redirect != null) {\n if (process.env.NODE_ENV !== `production`) {\n const pageResources = loader.loadPageSync(pathname)\n\n if (pageResources != null) {\n console.error(\n `The route \"${pathname}\" matches both a page and a redirect; this is probably not intentional.`\n )\n }\n }\n\n window.___replace(redirect.toPath)\n return true\n } else {\n return false\n }\n}\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n\n // Temp hack while awaiting https://github.com/reach/router/issues/119\n window.__navigatingToLink = false\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Temp hack while awaiting https://github.com/reach/router/issues/119\n if (!options.replace) {\n window.__navigatingToLink = true\n }\n\n let { pathname } = parsePath(to)\n const redirect = redirectMap[pathname]\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath\n pathname = parsePath(to).pathname\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === `error`) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n }\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n console.log(`Site has changed on server. Reloading browser`)\n window.location = pathname\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => this._stateStorage.read(args),\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // Temp hack while awaiting https://github.com/reach/router/issues/119\n window.__navigatingToLink = false\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n\n // Check for initial page-load redirect\n maybeRedirect(window.location.pathname)\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n componentDidUpdate(prevProps, prevState, shouldFireRouteUpdate) {\n if (shouldFireRouteUpdate) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n getSnapshotBeforeUpdate(prevProps) {\n if (this.props.location.pathname !== prevProps.location.pathname) {\n onPreRouteUpdate(this.props.location, prevProps.location)\n return true\n }\n\n return false\n }\n\n render() {\n return this.props.children\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }\n\n for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }\n\n return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources: pageResources || loader.loadPageSync(location.pathname),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(location.pathname)\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== `error`) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(nextProps.location.pathname)\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport { Router, navigate, Location, BaseContext } from \"@reach/router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport domReady from \"@mikaelkristiansson/domready\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"./async-requires\"\nimport { setLoader, ProdLoader, publicLoader } from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"./match-paths.json\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n class LocationHandler extends React.Component {\n render() {\n const { location } = this.props\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n \n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). But\n // only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !== browserLoc.pathname &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath === `/404.html` ||\n pagePath.match(/^\\/404\\/?$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(__BASE_PATH__ + pagePath + browserLoc.search + browserLoc.hash, {\n replace: true,\n })\n }\n\n publicLoader.loadPage(browserLoc.pathname).then(page => {\n if (!page || page.status === `error`) {\n throw new Error(\n `page resources for ${browserLoc.pathname} not found. Not rendering React`\n )\n }\n\n window.___webpackCompilationHash = page.page.webpackCompilationHash\n\n const Root = () => (\n \n {locationContext => }\n \n )\n\n const WrappedRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n let NewRoot = () => WrappedRoot\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n ReactDOM.hydrate\n )[0]\n\n domReady(() => {\n renderer(\n ,\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : void 0,\n () => {\n apiRunner(`onInitialClientRender`)\n }\n )\n })\n })\n})\n","'use strict';\nvar $export = require('./_export');\nvar $indexOf = require('./_array-includes')(false);\nvar $native = [].indexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? $native.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments[1]);\n }\n});\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nmodule.exports = _inheritsLoose;","'use strict';\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar fails = require('./_fails');\nvar $sort = [].sort;\nvar test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function () {\n // IE8-\n test.sort(undefined);\n}) || !fails(function () {\n // V8 bug\n test.sort(null);\n // Old WebKit\n}) || !require('./_strict-method')($sort)), 'Array', {\n // 22.1.3.25 Array.prototype.sort(comparefn)\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? $sort.call(toObject(this))\n : $sort.call(toObject(this), aFunction(comparefn));\n }\n});\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\nmodule.exports = ReactPropTypesSecret;","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Link, {\n withPrefix,\n withAssetPrefix,\n navigate,\n push,\n replace,\n navigateTo,\n parsePath,\n} from \"gatsby-link\"\nimport PageRenderer from \"./public-page-renderer\"\nimport loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nconst StaticQueryContext = React.createContext({})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
    Loading (StaticQuery)
    }\n
    \n )\n}\n\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n const context = React.useContext(StaticQueryContext)\n if (context[query] && context[query].data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport {\n Link,\n withAssetPrefix,\n withPrefix,\n graphql,\n parsePath,\n navigate,\n push, // TODO replace for v3\n replace, // TODO remove replace for v3\n navigateTo, // TODO: remove navigateTo for v3\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n useStaticQuery,\n prefetchPathname,\n}\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","'use strict';\n\nvar classof = require('./_classof');\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","import React from \"react\"\n\nexport default React.createContext\n","import \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.promise\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.array.index-of\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n/* eslint-disable jsx-a11y/anchor-has-content */\n\n\nimport React from \"react\";\nimport warning from \"warning\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"invariant\";\nimport createContext from \"create-react-context\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { startsWith, pick, resolve, match, insertParams, validateRedirect } from \"./lib/utils\";\nimport { globalHistory, navigate, createHistory, createMemorySource } from \"./lib/history\"; ////////////////////////////////////////////////////////////////////////////////\n\nvar createNamedContext = function createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.Consumer.displayName = name + \".Consumer\";\n Ctx.Provider.displayName = name + \".Provider\";\n return Ctx;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Location Context/Provider\n\n\nvar LocationContext = createNamedContext(\"Location\"); // sets up a listener if there isn't one already so apps don't need to be\n// wrapped in some top level provider\n\nvar Location = function Location(_ref) {\n var children = _ref.children;\n return React.createElement(LocationContext.Consumer, null, function (context) {\n return context ? children(context) : React.createElement(LocationProvider, null, children);\n });\n};\n\nvar LocationProvider = function (_React$Component) {\n _inherits(LocationProvider, _React$Component);\n\n function LocationProvider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, LocationProvider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n context: _this.getContext(),\n refs: {\n unlisten: null\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n LocationProvider.prototype.getContext = function getContext() {\n var _props$history = this.props.history,\n navigate = _props$history.navigate,\n location = _props$history.location;\n return {\n navigate: navigate,\n location: location\n };\n };\n\n LocationProvider.prototype.componentDidCatch = function componentDidCatch(error, info) {\n if (isRedirect(error)) {\n var _navigate = this.props.history.navigate;\n\n _navigate(error.uri, {\n replace: true\n });\n } else {\n throw error;\n }\n };\n\n LocationProvider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevState.context.location !== this.state.context.location) {\n this.props.history._onTransitionComplete();\n }\n };\n\n LocationProvider.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n var refs = this.state.refs,\n history = this.props.history;\n refs.unlisten = history.listen(function () {\n Promise.resolve().then(function () {\n // TODO: replace rAF with react deferred update API when it's ready https://github.com/facebook/react/issues/13306\n requestAnimationFrame(function () {\n if (!_this2.unmounted) {\n _this2.setState(function () {\n return {\n context: _this2.getContext()\n };\n });\n }\n });\n });\n });\n };\n\n LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n var refs = this.state.refs;\n this.unmounted = true;\n refs.unlisten();\n };\n\n LocationProvider.prototype.render = function render() {\n var context = this.state.context,\n children = this.props.children;\n return React.createElement(LocationContext.Provider, {\n value: context\n }, typeof children === \"function\" ? children(context) : children || null);\n };\n\n return LocationProvider;\n}(React.Component); ////////////////////////////////////////////////////////////////////////////////\n\n\nLocationProvider.defaultProps = {\n history: globalHistory\n};\nprocess.env.NODE_ENV !== \"production\" ? LocationProvider.propTypes = {\n history: PropTypes.object.isRequired\n} : void 0;\n\nvar ServerLocation = function ServerLocation(_ref2) {\n var url = _ref2.url,\n children = _ref2.children;\n return React.createElement(LocationContext.Provider, {\n value: {\n location: {\n pathname: url,\n search: \"\",\n hash: \"\"\n },\n navigate: function navigate() {\n throw new Error(\"You can't call navigate on the server.\");\n }\n }\n }, children);\n}; ////////////////////////////////////////////////////////////////////////////////\n// Sets baseuri and basepath for nested routers and links\n\n\nvar BaseContext = createNamedContext(\"Base\", {\n baseuri: \"/\",\n basepath: \"/\"\n}); ////////////////////////////////////////////////////////////////////////////////\n// The main event, welcome to the show everybody.\n\nvar Router = function Router(props) {\n return React.createElement(BaseContext.Consumer, null, function (baseContext) {\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RouterImpl, _extends({}, baseContext, locationContext, props));\n });\n });\n};\n\nvar RouterImpl = function (_React$PureComponent) {\n _inherits(RouterImpl, _React$PureComponent);\n\n function RouterImpl() {\n _classCallCheck(this, RouterImpl);\n\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n\n RouterImpl.prototype.render = function render() {\n var _props = this.props,\n location = _props.location,\n _navigate2 = _props.navigate,\n basepath = _props.basepath,\n primary = _props.primary,\n children = _props.children,\n baseuri = _props.baseuri,\n _props$component = _props.component,\n component = _props$component === undefined ? \"div\" : _props$component,\n domProps = _objectWithoutProperties(_props, [\"location\", \"navigate\", \"basepath\", \"primary\", \"children\", \"baseuri\", \"component\"]);\n\n var routes = React.Children.map(children, createRoute(basepath));\n var pathname = location.pathname;\n var match = pick(routes, pathname);\n\n if (match) {\n var params = match.params,\n uri = match.uri,\n route = match.route,\n element = match.route.value; // remove the /* from the end for child routes relative paths\n\n basepath = route[\"default\"] ? basepath : route.path.replace(/\\*$/, \"\");\n\n var props = _extends({}, params, {\n uri: uri,\n location: location,\n navigate: function navigate(to, options) {\n return _navigate2(resolve(to, uri), options);\n }\n });\n\n var clone = React.cloneElement(element, props, element.props.children ? React.createElement(Router, {\n primary: primary\n }, element.props.children) : undefined); // using 'div' for < 16.3 support\n\n var FocusWrapper = primary ? FocusHandler : component; // don't pass any props to 'div'\n\n var wrapperProps = primary ? _extends({\n uri: uri,\n location: location,\n component: component\n }, domProps) : domProps;\n return React.createElement(BaseContext.Provider, {\n value: {\n baseuri: uri,\n basepath: basepath\n }\n }, React.createElement(FocusWrapper, wrapperProps, clone));\n } else {\n // Not sure if we want this, would require index routes at every level\n // warning(\n // false,\n // `\\n\\nNothing matched:\\n\\t${\n // location.pathname\n // }\\n\\nPaths checked: \\n\\t${routes\n // .map(route => route.path)\n // .join(\n // \"\\n\\t\"\n // )}\\n\\nTo get rid of this warning, add a default NotFound component as child of Router:\n // \\n\\tlet NotFound = () =>
    Not Found!
    \n // \\n\\t\\n\\t \\n\\t {/* ... */}\\n\\t`\n // );\n return null;\n }\n };\n\n return RouterImpl;\n}(React.PureComponent);\n\nRouterImpl.defaultProps = {\n primary: true\n};\nvar FocusContext = createNamedContext(\"Focus\");\n\nvar FocusHandler = function FocusHandler(_ref3) {\n var uri = _ref3.uri,\n location = _ref3.location,\n component = _ref3.component,\n domProps = _objectWithoutProperties(_ref3, [\"uri\", \"location\", \"component\"]);\n\n return React.createElement(FocusContext.Consumer, null, function (requestFocus) {\n return React.createElement(FocusHandlerImpl, _extends({}, domProps, {\n component: component,\n requestFocus: requestFocus,\n uri: uri,\n location: location\n }));\n });\n}; // don't focus on initial render\n\n\nvar initialRender = true;\nvar focusHandlerCount = 0;\n\nvar FocusHandlerImpl = function (_React$Component2) {\n _inherits(FocusHandlerImpl, _React$Component2);\n\n function FocusHandlerImpl() {\n var _temp2, _this4, _ret2;\n\n _classCallCheck(this, FocusHandlerImpl);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this4 = _possibleConstructorReturn(this, _React$Component2.call.apply(_React$Component2, [this].concat(args))), _this4), _this4.state = {}, _this4.requestFocus = function (node) {\n if (!_this4.state.shouldFocus) {\n node.focus();\n }\n }, _temp2), _possibleConstructorReturn(_this4, _ret2);\n }\n\n FocusHandlerImpl.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var initial = prevState.uri == null;\n\n if (initial) {\n return _extends({\n shouldFocus: true\n }, nextProps);\n } else {\n var myURIChanged = nextProps.uri !== prevState.uri;\n var navigatedUpToMe = prevState.location.pathname !== nextProps.location.pathname && nextProps.location.pathname === nextProps.uri;\n return _extends({\n shouldFocus: myURIChanged || navigatedUpToMe\n }, nextProps);\n }\n };\n\n FocusHandlerImpl.prototype.componentDidMount = function componentDidMount() {\n focusHandlerCount++;\n this.focus();\n };\n\n FocusHandlerImpl.prototype.componentWillUnmount = function componentWillUnmount() {\n focusHandlerCount--;\n\n if (focusHandlerCount === 0) {\n initialRender = true;\n }\n };\n\n FocusHandlerImpl.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevProps.location !== this.props.location && this.state.shouldFocus) {\n this.focus();\n }\n };\n\n FocusHandlerImpl.prototype.focus = function focus() {\n if (process.env.NODE_ENV === \"test\") {\n // getting cannot read property focus of null in the tests\n // and that bit of global `initialRender` state causes problems\n // should probably figure it out!\n return;\n }\n\n var requestFocus = this.props.requestFocus;\n\n if (requestFocus) {\n requestFocus(this.node);\n } else {\n if (initialRender) {\n initialRender = false;\n } else {\n // React polyfills [autofocus] and it fires earlier than cDM,\n // so we were stealing focus away, this line prevents that.\n if (!this.node.contains(document.activeElement)) {\n this.node.focus();\n }\n }\n }\n };\n\n FocusHandlerImpl.prototype.render = function render() {\n var _this5 = this;\n\n var _props2 = this.props,\n children = _props2.children,\n style = _props2.style,\n requestFocus = _props2.requestFocus,\n _props2$role = _props2.role,\n role = _props2$role === undefined ? \"group\" : _props2$role,\n _props2$component = _props2.component,\n Comp = _props2$component === undefined ? \"div\" : _props2$component,\n uri = _props2.uri,\n location = _props2.location,\n domProps = _objectWithoutProperties(_props2, [\"children\", \"style\", \"requestFocus\", \"role\", \"component\", \"uri\", \"location\"]);\n\n return React.createElement(Comp, _extends({\n style: _extends({\n outline: \"none\"\n }, style),\n tabIndex: \"-1\",\n role: role,\n ref: function ref(n) {\n return _this5.node = n;\n }\n }, domProps), React.createElement(FocusContext.Provider, {\n value: this.requestFocus\n }, this.props.children));\n };\n\n return FocusHandlerImpl;\n}(React.Component);\n\npolyfill(FocusHandlerImpl);\n\nvar k = function k() {}; ////////////////////////////////////////////////////////////////////////////////\n\n\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = function forwardRef(C) {\n return C;\n };\n}\n\nvar Link = forwardRef(function (_ref4, ref) {\n var innerRef = _ref4.innerRef,\n props = _objectWithoutProperties(_ref4, [\"innerRef\"]);\n\n return React.createElement(BaseContext.Consumer, null, function (_ref5) {\n var basepath = _ref5.basepath,\n baseuri = _ref5.baseuri;\n return React.createElement(Location, null, function (_ref6) {\n var location = _ref6.location,\n navigate = _ref6.navigate;\n\n var to = props.to,\n state = props.state,\n replace = props.replace,\n _props$getProps = props.getProps,\n getProps = _props$getProps === undefined ? k : _props$getProps,\n anchorProps = _objectWithoutProperties(props, [\"to\", \"state\", \"replace\", \"getProps\"]);\n\n var href = resolve(to, baseuri);\n var isCurrent = location.pathname === href;\n var isPartiallyCurrent = startsWith(location.pathname, href);\n return React.createElement(\"a\", _extends({\n ref: ref || innerRef,\n \"aria-current\": isCurrent ? \"page\" : undefined\n }, anchorProps, getProps({\n isCurrent: isCurrent,\n isPartiallyCurrent: isPartiallyCurrent,\n href: href,\n location: location\n }), {\n href: href,\n onClick: function onClick(event) {\n if (anchorProps.onClick) anchorProps.onClick(event);\n\n if (shouldNavigate(event)) {\n event.preventDefault();\n navigate(href, {\n state: state,\n replace: replace\n });\n }\n }\n }));\n });\n });\n}); ////////////////////////////////////////////////////////////////////////////////\n\nfunction RedirectRequest(uri) {\n this.uri = uri;\n}\n\nvar isRedirect = function isRedirect(o) {\n return o instanceof RedirectRequest;\n};\n\nvar redirectTo = function redirectTo(to) {\n throw new RedirectRequest(to);\n};\n\nvar RedirectImpl = function (_React$Component3) {\n _inherits(RedirectImpl, _React$Component3);\n\n function RedirectImpl() {\n _classCallCheck(this, RedirectImpl);\n\n return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));\n } // Support React < 16 with this hook\n\n\n RedirectImpl.prototype.componentDidMount = function componentDidMount() {\n var _props3 = this.props,\n navigate = _props3.navigate,\n to = _props3.to,\n from = _props3.from,\n _props3$replace = _props3.replace,\n replace = _props3$replace === undefined ? true : _props3$replace,\n state = _props3.state,\n noThrow = _props3.noThrow,\n props = _objectWithoutProperties(_props3, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\"]);\n\n Promise.resolve().then(function () {\n navigate(insertParams(to, props), {\n replace: replace,\n state: state\n });\n });\n };\n\n RedirectImpl.prototype.render = function render() {\n var _props4 = this.props,\n navigate = _props4.navigate,\n to = _props4.to,\n from = _props4.from,\n replace = _props4.replace,\n state = _props4.state,\n noThrow = _props4.noThrow,\n props = _objectWithoutProperties(_props4, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\"]);\n\n if (!noThrow) redirectTo(insertParams(to, props));\n return null;\n };\n\n return RedirectImpl;\n}(React.Component);\n\nvar Redirect = function Redirect(props) {\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RedirectImpl, _extends({}, locationContext, props));\n });\n};\n\nprocess.env.NODE_ENV !== \"production\" ? Redirect.propTypes = {\n from: PropTypes.string,\n to: PropTypes.string.isRequired\n} : void 0; ////////////////////////////////////////////////////////////////////////////////\n\nvar Match = function Match(_ref7) {\n var path = _ref7.path,\n children = _ref7.children;\n return React.createElement(BaseContext.Consumer, null, function (_ref8) {\n var baseuri = _ref8.baseuri;\n return React.createElement(Location, null, function (_ref9) {\n var navigate = _ref9.navigate,\n location = _ref9.location;\n var resolvedPath = resolve(path, baseuri);\n var result = match(resolvedPath, location.pathname);\n return children({\n navigate: navigate,\n location: location,\n match: result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null\n });\n });\n });\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar stripSlashes = function stripSlashes(str) {\n return str.replace(/(^\\/+|\\/+$)/g, \"\");\n};\n\nvar createRoute = function createRoute(basepath) {\n return function (element) {\n if (!element) {\n return null;\n }\n\n !(element.props.path || element.props[\"default\"] || element.type === Redirect) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \": Children of must have a `path` or `default` prop, or be a ``. None found on element type `\" + element.type + \"`\") : invariant(false) : void 0;\n !!(element.type === Redirect && (!element.props.from || !element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" requires both \\\"from\\\" and \\\"to\\\" props when inside a .\") : invariant(false) : void 0;\n !!(element.type === Redirect && !validateRedirect(element.props.from, element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.\") : invariant(false) : void 0;\n\n if (element.props[\"default\"]) {\n return {\n value: element,\n \"default\": true\n };\n }\n\n var elementPath = element.type === Redirect ? element.props.from : element.props.path;\n var path = elementPath === \"/\" ? basepath : stripSlashes(basepath) + \"/\" + stripSlashes(elementPath);\n return {\n value: element,\n \"default\": element.props[\"default\"],\n path: element.props.children ? stripSlashes(path) + \"/*\" : path\n };\n };\n};\n\nvar shouldNavigate = function shouldNavigate(event) {\n return !event.defaultPrevented && event.button === 0 && !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}; ////////////////////////////////////////////////////////////////////////\n\n\nexport { Link, Location, LocationProvider, Match, Redirect, Router, ServerLocation, createHistory, createMemorySource, isRedirect, navigate, redirectTo, globalHistory , BaseContext };","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = scrollTop;\n\nvar _isWindow = _interopRequireDefault(require(\"./isWindow\"));\n\nfunction scrollTop(node, val) {\n var win = (0, _isWindow[\"default\"])(node);\n if (val === undefined) return win ? 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop : node.scrollTop;\n if (win) win.scrollTo('pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft, val);else node.scrollTop = val;\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object');\nvar $flags = require('./_flags');\nvar DESCRIPTORS = require('./_descriptors');\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n define(function toString() {\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n define(function toString() {\n return $toString.call(this);\n });\n}\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar $export = require('./_export');\nvar $map = require('./_array-methods')(1);\n\n$export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {\n // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments[1]);\n }\n});\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\n\nvar off = function off() {};\n\nif (_inDOM[\"default\"]) {\n off = function () {\n if (document.addEventListener) return function (node, eventName, handler, capture) {\n return node.removeEventListener(eventName, handler, capture || false);\n };else if (document.attachEvent) return function (node, eventName, handler) {\n return node.detachEvent('on' + eventName, handler);\n };\n }();\n}\n\nvar _default = off;\nexports[\"default\"] = _default;\nmodule.exports = exports[\"default\"];","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default (str, prefix = ``) => {\n if (!prefix) {\n return str\n }\n\n prefix += `/`\n\n if (str.substr(0, prefix.length) === prefix) {\n return str.slice(prefix.length - 1)\n }\n\n return str\n}\n","\"use strict\";\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nexports.__esModule = true;\nexports.parsePath = parsePath;\n\nfunction parsePath(path) {\n var pathname = path || \"/\";\n var search = \"\";\n var hash = \"\";\n var hashIndex = pathname.indexOf(\"#\");\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf(\"?\");\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === \"?\" ? \"\" : search,\n hash: hash === \"#\" ? \"\" : hash\n };\n}","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","'use strict';\nvar $export = require('./_export');\nvar $some = require('./_array-methods')(3);\n\n$export($export.P + $export.F * !require('./_strict-method')([].some, true), 'Array', {\n // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments[1]);\n }\n});\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","\"use strict\";\n\nexports.registerServiceWorker = function () {\n return true;\n}; // only cache relevant resources for this page\n\n\nvar whiteListLinkRels = /^(stylesheet|preload)$/;\nvar prefetchedPathnames = [];\n\nexports.onServiceWorkerActive = function (_ref) {\n var getResourceURLsForPathname = _ref.getResourceURLsForPathname,\n serviceWorker = _ref.serviceWorker;\n\n // if the SW has just updated then clear the path dependencies and don't cache\n // stuff, since we're on the old revision until we navigate to another page\n if (window.___swUpdated) {\n serviceWorker.active.postMessage({\n gatsbyApi: \"clearPathResources\"\n });\n return;\n } // grab nodes from head of document\n\n\n var nodes = document.querySelectorAll(\"\\n head > script[src],\\n head > link[href],\\n head > style[data-href]\\n \"); // get all resource URLs\n\n var headerResources = [].slice.call(nodes) // don't include preconnect/prefetch/prerender resources\n .filter(function (node) {\n return node.tagName !== \"LINK\" || whiteListLinkRels.test(node.getAttribute(\"rel\"));\n }).map(function (node) {\n return node.src || node.href || node.getAttribute(\"data-href\");\n }); // Loop over prefetched pages and add their resources to an array,\n // plus specify which resources are required for those paths.\n\n var prefetchedResources = [];\n prefetchedPathnames.forEach(function (path) {\n var resources = getResourceURLsForPathname(path);\n prefetchedResources.push.apply(prefetchedResources, resources);\n serviceWorker.active.postMessage({\n gatsbyApi: \"setPathResources\",\n path: path,\n resources: resources\n });\n }); // Loop over all resources and fetch the page component + JSON data\n // to add it to the SW cache.\n\n var resources = [].concat(headerResources, prefetchedResources);\n resources.forEach(function (resource) {\n // Create a prefetch link for each resource, so Workbox runtime-caches them\n var link = document.createElement(\"link\");\n link.rel = \"prefetch\";\n link.href = resource;\n link.onload = link.remove;\n link.onerror = link.remove;\n document.head.appendChild(link);\n });\n};\n\nfunction setPathResources(path, getResourceURLsForPathname) {\n // do nothing if the SW has just updated, since we still have old pages in\n // memory which we don't want to be whitelisted\n if (window.___swUpdated) return;\n\n if (\"serviceWorker\" in navigator) {\n var _navigator = navigator,\n serviceWorker = _navigator.serviceWorker;\n\n if (serviceWorker.controller === null) {\n // if SW is not installed, we need to record any prefetches\n // that happen so we can then add them to SW cache once installed\n prefetchedPathnames.push(path);\n } else {\n var resources = getResourceURLsForPathname(path);\n serviceWorker.controller.postMessage({\n gatsbyApi: \"setPathResources\",\n path: path,\n resources: resources\n });\n }\n }\n}\n\nexports.onRouteUpdate = function (_ref2) {\n var location = _ref2.location,\n getResourceURLsForPathname = _ref2.getResourceURLsForPathname;\n var pathname = location.pathname.replace(__BASE_PATH__, \"\");\n setPathResources(pathname, getResourceURLsForPathname);\n\n if (\"serviceWorker\" in navigator && navigator.serviceWorker.controller !== null) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: \"enableOfflineShell\"\n });\n }\n};\n\nexports.onPostPrefetchPathname = function (_ref3) {\n var pathname = _ref3.pathname,\n getResourceURLsForPathname = _ref3.getResourceURLsForPathname;\n setPathResources(pathname, getResourceURLsForPathname);\n};","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 20.3.3.1 / 15.9.4.4 Date.now()\nvar $export = require('./_export');\n\n$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","const support = function(feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function(url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function(url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function(url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","export default path => {\n if (path === undefined) {\n return path\n }\n if (path === `/`) {\n return `/`\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1)\n }\n return path\n}\n","import { match } from \"@reach/router/lib/utils\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n const pathname = decodeURIComponent(rawPathname)\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(pathname, __BASE_PATH__)\n // Remove any hashfragment\n .split(`#`)[0]\n // Remove search query\n .split(`?`)[0]\n\n return trimmedPathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n for (const { matchPath, path } of matchPaths) {\n if (match(matchPath, trimmedPathname)) {\n return normalizePagePath(path)\n }\n }\n\n return null\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(rawPathname)\n\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(rawPathname)\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","import prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = path => {\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json`\n}\n\nconst doFetch = (url, method = `GET`) =>\n new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n\nconst loadPageDataJson = loadObj => {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return doFetch(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n return Object.assign(loadObj, {\n status: `success`,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404 page and it doesn't exist, we're done\n if (pagePath === `/404.html`) {\n return Object.assign(loadObj, {\n status: `failure`,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return loadPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return Object.assign(loadObj, {\n status: `error`,\n })\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return loadPageDataJson(Object.assign(loadObj, { retries: retries + 1 }))\n }\n\n // Retried 3 times already, result is a failure.\n return Object.assign(loadObj, {\n status: `error`,\n })\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\nconst toPageResources = (pageData, component = null) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n }\n\n return {\n component,\n json: pageData.result,\n page,\n }\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: `success` || `error`,\n // payload: PageResources, // undefined if `error`\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // }\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.pageDataDb = new Map()\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n return Promise.resolve(this.pageDataDb.get(pagePath))\n }\n\n return loadPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n return Promise.resolve(page.payload)\n }\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const inFlight = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ])\n .then(allData => {\n const result = allData[1]\n if (result.status === `error`) {\n return {\n status: `error`,\n }\n }\n if (result.status === `failure`) {\n // throw an error so error trackers can pick this up\n throw new Error(\n `404 page could not be found. Checkout https://www.gatsbyjs.org/docs/add-404-page/`\n )\n }\n\n let pageData = result.payload\n const { componentChunkName } = pageData\n return this.loadComponent(componentChunkName).then(component => {\n const finalResult = { createdAt: new Date() }\n let pageResources\n if (!component) {\n finalResult.status = `error`\n } else {\n finalResult.status = `success`\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: allData[0]\n ? allData[0].webpackCompilationHash\n : ``,\n })\n pageResources = toPageResources(pageData, component)\n finalResult.payload = pageResources\n emitter.emit(`onPostLoadPageResources`, {\n page: pageResources,\n pageResources,\n })\n }\n this.pageDb.set(pagePath, finalResult)\n // undefined if final result is an error\n return pageResources\n })\n })\n // prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n .then(response => {\n this.inFlightDb.delete(pagePath)\n return response\n })\n .catch(err => {\n this.inFlightDb.delete(pagePath)\n throw err\n })\n\n this.inFlightDb.set(pagePath, inFlight)\n return inFlight\n }\n\n // returns undefined if loading page ran into errors\n loadPageSync(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n return this.pageDb.get(pagePath).payload\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return false\n }\n\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return false\n }\n\n const realPath = findPath(pagePath)\n // Todo make doPrefetch logic cacheable\n // eslint-disable-next-line consistent-return\n this.doPrefetch(realPath).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n })\n\n return true\n }\n\n doPrefetch(pagePath) {\n throw new Error(`doPrefetch not implemented`)\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return page && page.notFound === true\n }\n\n loadAppData(retries = 0) {\n return doFetch(`${__PATH_PREFIX__}/page-data/app-data.json`).then(req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of failures\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n })\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n window.___chunkMapping[componentChunkName].map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths) {\n const loadComponent = chunkName =>\n asyncRequires.components[chunkName]().then(preferDefault)\n\n super(loadComponent, matchPaths)\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n })\n .then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n .then(result => {\n if (result.status !== `success`) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(\n () => pageData\n )\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n // Deprecated methods. As far as we're aware, these are only used by\n // core gatsby and the offline plugin, however there's a very small\n // chance they're called by others.\n getResourcesForPathname: rawPath => {\n console.warn(\n `Warning: getResourcesForPathname is deprecated. Use loadPage instead`\n )\n return instance.i.loadPage(rawPath)\n },\n getResourcesForPathnameSync: rawPath => {\n console.warn(\n `Warning: getResourcesForPathnameSync is deprecated. Use loadPageSync instead`\n )\n return instance.i.loadPageSync(rawPath)\n },\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n loadPageSync: rawPath => instance.loadPageSync(rawPath),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n","var aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar toLength = require('./_to-length');\n\nmodule.exports = function (that, callbackfn, aLen, memo, isRight) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IObject(O);\n var length = toLength(O.length);\n var index = isRight ? length - 1 : 0;\n var i = isRight ? -1 : 1;\n if (aLen < 2) for (;;) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (isRight ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n};\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var core = module.exports = { version: '2.6.11' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","var DateProto = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar $toString = DateProto[TO_STRING];\nvar getTime = DateProto.getTime;\nif (new Date(NaN) + '' != INVALID_DATE) {\n require('./_redefine')(DateProto, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare\n return value === value ? $toString.call(this) : INVALID_DATE;\n });\n}\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","module.exports = {};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _gatsby = require(\"gatsby\");\n\nvar _getManifestPathname = _interopRequireDefault(require(\"./get-manifest-pathname\"));\n\n/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\n// when we don't have localisation in our manifest, we tree shake everything away\nif (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n var withPrefix = _gatsby.withAssetPrefix || _gatsby.withPrefix;\n\n exports.onRouteUpdate = function (_ref, pluginOptions) {\n var location = _ref.location;\n var localize = pluginOptions.localize;\n var manifestFilename = (0, _getManifestPathname[\"default\"])(location.pathname, localize);\n var manifestEl = document.head.querySelector(\"link[rel=\\\"manifest\\\"]\");\n\n if (manifestEl) {\n manifestEl.setAttribute(\"href\", withPrefix(manifestFilename));\n }\n };\n}","\"use strict\";\n\nexports.DEFAULT_OPTIONS = {\n maxWidth: 650,\n wrapperStyle: \"\",\n backgroundColor: \"white\",\n linkImagesToOriginal: true,\n showCaptions: false,\n markdownCaptions: false,\n withWebp: false,\n tracedSVG: false,\n loading: \"lazy\",\n disableBgImageOnAlpha: false,\n disableBgImage: false\n};\nexports.imageClass = \"gatsby-resp-image-image\";\nexports.imageWrapperClass = \"gatsby-resp-image-wrapper\";\nexports.imageBackgroundClass = \"gatsby-resp-image-background-image\";","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","// prefer default export if available\nconst preferDefault = m => m && m.default || m\n\nexports.components = {\n \"component---node-modules-gatsby-plugin-offline-app-shell-js\": () => import(\"../node_modules/gatsby-plugin-offline/app-shell.js\" /* webpackChunkName: \"component---node-modules-gatsby-plugin-offline-app-shell-js\" */),\n \"component---src-templates-blog-post-js\": () => import(\"../src/templates/blog-post.js\" /* webpackChunkName: \"component---src-templates-blog-post-js\" */),\n \"component---src-templates-tags-js\": () => import(\"../src/templates/tags.js\" /* webpackChunkName: \"component---src-templates-tags-js\" */),\n \"component---src-pages-404-js\": () => import(\"../src/pages/404.js\" /* webpackChunkName: \"component---src-pages-404-js\" */),\n \"component---src-pages-about-js\": () => import(\"../src/pages/about.js\" /* webpackChunkName: \"component---src-pages-about-js\" */),\n \"component---src-pages-contact-js\": () => import(\"../src/pages/contact.js\" /* webpackChunkName: \"component---src-pages-contact-js\" */),\n \"component---src-pages-index-js\": () => import(\"../src/pages/index.js\" /* webpackChunkName: \"component---src-pages-index-js\" */),\n \"component---src-pages-music-discography-index-js\": () => import(\"../src/pages/music/discography/index.js\" /* webpackChunkName: \"component---src-pages-music-discography-index-js\" */),\n \"component---src-pages-music-index-js\": () => import(\"../src/pages/music/index.js\" /* webpackChunkName: \"component---src-pages-music-index-js\" */),\n \"component---src-pages-music-teaching-resources-index-js\": () => import(\"../src/pages/music/teaching-resources/index.js\" /* webpackChunkName: \"component---src-pages-music-teaching-resources-index-js\" */),\n \"component---src-pages-other-index-js\": () => import(\"../src/pages/other/index.js\" /* webpackChunkName: \"component---src-pages-other-index-js\" */),\n \"component---src-pages-reading-list-index-js\": () => import(\"../src/pages/reading-list/index.js\" /* webpackChunkName: \"component---src-pages-reading-list-index-js\" */),\n \"component---src-pages-tags-js\": () => import(\"../src/pages/tags.js\" /* webpackChunkName: \"component---src-pages-tags-js\" */),\n \"component---src-pages-tech-index-js\": () => import(\"../src/pages/tech/index.js\" /* webpackChunkName: \"component---src-pages-tech-index-js\" */),\n \"component---src-pages-tech-projects-index-js\": () => import(\"../src/pages/tech/projects/index.js\" /* webpackChunkName: \"component---src-pages-tech-projects-index-js\" */)\n}\n\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar toInteger = require('./_to-integer');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","\"use strict\";\n\nrequire(\"core-js/modules/es6.array.some\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _inDOM = _interopRequireDefault(require(\"./inDOM\"));\n\nvar vendors = ['', 'webkit', 'moz', 'o', 'ms'];\nvar cancel = 'clearTimeout';\nvar raf = fallback;\nvar compatRaf;\n\nvar getKey = function getKey(vendor, k) {\n return vendor + (!vendor ? k : k[0].toUpperCase() + k.substr(1)) + 'AnimationFrame';\n};\n\nif (_inDOM[\"default\"]) {\n vendors.some(function (vendor) {\n var rafKey = getKey(vendor, 'request');\n\n if (rafKey in window) {\n cancel = getKey(vendor, 'cancel');\n return raf = function raf(cb) {\n return window[rafKey](cb);\n };\n }\n });\n}\n/* https://github.com/component/raf */\n\n\nvar prev = new Date().getTime();\n\nfunction fallback(fn) {\n var curr = new Date().getTime(),\n ms = Math.max(0, 16 - (curr - prev)),\n req = setTimeout(fn, ms);\n prev = curr;\n return req;\n}\n\ncompatRaf = function compatRaf(cb) {\n return raf(cb);\n};\n\ncompatRaf.cancel = function (id) {\n window[cancel] && typeof window[cancel] === 'function' && window[cancel](id);\n};\n\nvar _default = compatRaf;\nexports[\"default\"] = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _require = require(\"./constants\"),\n DEFAULT_OPTIONS = _require.DEFAULT_OPTIONS,\n imageClass = _require.imageClass,\n imageBackgroundClass = _require.imageBackgroundClass,\n imageWrapperClass = _require.imageWrapperClass;\n\nexports.onRouteUpdate = function (apiCallbackContext, pluginOptions) {\n var options = Object.assign({}, DEFAULT_OPTIONS, pluginOptions);\n var imageWrappers = document.querySelectorAll(\".\" + imageWrapperClass); // https://css-tricks.com/snippets/javascript/loop-queryselectorall-matches/\n // for cross-browser looping through NodeList without polyfills\n\n var _loop = function _loop(i) {\n var imageWrapper = imageWrappers[i];\n var backgroundElement = imageWrapper.querySelector(\".\" + imageBackgroundClass);\n var imageElement = imageWrapper.querySelector(\".\" + imageClass);\n\n var onImageLoad = function onImageLoad() {\n backgroundElement.style.transition = \"opacity 0.5s 0.5s\";\n imageElement.style.transition = \"opacity 0.5s\";\n onImageComplete();\n };\n\n var onImageComplete = function onImageComplete() {\n backgroundElement.style.opacity = 0;\n imageElement.style.opacity = 1;\n imageElement.style.color = \"inherit\";\n imageElement.style.boxShadow = \"inset 0px 0px 0px 400px \" + options.backgroundColor;\n imageElement.removeEventListener(\"load\", onImageLoad);\n imageElement.removeEventListener(\"error\", onImageComplete);\n };\n\n imageElement.style.opacity = 0;\n imageElement.addEventListener(\"load\", onImageLoad);\n imageElement.addEventListener(\"error\", onImageComplete);\n\n if (imageElement.complete) {\n onImageComplete();\n }\n };\n\n for (var i = 0; i < imageWrappers.length; i++) {\n _loop(i);\n }\n};","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","require('./_wks-define')('asyncIterator');\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\n\nvar on = function on() {};\n\nif (_inDOM[\"default\"]) {\n on = function () {\n if (document.addEventListener) return function (node, eventName, handler, capture) {\n return node.addEventListener(eventName, handler, capture || false);\n };else if (document.attachEvent) return function (node, eventName, handler) {\n return node.attachEvent('on' + eventName, function (e) {\n e = e || window.event;\n e.target = e.target || e.srcElement;\n e.currentTarget = node;\n handler.call(node, e);\n });\n };\n }();\n}\n\nvar _default = on;\nexports[\"default\"] = _default;\nmodule.exports = exports[\"default\"];","// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = context(this, searchString, ENDS_WITH);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location, pageResources }) => {\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","'use strict';\nvar regexpExec = require('./_regexp-exec');\nrequire('./_export')({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","'use strict';\nvar weak = require('./_collection-weak');\nvar validate = require('./_validate-collection');\nvar WEAK_SET = 'WeakSet';\n\n// 23.4 WeakSet Objects\nrequire('./_collection')(WEAK_SET, function (get) {\n return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return weak.def(validate(this, WEAK_SET), value, true);\n }\n}, weak, false, true);\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","const plugins = require(`./api-runner-browser-plugins`)\nconst {\n getResourcesForPathname,\n getResourcesForPathnameSync,\n getResourceURLsForPathname,\n loadPage,\n loadPageSync,\n} = require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n // Deprecated April 2019. Use `loadPageSync` instead\n args.getResourcesForPathnameSync = getResourcesForPathnameSync\n // Deprecated April 2019. Use `loadPage` instead\n args.getResourcesForPathname = getResourcesForPathname\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n"],"sourceRoot":""} \ No newline at end of file diff --git a/building-my-second-brain/index.html b/building-my-second-brain/index.html index e2457075..45bc0f90 100644 --- a/building-my-second-brain/index.html +++ b/building-my-second-brain/index.html @@ -368,17 +368,20 @@ domain: 'scraggo.com' }); woopra.track(); -

    How I'm Building My Second Brain

    Slides + Video

    +

    How I'm Building My Second Brain

    Slides + Video

    “How I’m building my second brain” video (2022) (YouTube)

    “How I’m building my second brain” slides (2022) (PDF)

    Intro

    -

    Creativity is bound up with making connections between disparate ideas.

    -

    The connections piece is crucial. I know this because of my many failures with knowledge management. I went all in on the Getting Things Done (GTD) productivity system and wound up with a large, messy digital collection. The five stages of the GTD workflow are capture, clarify, organize, reflect, and engage. I captured anything that I could digitize. I clarified with a complex system of tags. I organized by putting things in hierarchies of folders. I reflected by journaling about it all. And inevitably fell short on the engagement piece.

    -

    (This seems to be a pretty common problem. https://giansegato.com/essays/edutainment-is-not-learning | HN comments.)

    -

    Having declared bankruptcy on my notes too many times, I knew I needed something different. I discovered the Second Brain concept and got hooked. It helped steer me to abandoning arbitrary collections, nested directory structures, and complicated tagging systems locked in proprietary software. Notes are connected to each other and structure emerges, almost effortlessly.

    -

    My notes are now in markdown, a plaintext “markup” language that allows headings, bullet points, checkboxes, blockquotes, etc. The document can output as rich text like you see on the web, but it’s readable as is. To connect notes in your second brain you can use standard link syntax or take it up a notch with backlinks - where notes have awareness from where they were linked.

    +

    Creativity is bound up with making connections between disparate ideas. The connections piece is crucial - personal knowledge management falls apart without it.

    +

    Long ago, I treated the Getting Things Done (GTD) productivity system as gospel. The way I used it, though, resulted in a large, messy collection of digital notes in Evernote. The five stages of the GTD workflow are capture, clarify, organize, reflect, and engage. I captured anything that I could digitize. I clarified with a complex system of tags. I organized by putting things in hierarchies of folders. I reflected by creating journal entries during weekly reviews. And ultimately fell short on the engagement piece.

    +

    Having declared bankruptcy on my notes too many times, I knew I needed something different. I discovered the Second Brain concept and got hooked. I clearly saw the pitfalls inherent in my old system. I stopped creating arbitrary collections in single files. I abandoned rigid hierarchical directory structures and complicated tagging systems. (I also migrated out of Evernote - vendor lock-in being one of many reasons.) With my shiny, new second-brain notes collection, notes connect to each other and structure emerges, almost effortlessly.

    +

    My notes are now in markdown, a plaintext “markup” language that allows headings, bullet points, checkboxes, blockquotes, etc. The document can output as rich text like you see on the web, but it’s readable as is. To connect notes in your second brain you can use standard link syntax or take it up a notch with backlinks - where notes have an automatic awareness of any notes that are linked to it.

    By connecting notes in this way, we approach how the brain stores and retrieves knowledge. Building links over time allows us to create a reservoir of connections which have connections, which have connections, which becomes a nice web of digital neurons. To aid the creative process, you can view your linked notes as a knowledge graph like the ones in these images to add fascination to your connection sessions.

    This is just the tip of the iceberg. If your brain craves more, below is the text for a talk I gave on how I take notes, synthesize ideas, and manage my tasks.

    +

    What’s a “second brain?”

    In concept, it’s an external information collection that aids thinking and memory.

    The way I put this into practice is a collection of markdown notes linked with bi-directional backlinks (notated with double square brackets: [[]])

    @@ -394,12 +397,12 @@

    What’s a “second brain?”

    See “Resources” below for more info on the related concepts.

    The problem: One brain is limited

      -
    • Juggling projects
    • +
    • We usually have multiple projects to juggle
    • Learning something new can be intimidating
    • -
    • Disparate sources: Slack, emails, bookmarks, notes, etc
    • -
    • Googling repeatedly (but…sites go down)
    • -
    • Are we able to make notes and discover them without too much friction?
    • +
    • Info comes from many disparate sources: Slack, emails, bookmarks, notes, etc
    • +
    • We can’t just Google repeatedly or save bookmarks (sites go down, etc)
    +

    The key to the solution is being able to make and discover notes without too much friction.

    Second brain benefits

    • Solidify knowledge
    • @@ -501,17 +504,13 @@

      Parting thoughts

    Resources

    Methodology

    +

    Building a Second Brain: The Definitive Introductory Guide | Forte Labs

    Zettelkasten, Linking Your Thinking, and Nick Milo’s Search for Ground | The Daily Pony

    -

    Introduction to the Zettelkasten Method

    - -

    The PARA Method: A Universal System for Organizing Digital Information - Forte Labs

    -

    How to Manage Your Digital Files: 9 Tips and Tools to Keep You Organized see The Noguchi Filing System

    +

    Introduction to the Zettelkasten Method | zettelkasten.de

    Tools

    \ No newline at end of file + +

    Related

    + +

    Forte Labs

    + +

    How to Manage Your Digital Files: 9 Tips and Tools to Keep You Organized see The Noguchi Filing System

    \ No newline at end of file diff --git a/catching-handling-errors-promise-chains/index.html b/catching-handling-errors-promise-chains/index.html index bc1388a7..e753ea08 100644 --- a/catching-handling-errors-promise-chains/index.html +++ b/catching-handling-errors-promise-chains/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

    Catching and handling different types of errors in promise chains

    When you need to make sequential API calls, promise chains are a reliable way to go. It gets a little tricky when you need to throw and handle errors differently at different points in the chain. This post will go into:

    +

    Catching and handling different types of errors in promise chains

    When you need to make sequential API calls, promise chains are a reliable way to go. It gets a little tricky when you need to throw and handle errors differently at different points in the chain. This post will go into:

    • throwing specific types of errors using Promise.reject
    • creating an object literal dictionary to handle logic
    • @@ -452,4 +452,4 @@

      Promise.reject to throw specified errors

      }); };

    Again, this article is where I learned these techniques -> Error handling in long Promise chains – Arthur Xavier – Medium

    -

    I hope this post was helpful, thanks for reading!

    \ No newline at end of file +

    I hope this post was helpful, thanks for reading!

    \ No newline at end of file diff --git a/chunk-map.json b/chunk-map.json index 76d6bf91..5ed00bc9 100644 --- a/chunk-map.json +++ b/chunk-map.json @@ -1 +1 @@ -{"app":["/app-e6d974cf9700e3928dc3.js"],"component---node-modules-gatsby-plugin-offline-app-shell-js":["/component---node-modules-gatsby-plugin-offline-app-shell-js-5efb7b8fb8a6286e0a5c.js"],"component---src-templates-blog-post-js":["/component---src-templates-blog-post-js-a7ef68d2ebe098e84ce9.js"],"component---src-templates-tags-js":["/component---src-templates-tags-js-e911dd6b3352bb8eaa71.js"],"component---src-pages-404-js":["/component---src-pages-404-js-edf99ac108f47afb75bb.js"],"component---src-pages-about-js":["/component---src-pages-about-js-1dcccca94df37009288b.js"],"component---src-pages-contact-js":["/component---src-pages-contact-js-504fc7940d2707f81d47.js"],"component---src-pages-index-js":["/component---src-pages-index-js-296992e03646ca68cfab.js"],"component---src-pages-music-discography-index-js":["/component---src-pages-music-discography-index-js-48aca0269550d9c5133e.js"],"component---src-pages-music-index-js":["/component---src-pages-music-index-js-14190e6a44d32a8b3676.js"],"component---src-pages-music-teaching-resources-index-js":["/component---src-pages-music-teaching-resources-index-js-6c45ecea4069d96ac92d.js"],"component---src-pages-other-index-js":["/component---src-pages-other-index-js-d366bf6afdd09c7b518b.js"],"component---src-pages-reading-list-index-js":["/component---src-pages-reading-list-index-js-36460b0b12e3e14a3ed5.js"],"component---src-pages-tags-js":["/component---src-pages-tags-js-9d502351c359bd4f7b31.js"],"component---src-pages-tech-index-js":["/component---src-pages-tech-index-js-b2fb9efa597e0ce040ae.js"],"component---src-pages-tech-projects-index-js":["/component---src-pages-tech-projects-index-js-5eb7541a7a47ba5f418a.js"]} \ No newline at end of file +{"app":["/app-aae54d2eda84058ab49f.js"],"component---node-modules-gatsby-plugin-offline-app-shell-js":["/component---node-modules-gatsby-plugin-offline-app-shell-js-5efb7b8fb8a6286e0a5c.js"],"component---src-templates-blog-post-js":["/component---src-templates-blog-post-js-a7ef68d2ebe098e84ce9.js"],"component---src-templates-tags-js":["/component---src-templates-tags-js-e911dd6b3352bb8eaa71.js"],"component---src-pages-404-js":["/component---src-pages-404-js-edf99ac108f47afb75bb.js"],"component---src-pages-about-js":["/component---src-pages-about-js-1dcccca94df37009288b.js"],"component---src-pages-contact-js":["/component---src-pages-contact-js-504fc7940d2707f81d47.js"],"component---src-pages-index-js":["/component---src-pages-index-js-ba2f71ffe0ace2c2c83d.js"],"component---src-pages-music-discography-index-js":["/component---src-pages-music-discography-index-js-48aca0269550d9c5133e.js"],"component---src-pages-music-index-js":["/component---src-pages-music-index-js-12306a09d96c193df492.js"],"component---src-pages-music-teaching-resources-index-js":["/component---src-pages-music-teaching-resources-index-js-6c45ecea4069d96ac92d.js"],"component---src-pages-other-index-js":["/component---src-pages-other-index-js-5cf19c9c5258a07ac857.js"],"component---src-pages-reading-list-index-js":["/component---src-pages-reading-list-index-js-36460b0b12e3e14a3ed5.js"],"component---src-pages-tags-js":["/component---src-pages-tags-js-9d502351c359bd4f7b31.js"],"component---src-pages-tech-index-js":["/component---src-pages-tech-index-js-27895506d838fb1f5138.js"],"component---src-pages-tech-projects-index-js":["/component---src-pages-tech-projects-index-js-5eb7541a7a47ba5f418a.js"]} \ No newline at end of file diff --git a/circular-dependencies-bug/index.html b/circular-dependencies-bug/index.html index 45e0d2e0..049d83dc 100644 --- a/circular-dependencies-bug/index.html +++ b/circular-dependencies-bug/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

    How to prevent circular dependencies

    Some errors are kind of mysterious. The first time I got “‘myFunction’ is not a function” type errors, I was at a loss for a few hours. Logging out the functions from my require statements came back as {} or undefined.

    +

    How to prevent circular dependencies

    Some errors are kind of mysterious. The first time I got “‘myFunction’ is not a function” type errors, I was at a loss for a few hours. Logging out the functions from my require statements came back as {} or undefined.

    What I learned, TL;DR - don’t import file ‘a’ into file ‘b’ AND file ‘b’ into file ‘a’. That’s an example of a “circular dependency.”

    Brief example of creating a circular dependency:

    \ No newline at end of file +
    \ No newline at end of file diff --git a/code-style-guide/index.html b/code-style-guide/index.html index 15fe9a38..80797414 100644 --- a/code-style-guide/index.html +++ b/code-style-guide/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

    Using a Code Style Guide to Enforce Team Best Practices

    We all have opinions on what what coding best practices are and how code should be formatted. Recently, one of the teams I’ve been working on decided to add another member. I discovered that our coding styles were radically different. I decided to write some guidelines for our team to get us on the same page.

    +

    Using a Code Style Guide to Enforce Team Best Practices

    We all have opinions on what what coding best practices are and how code should be formatted. Recently, one of the teams I’ve been working on decided to add another member. I discovered that our coding styles were radically different. I decided to write some guidelines for our team to get us on the same page.

    I quickly realized that writing a style guide from scratch is a tall order. I’d already been using the Airbnb eslint rule-set, so I read Airbnb’s style guide and found it to be an excellent jump-off point.

    I hope this style guide gives you some ideas. I highly encourage web development teams to create their own style guides and use tools similar to the ones we’ve recommended to unify their personal or team codebases.

    Team Coding Style Guide

    @@ -586,4 +586,4 @@

    Related Posts

    \ No newline at end of file +
    \ No newline at end of file diff --git a/comparing-javascript-test-runners/index.html b/comparing-javascript-test-runners/index.html index 0af73f67..bbccb395 100644 --- a/comparing-javascript-test-runners/index.html +++ b/comparing-javascript-test-runners/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

    Comparing JavaScript Test Runners

    \ No newline at end of file +

    Open an issue here

    \ No newline at end of file diff --git a/component---src-pages-index-js-296992e03646ca68cfab.js b/component---src-pages-index-js-296992e03646ca68cfab.js deleted file mode 100644 index 2a915cf7..00000000 --- a/component---src-pages-index-js-296992e03646ca68cfab.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{"5cHQ":function(e){e.exports=JSON.parse('{"data":{"allMarkdownRemark":{"totalCount":44,"edges":[{"node":{"id":"970567e6-3f2a-5749-b60e-5fe9bce3ce59","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"June 01, 2023","description":null,"tags":["productivity","tech talk"],"title":"How I\'m Building My Second Brain","type":"post"},"fields":{"slug":"/building-my-second-brain/"},"excerpt":"Slides + Video “How I’m building my second brain” video (2022) (YouTube) “How I’m building my second brain” slides (2022) (PDF) Intro Creativity is bound up with making connections between disparate ideas. The connections piece is crucial. I know this because of my many failures with knowledge management. I went all in on the Getting Things Done (GTD) productivity system and wound up with a large…"}},{"node":{"id":"5bc00e6c-f6a8-51a5-9312-749eabf343c4","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 05, 2022","description":null,"tags":["random music generators"],"title":"Random Music Generators is now hosted on render.com","type":"post"},"fields":{"slug":"/2022-12-05-random-music-generators-news/"},"excerpt":"Random Music Generators is now hosted on render.com. Please update your bookmarks! https://random-music-generators.onrender.com"}},{"node":{"id":"87a467a5-a5cc-57bc-b828-33199e1396ed","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 05, 2021","description":null,"tags":["typescript","javascript"],"title":"TypeScript-lite: JSDoc for type-checking js files","type":"post"},"fields":{"slug":"/type-check-jsdocs-typescript/"},"excerpt":"Overview Did you know that you can use TypeScript features in JavaScript projects? When I discovered this and tried it out, I really enjoyed the results. Let’s go a bit into how it works. With a few simple ingredients: VSCode JavaScript Willingness to add types in JSDoc (and optionally importing TypeScript types) You can: statically check the types of .js files run compiler on .js files write…"}},{"node":{"id":"43882726-b323-56c1-986e-85fad7e68237","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 27, 2021","description":null,"tags":["career","mental health"],"title":"Programming with more ease","type":"post"},"fields":{"slug":"/programming-with-more-ease/"},"excerpt":"As professional programmers, the bulk of what we do is solving problems. A lot of the time, I’m motivated by problem-solving challenges. But sometimes I hit a wall. A given challenge can become a problem that I’m frustratingly unable to solve. Often, this frustration would spiral into a worse mental state. I’d imagine the problem as a scary, overwhelming, difficult to defeat monster - more…"}},{"node":{"id":"6a155da7-d04b-5289-b463-02babc9a2670","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 23, 2021","description":null,"tags":["design patterns"],"title":"How to Learn Design Patterns","type":"post"},"fields":{"slug":"/design-patterns-curriculum/"},"excerpt":"I’ve long been intrigued by design patterns, but when I started learning them, I realized quickly that I didn’t have a clear learning path. I didn’t know how I should learn design patterns or if it’s the right time for me to learn them. So, I sought out to answer some questions: What are the prerequisites for learning design patterns? What material should I use and how do I avoid being scattered…"}},{"node":{"id":"c373259e-e38e-59bb-ab3b-22a5afc45474","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2021","description":null,"tags":["design patterns"],"title":"Introduction to Design Patterns: Why they\'re worth learning","type":"post"},"fields":{"slug":"/design-patterns-intro/"},"excerpt":"As developers, we’re constantly learning - and there’s a lot to learn in general because the tech industry is broad and fast-paced. We want to have all the main bases covered so that we can be ready for any situation. We often hear about design patterns and how they can enable us to write well-architected software using object-oriented programming. If you’re like me, you might file that away as a…"}},{"node":{"id":"ef97f645-0325-5bf1-806d-ba14610e6780","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 30, 2021","description":null,"tags":["random music generators"],"title":"Random Music Generators News 2021-01-30","type":"post"},"fields":{"slug":"/2021-01-30-random-music-generators-news/"},"excerpt":"New in 1.3.1 This month, I released a big new feature that’s been requested often. You can now specify a custom note collection to create random melodies. Check it out! Note: This feature is available to use if you create an account. Part of the impetus to provide this feature was to aid in neuroscience research. Having the ability to create melodies with specific pitches will allow researchers…"}},{"node":{"id":"ba57e0fe-e724-5a6e-b122-d39a3674b8fc","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 10, 2020","description":null,"tags":["career"],"title":"Are You Ready to be a Professional Software Engineer?","type":"post"},"fields":{"slug":"/tech-career-resources/"},"excerpt":"Updated March 21, 2021 Did you just graduate from a coding bootcamp, obtain a CS degree, or built an involved side project? How do you know when you’re ready to write software professionally? This post has two parts: questions I ask my mentees to help clarify their job search a collection of resources I’ve found or made that helped my on my job search Questions to clarify the job search There are…"}},{"node":{"id":"ef2f493a-fbef-500d-a57e-689069307ca5","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 21, 2020","description":null,"tags":["immerjs","javascript","react","redux"],"title":"My love hate relationship with ImmerJS","type":"post"},"fields":{"slug":"/love-hate-immer-js/"},"excerpt":"After having used immutable js for a while, discovering ImmerJS was a breath of fresh air. Where immutable js forces you to learn its gigantic API, ImmerJS takes advantage of ES6 Proxies. These allow you to modify a “draft” version of an object as if you’re mutating it, but the draft is actually a copy so you’re not mutating the original! The return of immer’s function always returns a perfect…"}},{"node":{"id":"f2cf9b4b-5eb8-5856-bd0a-86b1e7bc66f4","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 15, 2020","description":null,"tags":["career","coding bootcamps","electron","javascript","tech talk"],"title":"Tech Talk - How I\'d Improve My Capstone Project","type":"post"},"fields":{"slug":"/tech-talk-improving-capstone-project/"},"excerpt":"In February 2020, I returned to my bootcamp to give a tech talk on what I’d do to improve my Capstone project. (I also answer career and other questions from the audience at the end.) Download the slides here (PDF) I’m excited to share what I’ve learned so far from working on enterprise software for almost 2 years. The talk is a deep dive into the codebase that myself and three others worked on…"}},{"node":{"id":"d6855891-7ad1-5756-b178-be45a9213df7","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 02, 2020","description":null,"tags":["javascript","node","productivity"],"title":"Using question-prompter for study, self-reflection, and more","type":"post"},"fields":{"slug":"/using-question-prompter/"},"excerpt":"I recently created a node command line app called question-prompter. It prompts you at your terminal to answer questions that you come up with. After you answer them, it saves them to a or file in a directory of your choosing. Background I find a lot of benefit from regularly checking in with myself. While many authors have written about this kind of reflection, Tim Ferriss comes to mind first…"}},{"node":{"id":"d83dfc88-d6b1-51d0-924a-b4ef8ea54dcf","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"June 03, 2020","description":null,"tags":["songwriting","composition","creativity"],"title":"Meta Ideas - Generating Creative Content","type":"post"},"fields":{"slug":"/meta-ideas-generating-creative-content/"},"excerpt":"I’ve been writing down small music (and other) ideas for over 20 years. I’ve generally struggled to store, organize, and retrieve them effectively. As I was going through my archives recently, it dawned on me that there are two fundamental types of ideas: one is “concrete” and the other is “meta.” A concrete idea is specific and actionable. It may be a chord progression like: A minor for two and a…"}},{"node":{"id":"362cb819-3e27-5202-98bf-310df4ba421f","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"May 02, 2020","description":null,"tags":["javascript","test runners","ava","mocha","jest","tech talk"],"title":"Comparing JavaScript Test Runners","type":"post"},"fields":{"slug":"/comparing-javascript-test-runners/"},"excerpt":"This post is a pointer to an article I completed recently - a comprehensive comparison of the AVA, Jest, Mocha, and JavaScript test runners. 👉 https://github.com/scraggo/comparing-javascript-test-runners/ 👈 Why is it on GitHub, not this blog? Not only does the repo contain the comparison article, I created a node application to generate the speed metrics in the article. The process looks like…"}},{"node":{"id":"5c2a373c-48fe-5078-9e3d-f21888265979","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2020","description":null,"tags":["typescript","open source"],"title":"Contributing a New Feature to Open Source: @sindresorhus/is","type":"post"},"fields":{"slug":"/contributing-to-open-source-is-type-checking/"},"excerpt":"This post is a recount of my recent experience contributing to is, a JavaScript open source type checking library. https://github.com/sindresorhus/is https://www.npmjs.com/package/@sindresorhus/is I’ll outline the process from beginning to end: the initial filing of the feature request, implementing the feature, collaborating on the pull request, and getting the feature released. Some of the open…"}},{"node":{"id":"eae0c8d9-4b57-5113-88ed-3ece28ea88ca","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"February 15, 2020","description":"Problems with unexpected assertion failures can arise while testing immutablejs with sinon. This post is a brief guide on how to create a custom matcher that will correctly calculate the equivalence between a mock/stub/spy call with an immutable parameter. The way I’ll be making the assertion is with calledWith from sinon-chai (a plugin for chai that helps with making should or expect assertions for sinon mocks). This github issue on sinonjs outlines the problem...","tags":["testing","sinon","immutablejs"],"title":"Testing immutable js with sinon custom matchers","type":"post"},"fields":{"slug":"/testing-immutable-js-with-sinon-custom-matchers/"},"excerpt":"Problems with unexpected assertion failures can arise while testing with . This post is a brief guide on how to create a custom matcher that will correctly calculate the equivalence between a mock/stub/spy call with an parameter. The way I’ll be making the assertion is with from (a plugin for that helps with making or assertions for mocks). This github issue on sinonjs outlines the problem…"}},{"node":{"id":"13bb4e43-1a4c-5619-88cf-18b133874a58","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 27, 2020","description":null,"tags":["random music generators"],"title":"Random Music Generators News 2020-01-27","type":"post"},"fields":{"slug":"/2020-01-27-random-music-generators-news/"},"excerpt":"New in 1.1.0 Yesterday, I released a feature that’s been in the works for over 6 months. You can now create melody presets. Check it out! If you have a go-to set of form parameters that make sounds that you really enjoy, you can save them and recall them later. As a necessity of saving presets, I added the ability to create an account. This will set the stage for being able to save presets for…"}},{"node":{"id":"208d49b8-08db-5947-81dc-1b7fec2f4c50","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 09, 2020","description":"Happy 2020! One of my new year’s resolutions is to redo my website with a lot of new things in mind. Here I’ll outline the changes I’m in the process of making. An important step in the whole makeover was getting an official domain name - I’m now live at scraggo.com! I’m using namecheap as the provider. The site has been hosted with github pages since its inception and I’ll…","tags":["gatsbyjs"],"title":"Website Makeover: Moving from Jekyll to Gatsby","type":"post"},"fields":{"slug":"/website-makeover-gatsby/"},"excerpt":"Happy 2020! One of my new year’s resolutions is to redo my website with a lot of new things in mind. Here I’ll outline the changes I’m in the process of making. EDIT Jan 18, 2020: Gatsby makeover complete! Now live: custom domain name An important step in the whole makeover was getting an official domain name - I’m now live at ! I’m using namecheap as the provider. The site has been hosted with…"}},{"node":{"id":"69ec04c0-36a1-5b4b-b7e5-895ff00cceda","frontmatter":{"author":"Dave Cohen","categories":["other"],"date":"January 01, 2020","description":null,"tags":null,"title":"2020 Resolutions and Reviewing the Decade","type":"post"},"fields":{"slug":"/2020-decade-in-review/"},"excerpt":"I really enjoy reflecting on the past year during the holidays. If I get a chance to do this, I come up with New Years resolutions afterwards. Some years I go through a somewhat involved process of going through my journal entries and coming up with the best realizations. This year, my girlfriend wanted to try Marie Forleo’s recommendation of reviewing the past decade. We went through the…"}},{"node":{"id":"71cb4d5a-1ffa-5471-9090-7ad8a844304b","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 21, 2019","description":null,"tags":["git"],"title":"How to Squash All Commits Related to a Single Issue into a Single Commit","type":"post"},"fields":{"slug":"/how-to-squash-commits/"},"excerpt":"Updated Sep 3, 2020 This article outlines how to use the “squash” feature of an interactive . What does “squashing” do? It allows you to take changes that are spread amongst multiple commits and consolidate them into one. Why should one consider squashing commits? A clean history makes tracking changes to a large codebase across time much easier. Many commits are small and unimportant in the grand…"}},{"node":{"id":"005c820c-061e-57bb-8255-c635792a976d","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"December 20, 2019","description":null,"tags":["music education"],"title":"About Songmind Studios","type":"post"},"fields":{"slug":"/about-songmind-studios/"},"excerpt":"In 2016, I decided to start my own brand of music education. I took the role of music coach, agent, and collaborator. The student and I would write and record music together to integrate learning and creativity in a holistic way. While I’ve suspended these services for the foreseeable future, I’m posting are the core concepts and aims of Songmind Studios. I’ll eventually make all my teaching…"}},{"node":{"id":"fe9a22be-2af0-5ee7-9e22-9ca6bb593de8","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 02, 2019","description":null,"tags":["career"],"title":"How to ace your initial programming job screen","type":"post"},"fields":{"slug":"/prepare-for-initial-screens/"},"excerpt":"Your resume and cover letter surely made a positive impact, but the most important evaluation has yet to come. If you’re searching for your first software development job, the process can be daunting. You may have heard that after sending your resume to a company, there’s an initial screen. This is usually done over the phone, but sometimes it happens in-person. Your resume and cover letter (the…"}},{"node":{"id":"3220ea90-ef5c-5200-befb-6f9a58952f53","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"April 03, 2019","description":null,"tags":["javascript"],"title":"Catching and handling different types of errors in promise chains","type":"post"},"fields":{"slug":"/catching-handling-errors-promise-chains/"},"excerpt":"When you need to make sequential API calls, promise chains are a reliable way to go. It gets a little tricky when you need to throw and handle errors differently at different points in the chain. This post will go into: throwing specific types of errors using creating an object literal dictionary to handle logic gracefully handling the errors differently at the end of the chain This article is…"}},{"node":{"id":"657093ab-4233-5d14-a741-44f2fa462db8","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 28, 2019","description":null,"tags":["javascript"],"title":"Using a filter function recursively","type":"post"},"fields":{"slug":"/recursive-filter-function/"},"excerpt":"The problem Given our array data structure, we only want to include items that have an ‘age’ property and the age is greater than 17. If the person is under age, we won’t allow any of their friends to be included (even if they are old enough to be.) (Contrived scenario, I know, but I recently needed to do something like this for a different type of authorization.) Run this code on repl.it We can…"}},{"node":{"id":"86cb31eb-6b40-50e3-9ddc-d195f0cee1c6","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 24, 2019","description":null,"tags":["git"],"title":"How to format and edit your git commit messages","type":"post"},"fields":{"slug":"/git-commit-format-squash/"},"excerpt":"When writing commit messages, it’s ideal to make them easy for another developer to read and understand exactly what’s in the commit. Oftentimes, though, we write commit messages quickly just to push a branch at the end of a workday, for instance (I know I’m guilty of this). One team member brought the Conventional Commits format to our attention. I’ve enjoyed using it and seeing the results when…"}},{"node":{"id":"35287751-dd87-580c-ae8e-8b1c02051859","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 23, 2019","description":null,"tags":["javascript"],"title":"How to prevent circular dependencies","type":"post"},"fields":{"slug":"/circular-dependencies-bug/"},"excerpt":"Some errors are kind of mysterious. The first time I got “‘myFunction’ is not a function” type errors, I was at a loss for a few hours. Logging out the functions from my require statements came back as or . What I learned, TL;DR - don’t import file ‘a’ into file ‘b’ AND file ‘b’ into file ‘a’. That’s an example of a “circular dependency.” Brief example of creating a circular dependency: myUtils…"}},{"node":{"id":"a5528eb3-e30d-5233-bd30-b8c7ae51558c","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2019","description":null,"tags":["javascript"],"title":"Custom type checking - isNaN vs Number.isNaN","type":"post"},"fields":{"slug":"/custom-type-checking-isnan/"},"excerpt":"Javascript is infamous for being “loose” and misleading with its typing. gives you , gives you , etc. So instead of writing conditionals using , doing specific checks, etc, I decided to make my own wrapper for which I called : I unknowingly put a bug in my app. Can you spot it? … It’s in the 3rd statement. Basically, the function took anything that wasn’t an ‘array’ or ‘null’ and decided it…"}},{"node":{"id":"ffbf844d-8df4-58a2-bbac-456ad18ce4e2","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 18, 2019","description":null,"tags":["javascript"],"title":"Using a Code Style Guide to Enforce Team Best Practices","type":"post"},"fields":{"slug":"/code-style-guide/"},"excerpt":"We all have opinions on what what coding best practices are and how code should be formatted. Recently, one of the teams I’ve been working on decided to add another member. I discovered that our coding styles were radically different. I decided to write some guidelines for our team to get us on the same page. I quickly realized that writing a style guide from scratch is a tall order. I’d already…"}},{"node":{"id":"78ad3884-f757-59b3-9a3e-cfb58062229e","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 18, 2018","description":null,"tags":["career"],"title":"Should junior developers work with recruiters?","type":"post"},"fields":{"slug":"/recruiters-and-junior-devs/"},"excerpt":"This is the first of a handful of posts about the 3-month search for my first full-time developer job. I graduated from a coding bootcamp in April. I’m a junior developer, though, I have some freelance projects on my resume that gave me about 2 years of experience. This, combined with a decently written Linkedin profile, contributed to my getting contacted by multiple recruiters daily. I wound up…"}},{"node":{"id":"58fbbba9-9063-500a-9fcb-829e58d07642","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"May 08, 2018","description":null,"tags":["computer science"],"title":"Debugging Strategies Checklist","type":"post"},"fields":{"slug":"/debugging-strategies-checklist/"},"excerpt":"Tracking down bugs in the software you’re working on can be tricky. Debugging is a massive topic and there are so many places bugs can show up. One thing’s for sure, whether you’re careful or not… Bugs will show up. I’m not saying this to be pessimistic. Creating and squashing bugs is not just a part of the process of writing software, it is the process! We’re solving problems and ironing out the…"}},{"node":{"id":"0092c8a9-f74f-5de1-a8e6-0fe315511475","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"April 16, 2018","description":null,"tags":["coding bootcamps","javascript"],"title":"Reflections From a Coding Bootcamp Graduate","type":"post"},"fields":{"slug":"/reflections-coding-bootcamp/"},"excerpt":"I was ready for a career change. It was October of 2017. The more time I spent coding and learning computer science fundamentals, the more I realized that a programming career would fit my personality* better than performing and teaching music. After spending a fair amount of time teaching myself to code and making websites, I began researching coding bootcamps. There were optimistic statistics of…"}},{"node":{"id":"8e59934a-7dcb-5377-ae8d-73c2d8ed7686","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"February 20, 2018","description":null,"tags":["javascript","computer science"],"title":"Tackling Hash Table Problems in JavaScript","type":"post"},"fields":{"slug":"/hash-tables-js/"},"excerpt":"Algorithms and data structures can be intimidating. The goal of this post is to explain some approaches to solving hash table algorithm problems providing clear examples with detailed solution explanations. I’m hoping this will help anyone uninitiated alleviate fears and make bigger strides in conquering these challenging problems. Why Hash Tables? While attending Fullstack Academy, I participated…"}},{"node":{"id":"d49b052b-2f19-5ddd-a73d-78e80b12bfdd","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 26, 2017","description":null,"tags":["coding bootcamps","javascript"],"title":"Now Attending: Fullstack Academy","type":"post"},"fields":{"slug":"/now-attending-fullstack/"},"excerpt":"Why I’m attending Fullstack Academy Since discovering a love for guitar and composition in my teens, I decided to pursue a career as a freelance music teacher, composer, recording engineer, and performing guitarist. After a decade of this, I realized that the rockstar dream didn’t suit me and I was tired of chasing it. I’d be happier with a more stable career that challenged me intellectually. I…"}},{"node":{"id":"e1022862-d7d0-5e18-994d-92f148fb9302","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 01, 2017","description":null,"tags":["javascript"],"title":"Intro to JavaScript Frameworks Part 1: The Vanilla JavaScript Version of TodoMVC","type":"post"},"fields":{"slug":"/intro-to-js-frameworks01/"},"excerpt":"The goal of this blog-series is to explain what frameworks do, why they’re used, and demonstrate with examples across many different frameworks. The series is aimed at those familiar with JavaScript syntax, accessing the DOM, functions, and classes (object-oriented programming). Further reading can be found at the bottom of this post. What is a JavaScript Framework? A framework is an imported…"}},{"node":{"id":"bd3eb5a8-b322-5b98-ad3f-6f3cae8be4e1","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 01, 2017","description":"This post contains an overview of what sorts of programming jobs are available. It\'s aimed at developers who want to try something new or are still deciding what to focus on in their efforts to become more marketable.","tags":["career"],"title":"Marketable Programming Skills","type":"post"},"fields":{"slug":"/marketable-programming-skills/"},"excerpt":"If you’ve been learning programming on your own, you may have made worked through some books, followed some online tutorials, and made a decent collection of simple apps. At a certain point you may wonder how much else you need to know to be able to start working as a programmer. I’m a self-taught coder with experience in web technologies (JavaScript, HTML, CSS, etc) and Python. Compiling some…"}},{"node":{"id":"b9bffa10-76c5-5831-96ad-63365ba582ec","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 01, 2017","description":null,"tags":["oop","python"],"title":"Using a Class in Python as a Code Wrapper for a Simple Game","type":"post"},"fields":{"slug":"/python-classes-guess-the-number/"},"excerpt":"Object-oriented design is a powerful programming paradigm that can be intimidating to anyone trying to learn how to use it. I worked through a number of excellent tutorials and books on the subject, but struggled to apply the concepts to my own code. I decided to convert a working program that didn’t use OOP and wrap it in a single class. The program I chose was Guess the Number written by Al…"}},{"node":{"id":"8a0e0fa2-afc3-5492-b98a-ed745595bdbf","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"January 15, 2017","description":null,"tags":["music education"],"title":"Honing Musical Strengths with a Student Evaluation","type":"post"},"fields":{"slug":"/honing-strengths-with-a-student-evaluation/"},"excerpt":"From time to time, we can find ourselves stagnating when studying music (or any other topic). To help become immune to this, it’s useful to fully recognize our strengths and acknowledge our weaknesses. Every strength is an opportunity to improve further and if we can acknowledge where we are struggling then we can begin to grow much faster and reach excellence. Ask yourself the following questions…"}},{"node":{"id":"cf15c4c6-a96d-537d-9525-34c1d200c9e4","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 01, 2016","description":null,"tags":["songwriting","promotion"],"title":"10 Issues Songwriters Face","type":"post"},"fields":{"slug":"/10-issues-songwriters-face/"},"excerpt":"It’s common for songwriters to feel overwhelmed when finishing their songs and getting them ready for their audience. There can be tremendous blocks going from inspiration to song completion. Listed below are the top issues I’ve encountered while interviewing songwriters and students of music who write music. 1. Not knowing “where to go next” with your song. This is a major problem for many…"}},{"node":{"id":"9e899d18-3457-5b38-89f4-b68c3fedda94","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"May 10, 2016","description":null,"tags":["bands"],"title":"The Five Dysfunctions of a Band","type":"post"},"fields":{"slug":"/5-dysfunctions-of-a-band/"},"excerpt":"The Five Dysfunctions of a Team (by Patrick Lencioni) is a highly recommended book for anyone that works with other people. (So - almost everyone!) The five dysfunctions are set up in a hierarchy. The bottom of the pyramid below shows that trust is the foundation and all else moves up from there. five-dysfunctions-pyramid The book opens with a story that brings the main five principles…"}},{"node":{"id":"a2bde957-6eed-524d-afe6-19d226d89c33","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"March 31, 2016","description":null,"tags":["practicing"],"title":"A Guide to Practicing and Overcoming Plateaus","type":"post"},"fields":{"slug":"/guide-to-practicing-overcoming-plateaus/"},"excerpt":"A long time student of mine recently began learning classical guitar. He had been studying jazz and blues for a number of years. He has a love for latin fingerstyle rhythms. The more lessons we had, the more he realized that he wanted to deepen his technical foundation. I recently told him: “The number of times you’ll reach a plateau is inversely proportional to how deeply you practice.” In other…"}},{"node":{"id":"04b1908e-5183-5e17-9415-9f4881c90c86","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"March 10, 2016","description":null,"tags":["recording","songwriting"],"title":"Preparing Your Song Demo for the Studio","type":"post"},"fields":{"slug":"/preparing-demo-for-studio/"},"excerpt":"We songwriters put a lot of work into our songs. Putting together interesting chord voicings, refining our lyrics to perfection, and getting the form ‘just right’ can take a lot of effort, but be very gratifying. When your song is finally finished, you might want to make the investment of bringing it to a studio with a band to lay down all of the parts. When it comes to recording in the studio…"}},{"node":{"id":"7e202b1a-2c4a-51f1-8046-587cb36c5751","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"January 06, 2016","description":null,"tags":["songwriting","creativity","productivity"],"title":"A 3 Step Process to Organizing Creativity","type":"post"},"fields":{"slug":"/organizing-creativity-3-step-process/"},"excerpt":"It’s difficult to keep track of everything that needs to be done with your musical ideas. If you write with any frequency, these ideas can amass until there are so many that you can’t keep track of them. Your ideas might range from little snippets to near complete works. Here are some things that commonly go wrong for me: I don’t take enough time to think about where an idea needs to go to be…"}},{"node":{"id":"c55142ea-f8a1-50bf-8922-e7f4ff2ee896","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 16, 2015","description":null,"tags":["songwriting"],"title":"Songwriting Tutorial: Snippet Challenge","type":"post"},"fields":{"slug":"/songwriting-snippet-challenge/"},"excerpt":"Have lots of unfinished ideas? Learn how to take a short instrumental idea and finish writing your song in one day. Over the years, I’ve written tons and tons of short musical ideas. I had been putting off turning them into real pieces until now. Inspired by my research on speed composing, I decided to make a challenge out of my problem. The Snippet Challenge & Simple Instrumental Song Forms In a…"}},{"node":{"id":"5591838f-0d37-5819-b56e-cdcfdfb6da95","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 15, 2015","description":null,"tags":["songwriting"],"title":"Songwriting and Serendipity","type":"post"},"fields":{"slug":"/songwriting-and-serendipity/"},"excerpt":"Why start a composition with a blank slate? Jam on a cover tune then take it in a different direction. Sometimes, the less experience you have figuring out songs, the better. When I was first learning guitar and had much less skill, I tried to figure out songs that I heard. I was usually unsuccessful at transcribing them accurately, but there were many occasions that I enjoyed what I was playing…"}},{"node":{"id":"972a1e06-645e-5949-8544-deaece011b95","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"October 15, 2015","description":null,"tags":["songwriting"],"title":"Songwriting Tutorial: Simplicity and Complexity","type":"post"},"fields":{"slug":"/songwriting-simplicity-complexity/"},"excerpt":"How to begin writing a song by choosing a lyrical theme and a musical mood. The Keys to Simplicity Selecting a mood / topic for the song The central theme of your song can come from anywhere - your mood, the news, or a conversation you heard while at a coffee shop. After choosing something, stay in that mindset until you find the need for a well-placed and meaningful contrast. It’s important to…"}}]}}}')},"6nK8":function(e,t,a){a("SRfc");var o=a("dVn5"),i=a("fo6e"),n=a("dt0z"),r=a("9NmV");e.exports=function(e,t,a){return e=n(e),void 0===(t=a?void 0:t)?i(e)?r(e):o(e):e.match(t)||[]}},"7TWv":function(e,t,a){"use strict";a.d(t,"a",(function(){return i})),a.d(t,"b",(function(){return n})),a.d(t,"c",(function(){return r}));a("rvZc"),a("dRSK"),a("Z2Ku"),a("L9s1");var o=a("d9uu"),i=function(e){return function(t){return t.node.frontmatter.categories.includes(e)}},n=function(e){var t=e.categories;return t?t.map(o.a).join(", "):"Uncategorized"},r=function(e){var t=e.data,a=e.filename,o=e.sizingStrategy,i=t.allFile.edges.find((function(e){return e.node.relativePath.endsWith(a)}));if(i)return i.node.childImageSharp[o]}},"9NmV":function(e,t,a){a("SRfc"),a("Oyvg");var o="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",i="["+o+"]",n="\\d+",r="[\\u2700-\\u27bf]",s="[a-z\\xdf-\\xf6\\xf8-\\xff]",c="[^\\ud800-\\udfff"+o+n+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",d="(?:\\ud83c[\\udde6-\\uddff]){2}",l="[\\ud800-\\udbff][\\udc00-\\udfff]",u="[A-Z\\xc0-\\xd6\\xd8-\\xde]",h="(?:"+s+"|"+c+")",m="(?:"+u+"|"+c+")",g="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",p="[\\ufe0e\\ufe0f]?"+g+("(?:\\u200d(?:"+["[^\\ud800-\\udfff]",d,l].join("|")+")[\\ufe0e\\ufe0f]?"+g+")*"),f="(?:"+[r,d,l].join("|")+")"+p,y=RegExp([u+"?"+s+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[i,u,"$"].join("|")+")",m+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[i,u+h,"$"].join("|")+")",u+"?"+h+"+(?:['’](?:d|ll|m|re|s|t|ve))?",u+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",n,f].join("|"),"g");e.exports=function(e){return e.match(y)||[]}},N1om:function(e,t,a){var o=a("sgoq")((function(e,t,a){return e+(a?"-":"")+t.toLowerCase()}));e.exports=o},RXBc:function(e,t,a){"use strict";a.r(t);var o=a("q1tI"),i=a.n(o),n=a("7oih"),r=a("e+E3"),s=a("EYWl");t.default=function(e){e.data;return i.a.createElement(n.a,null,i.a.createElement(s.a,{title:"Home"}),i.a.createElement(r.a,{title:"All"}))}},dVn5:function(e,t,a){a("SRfc");var o=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;e.exports=function(e){return e.match(o)||[]}},"e+E3":function(e,t,a){"use strict";a("91GP");var o=a("5cHQ"),i=a("q1tI"),n=a.n(i),r=a("Wbzz"),s=a("jkPq"),c=a("7TWv"),d=function(e){var t=e.data,a=e.category,o=e.title;if(!t)return null;var i=t.allMarkdownRemark.edges,d=a?i.filter(Object(c.a)(a)):i;return n.a.createElement("div",{className:"posts-list"},n.a.createElement("div",{className:"posts-category"},n.a.createElement("h2",null,o," Posts "),n.a.createElement("span",null,"(",d.length,")")),d.map((function(e){var t=e.node,a=t.id,o=t.fields,i=t.frontmatter,d=t.excerpt,l=i.tags||[],u=o.slug;return n.a.createElement("article",{key:a,className:"post-wrapper"},n.a.createElement("header",{className:"post-title"},n.a.createElement("h3",null,n.a.createElement(r.Link,{to:u},i.title))),n.a.createElement("div",{className:"post-info-sm"},n.a.createElement(r.Link,{to:u},n.a.createElement("span",null,i.date," | ")),n.a.createElement("span",{className:"post-categories"},Object(c.b)(i)),l.map((function(e){return n.a.createElement(s.a,{key:e,text:e,variant:"postList"})}))),n.a.createElement(r.Link,{to:u},n.a.createElement("section",null,n.a.createElement("p",{className:"post-excerpt",dangerouslySetInnerHTML:{__html:i.description||d}}))))})))};t.a=function(e){return n.a.createElement(r.StaticQuery,{query:"4156120491",render:function(t){return n.a.createElement(d,Object.assign({data:t},e))},data:o})}},fo6e:function(e,t){var a=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;e.exports=function(e){return a.test(e)}},jkPq:function(e,t,a){"use strict";var o=a("q1tI"),i=a.n(o),n=a("N1om"),r=a.n(n),s=a("Wbzz"),c=a("d9uu"),d={post:function(e){var t=e.text;return i.a.createElement("span",{className:"post-info-sm post-tag"},t)},count:function(e){var t=e.count,a=e.text;return i.a.createElement("span",null,a+" ("+t+")")},postList:function(e){var t=e.text;return i.a.createElement("span",{className:"post-tag"},t)}};t.a=function(e){var t=e.count,a=e.text,o=e.variant,n=Object(c.a)(a),l=d[o];if(!l)throw new Error("props.variant "+o+" not in contentMap.");return i.a.createElement(s.Link,{to:"/tags/"+r()(a)+"/"},l({count:t,text:n}))}},sgoq:function(e,t,a){a("pIFo"),a("Oyvg");var o=a("asDA"),i=a("TKrE"),n=a("6nK8"),r=RegExp("['’]","g");e.exports=function(e){return function(t){return o(n(i(t).replace(r,"")),e,"")}}}}]); -//# sourceMappingURL=component---src-pages-index-js-296992e03646ca68cfab.js.map \ No newline at end of file diff --git a/component---src-pages-index-js-ba2f71ffe0ace2c2c83d.js b/component---src-pages-index-js-ba2f71ffe0ace2c2c83d.js new file mode 100644 index 00000000..2b64a379 --- /dev/null +++ b/component---src-pages-index-js-ba2f71ffe0ace2c2c83d.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{"5cHQ":function(e){e.exports=JSON.parse('{"data":{"allMarkdownRemark":{"totalCount":44,"edges":[{"node":{"id":"970567e6-3f2a-5749-b60e-5fe9bce3ce59","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"June 01, 2023","description":null,"tags":["productivity","tech talk"],"title":"How I\'m Building My Second Brain","type":"post"},"fields":{"slug":"/building-my-second-brain/"},"excerpt":"Slides + Video “How I’m building my second brain” video (2022) (YouTube) “How I’m building my second brain” slides (2022) (PDF) Intro Creativity is bound up with making connections between disparate ideas. The connections piece is crucial - personal knowledge management falls apart without it. Long ago, I treated the Getting Things Done (GTD) productivity system as gospel. The way I used it…"}},{"node":{"id":"5bc00e6c-f6a8-51a5-9312-749eabf343c4","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 05, 2022","description":null,"tags":["random music generators"],"title":"Random Music Generators is now hosted on render.com","type":"post"},"fields":{"slug":"/2022-12-05-random-music-generators-news/"},"excerpt":"Random Music Generators is now hosted on render.com. Please update your bookmarks! https://random-music-generators.onrender.com"}},{"node":{"id":"87a467a5-a5cc-57bc-b828-33199e1396ed","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 05, 2021","description":null,"tags":["typescript","javascript"],"title":"TypeScript-lite: JSDoc for type-checking js files","type":"post"},"fields":{"slug":"/type-check-jsdocs-typescript/"},"excerpt":"Overview Did you know that you can use TypeScript features in JavaScript projects? When I discovered this and tried it out, I really enjoyed the results. Let’s go a bit into how it works. With a few simple ingredients: VSCode JavaScript Willingness to add types in JSDoc (and optionally importing TypeScript types) You can: statically check the types of .js files run compiler on .js files write…"}},{"node":{"id":"43882726-b323-56c1-986e-85fad7e68237","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 27, 2021","description":null,"tags":["career","mental health"],"title":"Programming with more ease","type":"post"},"fields":{"slug":"/programming-with-more-ease/"},"excerpt":"As professional programmers, the bulk of what we do is solving problems. A lot of the time, I’m motivated by problem-solving challenges. But sometimes I hit a wall. A given challenge can become a problem that I’m frustratingly unable to solve. Often, this frustration would spiral into a worse mental state. I’d imagine the problem as a scary, overwhelming, difficult to defeat monster - more…"}},{"node":{"id":"6a155da7-d04b-5289-b463-02babc9a2670","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 23, 2021","description":null,"tags":["design patterns"],"title":"How to Learn Design Patterns","type":"post"},"fields":{"slug":"/design-patterns-curriculum/"},"excerpt":"I’ve long been intrigued by design patterns, but when I started learning them, I realized quickly that I didn’t have a clear learning path. I didn’t know how I should learn design patterns or if it’s the right time for me to learn them. So, I sought out to answer some questions: What are the prerequisites for learning design patterns? What material should I use and how do I avoid being scattered…"}},{"node":{"id":"c373259e-e38e-59bb-ab3b-22a5afc45474","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2021","description":null,"tags":["design patterns"],"title":"Introduction to Design Patterns: Why they\'re worth learning","type":"post"},"fields":{"slug":"/design-patterns-intro/"},"excerpt":"As developers, we’re constantly learning - and there’s a lot to learn in general because the tech industry is broad and fast-paced. We want to have all the main bases covered so that we can be ready for any situation. We often hear about design patterns and how they can enable us to write well-architected software using object-oriented programming. If you’re like me, you might file that away as a…"}},{"node":{"id":"ef97f645-0325-5bf1-806d-ba14610e6780","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 30, 2021","description":null,"tags":["random music generators"],"title":"Random Music Generators News 2021-01-30","type":"post"},"fields":{"slug":"/2021-01-30-random-music-generators-news/"},"excerpt":"New in 1.3.1 This month, I released a big new feature that’s been requested often. You can now specify a custom note collection to create random melodies. Check it out! Note: This feature is available to use if you create an account. Part of the impetus to provide this feature was to aid in neuroscience research. Having the ability to create melodies with specific pitches will allow researchers…"}},{"node":{"id":"ba57e0fe-e724-5a6e-b122-d39a3674b8fc","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 10, 2020","description":null,"tags":["career"],"title":"Are You Ready to be a Professional Software Engineer?","type":"post"},"fields":{"slug":"/tech-career-resources/"},"excerpt":"Updated March 21, 2021 Did you just graduate from a coding bootcamp, obtain a CS degree, or built an involved side project? How do you know when you’re ready to write software professionally? This post has two parts: questions I ask my mentees to help clarify their job search a collection of resources I’ve found or made that helped my on my job search Questions to clarify the job search There are…"}},{"node":{"id":"ef2f493a-fbef-500d-a57e-689069307ca5","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 21, 2020","description":null,"tags":["immerjs","javascript","react","redux"],"title":"My love hate relationship with ImmerJS","type":"post"},"fields":{"slug":"/love-hate-immer-js/"},"excerpt":"After having used immutable js for a while, discovering ImmerJS was a breath of fresh air. Where immutable js forces you to learn its gigantic API, ImmerJS takes advantage of ES6 Proxies. These allow you to modify a “draft” version of an object as if you’re mutating it, but the draft is actually a copy so you’re not mutating the original! The return of immer’s function always returns a perfect…"}},{"node":{"id":"f2cf9b4b-5eb8-5856-bd0a-86b1e7bc66f4","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 15, 2020","description":null,"tags":["career","coding bootcamps","electron","javascript","tech talk"],"title":"Tech Talk - How I\'d Improve My Capstone Project","type":"post"},"fields":{"slug":"/tech-talk-improving-capstone-project/"},"excerpt":"In February 2020, I returned to my bootcamp to give a tech talk on what I’d do to improve my Capstone project. (I also answer career and other questions from the audience at the end.) Download the slides here (PDF) I’m excited to share what I’ve learned so far from working on enterprise software for almost 2 years. The talk is a deep dive into the codebase that myself and three others worked on…"}},{"node":{"id":"d6855891-7ad1-5756-b178-be45a9213df7","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 02, 2020","description":null,"tags":["javascript","node","productivity"],"title":"Using question-prompter for study, self-reflection, and more","type":"post"},"fields":{"slug":"/using-question-prompter/"},"excerpt":"I recently created a node command line app called question-prompter. It prompts you at your terminal to answer questions that you come up with. After you answer them, it saves them to a or file in a directory of your choosing. Background I find a lot of benefit from regularly checking in with myself. While many authors have written about this kind of reflection, Tim Ferriss comes to mind first…"}},{"node":{"id":"d83dfc88-d6b1-51d0-924a-b4ef8ea54dcf","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"June 03, 2020","description":null,"tags":["songwriting","composition","creativity"],"title":"Meta Ideas - Generating Creative Content","type":"post"},"fields":{"slug":"/meta-ideas-generating-creative-content/"},"excerpt":"I’ve been writing down small music (and other) ideas for over 20 years. I’ve generally struggled to store, organize, and retrieve them effectively. As I was going through my archives recently, it dawned on me that there are two fundamental types of ideas: one is “concrete” and the other is “meta.” A concrete idea is specific and actionable. It may be a chord progression like: A minor for two and a…"}},{"node":{"id":"362cb819-3e27-5202-98bf-310df4ba421f","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"May 02, 2020","description":null,"tags":["javascript","test runners","ava","mocha","jest","tech talk"],"title":"Comparing JavaScript Test Runners","type":"post"},"fields":{"slug":"/comparing-javascript-test-runners/"},"excerpt":"This post is a pointer to an article I completed recently - a comprehensive comparison of the AVA, Jest, Mocha, and JavaScript test runners. 👉 https://github.com/scraggo/comparing-javascript-test-runners/ 👈 Why is it on GitHub, not this blog? Not only does the repo contain the comparison article, I created a node application to generate the speed metrics in the article. The process looks like…"}},{"node":{"id":"5c2a373c-48fe-5078-9e3d-f21888265979","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2020","description":null,"tags":["typescript","open source"],"title":"Contributing a New Feature to Open Source: @sindresorhus/is","type":"post"},"fields":{"slug":"/contributing-to-open-source-is-type-checking/"},"excerpt":"This post is a recount of my recent experience contributing to is, a JavaScript open source type checking library. https://github.com/sindresorhus/is https://www.npmjs.com/package/@sindresorhus/is I’ll outline the process from beginning to end: the initial filing of the feature request, implementing the feature, collaborating on the pull request, and getting the feature released. Some of the open…"}},{"node":{"id":"eae0c8d9-4b57-5113-88ed-3ece28ea88ca","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"February 15, 2020","description":"Problems with unexpected assertion failures can arise while testing immutablejs with sinon. This post is a brief guide on how to create a custom matcher that will correctly calculate the equivalence between a mock/stub/spy call with an immutable parameter. The way I’ll be making the assertion is with calledWith from sinon-chai (a plugin for chai that helps with making should or expect assertions for sinon mocks). This github issue on sinonjs outlines the problem...","tags":["testing","sinon","immutablejs"],"title":"Testing immutable js with sinon custom matchers","type":"post"},"fields":{"slug":"/testing-immutable-js-with-sinon-custom-matchers/"},"excerpt":"Problems with unexpected assertion failures can arise while testing with . This post is a brief guide on how to create a custom matcher that will correctly calculate the equivalence between a mock/stub/spy call with an parameter. The way I’ll be making the assertion is with from (a plugin for that helps with making or assertions for mocks). This github issue on sinonjs outlines the problem…"}},{"node":{"id":"13bb4e43-1a4c-5619-88cf-18b133874a58","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 27, 2020","description":null,"tags":["random music generators"],"title":"Random Music Generators News 2020-01-27","type":"post"},"fields":{"slug":"/2020-01-27-random-music-generators-news/"},"excerpt":"New in 1.1.0 Yesterday, I released a feature that’s been in the works for over 6 months. You can now create melody presets. Check it out! If you have a go-to set of form parameters that make sounds that you really enjoy, you can save them and recall them later. As a necessity of saving presets, I added the ability to create an account. This will set the stage for being able to save presets for…"}},{"node":{"id":"208d49b8-08db-5947-81dc-1b7fec2f4c50","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 09, 2020","description":"Happy 2020! One of my new year’s resolutions is to redo my website with a lot of new things in mind. Here I’ll outline the changes I’m in the process of making. An important step in the whole makeover was getting an official domain name - I’m now live at scraggo.com! I’m using namecheap as the provider. The site has been hosted with github pages since its inception and I’ll…","tags":["gatsbyjs"],"title":"Website Makeover: Moving from Jekyll to Gatsby","type":"post"},"fields":{"slug":"/website-makeover-gatsby/"},"excerpt":"Happy 2020! One of my new year’s resolutions is to redo my website with a lot of new things in mind. Here I’ll outline the changes I’m in the process of making. EDIT Jan 18, 2020: Gatsby makeover complete! Now live: custom domain name An important step in the whole makeover was getting an official domain name - I’m now live at ! I’m using namecheap as the provider. The site has been hosted with…"}},{"node":{"id":"69ec04c0-36a1-5b4b-b7e5-895ff00cceda","frontmatter":{"author":"Dave Cohen","categories":["other"],"date":"January 01, 2020","description":null,"tags":null,"title":"2020 Resolutions and Reviewing the Decade","type":"post"},"fields":{"slug":"/2020-decade-in-review/"},"excerpt":"I really enjoy reflecting on the past year during the holidays. If I get a chance to do this, I come up with New Years resolutions afterwards. Some years I go through a somewhat involved process of going through my journal entries and coming up with the best realizations. This year, my girlfriend wanted to try Marie Forleo’s recommendation of reviewing the past decade. We went through the…"}},{"node":{"id":"71cb4d5a-1ffa-5471-9090-7ad8a844304b","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 21, 2019","description":null,"tags":["git"],"title":"How to Squash All Commits Related to a Single Issue into a Single Commit","type":"post"},"fields":{"slug":"/how-to-squash-commits/"},"excerpt":"Updated Sep 3, 2020 This article outlines how to use the “squash” feature of an interactive . What does “squashing” do? It allows you to take changes that are spread amongst multiple commits and consolidate them into one. Why should one consider squashing commits? A clean history makes tracking changes to a large codebase across time much easier. Many commits are small and unimportant in the grand…"}},{"node":{"id":"005c820c-061e-57bb-8255-c635792a976d","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"December 20, 2019","description":null,"tags":["music education"],"title":"About Songmind Studios","type":"post"},"fields":{"slug":"/about-songmind-studios/"},"excerpt":"In 2016, I decided to start my own brand of music education. I took the role of music coach, agent, and collaborator. The student and I would write and record music together to integrate learning and creativity in a holistic way. While I’ve suspended these services for the foreseeable future, I’m posting are the core concepts and aims of Songmind Studios. I’ll eventually make all my teaching…"}},{"node":{"id":"fe9a22be-2af0-5ee7-9e22-9ca6bb593de8","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 02, 2019","description":null,"tags":["career"],"title":"How to ace your initial programming job screen","type":"post"},"fields":{"slug":"/prepare-for-initial-screens/"},"excerpt":"Your resume and cover letter surely made a positive impact, but the most important evaluation has yet to come. If you’re searching for your first software development job, the process can be daunting. You may have heard that after sending your resume to a company, there’s an initial screen. This is usually done over the phone, but sometimes it happens in-person. Your resume and cover letter (the…"}},{"node":{"id":"3220ea90-ef5c-5200-befb-6f9a58952f53","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"April 03, 2019","description":null,"tags":["javascript"],"title":"Catching and handling different types of errors in promise chains","type":"post"},"fields":{"slug":"/catching-handling-errors-promise-chains/"},"excerpt":"When you need to make sequential API calls, promise chains are a reliable way to go. It gets a little tricky when you need to throw and handle errors differently at different points in the chain. This post will go into: throwing specific types of errors using creating an object literal dictionary to handle logic gracefully handling the errors differently at the end of the chain This article is…"}},{"node":{"id":"657093ab-4233-5d14-a741-44f2fa462db8","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 28, 2019","description":null,"tags":["javascript"],"title":"Using a filter function recursively","type":"post"},"fields":{"slug":"/recursive-filter-function/"},"excerpt":"The problem Given our array data structure, we only want to include items that have an ‘age’ property and the age is greater than 17. If the person is under age, we won’t allow any of their friends to be included (even if they are old enough to be.) (Contrived scenario, I know, but I recently needed to do something like this for a different type of authorization.) Run this code on repl.it We can…"}},{"node":{"id":"86cb31eb-6b40-50e3-9ddc-d195f0cee1c6","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 24, 2019","description":null,"tags":["git"],"title":"How to format and edit your git commit messages","type":"post"},"fields":{"slug":"/git-commit-format-squash/"},"excerpt":"When writing commit messages, it’s ideal to make them easy for another developer to read and understand exactly what’s in the commit. Oftentimes, though, we write commit messages quickly just to push a branch at the end of a workday, for instance (I know I’m guilty of this). One team member brought the Conventional Commits format to our attention. I’ve enjoyed using it and seeing the results when…"}},{"node":{"id":"35287751-dd87-580c-ae8e-8b1c02051859","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 23, 2019","description":null,"tags":["javascript"],"title":"How to prevent circular dependencies","type":"post"},"fields":{"slug":"/circular-dependencies-bug/"},"excerpt":"Some errors are kind of mysterious. The first time I got “‘myFunction’ is not a function” type errors, I was at a loss for a few hours. Logging out the functions from my require statements came back as or . What I learned, TL;DR - don’t import file ‘a’ into file ‘b’ AND file ‘b’ into file ‘a’. That’s an example of a “circular dependency.” Brief example of creating a circular dependency: myUtils…"}},{"node":{"id":"a5528eb3-e30d-5233-bd30-b8c7ae51558c","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2019","description":null,"tags":["javascript"],"title":"Custom type checking - isNaN vs Number.isNaN","type":"post"},"fields":{"slug":"/custom-type-checking-isnan/"},"excerpt":"Javascript is infamous for being “loose” and misleading with its typing. gives you , gives you , etc. So instead of writing conditionals using , doing specific checks, etc, I decided to make my own wrapper for which I called : I unknowingly put a bug in my app. Can you spot it? … It’s in the 3rd statement. Basically, the function took anything that wasn’t an ‘array’ or ‘null’ and decided it…"}},{"node":{"id":"ffbf844d-8df4-58a2-bbac-456ad18ce4e2","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 18, 2019","description":null,"tags":["javascript"],"title":"Using a Code Style Guide to Enforce Team Best Practices","type":"post"},"fields":{"slug":"/code-style-guide/"},"excerpt":"We all have opinions on what what coding best practices are and how code should be formatted. Recently, one of the teams I’ve been working on decided to add another member. I discovered that our coding styles were radically different. I decided to write some guidelines for our team to get us on the same page. I quickly realized that writing a style guide from scratch is a tall order. I’d already…"}},{"node":{"id":"78ad3884-f757-59b3-9a3e-cfb58062229e","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 18, 2018","description":null,"tags":["career"],"title":"Should junior developers work with recruiters?","type":"post"},"fields":{"slug":"/recruiters-and-junior-devs/"},"excerpt":"This is the first of a handful of posts about the 3-month search for my first full-time developer job. I graduated from a coding bootcamp in April. I’m a junior developer, though, I have some freelance projects on my resume that gave me about 2 years of experience. This, combined with a decently written Linkedin profile, contributed to my getting contacted by multiple recruiters daily. I wound up…"}},{"node":{"id":"58fbbba9-9063-500a-9fcb-829e58d07642","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"May 08, 2018","description":null,"tags":["computer science"],"title":"Debugging Strategies Checklist","type":"post"},"fields":{"slug":"/debugging-strategies-checklist/"},"excerpt":"Tracking down bugs in the software you’re working on can be tricky. Debugging is a massive topic and there are so many places bugs can show up. One thing’s for sure, whether you’re careful or not… Bugs will show up. I’m not saying this to be pessimistic. Creating and squashing bugs is not just a part of the process of writing software, it is the process! We’re solving problems and ironing out the…"}},{"node":{"id":"0092c8a9-f74f-5de1-a8e6-0fe315511475","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"April 16, 2018","description":null,"tags":["coding bootcamps","javascript"],"title":"Reflections From a Coding Bootcamp Graduate","type":"post"},"fields":{"slug":"/reflections-coding-bootcamp/"},"excerpt":"I was ready for a career change. It was October of 2017. The more time I spent coding and learning computer science fundamentals, the more I realized that a programming career would fit my personality* better than performing and teaching music. After spending a fair amount of time teaching myself to code and making websites, I began researching coding bootcamps. There were optimistic statistics of…"}},{"node":{"id":"8e59934a-7dcb-5377-ae8d-73c2d8ed7686","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"February 20, 2018","description":null,"tags":["javascript","computer science"],"title":"Tackling Hash Table Problems in JavaScript","type":"post"},"fields":{"slug":"/hash-tables-js/"},"excerpt":"Algorithms and data structures can be intimidating. The goal of this post is to explain some approaches to solving hash table algorithm problems providing clear examples with detailed solution explanations. I’m hoping this will help anyone uninitiated alleviate fears and make bigger strides in conquering these challenging problems. Why Hash Tables? While attending Fullstack Academy, I participated…"}},{"node":{"id":"d49b052b-2f19-5ddd-a73d-78e80b12bfdd","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 26, 2017","description":null,"tags":["coding bootcamps","javascript"],"title":"Now Attending: Fullstack Academy","type":"post"},"fields":{"slug":"/now-attending-fullstack/"},"excerpt":"Why I’m attending Fullstack Academy Since discovering a love for guitar and composition in my teens, I decided to pursue a career as a freelance music teacher, composer, recording engineer, and performing guitarist. After a decade of this, I realized that the rockstar dream didn’t suit me and I was tired of chasing it. I’d be happier with a more stable career that challenged me intellectually. I…"}},{"node":{"id":"e1022862-d7d0-5e18-994d-92f148fb9302","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 01, 2017","description":null,"tags":["javascript"],"title":"Intro to JavaScript Frameworks Part 1: The Vanilla JavaScript Version of TodoMVC","type":"post"},"fields":{"slug":"/intro-to-js-frameworks01/"},"excerpt":"The goal of this blog-series is to explain what frameworks do, why they’re used, and demonstrate with examples across many different frameworks. The series is aimed at those familiar with JavaScript syntax, accessing the DOM, functions, and classes (object-oriented programming). Further reading can be found at the bottom of this post. What is a JavaScript Framework? A framework is an imported…"}},{"node":{"id":"bd3eb5a8-b322-5b98-ad3f-6f3cae8be4e1","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 01, 2017","description":"This post contains an overview of what sorts of programming jobs are available. It\'s aimed at developers who want to try something new or are still deciding what to focus on in their efforts to become more marketable.","tags":["career"],"title":"Marketable Programming Skills","type":"post"},"fields":{"slug":"/marketable-programming-skills/"},"excerpt":"If you’ve been learning programming on your own, you may have made worked through some books, followed some online tutorials, and made a decent collection of simple apps. At a certain point you may wonder how much else you need to know to be able to start working as a programmer. I’m a self-taught coder with experience in web technologies (JavaScript, HTML, CSS, etc) and Python. Compiling some…"}},{"node":{"id":"b9bffa10-76c5-5831-96ad-63365ba582ec","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 01, 2017","description":null,"tags":["oop","python"],"title":"Using a Class in Python as a Code Wrapper for a Simple Game","type":"post"},"fields":{"slug":"/python-classes-guess-the-number/"},"excerpt":"Object-oriented design is a powerful programming paradigm that can be intimidating to anyone trying to learn how to use it. I worked through a number of excellent tutorials and books on the subject, but struggled to apply the concepts to my own code. I decided to convert a working program that didn’t use OOP and wrap it in a single class. The program I chose was Guess the Number written by Al…"}},{"node":{"id":"8a0e0fa2-afc3-5492-b98a-ed745595bdbf","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"January 15, 2017","description":null,"tags":["music education"],"title":"Honing Musical Strengths with a Student Evaluation","type":"post"},"fields":{"slug":"/honing-strengths-with-a-student-evaluation/"},"excerpt":"From time to time, we can find ourselves stagnating when studying music (or any other topic). To help become immune to this, it’s useful to fully recognize our strengths and acknowledge our weaknesses. Every strength is an opportunity to improve further and if we can acknowledge where we are struggling then we can begin to grow much faster and reach excellence. Ask yourself the following questions…"}},{"node":{"id":"cf15c4c6-a96d-537d-9525-34c1d200c9e4","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 01, 2016","description":null,"tags":["songwriting","promotion"],"title":"10 Issues Songwriters Face","type":"post"},"fields":{"slug":"/10-issues-songwriters-face/"},"excerpt":"It’s common for songwriters to feel overwhelmed when finishing their songs and getting them ready for their audience. There can be tremendous blocks going from inspiration to song completion. Listed below are the top issues I’ve encountered while interviewing songwriters and students of music who write music. 1. Not knowing “where to go next” with your song. This is a major problem for many…"}},{"node":{"id":"9e899d18-3457-5b38-89f4-b68c3fedda94","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"May 10, 2016","description":null,"tags":["bands"],"title":"The Five Dysfunctions of a Band","type":"post"},"fields":{"slug":"/5-dysfunctions-of-a-band/"},"excerpt":"The Five Dysfunctions of a Team (by Patrick Lencioni) is a highly recommended book for anyone that works with other people. (So - almost everyone!) The five dysfunctions are set up in a hierarchy. The bottom of the pyramid below shows that trust is the foundation and all else moves up from there. five-dysfunctions-pyramid The book opens with a story that brings the main five principles…"}},{"node":{"id":"a2bde957-6eed-524d-afe6-19d226d89c33","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"March 31, 2016","description":null,"tags":["practicing"],"title":"A Guide to Practicing and Overcoming Plateaus","type":"post"},"fields":{"slug":"/guide-to-practicing-overcoming-plateaus/"},"excerpt":"A long time student of mine recently began learning classical guitar. He had been studying jazz and blues for a number of years. He has a love for latin fingerstyle rhythms. The more lessons we had, the more he realized that he wanted to deepen his technical foundation. I recently told him: “The number of times you’ll reach a plateau is inversely proportional to how deeply you practice.” In other…"}},{"node":{"id":"04b1908e-5183-5e17-9415-9f4881c90c86","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"March 10, 2016","description":null,"tags":["recording","songwriting"],"title":"Preparing Your Song Demo for the Studio","type":"post"},"fields":{"slug":"/preparing-demo-for-studio/"},"excerpt":"We songwriters put a lot of work into our songs. Putting together interesting chord voicings, refining our lyrics to perfection, and getting the form ‘just right’ can take a lot of effort, but be very gratifying. When your song is finally finished, you might want to make the investment of bringing it to a studio with a band to lay down all of the parts. When it comes to recording in the studio…"}},{"node":{"id":"7e202b1a-2c4a-51f1-8046-587cb36c5751","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"January 06, 2016","description":null,"tags":["songwriting","creativity","productivity"],"title":"A 3 Step Process to Organizing Creativity","type":"post"},"fields":{"slug":"/organizing-creativity-3-step-process/"},"excerpt":"It’s difficult to keep track of everything that needs to be done with your musical ideas. If you write with any frequency, these ideas can amass until there are so many that you can’t keep track of them. Your ideas might range from little snippets to near complete works. Here are some things that commonly go wrong for me: I don’t take enough time to think about where an idea needs to go to be…"}},{"node":{"id":"c55142ea-f8a1-50bf-8922-e7f4ff2ee896","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 16, 2015","description":null,"tags":["songwriting"],"title":"Songwriting Tutorial: Snippet Challenge","type":"post"},"fields":{"slug":"/songwriting-snippet-challenge/"},"excerpt":"Have lots of unfinished ideas? Learn how to take a short instrumental idea and finish writing your song in one day. Over the years, I’ve written tons and tons of short musical ideas. I had been putting off turning them into real pieces until now. Inspired by my research on speed composing, I decided to make a challenge out of my problem. The Snippet Challenge & Simple Instrumental Song Forms In a…"}},{"node":{"id":"5591838f-0d37-5819-b56e-cdcfdfb6da95","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 15, 2015","description":null,"tags":["songwriting"],"title":"Songwriting and Serendipity","type":"post"},"fields":{"slug":"/songwriting-and-serendipity/"},"excerpt":"Why start a composition with a blank slate? Jam on a cover tune then take it in a different direction. Sometimes, the less experience you have figuring out songs, the better. When I was first learning guitar and had much less skill, I tried to figure out songs that I heard. I was usually unsuccessful at transcribing them accurately, but there were many occasions that I enjoyed what I was playing…"}},{"node":{"id":"972a1e06-645e-5949-8544-deaece011b95","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"October 15, 2015","description":null,"tags":["songwriting"],"title":"Songwriting Tutorial: Simplicity and Complexity","type":"post"},"fields":{"slug":"/songwriting-simplicity-complexity/"},"excerpt":"How to begin writing a song by choosing a lyrical theme and a musical mood. The Keys to Simplicity Selecting a mood / topic for the song The central theme of your song can come from anywhere - your mood, the news, or a conversation you heard while at a coffee shop. After choosing something, stay in that mindset until you find the need for a well-placed and meaningful contrast. It’s important to…"}}]}}}')},"6nK8":function(e,t,a){a("SRfc");var o=a("dVn5"),i=a("fo6e"),n=a("dt0z"),r=a("9NmV");e.exports=function(e,t,a){return e=n(e),void 0===(t=a?void 0:t)?i(e)?r(e):o(e):e.match(t)||[]}},"7TWv":function(e,t,a){"use strict";a.d(t,"a",(function(){return i})),a.d(t,"b",(function(){return n})),a.d(t,"c",(function(){return r}));a("rvZc"),a("dRSK"),a("Z2Ku"),a("L9s1");var o=a("d9uu"),i=function(e){return function(t){return t.node.frontmatter.categories.includes(e)}},n=function(e){var t=e.categories;return t?t.map(o.a).join(", "):"Uncategorized"},r=function(e){var t=e.data,a=e.filename,o=e.sizingStrategy,i=t.allFile.edges.find((function(e){return e.node.relativePath.endsWith(a)}));if(i)return i.node.childImageSharp[o]}},"9NmV":function(e,t,a){a("SRfc"),a("Oyvg");var o="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",i="["+o+"]",n="\\d+",r="[\\u2700-\\u27bf]",s="[a-z\\xdf-\\xf6\\xf8-\\xff]",c="[^\\ud800-\\udfff"+o+n+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",d="(?:\\ud83c[\\udde6-\\uddff]){2}",l="[\\ud800-\\udbff][\\udc00-\\udfff]",u="[A-Z\\xc0-\\xd6\\xd8-\\xde]",h="(?:"+s+"|"+c+")",m="(?:"+u+"|"+c+")",g="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",p="[\\ufe0e\\ufe0f]?"+g+("(?:\\u200d(?:"+["[^\\ud800-\\udfff]",d,l].join("|")+")[\\ufe0e\\ufe0f]?"+g+")*"),f="(?:"+[r,d,l].join("|")+")"+p,y=RegExp([u+"?"+s+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[i,u,"$"].join("|")+")",m+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[i,u+h,"$"].join("|")+")",u+"?"+h+"+(?:['’](?:d|ll|m|re|s|t|ve))?",u+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",n,f].join("|"),"g");e.exports=function(e){return e.match(y)||[]}},N1om:function(e,t,a){var o=a("sgoq")((function(e,t,a){return e+(a?"-":"")+t.toLowerCase()}));e.exports=o},RXBc:function(e,t,a){"use strict";a.r(t);var o=a("q1tI"),i=a.n(o),n=a("7oih"),r=a("e+E3"),s=a("EYWl");t.default=function(e){e.data;return i.a.createElement(n.a,null,i.a.createElement(s.a,{title:"Home"}),i.a.createElement(r.a,{title:"All"}))}},dVn5:function(e,t,a){a("SRfc");var o=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;e.exports=function(e){return e.match(o)||[]}},"e+E3":function(e,t,a){"use strict";a("91GP");var o=a("5cHQ"),i=a("q1tI"),n=a.n(i),r=a("Wbzz"),s=a("jkPq"),c=a("7TWv"),d=function(e){var t=e.data,a=e.category,o=e.title;if(!t)return null;var i=t.allMarkdownRemark.edges,d=a?i.filter(Object(c.a)(a)):i;return n.a.createElement("div",{className:"posts-list"},n.a.createElement("div",{className:"posts-category"},n.a.createElement("h2",null,o," Posts "),n.a.createElement("span",null,"(",d.length,")")),d.map((function(e){var t=e.node,a=t.id,o=t.fields,i=t.frontmatter,d=t.excerpt,l=i.tags||[],u=o.slug;return n.a.createElement("article",{key:a,className:"post-wrapper"},n.a.createElement("header",{className:"post-title"},n.a.createElement("h3",null,n.a.createElement(r.Link,{to:u},i.title))),n.a.createElement("div",{className:"post-info-sm"},n.a.createElement(r.Link,{to:u},n.a.createElement("span",null,i.date," | ")),n.a.createElement("span",{className:"post-categories"},Object(c.b)(i)),l.map((function(e){return n.a.createElement(s.a,{key:e,text:e,variant:"postList"})}))),n.a.createElement(r.Link,{to:u},n.a.createElement("section",null,n.a.createElement("p",{className:"post-excerpt",dangerouslySetInnerHTML:{__html:i.description||d}}))))})))};t.a=function(e){return n.a.createElement(r.StaticQuery,{query:"4156120491",render:function(t){return n.a.createElement(d,Object.assign({data:t},e))},data:o})}},fo6e:function(e,t){var a=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;e.exports=function(e){return a.test(e)}},jkPq:function(e,t,a){"use strict";var o=a("q1tI"),i=a.n(o),n=a("N1om"),r=a.n(n),s=a("Wbzz"),c=a("d9uu"),d={post:function(e){var t=e.text;return i.a.createElement("span",{className:"post-info-sm post-tag"},t)},count:function(e){var t=e.count,a=e.text;return i.a.createElement("span",null,a+" ("+t+")")},postList:function(e){var t=e.text;return i.a.createElement("span",{className:"post-tag"},t)}};t.a=function(e){var t=e.count,a=e.text,o=e.variant,n=Object(c.a)(a),l=d[o];if(!l)throw new Error("props.variant "+o+" not in contentMap.");return i.a.createElement(s.Link,{to:"/tags/"+r()(a)+"/"},l({count:t,text:n}))}},sgoq:function(e,t,a){a("pIFo"),a("Oyvg");var o=a("asDA"),i=a("TKrE"),n=a("6nK8"),r=RegExp("['’]","g");e.exports=function(e){return function(t){return o(n(i(t).replace(r,"")),e,"")}}}}]); +//# sourceMappingURL=component---src-pages-index-js-ba2f71ffe0ace2c2c83d.js.map \ No newline at end of file diff --git a/component---src-pages-index-js-296992e03646ca68cfab.js.map b/component---src-pages-index-js-ba2f71ffe0ace2c2c83d.js.map similarity index 99% rename from component---src-pages-index-js-296992e03646ca68cfab.js.map rename to component---src-pages-index-js-ba2f71ffe0ace2c2c83d.js.map index a4280e4e..4bcea58d 100644 --- a/component---src-pages-index-js-296992e03646ca68cfab.js.map +++ b/component---src-pages-index-js-ba2f71ffe0ace2c2c83d.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/lodash/words.js","webpack:///./src/utils/dataUtils.js","webpack:///./node_modules/lodash/_unicodeWords.js","webpack:///./node_modules/lodash/kebabCase.js","webpack:///./src/pages/index.js","webpack:///./node_modules/lodash/_asciiWords.js","webpack:///./src/components/PostsList.js","webpack:///./node_modules/lodash/_hasUnicodeWord.js","webpack:///./src/components/TagLink.js","webpack:///./node_modules/lodash/_createCompounder.js"],"names":["asciiWords","hasUnicodeWord","toString","unicodeWords","module","exports","string","pattern","guard","undefined","match","categoryFilter","category","data","node","frontmatter","categories","includes","getFormattedCategories","map","capitalizeWords","join","getImage","filename","sizingStrategy","found","allFile","edges","find","image","relativePath","endsWith","childImageSharp","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsRegional","rsSurrPair","rsUpper","rsMiscLower","rsMiscUpper","reOptMod","rsModifier","rsSeq","rsEmoji","reUnicodeWord","RegExp","kebabCase","createCompounder","result","word","index","toLowerCase","title","reAsciiWord","PostsList","postData","allMarkdownRemark","posts","filter","className","length","id","fields","excerpt","tags","url","slug","key","to","date","tag","text","variant","dangerouslySetInnerHTML","__html","description","props","query","render","reHasUnicodeWord","test","contentMap","post","count","postList","TagLink","capText","contentFunc","Error","arrayReduce","deburr","words","reApos","callback","replace"],"mappings":"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","file":"component---src-pages-index-js-296992e03646ca68cfab.js","sourcesContent":["require(\"core-js/modules/es6.regexp.match\");\n\nvar asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\n\n\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;","import { capitalizeWords } from 'src/utils/stringUtils';\n\n/**\n * Get a filter callback for category\n * @param {string} category\n * @returns {function} filter\n */\nexport const categoryFilter = category => data =>\n data.node.frontmatter.categories.includes(category);\n\nexport const getFormattedCategories = frontmatter => {\n const { categories } = frontmatter;\n return categories\n ? categories.map(capitalizeWords).join(', ')\n : 'Uncategorized';\n};\n\n/**\n * Get image data from graphQl query\n * @param {object} config\n * @param {object} config.data -> the graphQl query result\n * @param {string} config.filename\n * @param {string} config.sizingStrategy -> oneOf('fixed', 'fluid')\n * @returns {object|undefined}\n */\nexport const getImage = ({ data, filename, sizingStrategy }) => {\n // data.allFile.edges -> array\n // data.allFile.edges[0].node.relativePath -> tech-projects/filename\n // data.allFile.edges[0].node.childImageSharp.fluid -> object base 64\n const found = data.allFile.edges.find(image =>\n image.node.relativePath.endsWith(filename)\n );\n if (found) {\n return found.node.childImageSharp[sizingStrategy];\n }\n};\n","require(\"core-js/modules/es6.regexp.match\");\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = \"\\\\ud800-\\\\udfff\",\n rsComboMarksRange = \"\\\\u0300-\\\\u036f\",\n reComboHalfMarksRange = \"\\\\ufe20-\\\\ufe2f\",\n rsComboSymbolsRange = \"\\\\u20d0-\\\\u20ff\",\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = \"\\\\u2700-\\\\u27bf\",\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = \"\\\\u2000-\\\\u206f\",\n rsSpaceRange = \" \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\",\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = \"\\\\ufe0e\\\\ufe0f\",\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n/** Used to compose unicode capture groups. */\n\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = \"\\\\ud83c[\\\\udffb-\\\\udfff]\",\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = \"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",\n rsSurrPair = \"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = \"\\\\u200d\";\n/** Used to compose unicode regexes. */\n\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n/** Used to match complex or compound words. */\n\nvar reUnicodeWord = RegExp([rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, rsUpper + '+' + rsOptContrUpper, rsOrdUpper, rsOrdLower, rsDigits, rsEmoji].join('|'), 'g');\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;","var createCompounder = require('./_createCompounder');\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n\n\nvar kebabCase = createCompounder(function (result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\nmodule.exports = kebabCase;","import React from 'react';\n// import { Link, graphql } from 'gatsby';\nimport Layout from 'src/components/Layout';\nimport PostsList from 'src/components/PostsList';\nimport SEO from 'src/components/SEO';\n\nexport default ({ data }) => (\n \n \n \n \n);\n","require(\"core-js/modules/es6.regexp.match\");\n\n/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;","import React from 'react';\nimport { Link, graphql, StaticQuery } from 'gatsby';\n\nimport TagLink from 'src/components/TagLink';\nimport { categoryFilter, getFormattedCategories } from 'src/utils/dataUtils';\n\n/** posts -> already filtered edges */\n/** totalCount -> data.allMarkdownRemark.totalCount */\nconst PostsList = ({ data, category, title }) => {\n if (!data) {\n return null;\n }\n\n const postData = data.allMarkdownRemark.edges;\n const posts = category ? postData.filter(categoryFilter(category)) : postData;\n\n return (\n
    \n
    \n

    {title} Posts

    \n ({posts.length})\n
    \n {posts.map(({ node }) => {\n const { id, fields, frontmatter, excerpt } = node;\n const tags = frontmatter.tags || [];\n const url = fields.slug;\n\n return (\n
    \n
    \n

    \n {frontmatter.title}\n

    \n
    \n
    \n \n {frontmatter.date} | \n \n \n {getFormattedCategories(frontmatter)}\n \n {tags.map(tag => (\n \n ))}\n
    \n \n
    \n \n
    \n \n
    \n );\n })}\n
    \n );\n};\n\nconst query = graphql`\n query {\n allMarkdownRemark(\n filter: { frontmatter: { type: { eq: \"post\" } } }\n sort: { fields: [frontmatter___date], order: DESC }\n ) {\n totalCount\n edges {\n node {\n id\n frontmatter {\n author\n categories\n date(formatString: \"MMMM DD, YYYY\")\n description\n tags\n title\n type\n }\n fields {\n slug\n }\n excerpt(pruneLength: 400)\n }\n }\n }\n }\n`;\n\nexport default props => (\n }\n />\n);\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;","import React from 'react';\nimport kebabCase from 'lodash/kebabCase';\nimport { Link } from 'gatsby';\n\nimport { capitalizeWords } from 'src/utils/stringUtils';\n\nconst contentMap = {\n post: ({ text }) => {text},\n count: ({ count, text }) => {`${text} (${count})`},\n postList: ({ text }) => {text},\n};\n\nconst TagLink = ({ count, text, variant }) => {\n const capText = capitalizeWords(text);\n const contentFunc = contentMap[variant];\n\n if (!contentFunc) {\n throw new Error(`props.variant ${variant} not in contentMap.`);\n }\n\n return (\n \n {contentFunc({ count, text: capText })}\n \n );\n};\n\nexport default TagLink;\n","require(\"core-js/modules/es6.regexp.replace\");\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\nvar arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n/** Used to compose unicode capture groups. */\n\n\nvar rsApos = \"['\\u2019]\";\n/** Used to match apostrophes. */\n\nvar reApos = RegExp(rsApos, 'g');\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n\nfunction createCompounder(callback) {\n return function (string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/lodash/words.js","webpack:///./src/utils/dataUtils.js","webpack:///./node_modules/lodash/_unicodeWords.js","webpack:///./node_modules/lodash/kebabCase.js","webpack:///./src/pages/index.js","webpack:///./node_modules/lodash/_asciiWords.js","webpack:///./src/components/PostsList.js","webpack:///./node_modules/lodash/_hasUnicodeWord.js","webpack:///./src/components/TagLink.js","webpack:///./node_modules/lodash/_createCompounder.js"],"names":["asciiWords","hasUnicodeWord","toString","unicodeWords","module","exports","string","pattern","guard","undefined","match","categoryFilter","category","data","node","frontmatter","categories","includes","getFormattedCategories","map","capitalizeWords","join","getImage","filename","sizingStrategy","found","allFile","edges","find","image","relativePath","endsWith","childImageSharp","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsRegional","rsSurrPair","rsUpper","rsMiscLower","rsMiscUpper","reOptMod","rsModifier","rsSeq","rsEmoji","reUnicodeWord","RegExp","kebabCase","createCompounder","result","word","index","toLowerCase","title","reAsciiWord","PostsList","postData","allMarkdownRemark","posts","filter","className","length","id","fields","excerpt","tags","url","slug","key","to","date","tag","text","variant","dangerouslySetInnerHTML","__html","description","props","query","render","reHasUnicodeWord","test","contentMap","post","count","postList","TagLink","capText","contentFunc","Error","arrayReduce","deburr","words","reApos","callback","replace"],"mappings":"y8/BAAA,EAAQ,QAER,IAAIA,EAAa,EAAQ,QACrBC,EAAiB,EAAQ,QACzBC,EAAW,EAAQ,QACnBC,EAAe,EAAQ,QAiC3BC,EAAOC,QAXP,SAAeC,EAAQC,EAASC,GAI9B,OAHAF,EAASJ,EAASI,QAGFG,KAFhBF,EAAUC,OAAQC,EAAYF,GAGrBN,EAAeK,GAAUH,EAAaG,GAAUN,EAAWM,GAG7DA,EAAOI,MAAMH,IAAY,K,kMC5BrBI,EAAiB,SAAAC,GAAQ,OAAI,SAAAC,GAAI,OAC5CA,EAAKC,KAAKC,YAAYC,WAAWC,SAASL,KAE/BM,EAAyB,SAAAH,GAAgB,IAC5CC,EAAeD,EAAfC,WACR,OAAOA,EACHA,EAAWG,IAAIC,KAAiBC,KAAK,MACrC,iBAWOC,EAAW,SAAC,GAAwC,IAAtCT,EAAqC,EAArCA,KAAMU,EAA+B,EAA/BA,SAAUC,EAAqB,EAArBA,eAInCC,EAAQZ,EAAKa,QAAQC,MAAMC,MAAK,SAAAC,GAAK,OACzCA,EAAMf,KAAKgB,aAAaC,SAASR,MAEnC,GAAIE,EACF,OAAOA,EAAMX,KAAKkB,gBAAgBR,K,uBCjCtC,EAAQ,QAER,EAAQ,QAGR,IAaIS,EAAeC,8OAIfC,EAAU,IAAMF,EAAe,IAE/BG,EAAW,OACXC,EAAY,oBACZC,EAAU,8BACVC,EAAS,oBAAuBN,EAAeG,EAjB9B,qEAqBjBI,EAAa,kCACbC,EAAa,qCACbC,EAAU,8BAIVC,EAAc,MAAQL,EAAU,IAAMC,EAAS,IAC/CK,EAAc,MAAQF,EAAU,IAAMH,EAAS,IAG/CM,EAAWC,gFAKXC,EAJW,oBAIQF,GAHP,gBAAwB,CAbtB,qBAaoCL,EAAYC,GAAYpB,KAAK,KAAO,qBAAiBwB,EAAW,MAIlHG,EAAU,MAAQ,CAACX,EAAWG,EAAYC,GAAYpB,KAAK,KAAO,IAAM0B,EAGxEE,EAAgBC,OAAO,CAACR,EAAU,IAAMJ,EAAU,oCAAgC,CAACH,EAASO,EAAS,KAAKrB,KAAK,KAAO,IAAKuB,EAAc,oCAAgC,CAACT,EAASO,EAAUC,EAAa,KAAKtB,KAAK,KAAO,IAAKqB,EAAU,IAAMC,EAAc,iCAAuBD,EAAU,iCALlR,mDADA,mDAMiUN,EAAUY,GAAS3B,KAAK,KAAM,KAahXjB,EAAOC,QAJP,SAAsBC,GACpB,OAAOA,EAAOI,MAAMuC,IAAkB,K,qBC5DxC,IAwBIE,EAxBmB,EAAQ,OAwBfC,EAAiB,SAAUC,EAAQC,EAAMC,GACvD,OAAOF,GAAUE,EAAQ,IAAM,IAAMD,EAAKE,iBAE5CpD,EAAOC,QAAU8C,G,kCC3BjB,oEAMe,wBAAGtC,KAAH,OACb,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAK4C,MAAM,SACX,kBAAC,IAAD,CAAWA,MAAM,W,qBCTrB,EAAQ,QAGR,IAAIC,EAAc,4CAalBtD,EAAOC,QAJP,SAAoBC,GAClB,OAAOA,EAAOI,MAAMgD,IAAgB,K,uHCLhCC,EAAY,SAAC,GAA+B,IAA7B9C,EAA4B,EAA5BA,KAAMD,EAAsB,EAAtBA,SAAU6C,EAAY,EAAZA,MACnC,IAAK5C,EACH,OAAO,KAGT,IAAM+C,EAAW/C,EAAKgD,kBAAkBlC,MAClCmC,EAAQlD,EAAWgD,EAASG,OAAOpD,YAAeC,IAAagD,EAErE,OACE,yBAAKI,UAAU,cACb,yBAAKA,UAAU,kBACb,4BAAKP,EAAL,WACA,kCAAQK,EAAMG,OAAd,MAEDH,EAAM3C,KAAI,YAAe,IAAZL,EAAW,EAAXA,KACJoD,EAAqCpD,EAArCoD,GAAIC,EAAiCrD,EAAjCqD,OAAQpD,EAAyBD,EAAzBC,YAAaqD,EAAYtD,EAAZsD,QAC3BC,EAAOtD,EAAYsD,MAAQ,GAC3BC,EAAMH,EAAOI,KAEnB,OACE,6BAASC,IAAKN,EAAIF,UAAU,gBAC1B,4BAAQA,UAAU,cAChB,4BACE,kBAAC,OAAD,CAAMS,GAAIH,GAAMvD,EAAY0C,SAGhC,yBAAKO,UAAU,gBACb,kBAAC,OAAD,CAAMS,GAAIH,GACR,8BAAOvD,EAAY2D,KAAnB,QAEF,0BAAMV,UAAU,mBACb9C,YAAuBH,IAEzBsD,EAAKlD,KAAI,SAAAwD,GAAG,OACX,kBAAC,IAAD,CAASH,IAAKG,EAAKC,KAAMD,EAAKE,QAAQ,iBAG1C,kBAAC,OAAD,CAAMJ,GAAIH,GACR,iCACE,uBACEN,UAAU,eACVc,wBAAyB,CACvBC,OAAQhE,EAAYiE,aAAeZ,aAyCxC,aAAAa,GAAK,OAClB,kBAAC,cAAD,CACEC,MA/BO,aAgCPC,OAAQ,SAAAtE,GAAI,OAAI,kBAAC8C,EAAD,eAAW9C,KAAMA,GAAUoE,KAF7C,W,mBC3FF,IAAIG,EAAmB,qEAavBhF,EAAOC,QAJP,SAAwBC,GACtB,OAAO8E,EAAiBC,KAAK/E,K,kCCX/B,sEAMMgF,EAAa,CACjBC,KAAM,gBAAGX,EAAH,EAAGA,KAAH,OAAc,0BAAMZ,UAAU,yBAAyBY,IAC7DY,MAAO,gBAAGA,EAAH,EAAGA,MAAOZ,EAAV,EAAUA,KAAV,OAAqB,8BAAUA,EAAV,KAAmBY,EAAnB,MAC5BC,SAAU,gBAAGb,EAAH,EAAGA,KAAH,OAAc,0BAAMZ,UAAU,YAAYY,KAkBvCc,IAfC,SAAC,GAA8B,IAA5BF,EAA2B,EAA3BA,MAAOZ,EAAoB,EAApBA,KAAMC,EAAc,EAAdA,QACxBc,EAAUvE,YAAgBwD,GAC1BgB,EAAcN,EAAWT,GAE/B,IAAKe,EACH,MAAM,IAAIC,MAAJ,iBAA2BhB,EAA3B,uBAGR,OACE,kBAAC,OAAD,CAAMJ,GAAE,SAAWtB,IAAUyB,GAArB,KACLgB,EAAY,CAAEJ,QAAOZ,KAAMe,O,qBCtBlC,EAAQ,QAER,EAAQ,QAER,IAAIG,EAAc,EAAQ,QACtBC,EAAS,EAAQ,QACjBC,EAAQ,EAAQ,QAOhBC,EAAS/C,OAHA,OAGe,KAe5B9C,EAAOC,QANP,SAA0B6F,GACxB,OAAO,SAAU5F,GACf,OAAOwF,EAAYE,EAAMD,EAAOzF,GAAQ6F,QAAQF,EAAQ,KAAMC,EAAU","file":"component---src-pages-index-js-ba2f71ffe0ace2c2c83d.js","sourcesContent":["require(\"core-js/modules/es6.regexp.match\");\n\nvar asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\n\n\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;","import { capitalizeWords } from 'src/utils/stringUtils';\n\n/**\n * Get a filter callback for category\n * @param {string} category\n * @returns {function} filter\n */\nexport const categoryFilter = category => data =>\n data.node.frontmatter.categories.includes(category);\n\nexport const getFormattedCategories = frontmatter => {\n const { categories } = frontmatter;\n return categories\n ? categories.map(capitalizeWords).join(', ')\n : 'Uncategorized';\n};\n\n/**\n * Get image data from graphQl query\n * @param {object} config\n * @param {object} config.data -> the graphQl query result\n * @param {string} config.filename\n * @param {string} config.sizingStrategy -> oneOf('fixed', 'fluid')\n * @returns {object|undefined}\n */\nexport const getImage = ({ data, filename, sizingStrategy }) => {\n // data.allFile.edges -> array\n // data.allFile.edges[0].node.relativePath -> tech-projects/filename\n // data.allFile.edges[0].node.childImageSharp.fluid -> object base 64\n const found = data.allFile.edges.find(image =>\n image.node.relativePath.endsWith(filename)\n );\n if (found) {\n return found.node.childImageSharp[sizingStrategy];\n }\n};\n","require(\"core-js/modules/es6.regexp.match\");\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = \"\\\\ud800-\\\\udfff\",\n rsComboMarksRange = \"\\\\u0300-\\\\u036f\",\n reComboHalfMarksRange = \"\\\\ufe20-\\\\ufe2f\",\n rsComboSymbolsRange = \"\\\\u20d0-\\\\u20ff\",\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = \"\\\\u2700-\\\\u27bf\",\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = \"\\\\u2000-\\\\u206f\",\n rsSpaceRange = \" \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\",\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = \"\\\\ufe0e\\\\ufe0f\",\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n/** Used to compose unicode capture groups. */\n\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = \"\\\\ud83c[\\\\udffb-\\\\udfff]\",\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = \"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",\n rsSurrPair = \"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = \"\\\\u200d\";\n/** Used to compose unicode regexes. */\n\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n/** Used to match complex or compound words. */\n\nvar reUnicodeWord = RegExp([rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, rsUpper + '+' + rsOptContrUpper, rsOrdUpper, rsOrdLower, rsDigits, rsEmoji].join('|'), 'g');\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;","var createCompounder = require('./_createCompounder');\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n\n\nvar kebabCase = createCompounder(function (result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\nmodule.exports = kebabCase;","import React from 'react';\n// import { Link, graphql } from 'gatsby';\nimport Layout from 'src/components/Layout';\nimport PostsList from 'src/components/PostsList';\nimport SEO from 'src/components/SEO';\n\nexport default ({ data }) => (\n \n \n \n \n);\n","require(\"core-js/modules/es6.regexp.match\");\n\n/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;","import React from 'react';\nimport { Link, graphql, StaticQuery } from 'gatsby';\n\nimport TagLink from 'src/components/TagLink';\nimport { categoryFilter, getFormattedCategories } from 'src/utils/dataUtils';\n\n/** posts -> already filtered edges */\n/** totalCount -> data.allMarkdownRemark.totalCount */\nconst PostsList = ({ data, category, title }) => {\n if (!data) {\n return null;\n }\n\n const postData = data.allMarkdownRemark.edges;\n const posts = category ? postData.filter(categoryFilter(category)) : postData;\n\n return (\n
    \n
    \n

    {title} Posts

    \n ({posts.length})\n
    \n {posts.map(({ node }) => {\n const { id, fields, frontmatter, excerpt } = node;\n const tags = frontmatter.tags || [];\n const url = fields.slug;\n\n return (\n
    \n
    \n

    \n {frontmatter.title}\n

    \n
    \n
    \n \n {frontmatter.date} | \n \n \n {getFormattedCategories(frontmatter)}\n \n {tags.map(tag => (\n \n ))}\n
    \n \n
    \n \n
    \n \n
    \n );\n })}\n
    \n );\n};\n\nconst query = graphql`\n query {\n allMarkdownRemark(\n filter: { frontmatter: { type: { eq: \"post\" } } }\n sort: { fields: [frontmatter___date], order: DESC }\n ) {\n totalCount\n edges {\n node {\n id\n frontmatter {\n author\n categories\n date(formatString: \"MMMM DD, YYYY\")\n description\n tags\n title\n type\n }\n fields {\n slug\n }\n excerpt(pruneLength: 400)\n }\n }\n }\n }\n`;\n\nexport default props => (\n }\n />\n);\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;","import React from 'react';\nimport kebabCase from 'lodash/kebabCase';\nimport { Link } from 'gatsby';\n\nimport { capitalizeWords } from 'src/utils/stringUtils';\n\nconst contentMap = {\n post: ({ text }) => {text},\n count: ({ count, text }) => {`${text} (${count})`},\n postList: ({ text }) => {text},\n};\n\nconst TagLink = ({ count, text, variant }) => {\n const capText = capitalizeWords(text);\n const contentFunc = contentMap[variant];\n\n if (!contentFunc) {\n throw new Error(`props.variant ${variant} not in contentMap.`);\n }\n\n return (\n \n {contentFunc({ count, text: capText })}\n \n );\n};\n\nexport default TagLink;\n","require(\"core-js/modules/es6.regexp.replace\");\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\nvar arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n/** Used to compose unicode capture groups. */\n\n\nvar rsApos = \"['\\u2019]\";\n/** Used to match apostrophes. */\n\nvar reApos = RegExp(rsApos, 'g');\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n\nfunction createCompounder(callback) {\n return function (string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-music-index-js-12306a09d96c193df492.js b/component---src-pages-music-index-js-12306a09d96c193df492.js new file mode 100644 index 00000000..8582855f --- /dev/null +++ b/component---src-pages-music-index-js-12306a09d96c193df492.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{"5cHQ":function(e){e.exports=JSON.parse('{"data":{"allMarkdownRemark":{"totalCount":44,"edges":[{"node":{"id":"970567e6-3f2a-5749-b60e-5fe9bce3ce59","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"June 01, 2023","description":null,"tags":["productivity","tech talk"],"title":"How I\'m Building My Second Brain","type":"post"},"fields":{"slug":"/building-my-second-brain/"},"excerpt":"Slides + Video “How I’m building my second brain” video (2022) (YouTube) “How I’m building my second brain” slides (2022) (PDF) Intro Creativity is bound up with making connections between disparate ideas. The connections piece is crucial - personal knowledge management falls apart without it. Long ago, I treated the Getting Things Done (GTD) productivity system as gospel. The way I used it…"}},{"node":{"id":"5bc00e6c-f6a8-51a5-9312-749eabf343c4","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 05, 2022","description":null,"tags":["random music generators"],"title":"Random Music Generators is now hosted on render.com","type":"post"},"fields":{"slug":"/2022-12-05-random-music-generators-news/"},"excerpt":"Random Music Generators is now hosted on render.com. Please update your bookmarks! https://random-music-generators.onrender.com"}},{"node":{"id":"87a467a5-a5cc-57bc-b828-33199e1396ed","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 05, 2021","description":null,"tags":["typescript","javascript"],"title":"TypeScript-lite: JSDoc for type-checking js files","type":"post"},"fields":{"slug":"/type-check-jsdocs-typescript/"},"excerpt":"Overview Did you know that you can use TypeScript features in JavaScript projects? When I discovered this and tried it out, I really enjoyed the results. Let’s go a bit into how it works. With a few simple ingredients: VSCode JavaScript Willingness to add types in JSDoc (and optionally importing TypeScript types) You can: statically check the types of .js files run compiler on .js files write…"}},{"node":{"id":"43882726-b323-56c1-986e-85fad7e68237","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 27, 2021","description":null,"tags":["career","mental health"],"title":"Programming with more ease","type":"post"},"fields":{"slug":"/programming-with-more-ease/"},"excerpt":"As professional programmers, the bulk of what we do is solving problems. A lot of the time, I’m motivated by problem-solving challenges. But sometimes I hit a wall. A given challenge can become a problem that I’m frustratingly unable to solve. Often, this frustration would spiral into a worse mental state. I’d imagine the problem as a scary, overwhelming, difficult to defeat monster - more…"}},{"node":{"id":"6a155da7-d04b-5289-b463-02babc9a2670","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 23, 2021","description":null,"tags":["design patterns"],"title":"How to Learn Design Patterns","type":"post"},"fields":{"slug":"/design-patterns-curriculum/"},"excerpt":"I’ve long been intrigued by design patterns, but when I started learning them, I realized quickly that I didn’t have a clear learning path. I didn’t know how I should learn design patterns or if it’s the right time for me to learn them. So, I sought out to answer some questions: What are the prerequisites for learning design patterns? What material should I use and how do I avoid being scattered…"}},{"node":{"id":"c373259e-e38e-59bb-ab3b-22a5afc45474","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2021","description":null,"tags":["design patterns"],"title":"Introduction to Design Patterns: Why they\'re worth learning","type":"post"},"fields":{"slug":"/design-patterns-intro/"},"excerpt":"As developers, we’re constantly learning - and there’s a lot to learn in general because the tech industry is broad and fast-paced. We want to have all the main bases covered so that we can be ready for any situation. We often hear about design patterns and how they can enable us to write well-architected software using object-oriented programming. If you’re like me, you might file that away as a…"}},{"node":{"id":"ef97f645-0325-5bf1-806d-ba14610e6780","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 30, 2021","description":null,"tags":["random music generators"],"title":"Random Music Generators News 2021-01-30","type":"post"},"fields":{"slug":"/2021-01-30-random-music-generators-news/"},"excerpt":"New in 1.3.1 This month, I released a big new feature that’s been requested often. You can now specify a custom note collection to create random melodies. Check it out! Note: This feature is available to use if you create an account. Part of the impetus to provide this feature was to aid in neuroscience research. Having the ability to create melodies with specific pitches will allow researchers…"}},{"node":{"id":"ba57e0fe-e724-5a6e-b122-d39a3674b8fc","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 10, 2020","description":null,"tags":["career"],"title":"Are You Ready to be a Professional Software Engineer?","type":"post"},"fields":{"slug":"/tech-career-resources/"},"excerpt":"Updated March 21, 2021 Did you just graduate from a coding bootcamp, obtain a CS degree, or built an involved side project? How do you know when you’re ready to write software professionally? This post has two parts: questions I ask my mentees to help clarify their job search a collection of resources I’ve found or made that helped my on my job search Questions to clarify the job search There are…"}},{"node":{"id":"ef2f493a-fbef-500d-a57e-689069307ca5","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 21, 2020","description":null,"tags":["immerjs","javascript","react","redux"],"title":"My love hate relationship with ImmerJS","type":"post"},"fields":{"slug":"/love-hate-immer-js/"},"excerpt":"After having used immutable js for a while, discovering ImmerJS was a breath of fresh air. Where immutable js forces you to learn its gigantic API, ImmerJS takes advantage of ES6 Proxies. These allow you to modify a “draft” version of an object as if you’re mutating it, but the draft is actually a copy so you’re not mutating the original! The return of immer’s function always returns a perfect…"}},{"node":{"id":"f2cf9b4b-5eb8-5856-bd0a-86b1e7bc66f4","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 15, 2020","description":null,"tags":["career","coding bootcamps","electron","javascript","tech talk"],"title":"Tech Talk - How I\'d Improve My Capstone Project","type":"post"},"fields":{"slug":"/tech-talk-improving-capstone-project/"},"excerpt":"In February 2020, I returned to my bootcamp to give a tech talk on what I’d do to improve my Capstone project. (I also answer career and other questions from the audience at the end.) Download the slides here (PDF) I’m excited to share what I’ve learned so far from working on enterprise software for almost 2 years. The talk is a deep dive into the codebase that myself and three others worked on…"}},{"node":{"id":"d6855891-7ad1-5756-b178-be45a9213df7","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 02, 2020","description":null,"tags":["javascript","node","productivity"],"title":"Using question-prompter for study, self-reflection, and more","type":"post"},"fields":{"slug":"/using-question-prompter/"},"excerpt":"I recently created a node command line app called question-prompter. It prompts you at your terminal to answer questions that you come up with. After you answer them, it saves them to a or file in a directory of your choosing. Background I find a lot of benefit from regularly checking in with myself. While many authors have written about this kind of reflection, Tim Ferriss comes to mind first…"}},{"node":{"id":"d83dfc88-d6b1-51d0-924a-b4ef8ea54dcf","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"June 03, 2020","description":null,"tags":["songwriting","composition","creativity"],"title":"Meta Ideas - Generating Creative Content","type":"post"},"fields":{"slug":"/meta-ideas-generating-creative-content/"},"excerpt":"I’ve been writing down small music (and other) ideas for over 20 years. I’ve generally struggled to store, organize, and retrieve them effectively. As I was going through my archives recently, it dawned on me that there are two fundamental types of ideas: one is “concrete” and the other is “meta.” A concrete idea is specific and actionable. It may be a chord progression like: A minor for two and a…"}},{"node":{"id":"362cb819-3e27-5202-98bf-310df4ba421f","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"May 02, 2020","description":null,"tags":["javascript","test runners","ava","mocha","jest","tech talk"],"title":"Comparing JavaScript Test Runners","type":"post"},"fields":{"slug":"/comparing-javascript-test-runners/"},"excerpt":"This post is a pointer to an article I completed recently - a comprehensive comparison of the AVA, Jest, Mocha, and JavaScript test runners. 👉 https://github.com/scraggo/comparing-javascript-test-runners/ 👈 Why is it on GitHub, not this blog? Not only does the repo contain the comparison article, I created a node application to generate the speed metrics in the article. The process looks like…"}},{"node":{"id":"5c2a373c-48fe-5078-9e3d-f21888265979","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2020","description":null,"tags":["typescript","open source"],"title":"Contributing a New Feature to Open Source: @sindresorhus/is","type":"post"},"fields":{"slug":"/contributing-to-open-source-is-type-checking/"},"excerpt":"This post is a recount of my recent experience contributing to is, a JavaScript open source type checking library. https://github.com/sindresorhus/is https://www.npmjs.com/package/@sindresorhus/is I’ll outline the process from beginning to end: the initial filing of the feature request, implementing the feature, collaborating on the pull request, and getting the feature released. Some of the open…"}},{"node":{"id":"eae0c8d9-4b57-5113-88ed-3ece28ea88ca","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"February 15, 2020","description":"Problems with unexpected assertion failures can arise while testing immutablejs with sinon. This post is a brief guide on how to create a custom matcher that will correctly calculate the equivalence between a mock/stub/spy call with an immutable parameter. The way I’ll be making the assertion is with calledWith from sinon-chai (a plugin for chai that helps with making should or expect assertions for sinon mocks). This github issue on sinonjs outlines the problem...","tags":["testing","sinon","immutablejs"],"title":"Testing immutable js with sinon custom matchers","type":"post"},"fields":{"slug":"/testing-immutable-js-with-sinon-custom-matchers/"},"excerpt":"Problems with unexpected assertion failures can arise while testing with . This post is a brief guide on how to create a custom matcher that will correctly calculate the equivalence between a mock/stub/spy call with an parameter. The way I’ll be making the assertion is with from (a plugin for that helps with making or assertions for mocks). This github issue on sinonjs outlines the problem…"}},{"node":{"id":"13bb4e43-1a4c-5619-88cf-18b133874a58","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 27, 2020","description":null,"tags":["random music generators"],"title":"Random Music Generators News 2020-01-27","type":"post"},"fields":{"slug":"/2020-01-27-random-music-generators-news/"},"excerpt":"New in 1.1.0 Yesterday, I released a feature that’s been in the works for over 6 months. You can now create melody presets. Check it out! If you have a go-to set of form parameters that make sounds that you really enjoy, you can save them and recall them later. As a necessity of saving presets, I added the ability to create an account. This will set the stage for being able to save presets for…"}},{"node":{"id":"208d49b8-08db-5947-81dc-1b7fec2f4c50","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 09, 2020","description":"Happy 2020! One of my new year’s resolutions is to redo my website with a lot of new things in mind. Here I’ll outline the changes I’m in the process of making. An important step in the whole makeover was getting an official domain name - I’m now live at scraggo.com! I’m using namecheap as the provider. The site has been hosted with github pages since its inception and I’ll…","tags":["gatsbyjs"],"title":"Website Makeover: Moving from Jekyll to Gatsby","type":"post"},"fields":{"slug":"/website-makeover-gatsby/"},"excerpt":"Happy 2020! One of my new year’s resolutions is to redo my website with a lot of new things in mind. Here I’ll outline the changes I’m in the process of making. EDIT Jan 18, 2020: Gatsby makeover complete! Now live: custom domain name An important step in the whole makeover was getting an official domain name - I’m now live at ! I’m using namecheap as the provider. The site has been hosted with…"}},{"node":{"id":"69ec04c0-36a1-5b4b-b7e5-895ff00cceda","frontmatter":{"author":"Dave Cohen","categories":["other"],"date":"January 01, 2020","description":null,"tags":null,"title":"2020 Resolutions and Reviewing the Decade","type":"post"},"fields":{"slug":"/2020-decade-in-review/"},"excerpt":"I really enjoy reflecting on the past year during the holidays. If I get a chance to do this, I come up with New Years resolutions afterwards. Some years I go through a somewhat involved process of going through my journal entries and coming up with the best realizations. This year, my girlfriend wanted to try Marie Forleo’s recommendation of reviewing the past decade. We went through the…"}},{"node":{"id":"71cb4d5a-1ffa-5471-9090-7ad8a844304b","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 21, 2019","description":null,"tags":["git"],"title":"How to Squash All Commits Related to a Single Issue into a Single Commit","type":"post"},"fields":{"slug":"/how-to-squash-commits/"},"excerpt":"Updated Sep 3, 2020 This article outlines how to use the “squash” feature of an interactive . What does “squashing” do? It allows you to take changes that are spread amongst multiple commits and consolidate them into one. Why should one consider squashing commits? A clean history makes tracking changes to a large codebase across time much easier. Many commits are small and unimportant in the grand…"}},{"node":{"id":"005c820c-061e-57bb-8255-c635792a976d","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"December 20, 2019","description":null,"tags":["music education"],"title":"About Songmind Studios","type":"post"},"fields":{"slug":"/about-songmind-studios/"},"excerpt":"In 2016, I decided to start my own brand of music education. I took the role of music coach, agent, and collaborator. The student and I would write and record music together to integrate learning and creativity in a holistic way. While I’ve suspended these services for the foreseeable future, I’m posting are the core concepts and aims of Songmind Studios. I’ll eventually make all my teaching…"}},{"node":{"id":"fe9a22be-2af0-5ee7-9e22-9ca6bb593de8","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 02, 2019","description":null,"tags":["career"],"title":"How to ace your initial programming job screen","type":"post"},"fields":{"slug":"/prepare-for-initial-screens/"},"excerpt":"Your resume and cover letter surely made a positive impact, but the most important evaluation has yet to come. If you’re searching for your first software development job, the process can be daunting. You may have heard that after sending your resume to a company, there’s an initial screen. This is usually done over the phone, but sometimes it happens in-person. Your resume and cover letter (the…"}},{"node":{"id":"3220ea90-ef5c-5200-befb-6f9a58952f53","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"April 03, 2019","description":null,"tags":["javascript"],"title":"Catching and handling different types of errors in promise chains","type":"post"},"fields":{"slug":"/catching-handling-errors-promise-chains/"},"excerpt":"When you need to make sequential API calls, promise chains are a reliable way to go. It gets a little tricky when you need to throw and handle errors differently at different points in the chain. This post will go into: throwing specific types of errors using creating an object literal dictionary to handle logic gracefully handling the errors differently at the end of the chain This article is…"}},{"node":{"id":"657093ab-4233-5d14-a741-44f2fa462db8","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 28, 2019","description":null,"tags":["javascript"],"title":"Using a filter function recursively","type":"post"},"fields":{"slug":"/recursive-filter-function/"},"excerpt":"The problem Given our array data structure, we only want to include items that have an ‘age’ property and the age is greater than 17. If the person is under age, we won’t allow any of their friends to be included (even if they are old enough to be.) (Contrived scenario, I know, but I recently needed to do something like this for a different type of authorization.) Run this code on repl.it We can…"}},{"node":{"id":"86cb31eb-6b40-50e3-9ddc-d195f0cee1c6","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 24, 2019","description":null,"tags":["git"],"title":"How to format and edit your git commit messages","type":"post"},"fields":{"slug":"/git-commit-format-squash/"},"excerpt":"When writing commit messages, it’s ideal to make them easy for another developer to read and understand exactly what’s in the commit. Oftentimes, though, we write commit messages quickly just to push a branch at the end of a workday, for instance (I know I’m guilty of this). One team member brought the Conventional Commits format to our attention. I’ve enjoyed using it and seeing the results when…"}},{"node":{"id":"35287751-dd87-580c-ae8e-8b1c02051859","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 23, 2019","description":null,"tags":["javascript"],"title":"How to prevent circular dependencies","type":"post"},"fields":{"slug":"/circular-dependencies-bug/"},"excerpt":"Some errors are kind of mysterious. The first time I got “‘myFunction’ is not a function” type errors, I was at a loss for a few hours. Logging out the functions from my require statements came back as or . What I learned, TL;DR - don’t import file ‘a’ into file ‘b’ AND file ‘b’ into file ‘a’. That’s an example of a “circular dependency.” Brief example of creating a circular dependency: myUtils…"}},{"node":{"id":"a5528eb3-e30d-5233-bd30-b8c7ae51558c","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2019","description":null,"tags":["javascript"],"title":"Custom type checking - isNaN vs Number.isNaN","type":"post"},"fields":{"slug":"/custom-type-checking-isnan/"},"excerpt":"Javascript is infamous for being “loose” and misleading with its typing. gives you , gives you , etc. So instead of writing conditionals using , doing specific checks, etc, I decided to make my own wrapper for which I called : I unknowingly put a bug in my app. Can you spot it? … It’s in the 3rd statement. Basically, the function took anything that wasn’t an ‘array’ or ‘null’ and decided it…"}},{"node":{"id":"ffbf844d-8df4-58a2-bbac-456ad18ce4e2","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 18, 2019","description":null,"tags":["javascript"],"title":"Using a Code Style Guide to Enforce Team Best Practices","type":"post"},"fields":{"slug":"/code-style-guide/"},"excerpt":"We all have opinions on what what coding best practices are and how code should be formatted. Recently, one of the teams I’ve been working on decided to add another member. I discovered that our coding styles were radically different. I decided to write some guidelines for our team to get us on the same page. I quickly realized that writing a style guide from scratch is a tall order. I’d already…"}},{"node":{"id":"78ad3884-f757-59b3-9a3e-cfb58062229e","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 18, 2018","description":null,"tags":["career"],"title":"Should junior developers work with recruiters?","type":"post"},"fields":{"slug":"/recruiters-and-junior-devs/"},"excerpt":"This is the first of a handful of posts about the 3-month search for my first full-time developer job. I graduated from a coding bootcamp in April. I’m a junior developer, though, I have some freelance projects on my resume that gave me about 2 years of experience. This, combined with a decently written Linkedin profile, contributed to my getting contacted by multiple recruiters daily. I wound up…"}},{"node":{"id":"58fbbba9-9063-500a-9fcb-829e58d07642","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"May 08, 2018","description":null,"tags":["computer science"],"title":"Debugging Strategies Checklist","type":"post"},"fields":{"slug":"/debugging-strategies-checklist/"},"excerpt":"Tracking down bugs in the software you’re working on can be tricky. Debugging is a massive topic and there are so many places bugs can show up. One thing’s for sure, whether you’re careful or not… Bugs will show up. I’m not saying this to be pessimistic. Creating and squashing bugs is not just a part of the process of writing software, it is the process! We’re solving problems and ironing out the…"}},{"node":{"id":"0092c8a9-f74f-5de1-a8e6-0fe315511475","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"April 16, 2018","description":null,"tags":["coding bootcamps","javascript"],"title":"Reflections From a Coding Bootcamp Graduate","type":"post"},"fields":{"slug":"/reflections-coding-bootcamp/"},"excerpt":"I was ready for a career change. It was October of 2017. The more time I spent coding and learning computer science fundamentals, the more I realized that a programming career would fit my personality* better than performing and teaching music. After spending a fair amount of time teaching myself to code and making websites, I began researching coding bootcamps. There were optimistic statistics of…"}},{"node":{"id":"8e59934a-7dcb-5377-ae8d-73c2d8ed7686","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"February 20, 2018","description":null,"tags":["javascript","computer science"],"title":"Tackling Hash Table Problems in JavaScript","type":"post"},"fields":{"slug":"/hash-tables-js/"},"excerpt":"Algorithms and data structures can be intimidating. The goal of this post is to explain some approaches to solving hash table algorithm problems providing clear examples with detailed solution explanations. I’m hoping this will help anyone uninitiated alleviate fears and make bigger strides in conquering these challenging problems. Why Hash Tables? While attending Fullstack Academy, I participated…"}},{"node":{"id":"d49b052b-2f19-5ddd-a73d-78e80b12bfdd","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 26, 2017","description":null,"tags":["coding bootcamps","javascript"],"title":"Now Attending: Fullstack Academy","type":"post"},"fields":{"slug":"/now-attending-fullstack/"},"excerpt":"Why I’m attending Fullstack Academy Since discovering a love for guitar and composition in my teens, I decided to pursue a career as a freelance music teacher, composer, recording engineer, and performing guitarist. After a decade of this, I realized that the rockstar dream didn’t suit me and I was tired of chasing it. I’d be happier with a more stable career that challenged me intellectually. I…"}},{"node":{"id":"e1022862-d7d0-5e18-994d-92f148fb9302","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 01, 2017","description":null,"tags":["javascript"],"title":"Intro to JavaScript Frameworks Part 1: The Vanilla JavaScript Version of TodoMVC","type":"post"},"fields":{"slug":"/intro-to-js-frameworks01/"},"excerpt":"The goal of this blog-series is to explain what frameworks do, why they’re used, and demonstrate with examples across many different frameworks. The series is aimed at those familiar with JavaScript syntax, accessing the DOM, functions, and classes (object-oriented programming). Further reading can be found at the bottom of this post. What is a JavaScript Framework? A framework is an imported…"}},{"node":{"id":"bd3eb5a8-b322-5b98-ad3f-6f3cae8be4e1","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 01, 2017","description":"This post contains an overview of what sorts of programming jobs are available. It\'s aimed at developers who want to try something new or are still deciding what to focus on in their efforts to become more marketable.","tags":["career"],"title":"Marketable Programming Skills","type":"post"},"fields":{"slug":"/marketable-programming-skills/"},"excerpt":"If you’ve been learning programming on your own, you may have made worked through some books, followed some online tutorials, and made a decent collection of simple apps. At a certain point you may wonder how much else you need to know to be able to start working as a programmer. I’m a self-taught coder with experience in web technologies (JavaScript, HTML, CSS, etc) and Python. Compiling some…"}},{"node":{"id":"b9bffa10-76c5-5831-96ad-63365ba582ec","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 01, 2017","description":null,"tags":["oop","python"],"title":"Using a Class in Python as a Code Wrapper for a Simple Game","type":"post"},"fields":{"slug":"/python-classes-guess-the-number/"},"excerpt":"Object-oriented design is a powerful programming paradigm that can be intimidating to anyone trying to learn how to use it. I worked through a number of excellent tutorials and books on the subject, but struggled to apply the concepts to my own code. I decided to convert a working program that didn’t use OOP and wrap it in a single class. The program I chose was Guess the Number written by Al…"}},{"node":{"id":"8a0e0fa2-afc3-5492-b98a-ed745595bdbf","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"January 15, 2017","description":null,"tags":["music education"],"title":"Honing Musical Strengths with a Student Evaluation","type":"post"},"fields":{"slug":"/honing-strengths-with-a-student-evaluation/"},"excerpt":"From time to time, we can find ourselves stagnating when studying music (or any other topic). To help become immune to this, it’s useful to fully recognize our strengths and acknowledge our weaknesses. Every strength is an opportunity to improve further and if we can acknowledge where we are struggling then we can begin to grow much faster and reach excellence. Ask yourself the following questions…"}},{"node":{"id":"cf15c4c6-a96d-537d-9525-34c1d200c9e4","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 01, 2016","description":null,"tags":["songwriting","promotion"],"title":"10 Issues Songwriters Face","type":"post"},"fields":{"slug":"/10-issues-songwriters-face/"},"excerpt":"It’s common for songwriters to feel overwhelmed when finishing their songs and getting them ready for their audience. There can be tremendous blocks going from inspiration to song completion. Listed below are the top issues I’ve encountered while interviewing songwriters and students of music who write music. 1. Not knowing “where to go next” with your song. This is a major problem for many…"}},{"node":{"id":"9e899d18-3457-5b38-89f4-b68c3fedda94","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"May 10, 2016","description":null,"tags":["bands"],"title":"The Five Dysfunctions of a Band","type":"post"},"fields":{"slug":"/5-dysfunctions-of-a-band/"},"excerpt":"The Five Dysfunctions of a Team (by Patrick Lencioni) is a highly recommended book for anyone that works with other people. (So - almost everyone!) The five dysfunctions are set up in a hierarchy. The bottom of the pyramid below shows that trust is the foundation and all else moves up from there. five-dysfunctions-pyramid The book opens with a story that brings the main five principles…"}},{"node":{"id":"a2bde957-6eed-524d-afe6-19d226d89c33","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"March 31, 2016","description":null,"tags":["practicing"],"title":"A Guide to Practicing and Overcoming Plateaus","type":"post"},"fields":{"slug":"/guide-to-practicing-overcoming-plateaus/"},"excerpt":"A long time student of mine recently began learning classical guitar. He had been studying jazz and blues for a number of years. He has a love for latin fingerstyle rhythms. The more lessons we had, the more he realized that he wanted to deepen his technical foundation. I recently told him: “The number of times you’ll reach a plateau is inversely proportional to how deeply you practice.” In other…"}},{"node":{"id":"04b1908e-5183-5e17-9415-9f4881c90c86","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"March 10, 2016","description":null,"tags":["recording","songwriting"],"title":"Preparing Your Song Demo for the Studio","type":"post"},"fields":{"slug":"/preparing-demo-for-studio/"},"excerpt":"We songwriters put a lot of work into our songs. Putting together interesting chord voicings, refining our lyrics to perfection, and getting the form ‘just right’ can take a lot of effort, but be very gratifying. When your song is finally finished, you might want to make the investment of bringing it to a studio with a band to lay down all of the parts. When it comes to recording in the studio…"}},{"node":{"id":"7e202b1a-2c4a-51f1-8046-587cb36c5751","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"January 06, 2016","description":null,"tags":["songwriting","creativity","productivity"],"title":"A 3 Step Process to Organizing Creativity","type":"post"},"fields":{"slug":"/organizing-creativity-3-step-process/"},"excerpt":"It’s difficult to keep track of everything that needs to be done with your musical ideas. If you write with any frequency, these ideas can amass until there are so many that you can’t keep track of them. Your ideas might range from little snippets to near complete works. Here are some things that commonly go wrong for me: I don’t take enough time to think about where an idea needs to go to be…"}},{"node":{"id":"c55142ea-f8a1-50bf-8922-e7f4ff2ee896","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 16, 2015","description":null,"tags":["songwriting"],"title":"Songwriting Tutorial: Snippet Challenge","type":"post"},"fields":{"slug":"/songwriting-snippet-challenge/"},"excerpt":"Have lots of unfinished ideas? Learn how to take a short instrumental idea and finish writing your song in one day. Over the years, I’ve written tons and tons of short musical ideas. I had been putting off turning them into real pieces until now. Inspired by my research on speed composing, I decided to make a challenge out of my problem. The Snippet Challenge & Simple Instrumental Song Forms In a…"}},{"node":{"id":"5591838f-0d37-5819-b56e-cdcfdfb6da95","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 15, 2015","description":null,"tags":["songwriting"],"title":"Songwriting and Serendipity","type":"post"},"fields":{"slug":"/songwriting-and-serendipity/"},"excerpt":"Why start a composition with a blank slate? Jam on a cover tune then take it in a different direction. Sometimes, the less experience you have figuring out songs, the better. When I was first learning guitar and had much less skill, I tried to figure out songs that I heard. I was usually unsuccessful at transcribing them accurately, but there were many occasions that I enjoyed what I was playing…"}},{"node":{"id":"972a1e06-645e-5949-8544-deaece011b95","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"October 15, 2015","description":null,"tags":["songwriting"],"title":"Songwriting Tutorial: Simplicity and Complexity","type":"post"},"fields":{"slug":"/songwriting-simplicity-complexity/"},"excerpt":"How to begin writing a song by choosing a lyrical theme and a musical mood. The Keys to Simplicity Selecting a mood / topic for the song The central theme of your song can come from anywhere - your mood, the news, or a conversation you heard while at a coffee shop. After choosing something, stay in that mindset until you find the need for a well-placed and meaningful contrast. It’s important to…"}}]}}}')},"6nK8":function(e,t,a){a("SRfc");var o=a("dVn5"),i=a("fo6e"),n=a("dt0z"),r=a("9NmV");e.exports=function(e,t,a){return e=n(e),void 0===(t=a?void 0:t)?i(e)?r(e):o(e):e.match(t)||[]}},"7TWv":function(e,t,a){"use strict";a.d(t,"a",(function(){return i})),a.d(t,"b",(function(){return n})),a.d(t,"c",(function(){return r}));a("rvZc"),a("dRSK"),a("Z2Ku"),a("L9s1");var o=a("d9uu"),i=function(e){return function(t){return t.node.frontmatter.categories.includes(e)}},n=function(e){var t=e.categories;return t?t.map(o.a).join(", "):"Uncategorized"},r=function(e){var t=e.data,a=e.filename,o=e.sizingStrategy,i=t.allFile.edges.find((function(e){return e.node.relativePath.endsWith(a)}));if(i)return i.node.childImageSharp[o]}},"9NmV":function(e,t,a){a("SRfc"),a("Oyvg");var o="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",i="["+o+"]",n="\\d+",r="[\\u2700-\\u27bf]",s="[a-z\\xdf-\\xf6\\xf8-\\xff]",c="[^\\ud800-\\udfff"+o+n+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",d="(?:\\ud83c[\\udde6-\\uddff]){2}",l="[\\ud800-\\udbff][\\udc00-\\udfff]",u="[A-Z\\xc0-\\xd6\\xd8-\\xde]",h="(?:"+s+"|"+c+")",m="(?:"+u+"|"+c+")",g="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",p="[\\ufe0e\\ufe0f]?"+g+("(?:\\u200d(?:"+["[^\\ud800-\\udfff]",d,l].join("|")+")[\\ufe0e\\ufe0f]?"+g+")*"),f="(?:"+[r,d,l].join("|")+")"+p,y=RegExp([u+"?"+s+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[i,u,"$"].join("|")+")",m+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[i,u+h,"$"].join("|")+")",u+"?"+h+"+(?:['’](?:d|ll|m|re|s|t|ve))?",u+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",n,f].join("|"),"g");e.exports=function(e){return e.match(y)||[]}},N1om:function(e,t,a){var o=a("sgoq")((function(e,t,a){return e+(a?"-":"")+t.toLowerCase()}));e.exports=o},dVn5:function(e,t,a){a("SRfc");var o=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;e.exports=function(e){return e.match(o)||[]}},"e+E3":function(e,t,a){"use strict";a("91GP");var o=a("5cHQ"),i=a("q1tI"),n=a.n(i),r=a("Wbzz"),s=a("jkPq"),c=a("7TWv"),d=function(e){var t=e.data,a=e.category,o=e.title;if(!t)return null;var i=t.allMarkdownRemark.edges,d=a?i.filter(Object(c.a)(a)):i;return n.a.createElement("div",{className:"posts-list"},n.a.createElement("div",{className:"posts-category"},n.a.createElement("h2",null,o," Posts "),n.a.createElement("span",null,"(",d.length,")")),d.map((function(e){var t=e.node,a=t.id,o=t.fields,i=t.frontmatter,d=t.excerpt,l=i.tags||[],u=o.slug;return n.a.createElement("article",{key:a,className:"post-wrapper"},n.a.createElement("header",{className:"post-title"},n.a.createElement("h3",null,n.a.createElement(r.Link,{to:u},i.title))),n.a.createElement("div",{className:"post-info-sm"},n.a.createElement(r.Link,{to:u},n.a.createElement("span",null,i.date," | ")),n.a.createElement("span",{className:"post-categories"},Object(c.b)(i)),l.map((function(e){return n.a.createElement(s.a,{key:e,text:e,variant:"postList"})}))),n.a.createElement(r.Link,{to:u},n.a.createElement("section",null,n.a.createElement("p",{className:"post-excerpt",dangerouslySetInnerHTML:{__html:i.description||d}}))))})))};t.a=function(e){return n.a.createElement(r.StaticQuery,{query:"4156120491",render:function(t){return n.a.createElement(d,Object.assign({data:t},e))},data:o})}},e0vg:function(e,t,a){"use strict";a.r(t);var o=a("q1tI"),i=a.n(o),n=a("7oih"),r=a("e+E3"),s=a("EYWl");t.default=function(){return i.a.createElement(n.a,null,i.a.createElement(s.a,{title:"Posts - Music"}),i.a.createElement(r.a,{category:"music",title:"Music"}))}},fo6e:function(e,t){var a=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;e.exports=function(e){return a.test(e)}},jkPq:function(e,t,a){"use strict";var o=a("q1tI"),i=a.n(o),n=a("N1om"),r=a.n(n),s=a("Wbzz"),c=a("d9uu"),d={post:function(e){var t=e.text;return i.a.createElement("span",{className:"post-info-sm post-tag"},t)},count:function(e){var t=e.count,a=e.text;return i.a.createElement("span",null,a+" ("+t+")")},postList:function(e){var t=e.text;return i.a.createElement("span",{className:"post-tag"},t)}};t.a=function(e){var t=e.count,a=e.text,o=e.variant,n=Object(c.a)(a),l=d[o];if(!l)throw new Error("props.variant "+o+" not in contentMap.");return i.a.createElement(s.Link,{to:"/tags/"+r()(a)+"/"},l({count:t,text:n}))}},sgoq:function(e,t,a){a("pIFo"),a("Oyvg");var o=a("asDA"),i=a("TKrE"),n=a("6nK8"),r=RegExp("['’]","g");e.exports=function(e){return function(t){return o(n(i(t).replace(r,"")),e,"")}}}}]); +//# sourceMappingURL=component---src-pages-music-index-js-12306a09d96c193df492.js.map \ No newline at end of file diff --git a/component---src-pages-music-index-js-14190e6a44d32a8b3676.js.map b/component---src-pages-music-index-js-12306a09d96c193df492.js.map similarity index 99% rename from component---src-pages-music-index-js-14190e6a44d32a8b3676.js.map rename to component---src-pages-music-index-js-12306a09d96c193df492.js.map index 0511da7b..bf272db4 100644 --- a/component---src-pages-music-index-js-14190e6a44d32a8b3676.js.map +++ b/component---src-pages-music-index-js-12306a09d96c193df492.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/lodash/words.js","webpack:///./src/utils/dataUtils.js","webpack:///./node_modules/lodash/_unicodeWords.js","webpack:///./node_modules/lodash/kebabCase.js","webpack:///./node_modules/lodash/_asciiWords.js","webpack:///./src/components/PostsList.js","webpack:///./src/pages/music/index.js","webpack:///./node_modules/lodash/_hasUnicodeWord.js","webpack:///./src/components/TagLink.js","webpack:///./node_modules/lodash/_createCompounder.js"],"names":["asciiWords","hasUnicodeWord","toString","unicodeWords","module","exports","string","pattern","guard","undefined","match","categoryFilter","category","data","node","frontmatter","categories","includes","getFormattedCategories","map","capitalizeWords","join","getImage","filename","sizingStrategy","found","allFile","edges","find","image","relativePath","endsWith","childImageSharp","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsRegional","rsSurrPair","rsUpper","rsMiscLower","rsMiscUpper","reOptMod","rsModifier","rsSeq","rsEmoji","reUnicodeWord","RegExp","kebabCase","createCompounder","result","word","index","toLowerCase","reAsciiWord","PostsList","title","postData","allMarkdownRemark","posts","filter","className","length","id","fields","excerpt","tags","url","slug","key","to","date","tag","text","variant","dangerouslySetInnerHTML","__html","description","props","query","render","reHasUnicodeWord","test","contentMap","post","count","postList","TagLink","capText","contentFunc","Error","arrayReduce","deburr","words","reApos","callback","replace"],"mappings":"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","file":"component---src-pages-music-index-js-14190e6a44d32a8b3676.js","sourcesContent":["require(\"core-js/modules/es6.regexp.match\");\n\nvar asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\n\n\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;","import { capitalizeWords } from 'src/utils/stringUtils';\n\n/**\n * Get a filter callback for category\n * @param {string} category\n * @returns {function} filter\n */\nexport const categoryFilter = category => data =>\n data.node.frontmatter.categories.includes(category);\n\nexport const getFormattedCategories = frontmatter => {\n const { categories } = frontmatter;\n return categories\n ? categories.map(capitalizeWords).join(', ')\n : 'Uncategorized';\n};\n\n/**\n * Get image data from graphQl query\n * @param {object} config\n * @param {object} config.data -> the graphQl query result\n * @param {string} config.filename\n * @param {string} config.sizingStrategy -> oneOf('fixed', 'fluid')\n * @returns {object|undefined}\n */\nexport const getImage = ({ data, filename, sizingStrategy }) => {\n // data.allFile.edges -> array\n // data.allFile.edges[0].node.relativePath -> tech-projects/filename\n // data.allFile.edges[0].node.childImageSharp.fluid -> object base 64\n const found = data.allFile.edges.find(image =>\n image.node.relativePath.endsWith(filename)\n );\n if (found) {\n return found.node.childImageSharp[sizingStrategy];\n }\n};\n","require(\"core-js/modules/es6.regexp.match\");\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = \"\\\\ud800-\\\\udfff\",\n rsComboMarksRange = \"\\\\u0300-\\\\u036f\",\n reComboHalfMarksRange = \"\\\\ufe20-\\\\ufe2f\",\n rsComboSymbolsRange = \"\\\\u20d0-\\\\u20ff\",\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = \"\\\\u2700-\\\\u27bf\",\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = \"\\\\u2000-\\\\u206f\",\n rsSpaceRange = \" \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\",\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = \"\\\\ufe0e\\\\ufe0f\",\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n/** Used to compose unicode capture groups. */\n\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = \"\\\\ud83c[\\\\udffb-\\\\udfff]\",\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = \"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",\n rsSurrPair = \"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = \"\\\\u200d\";\n/** Used to compose unicode regexes. */\n\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n/** Used to match complex or compound words. */\n\nvar reUnicodeWord = RegExp([rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, rsUpper + '+' + rsOptContrUpper, rsOrdUpper, rsOrdLower, rsDigits, rsEmoji].join('|'), 'g');\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;","var createCompounder = require('./_createCompounder');\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n\n\nvar kebabCase = createCompounder(function (result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\nmodule.exports = kebabCase;","require(\"core-js/modules/es6.regexp.match\");\n\n/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;","import React from 'react';\nimport { Link, graphql, StaticQuery } from 'gatsby';\n\nimport TagLink from 'src/components/TagLink';\nimport { categoryFilter, getFormattedCategories } from 'src/utils/dataUtils';\n\n/** posts -> already filtered edges */\n/** totalCount -> data.allMarkdownRemark.totalCount */\nconst PostsList = ({ data, category, title }) => {\n if (!data) {\n return null;\n }\n\n const postData = data.allMarkdownRemark.edges;\n const posts = category ? postData.filter(categoryFilter(category)) : postData;\n\n return (\n
    \n
    \n

    {title} Posts

    \n ({posts.length})\n
    \n {posts.map(({ node }) => {\n const { id, fields, frontmatter, excerpt } = node;\n const tags = frontmatter.tags || [];\n const url = fields.slug;\n\n return (\n
    \n
    \n

    \n {frontmatter.title}\n

    \n
    \n
    \n \n {frontmatter.date} | \n \n \n {getFormattedCategories(frontmatter)}\n \n {tags.map(tag => (\n \n ))}\n
    \n \n
    \n \n
    \n \n
    \n );\n })}\n
    \n );\n};\n\nconst query = graphql`\n query {\n allMarkdownRemark(\n filter: { frontmatter: { type: { eq: \"post\" } } }\n sort: { fields: [frontmatter___date], order: DESC }\n ) {\n totalCount\n edges {\n node {\n id\n frontmatter {\n author\n categories\n date(formatString: \"MMMM DD, YYYY\")\n description\n tags\n title\n type\n }\n fields {\n slug\n }\n excerpt(pruneLength: 400)\n }\n }\n }\n }\n`;\n\nexport default props => (\n }\n />\n);\n","import React from 'react';\n\nimport Layout from 'src/components/Layout';\nimport PostsList from 'src/components/PostsList';\nimport SEO from 'src/components/SEO';\n\nexport default () => (\n \n \n \n \n);\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;","import React from 'react';\nimport kebabCase from 'lodash/kebabCase';\nimport { Link } from 'gatsby';\n\nimport { capitalizeWords } from 'src/utils/stringUtils';\n\nconst contentMap = {\n post: ({ text }) => {text},\n count: ({ count, text }) => {`${text} (${count})`},\n postList: ({ text }) => {text},\n};\n\nconst TagLink = ({ count, text, variant }) => {\n const capText = capitalizeWords(text);\n const contentFunc = contentMap[variant];\n\n if (!contentFunc) {\n throw new Error(`props.variant ${variant} not in contentMap.`);\n }\n\n return (\n \n {contentFunc({ count, text: capText })}\n \n );\n};\n\nexport default TagLink;\n","require(\"core-js/modules/es6.regexp.replace\");\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\nvar arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n/** Used to compose unicode capture groups. */\n\n\nvar rsApos = \"['\\u2019]\";\n/** Used to match apostrophes. */\n\nvar reApos = RegExp(rsApos, 'g');\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n\nfunction createCompounder(callback) {\n return function (string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/lodash/words.js","webpack:///./src/utils/dataUtils.js","webpack:///./node_modules/lodash/_unicodeWords.js","webpack:///./node_modules/lodash/kebabCase.js","webpack:///./node_modules/lodash/_asciiWords.js","webpack:///./src/components/PostsList.js","webpack:///./src/pages/music/index.js","webpack:///./node_modules/lodash/_hasUnicodeWord.js","webpack:///./src/components/TagLink.js","webpack:///./node_modules/lodash/_createCompounder.js"],"names":["asciiWords","hasUnicodeWord","toString","unicodeWords","module","exports","string","pattern","guard","undefined","match","categoryFilter","category","data","node","frontmatter","categories","includes","getFormattedCategories","map","capitalizeWords","join","getImage","filename","sizingStrategy","found","allFile","edges","find","image","relativePath","endsWith","childImageSharp","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsRegional","rsSurrPair","rsUpper","rsMiscLower","rsMiscUpper","reOptMod","rsModifier","rsSeq","rsEmoji","reUnicodeWord","RegExp","kebabCase","createCompounder","result","word","index","toLowerCase","reAsciiWord","PostsList","title","postData","allMarkdownRemark","posts","filter","className","length","id","fields","excerpt","tags","url","slug","key","to","date","tag","text","variant","dangerouslySetInnerHTML","__html","description","props","query","render","reHasUnicodeWord","test","contentMap","post","count","postList","TagLink","capText","contentFunc","Error","arrayReduce","deburr","words","reApos","callback","replace"],"mappings":"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","file":"component---src-pages-music-index-js-12306a09d96c193df492.js","sourcesContent":["require(\"core-js/modules/es6.regexp.match\");\n\nvar asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\n\n\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;","import { capitalizeWords } from 'src/utils/stringUtils';\n\n/**\n * Get a filter callback for category\n * @param {string} category\n * @returns {function} filter\n */\nexport const categoryFilter = category => data =>\n data.node.frontmatter.categories.includes(category);\n\nexport const getFormattedCategories = frontmatter => {\n const { categories } = frontmatter;\n return categories\n ? categories.map(capitalizeWords).join(', ')\n : 'Uncategorized';\n};\n\n/**\n * Get image data from graphQl query\n * @param {object} config\n * @param {object} config.data -> the graphQl query result\n * @param {string} config.filename\n * @param {string} config.sizingStrategy -> oneOf('fixed', 'fluid')\n * @returns {object|undefined}\n */\nexport const getImage = ({ data, filename, sizingStrategy }) => {\n // data.allFile.edges -> array\n // data.allFile.edges[0].node.relativePath -> tech-projects/filename\n // data.allFile.edges[0].node.childImageSharp.fluid -> object base 64\n const found = data.allFile.edges.find(image =>\n image.node.relativePath.endsWith(filename)\n );\n if (found) {\n return found.node.childImageSharp[sizingStrategy];\n }\n};\n","require(\"core-js/modules/es6.regexp.match\");\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = \"\\\\ud800-\\\\udfff\",\n rsComboMarksRange = \"\\\\u0300-\\\\u036f\",\n reComboHalfMarksRange = \"\\\\ufe20-\\\\ufe2f\",\n rsComboSymbolsRange = \"\\\\u20d0-\\\\u20ff\",\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = \"\\\\u2700-\\\\u27bf\",\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = \"\\\\u2000-\\\\u206f\",\n rsSpaceRange = \" \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\",\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = \"\\\\ufe0e\\\\ufe0f\",\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n/** Used to compose unicode capture groups. */\n\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = \"\\\\ud83c[\\\\udffb-\\\\udfff]\",\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = \"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",\n rsSurrPair = \"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = \"\\\\u200d\";\n/** Used to compose unicode regexes. */\n\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n/** Used to match complex or compound words. */\n\nvar reUnicodeWord = RegExp([rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, rsUpper + '+' + rsOptContrUpper, rsOrdUpper, rsOrdLower, rsDigits, rsEmoji].join('|'), 'g');\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;","var createCompounder = require('./_createCompounder');\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n\n\nvar kebabCase = createCompounder(function (result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\nmodule.exports = kebabCase;","require(\"core-js/modules/es6.regexp.match\");\n\n/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;","import React from 'react';\nimport { Link, graphql, StaticQuery } from 'gatsby';\n\nimport TagLink from 'src/components/TagLink';\nimport { categoryFilter, getFormattedCategories } from 'src/utils/dataUtils';\n\n/** posts -> already filtered edges */\n/** totalCount -> data.allMarkdownRemark.totalCount */\nconst PostsList = ({ data, category, title }) => {\n if (!data) {\n return null;\n }\n\n const postData = data.allMarkdownRemark.edges;\n const posts = category ? postData.filter(categoryFilter(category)) : postData;\n\n return (\n
    \n
    \n

    {title} Posts

    \n ({posts.length})\n
    \n {posts.map(({ node }) => {\n const { id, fields, frontmatter, excerpt } = node;\n const tags = frontmatter.tags || [];\n const url = fields.slug;\n\n return (\n
    \n
    \n

    \n {frontmatter.title}\n

    \n
    \n
    \n \n {frontmatter.date} | \n \n \n {getFormattedCategories(frontmatter)}\n \n {tags.map(tag => (\n \n ))}\n
    \n \n
    \n \n
    \n \n
    \n );\n })}\n
    \n );\n};\n\nconst query = graphql`\n query {\n allMarkdownRemark(\n filter: { frontmatter: { type: { eq: \"post\" } } }\n sort: { fields: [frontmatter___date], order: DESC }\n ) {\n totalCount\n edges {\n node {\n id\n frontmatter {\n author\n categories\n date(formatString: \"MMMM DD, YYYY\")\n description\n tags\n title\n type\n }\n fields {\n slug\n }\n excerpt(pruneLength: 400)\n }\n }\n }\n }\n`;\n\nexport default props => (\n }\n />\n);\n","import React from 'react';\n\nimport Layout from 'src/components/Layout';\nimport PostsList from 'src/components/PostsList';\nimport SEO from 'src/components/SEO';\n\nexport default () => (\n \n \n \n \n);\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;","import React from 'react';\nimport kebabCase from 'lodash/kebabCase';\nimport { Link } from 'gatsby';\n\nimport { capitalizeWords } from 'src/utils/stringUtils';\n\nconst contentMap = {\n post: ({ text }) => {text},\n count: ({ count, text }) => {`${text} (${count})`},\n postList: ({ text }) => {text},\n};\n\nconst TagLink = ({ count, text, variant }) => {\n const capText = capitalizeWords(text);\n const contentFunc = contentMap[variant];\n\n if (!contentFunc) {\n throw new Error(`props.variant ${variant} not in contentMap.`);\n }\n\n return (\n \n {contentFunc({ count, text: capText })}\n \n );\n};\n\nexport default TagLink;\n","require(\"core-js/modules/es6.regexp.replace\");\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\nvar arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n/** Used to compose unicode capture groups. */\n\n\nvar rsApos = \"['\\u2019]\";\n/** Used to match apostrophes. */\n\nvar reApos = RegExp(rsApos, 'g');\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n\nfunction createCompounder(callback) {\n return function (string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-music-index-js-14190e6a44d32a8b3676.js b/component---src-pages-music-index-js-14190e6a44d32a8b3676.js deleted file mode 100644 index 76d7574b..00000000 --- a/component---src-pages-music-index-js-14190e6a44d32a8b3676.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{"5cHQ":function(e){e.exports=JSON.parse('{"data":{"allMarkdownRemark":{"totalCount":44,"edges":[{"node":{"id":"970567e6-3f2a-5749-b60e-5fe9bce3ce59","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"June 01, 2023","description":null,"tags":["productivity","tech talk"],"title":"How I\'m Building My Second Brain","type":"post"},"fields":{"slug":"/building-my-second-brain/"},"excerpt":"Slides + Video “How I’m building my second brain” video (2022) (YouTube) “How I’m building my second brain” slides (2022) (PDF) Intro Creativity is bound up with making connections between disparate ideas. The connections piece is crucial. I know this because of my many failures with knowledge management. I went all in on the Getting Things Done (GTD) productivity system and wound up with a large…"}},{"node":{"id":"5bc00e6c-f6a8-51a5-9312-749eabf343c4","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 05, 2022","description":null,"tags":["random music generators"],"title":"Random Music Generators is now hosted on render.com","type":"post"},"fields":{"slug":"/2022-12-05-random-music-generators-news/"},"excerpt":"Random Music Generators is now hosted on render.com. Please update your bookmarks! https://random-music-generators.onrender.com"}},{"node":{"id":"87a467a5-a5cc-57bc-b828-33199e1396ed","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 05, 2021","description":null,"tags":["typescript","javascript"],"title":"TypeScript-lite: JSDoc for type-checking js files","type":"post"},"fields":{"slug":"/type-check-jsdocs-typescript/"},"excerpt":"Overview Did you know that you can use TypeScript features in JavaScript projects? When I discovered this and tried it out, I really enjoyed the results. Let’s go a bit into how it works. With a few simple ingredients: VSCode JavaScript Willingness to add types in JSDoc (and optionally importing TypeScript types) You can: statically check the types of .js files run compiler on .js files write…"}},{"node":{"id":"43882726-b323-56c1-986e-85fad7e68237","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 27, 2021","description":null,"tags":["career","mental health"],"title":"Programming with more ease","type":"post"},"fields":{"slug":"/programming-with-more-ease/"},"excerpt":"As professional programmers, the bulk of what we do is solving problems. A lot of the time, I’m motivated by problem-solving challenges. But sometimes I hit a wall. A given challenge can become a problem that I’m frustratingly unable to solve. Often, this frustration would spiral into a worse mental state. I’d imagine the problem as a scary, overwhelming, difficult to defeat monster - more…"}},{"node":{"id":"6a155da7-d04b-5289-b463-02babc9a2670","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 23, 2021","description":null,"tags":["design patterns"],"title":"How to Learn Design Patterns","type":"post"},"fields":{"slug":"/design-patterns-curriculum/"},"excerpt":"I’ve long been intrigued by design patterns, but when I started learning them, I realized quickly that I didn’t have a clear learning path. I didn’t know how I should learn design patterns or if it’s the right time for me to learn them. So, I sought out to answer some questions: What are the prerequisites for learning design patterns? What material should I use and how do I avoid being scattered…"}},{"node":{"id":"c373259e-e38e-59bb-ab3b-22a5afc45474","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2021","description":null,"tags":["design patterns"],"title":"Introduction to Design Patterns: Why they\'re worth learning","type":"post"},"fields":{"slug":"/design-patterns-intro/"},"excerpt":"As developers, we’re constantly learning - and there’s a lot to learn in general because the tech industry is broad and fast-paced. We want to have all the main bases covered so that we can be ready for any situation. We often hear about design patterns and how they can enable us to write well-architected software using object-oriented programming. If you’re like me, you might file that away as a…"}},{"node":{"id":"ef97f645-0325-5bf1-806d-ba14610e6780","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 30, 2021","description":null,"tags":["random music generators"],"title":"Random Music Generators News 2021-01-30","type":"post"},"fields":{"slug":"/2021-01-30-random-music-generators-news/"},"excerpt":"New in 1.3.1 This month, I released a big new feature that’s been requested often. You can now specify a custom note collection to create random melodies. Check it out! Note: This feature is available to use if you create an account. Part of the impetus to provide this feature was to aid in neuroscience research. Having the ability to create melodies with specific pitches will allow researchers…"}},{"node":{"id":"ba57e0fe-e724-5a6e-b122-d39a3674b8fc","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 10, 2020","description":null,"tags":["career"],"title":"Are You Ready to be a Professional Software Engineer?","type":"post"},"fields":{"slug":"/tech-career-resources/"},"excerpt":"Updated March 21, 2021 Did you just graduate from a coding bootcamp, obtain a CS degree, or built an involved side project? How do you know when you’re ready to write software professionally? This post has two parts: questions I ask my mentees to help clarify their job search a collection of resources I’ve found or made that helped my on my job search Questions to clarify the job search There are…"}},{"node":{"id":"ef2f493a-fbef-500d-a57e-689069307ca5","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 21, 2020","description":null,"tags":["immerjs","javascript","react","redux"],"title":"My love hate relationship with ImmerJS","type":"post"},"fields":{"slug":"/love-hate-immer-js/"},"excerpt":"After having used immutable js for a while, discovering ImmerJS was a breath of fresh air. Where immutable js forces you to learn its gigantic API, ImmerJS takes advantage of ES6 Proxies. These allow you to modify a “draft” version of an object as if you’re mutating it, but the draft is actually a copy so you’re not mutating the original! The return of immer’s function always returns a perfect…"}},{"node":{"id":"f2cf9b4b-5eb8-5856-bd0a-86b1e7bc66f4","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 15, 2020","description":null,"tags":["career","coding bootcamps","electron","javascript","tech talk"],"title":"Tech Talk - How I\'d Improve My Capstone Project","type":"post"},"fields":{"slug":"/tech-talk-improving-capstone-project/"},"excerpt":"In February 2020, I returned to my bootcamp to give a tech talk on what I’d do to improve my Capstone project. (I also answer career and other questions from the audience at the end.) Download the slides here (PDF) I’m excited to share what I’ve learned so far from working on enterprise software for almost 2 years. The talk is a deep dive into the codebase that myself and three others worked on…"}},{"node":{"id":"d6855891-7ad1-5756-b178-be45a9213df7","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 02, 2020","description":null,"tags":["javascript","node","productivity"],"title":"Using question-prompter for study, self-reflection, and more","type":"post"},"fields":{"slug":"/using-question-prompter/"},"excerpt":"I recently created a node command line app called question-prompter. It prompts you at your terminal to answer questions that you come up with. After you answer them, it saves them to a or file in a directory of your choosing. Background I find a lot of benefit from regularly checking in with myself. While many authors have written about this kind of reflection, Tim Ferriss comes to mind first…"}},{"node":{"id":"d83dfc88-d6b1-51d0-924a-b4ef8ea54dcf","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"June 03, 2020","description":null,"tags":["songwriting","composition","creativity"],"title":"Meta Ideas - Generating Creative Content","type":"post"},"fields":{"slug":"/meta-ideas-generating-creative-content/"},"excerpt":"I’ve been writing down small music (and other) ideas for over 20 years. I’ve generally struggled to store, organize, and retrieve them effectively. As I was going through my archives recently, it dawned on me that there are two fundamental types of ideas: one is “concrete” and the other is “meta.” A concrete idea is specific and actionable. It may be a chord progression like: A minor for two and a…"}},{"node":{"id":"362cb819-3e27-5202-98bf-310df4ba421f","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"May 02, 2020","description":null,"tags":["javascript","test runners","ava","mocha","jest","tech talk"],"title":"Comparing JavaScript Test Runners","type":"post"},"fields":{"slug":"/comparing-javascript-test-runners/"},"excerpt":"This post is a pointer to an article I completed recently - a comprehensive comparison of the AVA, Jest, Mocha, and JavaScript test runners. 👉 https://github.com/scraggo/comparing-javascript-test-runners/ 👈 Why is it on GitHub, not this blog? Not only does the repo contain the comparison article, I created a node application to generate the speed metrics in the article. The process looks like…"}},{"node":{"id":"5c2a373c-48fe-5078-9e3d-f21888265979","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2020","description":null,"tags":["typescript","open source"],"title":"Contributing a New Feature to Open Source: @sindresorhus/is","type":"post"},"fields":{"slug":"/contributing-to-open-source-is-type-checking/"},"excerpt":"This post is a recount of my recent experience contributing to is, a JavaScript open source type checking library. https://github.com/sindresorhus/is https://www.npmjs.com/package/@sindresorhus/is I’ll outline the process from beginning to end: the initial filing of the feature request, implementing the feature, collaborating on the pull request, and getting the feature released. Some of the open…"}},{"node":{"id":"eae0c8d9-4b57-5113-88ed-3ece28ea88ca","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"February 15, 2020","description":"Problems with unexpected assertion failures can arise while testing immutablejs with sinon. This post is a brief guide on how to create a custom matcher that will correctly calculate the equivalence between a mock/stub/spy call with an immutable parameter. The way I’ll be making the assertion is with calledWith from sinon-chai (a plugin for chai that helps with making should or expect assertions for sinon mocks). This github issue on sinonjs outlines the problem...","tags":["testing","sinon","immutablejs"],"title":"Testing immutable js with sinon custom matchers","type":"post"},"fields":{"slug":"/testing-immutable-js-with-sinon-custom-matchers/"},"excerpt":"Problems with unexpected assertion failures can arise while testing with . This post is a brief guide on how to create a custom matcher that will correctly calculate the equivalence between a mock/stub/spy call with an parameter. The way I’ll be making the assertion is with from (a plugin for that helps with making or assertions for mocks). This github issue on sinonjs outlines the problem…"}},{"node":{"id":"13bb4e43-1a4c-5619-88cf-18b133874a58","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 27, 2020","description":null,"tags":["random music generators"],"title":"Random Music Generators News 2020-01-27","type":"post"},"fields":{"slug":"/2020-01-27-random-music-generators-news/"},"excerpt":"New in 1.1.0 Yesterday, I released a feature that’s been in the works for over 6 months. You can now create melody presets. Check it out! If you have a go-to set of form parameters that make sounds that you really enjoy, you can save them and recall them later. As a necessity of saving presets, I added the ability to create an account. This will set the stage for being able to save presets for…"}},{"node":{"id":"208d49b8-08db-5947-81dc-1b7fec2f4c50","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 09, 2020","description":"Happy 2020! One of my new year’s resolutions is to redo my website with a lot of new things in mind. Here I’ll outline the changes I’m in the process of making. An important step in the whole makeover was getting an official domain name - I’m now live at scraggo.com! I’m using namecheap as the provider. The site has been hosted with github pages since its inception and I’ll…","tags":["gatsbyjs"],"title":"Website Makeover: Moving from Jekyll to Gatsby","type":"post"},"fields":{"slug":"/website-makeover-gatsby/"},"excerpt":"Happy 2020! One of my new year’s resolutions is to redo my website with a lot of new things in mind. Here I’ll outline the changes I’m in the process of making. EDIT Jan 18, 2020: Gatsby makeover complete! Now live: custom domain name An important step in the whole makeover was getting an official domain name - I’m now live at ! I’m using namecheap as the provider. The site has been hosted with…"}},{"node":{"id":"69ec04c0-36a1-5b4b-b7e5-895ff00cceda","frontmatter":{"author":"Dave Cohen","categories":["other"],"date":"January 01, 2020","description":null,"tags":null,"title":"2020 Resolutions and Reviewing the Decade","type":"post"},"fields":{"slug":"/2020-decade-in-review/"},"excerpt":"I really enjoy reflecting on the past year during the holidays. If I get a chance to do this, I come up with New Years resolutions afterwards. Some years I go through a somewhat involved process of going through my journal entries and coming up with the best realizations. This year, my girlfriend wanted to try Marie Forleo’s recommendation of reviewing the past decade. We went through the…"}},{"node":{"id":"71cb4d5a-1ffa-5471-9090-7ad8a844304b","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 21, 2019","description":null,"tags":["git"],"title":"How to Squash All Commits Related to a Single Issue into a Single Commit","type":"post"},"fields":{"slug":"/how-to-squash-commits/"},"excerpt":"Updated Sep 3, 2020 This article outlines how to use the “squash” feature of an interactive . What does “squashing” do? It allows you to take changes that are spread amongst multiple commits and consolidate them into one. Why should one consider squashing commits? A clean history makes tracking changes to a large codebase across time much easier. Many commits are small and unimportant in the grand…"}},{"node":{"id":"005c820c-061e-57bb-8255-c635792a976d","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"December 20, 2019","description":null,"tags":["music education"],"title":"About Songmind Studios","type":"post"},"fields":{"slug":"/about-songmind-studios/"},"excerpt":"In 2016, I decided to start my own brand of music education. I took the role of music coach, agent, and collaborator. The student and I would write and record music together to integrate learning and creativity in a holistic way. While I’ve suspended these services for the foreseeable future, I’m posting are the core concepts and aims of Songmind Studios. I’ll eventually make all my teaching…"}},{"node":{"id":"fe9a22be-2af0-5ee7-9e22-9ca6bb593de8","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 02, 2019","description":null,"tags":["career"],"title":"How to ace your initial programming job screen","type":"post"},"fields":{"slug":"/prepare-for-initial-screens/"},"excerpt":"Your resume and cover letter surely made a positive impact, but the most important evaluation has yet to come. If you’re searching for your first software development job, the process can be daunting. You may have heard that after sending your resume to a company, there’s an initial screen. This is usually done over the phone, but sometimes it happens in-person. Your resume and cover letter (the…"}},{"node":{"id":"3220ea90-ef5c-5200-befb-6f9a58952f53","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"April 03, 2019","description":null,"tags":["javascript"],"title":"Catching and handling different types of errors in promise chains","type":"post"},"fields":{"slug":"/catching-handling-errors-promise-chains/"},"excerpt":"When you need to make sequential API calls, promise chains are a reliable way to go. It gets a little tricky when you need to throw and handle errors differently at different points in the chain. This post will go into: throwing specific types of errors using creating an object literal dictionary to handle logic gracefully handling the errors differently at the end of the chain This article is…"}},{"node":{"id":"657093ab-4233-5d14-a741-44f2fa462db8","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 28, 2019","description":null,"tags":["javascript"],"title":"Using a filter function recursively","type":"post"},"fields":{"slug":"/recursive-filter-function/"},"excerpt":"The problem Given our array data structure, we only want to include items that have an ‘age’ property and the age is greater than 17. If the person is under age, we won’t allow any of their friends to be included (even if they are old enough to be.) (Contrived scenario, I know, but I recently needed to do something like this for a different type of authorization.) Run this code on repl.it We can…"}},{"node":{"id":"86cb31eb-6b40-50e3-9ddc-d195f0cee1c6","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 24, 2019","description":null,"tags":["git"],"title":"How to format and edit your git commit messages","type":"post"},"fields":{"slug":"/git-commit-format-squash/"},"excerpt":"When writing commit messages, it’s ideal to make them easy for another developer to read and understand exactly what’s in the commit. Oftentimes, though, we write commit messages quickly just to push a branch at the end of a workday, for instance (I know I’m guilty of this). One team member brought the Conventional Commits format to our attention. I’ve enjoyed using it and seeing the results when…"}},{"node":{"id":"35287751-dd87-580c-ae8e-8b1c02051859","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 23, 2019","description":null,"tags":["javascript"],"title":"How to prevent circular dependencies","type":"post"},"fields":{"slug":"/circular-dependencies-bug/"},"excerpt":"Some errors are kind of mysterious. The first time I got “‘myFunction’ is not a function” type errors, I was at a loss for a few hours. Logging out the functions from my require statements came back as or . What I learned, TL;DR - don’t import file ‘a’ into file ‘b’ AND file ‘b’ into file ‘a’. That’s an example of a “circular dependency.” Brief example of creating a circular dependency: myUtils…"}},{"node":{"id":"a5528eb3-e30d-5233-bd30-b8c7ae51558c","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2019","description":null,"tags":["javascript"],"title":"Custom type checking - isNaN vs Number.isNaN","type":"post"},"fields":{"slug":"/custom-type-checking-isnan/"},"excerpt":"Javascript is infamous for being “loose” and misleading with its typing. gives you , gives you , etc. So instead of writing conditionals using , doing specific checks, etc, I decided to make my own wrapper for which I called : I unknowingly put a bug in my app. Can you spot it? … It’s in the 3rd statement. Basically, the function took anything that wasn’t an ‘array’ or ‘null’ and decided it…"}},{"node":{"id":"ffbf844d-8df4-58a2-bbac-456ad18ce4e2","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 18, 2019","description":null,"tags":["javascript"],"title":"Using a Code Style Guide to Enforce Team Best Practices","type":"post"},"fields":{"slug":"/code-style-guide/"},"excerpt":"We all have opinions on what what coding best practices are and how code should be formatted. Recently, one of the teams I’ve been working on decided to add another member. I discovered that our coding styles were radically different. I decided to write some guidelines for our team to get us on the same page. I quickly realized that writing a style guide from scratch is a tall order. I’d already…"}},{"node":{"id":"78ad3884-f757-59b3-9a3e-cfb58062229e","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 18, 2018","description":null,"tags":["career"],"title":"Should junior developers work with recruiters?","type":"post"},"fields":{"slug":"/recruiters-and-junior-devs/"},"excerpt":"This is the first of a handful of posts about the 3-month search for my first full-time developer job. I graduated from a coding bootcamp in April. I’m a junior developer, though, I have some freelance projects on my resume that gave me about 2 years of experience. This, combined with a decently written Linkedin profile, contributed to my getting contacted by multiple recruiters daily. I wound up…"}},{"node":{"id":"58fbbba9-9063-500a-9fcb-829e58d07642","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"May 08, 2018","description":null,"tags":["computer science"],"title":"Debugging Strategies Checklist","type":"post"},"fields":{"slug":"/debugging-strategies-checklist/"},"excerpt":"Tracking down bugs in the software you’re working on can be tricky. Debugging is a massive topic and there are so many places bugs can show up. One thing’s for sure, whether you’re careful or not… Bugs will show up. I’m not saying this to be pessimistic. Creating and squashing bugs is not just a part of the process of writing software, it is the process! We’re solving problems and ironing out the…"}},{"node":{"id":"0092c8a9-f74f-5de1-a8e6-0fe315511475","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"April 16, 2018","description":null,"tags":["coding bootcamps","javascript"],"title":"Reflections From a Coding Bootcamp Graduate","type":"post"},"fields":{"slug":"/reflections-coding-bootcamp/"},"excerpt":"I was ready for a career change. It was October of 2017. The more time I spent coding and learning computer science fundamentals, the more I realized that a programming career would fit my personality* better than performing and teaching music. After spending a fair amount of time teaching myself to code and making websites, I began researching coding bootcamps. There were optimistic statistics of…"}},{"node":{"id":"8e59934a-7dcb-5377-ae8d-73c2d8ed7686","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"February 20, 2018","description":null,"tags":["javascript","computer science"],"title":"Tackling Hash Table Problems in JavaScript","type":"post"},"fields":{"slug":"/hash-tables-js/"},"excerpt":"Algorithms and data structures can be intimidating. The goal of this post is to explain some approaches to solving hash table algorithm problems providing clear examples with detailed solution explanations. I’m hoping this will help anyone uninitiated alleviate fears and make bigger strides in conquering these challenging problems. Why Hash Tables? While attending Fullstack Academy, I participated…"}},{"node":{"id":"d49b052b-2f19-5ddd-a73d-78e80b12bfdd","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 26, 2017","description":null,"tags":["coding bootcamps","javascript"],"title":"Now Attending: Fullstack Academy","type":"post"},"fields":{"slug":"/now-attending-fullstack/"},"excerpt":"Why I’m attending Fullstack Academy Since discovering a love for guitar and composition in my teens, I decided to pursue a career as a freelance music teacher, composer, recording engineer, and performing guitarist. After a decade of this, I realized that the rockstar dream didn’t suit me and I was tired of chasing it. I’d be happier with a more stable career that challenged me intellectually. I…"}},{"node":{"id":"e1022862-d7d0-5e18-994d-92f148fb9302","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 01, 2017","description":null,"tags":["javascript"],"title":"Intro to JavaScript Frameworks Part 1: The Vanilla JavaScript Version of TodoMVC","type":"post"},"fields":{"slug":"/intro-to-js-frameworks01/"},"excerpt":"The goal of this blog-series is to explain what frameworks do, why they’re used, and demonstrate with examples across many different frameworks. The series is aimed at those familiar with JavaScript syntax, accessing the DOM, functions, and classes (object-oriented programming). Further reading can be found at the bottom of this post. What is a JavaScript Framework? A framework is an imported…"}},{"node":{"id":"bd3eb5a8-b322-5b98-ad3f-6f3cae8be4e1","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 01, 2017","description":"This post contains an overview of what sorts of programming jobs are available. It\'s aimed at developers who want to try something new or are still deciding what to focus on in their efforts to become more marketable.","tags":["career"],"title":"Marketable Programming Skills","type":"post"},"fields":{"slug":"/marketable-programming-skills/"},"excerpt":"If you’ve been learning programming on your own, you may have made worked through some books, followed some online tutorials, and made a decent collection of simple apps. At a certain point you may wonder how much else you need to know to be able to start working as a programmer. I’m a self-taught coder with experience in web technologies (JavaScript, HTML, CSS, etc) and Python. Compiling some…"}},{"node":{"id":"b9bffa10-76c5-5831-96ad-63365ba582ec","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 01, 2017","description":null,"tags":["oop","python"],"title":"Using a Class in Python as a Code Wrapper for a Simple Game","type":"post"},"fields":{"slug":"/python-classes-guess-the-number/"},"excerpt":"Object-oriented design is a powerful programming paradigm that can be intimidating to anyone trying to learn how to use it. I worked through a number of excellent tutorials and books on the subject, but struggled to apply the concepts to my own code. I decided to convert a working program that didn’t use OOP and wrap it in a single class. The program I chose was Guess the Number written by Al…"}},{"node":{"id":"8a0e0fa2-afc3-5492-b98a-ed745595bdbf","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"January 15, 2017","description":null,"tags":["music education"],"title":"Honing Musical Strengths with a Student Evaluation","type":"post"},"fields":{"slug":"/honing-strengths-with-a-student-evaluation/"},"excerpt":"From time to time, we can find ourselves stagnating when studying music (or any other topic). To help become immune to this, it’s useful to fully recognize our strengths and acknowledge our weaknesses. Every strength is an opportunity to improve further and if we can acknowledge where we are struggling then we can begin to grow much faster and reach excellence. Ask yourself the following questions…"}},{"node":{"id":"cf15c4c6-a96d-537d-9525-34c1d200c9e4","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 01, 2016","description":null,"tags":["songwriting","promotion"],"title":"10 Issues Songwriters Face","type":"post"},"fields":{"slug":"/10-issues-songwriters-face/"},"excerpt":"It’s common for songwriters to feel overwhelmed when finishing their songs and getting them ready for their audience. There can be tremendous blocks going from inspiration to song completion. Listed below are the top issues I’ve encountered while interviewing songwriters and students of music who write music. 1. Not knowing “where to go next” with your song. This is a major problem for many…"}},{"node":{"id":"9e899d18-3457-5b38-89f4-b68c3fedda94","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"May 10, 2016","description":null,"tags":["bands"],"title":"The Five Dysfunctions of a Band","type":"post"},"fields":{"slug":"/5-dysfunctions-of-a-band/"},"excerpt":"The Five Dysfunctions of a Team (by Patrick Lencioni) is a highly recommended book for anyone that works with other people. (So - almost everyone!) The five dysfunctions are set up in a hierarchy. The bottom of the pyramid below shows that trust is the foundation and all else moves up from there. five-dysfunctions-pyramid The book opens with a story that brings the main five principles…"}},{"node":{"id":"a2bde957-6eed-524d-afe6-19d226d89c33","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"March 31, 2016","description":null,"tags":["practicing"],"title":"A Guide to Practicing and Overcoming Plateaus","type":"post"},"fields":{"slug":"/guide-to-practicing-overcoming-plateaus/"},"excerpt":"A long time student of mine recently began learning classical guitar. He had been studying jazz and blues for a number of years. He has a love for latin fingerstyle rhythms. The more lessons we had, the more he realized that he wanted to deepen his technical foundation. I recently told him: “The number of times you’ll reach a plateau is inversely proportional to how deeply you practice.” In other…"}},{"node":{"id":"04b1908e-5183-5e17-9415-9f4881c90c86","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"March 10, 2016","description":null,"tags":["recording","songwriting"],"title":"Preparing Your Song Demo for the Studio","type":"post"},"fields":{"slug":"/preparing-demo-for-studio/"},"excerpt":"We songwriters put a lot of work into our songs. Putting together interesting chord voicings, refining our lyrics to perfection, and getting the form ‘just right’ can take a lot of effort, but be very gratifying. When your song is finally finished, you might want to make the investment of bringing it to a studio with a band to lay down all of the parts. When it comes to recording in the studio…"}},{"node":{"id":"7e202b1a-2c4a-51f1-8046-587cb36c5751","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"January 06, 2016","description":null,"tags":["songwriting","creativity","productivity"],"title":"A 3 Step Process to Organizing Creativity","type":"post"},"fields":{"slug":"/organizing-creativity-3-step-process/"},"excerpt":"It’s difficult to keep track of everything that needs to be done with your musical ideas. If you write with any frequency, these ideas can amass until there are so many that you can’t keep track of them. Your ideas might range from little snippets to near complete works. Here are some things that commonly go wrong for me: I don’t take enough time to think about where an idea needs to go to be…"}},{"node":{"id":"c55142ea-f8a1-50bf-8922-e7f4ff2ee896","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 16, 2015","description":null,"tags":["songwriting"],"title":"Songwriting Tutorial: Snippet Challenge","type":"post"},"fields":{"slug":"/songwriting-snippet-challenge/"},"excerpt":"Have lots of unfinished ideas? Learn how to take a short instrumental idea and finish writing your song in one day. Over the years, I’ve written tons and tons of short musical ideas. I had been putting off turning them into real pieces until now. Inspired by my research on speed composing, I decided to make a challenge out of my problem. The Snippet Challenge & Simple Instrumental Song Forms In a…"}},{"node":{"id":"5591838f-0d37-5819-b56e-cdcfdfb6da95","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 15, 2015","description":null,"tags":["songwriting"],"title":"Songwriting and Serendipity","type":"post"},"fields":{"slug":"/songwriting-and-serendipity/"},"excerpt":"Why start a composition with a blank slate? Jam on a cover tune then take it in a different direction. Sometimes, the less experience you have figuring out songs, the better. When I was first learning guitar and had much less skill, I tried to figure out songs that I heard. I was usually unsuccessful at transcribing them accurately, but there were many occasions that I enjoyed what I was playing…"}},{"node":{"id":"972a1e06-645e-5949-8544-deaece011b95","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"October 15, 2015","description":null,"tags":["songwriting"],"title":"Songwriting Tutorial: Simplicity and Complexity","type":"post"},"fields":{"slug":"/songwriting-simplicity-complexity/"},"excerpt":"How to begin writing a song by choosing a lyrical theme and a musical mood. The Keys to Simplicity Selecting a mood / topic for the song The central theme of your song can come from anywhere - your mood, the news, or a conversation you heard while at a coffee shop. After choosing something, stay in that mindset until you find the need for a well-placed and meaningful contrast. It’s important to…"}}]}}}')},"6nK8":function(e,t,a){a("SRfc");var o=a("dVn5"),i=a("fo6e"),n=a("dt0z"),r=a("9NmV");e.exports=function(e,t,a){return e=n(e),void 0===(t=a?void 0:t)?i(e)?r(e):o(e):e.match(t)||[]}},"7TWv":function(e,t,a){"use strict";a.d(t,"a",(function(){return i})),a.d(t,"b",(function(){return n})),a.d(t,"c",(function(){return r}));a("rvZc"),a("dRSK"),a("Z2Ku"),a("L9s1");var o=a("d9uu"),i=function(e){return function(t){return t.node.frontmatter.categories.includes(e)}},n=function(e){var t=e.categories;return t?t.map(o.a).join(", "):"Uncategorized"},r=function(e){var t=e.data,a=e.filename,o=e.sizingStrategy,i=t.allFile.edges.find((function(e){return e.node.relativePath.endsWith(a)}));if(i)return i.node.childImageSharp[o]}},"9NmV":function(e,t,a){a("SRfc"),a("Oyvg");var o="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",i="["+o+"]",n="\\d+",r="[\\u2700-\\u27bf]",s="[a-z\\xdf-\\xf6\\xf8-\\xff]",c="[^\\ud800-\\udfff"+o+n+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",d="(?:\\ud83c[\\udde6-\\uddff]){2}",l="[\\ud800-\\udbff][\\udc00-\\udfff]",u="[A-Z\\xc0-\\xd6\\xd8-\\xde]",h="(?:"+s+"|"+c+")",m="(?:"+u+"|"+c+")",g="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",p="[\\ufe0e\\ufe0f]?"+g+("(?:\\u200d(?:"+["[^\\ud800-\\udfff]",d,l].join("|")+")[\\ufe0e\\ufe0f]?"+g+")*"),f="(?:"+[r,d,l].join("|")+")"+p,y=RegExp([u+"?"+s+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[i,u,"$"].join("|")+")",m+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[i,u+h,"$"].join("|")+")",u+"?"+h+"+(?:['’](?:d|ll|m|re|s|t|ve))?",u+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",n,f].join("|"),"g");e.exports=function(e){return e.match(y)||[]}},N1om:function(e,t,a){var o=a("sgoq")((function(e,t,a){return e+(a?"-":"")+t.toLowerCase()}));e.exports=o},dVn5:function(e,t,a){a("SRfc");var o=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;e.exports=function(e){return e.match(o)||[]}},"e+E3":function(e,t,a){"use strict";a("91GP");var o=a("5cHQ"),i=a("q1tI"),n=a.n(i),r=a("Wbzz"),s=a("jkPq"),c=a("7TWv"),d=function(e){var t=e.data,a=e.category,o=e.title;if(!t)return null;var i=t.allMarkdownRemark.edges,d=a?i.filter(Object(c.a)(a)):i;return n.a.createElement("div",{className:"posts-list"},n.a.createElement("div",{className:"posts-category"},n.a.createElement("h2",null,o," Posts "),n.a.createElement("span",null,"(",d.length,")")),d.map((function(e){var t=e.node,a=t.id,o=t.fields,i=t.frontmatter,d=t.excerpt,l=i.tags||[],u=o.slug;return n.a.createElement("article",{key:a,className:"post-wrapper"},n.a.createElement("header",{className:"post-title"},n.a.createElement("h3",null,n.a.createElement(r.Link,{to:u},i.title))),n.a.createElement("div",{className:"post-info-sm"},n.a.createElement(r.Link,{to:u},n.a.createElement("span",null,i.date," | ")),n.a.createElement("span",{className:"post-categories"},Object(c.b)(i)),l.map((function(e){return n.a.createElement(s.a,{key:e,text:e,variant:"postList"})}))),n.a.createElement(r.Link,{to:u},n.a.createElement("section",null,n.a.createElement("p",{className:"post-excerpt",dangerouslySetInnerHTML:{__html:i.description||d}}))))})))};t.a=function(e){return n.a.createElement(r.StaticQuery,{query:"4156120491",render:function(t){return n.a.createElement(d,Object.assign({data:t},e))},data:o})}},e0vg:function(e,t,a){"use strict";a.r(t);var o=a("q1tI"),i=a.n(o),n=a("7oih"),r=a("e+E3"),s=a("EYWl");t.default=function(){return i.a.createElement(n.a,null,i.a.createElement(s.a,{title:"Posts - Music"}),i.a.createElement(r.a,{category:"music",title:"Music"}))}},fo6e:function(e,t){var a=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;e.exports=function(e){return a.test(e)}},jkPq:function(e,t,a){"use strict";var o=a("q1tI"),i=a.n(o),n=a("N1om"),r=a.n(n),s=a("Wbzz"),c=a("d9uu"),d={post:function(e){var t=e.text;return i.a.createElement("span",{className:"post-info-sm post-tag"},t)},count:function(e){var t=e.count,a=e.text;return i.a.createElement("span",null,a+" ("+t+")")},postList:function(e){var t=e.text;return i.a.createElement("span",{className:"post-tag"},t)}};t.a=function(e){var t=e.count,a=e.text,o=e.variant,n=Object(c.a)(a),l=d[o];if(!l)throw new Error("props.variant "+o+" not in contentMap.");return i.a.createElement(s.Link,{to:"/tags/"+r()(a)+"/"},l({count:t,text:n}))}},sgoq:function(e,t,a){a("pIFo"),a("Oyvg");var o=a("asDA"),i=a("TKrE"),n=a("6nK8"),r=RegExp("['’]","g");e.exports=function(e){return function(t){return o(n(i(t).replace(r,"")),e,"")}}}}]); -//# sourceMappingURL=component---src-pages-music-index-js-14190e6a44d32a8b3676.js.map \ No newline at end of file diff --git a/component---src-pages-other-index-js-5cf19c9c5258a07ac857.js b/component---src-pages-other-index-js-5cf19c9c5258a07ac857.js new file mode 100644 index 00000000..63f6ae82 --- /dev/null +++ b/component---src-pages-other-index-js-5cf19c9c5258a07ac857.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{"5cHQ":function(e){e.exports=JSON.parse('{"data":{"allMarkdownRemark":{"totalCount":44,"edges":[{"node":{"id":"970567e6-3f2a-5749-b60e-5fe9bce3ce59","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"June 01, 2023","description":null,"tags":["productivity","tech talk"],"title":"How I\'m Building My Second Brain","type":"post"},"fields":{"slug":"/building-my-second-brain/"},"excerpt":"Slides + Video “How I’m building my second brain” video (2022) (YouTube) “How I’m building my second brain” slides (2022) (PDF) Intro Creativity is bound up with making connections between disparate ideas. The connections piece is crucial - personal knowledge management falls apart without it. Long ago, I treated the Getting Things Done (GTD) productivity system as gospel. The way I used it…"}},{"node":{"id":"5bc00e6c-f6a8-51a5-9312-749eabf343c4","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 05, 2022","description":null,"tags":["random music generators"],"title":"Random Music Generators is now hosted on render.com","type":"post"},"fields":{"slug":"/2022-12-05-random-music-generators-news/"},"excerpt":"Random Music Generators is now hosted on render.com. Please update your bookmarks! https://random-music-generators.onrender.com"}},{"node":{"id":"87a467a5-a5cc-57bc-b828-33199e1396ed","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 05, 2021","description":null,"tags":["typescript","javascript"],"title":"TypeScript-lite: JSDoc for type-checking js files","type":"post"},"fields":{"slug":"/type-check-jsdocs-typescript/"},"excerpt":"Overview Did you know that you can use TypeScript features in JavaScript projects? When I discovered this and tried it out, I really enjoyed the results. Let’s go a bit into how it works. With a few simple ingredients: VSCode JavaScript Willingness to add types in JSDoc (and optionally importing TypeScript types) You can: statically check the types of .js files run compiler on .js files write…"}},{"node":{"id":"43882726-b323-56c1-986e-85fad7e68237","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 27, 2021","description":null,"tags":["career","mental health"],"title":"Programming with more ease","type":"post"},"fields":{"slug":"/programming-with-more-ease/"},"excerpt":"As professional programmers, the bulk of what we do is solving problems. A lot of the time, I’m motivated by problem-solving challenges. But sometimes I hit a wall. A given challenge can become a problem that I’m frustratingly unable to solve. Often, this frustration would spiral into a worse mental state. I’d imagine the problem as a scary, overwhelming, difficult to defeat monster - more…"}},{"node":{"id":"6a155da7-d04b-5289-b463-02babc9a2670","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 23, 2021","description":null,"tags":["design patterns"],"title":"How to Learn Design Patterns","type":"post"},"fields":{"slug":"/design-patterns-curriculum/"},"excerpt":"I’ve long been intrigued by design patterns, but when I started learning them, I realized quickly that I didn’t have a clear learning path. I didn’t know how I should learn design patterns or if it’s the right time for me to learn them. So, I sought out to answer some questions: What are the prerequisites for learning design patterns? What material should I use and how do I avoid being scattered…"}},{"node":{"id":"c373259e-e38e-59bb-ab3b-22a5afc45474","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2021","description":null,"tags":["design patterns"],"title":"Introduction to Design Patterns: Why they\'re worth learning","type":"post"},"fields":{"slug":"/design-patterns-intro/"},"excerpt":"As developers, we’re constantly learning - and there’s a lot to learn in general because the tech industry is broad and fast-paced. We want to have all the main bases covered so that we can be ready for any situation. We often hear about design patterns and how they can enable us to write well-architected software using object-oriented programming. If you’re like me, you might file that away as a…"}},{"node":{"id":"ef97f645-0325-5bf1-806d-ba14610e6780","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 30, 2021","description":null,"tags":["random music generators"],"title":"Random Music Generators News 2021-01-30","type":"post"},"fields":{"slug":"/2021-01-30-random-music-generators-news/"},"excerpt":"New in 1.3.1 This month, I released a big new feature that’s been requested often. You can now specify a custom note collection to create random melodies. Check it out! Note: This feature is available to use if you create an account. Part of the impetus to provide this feature was to aid in neuroscience research. Having the ability to create melodies with specific pitches will allow researchers…"}},{"node":{"id":"ba57e0fe-e724-5a6e-b122-d39a3674b8fc","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 10, 2020","description":null,"tags":["career"],"title":"Are You Ready to be a Professional Software Engineer?","type":"post"},"fields":{"slug":"/tech-career-resources/"},"excerpt":"Updated March 21, 2021 Did you just graduate from a coding bootcamp, obtain a CS degree, or built an involved side project? How do you know when you’re ready to write software professionally? This post has two parts: questions I ask my mentees to help clarify their job search a collection of resources I’ve found or made that helped my on my job search Questions to clarify the job search There are…"}},{"node":{"id":"ef2f493a-fbef-500d-a57e-689069307ca5","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 21, 2020","description":null,"tags":["immerjs","javascript","react","redux"],"title":"My love hate relationship with ImmerJS","type":"post"},"fields":{"slug":"/love-hate-immer-js/"},"excerpt":"After having used immutable js for a while, discovering ImmerJS was a breath of fresh air. Where immutable js forces you to learn its gigantic API, ImmerJS takes advantage of ES6 Proxies. These allow you to modify a “draft” version of an object as if you’re mutating it, but the draft is actually a copy so you’re not mutating the original! The return of immer’s function always returns a perfect…"}},{"node":{"id":"f2cf9b4b-5eb8-5856-bd0a-86b1e7bc66f4","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 15, 2020","description":null,"tags":["career","coding bootcamps","electron","javascript","tech talk"],"title":"Tech Talk - How I\'d Improve My Capstone Project","type":"post"},"fields":{"slug":"/tech-talk-improving-capstone-project/"},"excerpt":"In February 2020, I returned to my bootcamp to give a tech talk on what I’d do to improve my Capstone project. (I also answer career and other questions from the audience at the end.) Download the slides here (PDF) I’m excited to share what I’ve learned so far from working on enterprise software for almost 2 years. The talk is a deep dive into the codebase that myself and three others worked on…"}},{"node":{"id":"d6855891-7ad1-5756-b178-be45a9213df7","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 02, 2020","description":null,"tags":["javascript","node","productivity"],"title":"Using question-prompter for study, self-reflection, and more","type":"post"},"fields":{"slug":"/using-question-prompter/"},"excerpt":"I recently created a node command line app called question-prompter. It prompts you at your terminal to answer questions that you come up with. After you answer them, it saves them to a or file in a directory of your choosing. Background I find a lot of benefit from regularly checking in with myself. While many authors have written about this kind of reflection, Tim Ferriss comes to mind first…"}},{"node":{"id":"d83dfc88-d6b1-51d0-924a-b4ef8ea54dcf","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"June 03, 2020","description":null,"tags":["songwriting","composition","creativity"],"title":"Meta Ideas - Generating Creative Content","type":"post"},"fields":{"slug":"/meta-ideas-generating-creative-content/"},"excerpt":"I’ve been writing down small music (and other) ideas for over 20 years. I’ve generally struggled to store, organize, and retrieve them effectively. As I was going through my archives recently, it dawned on me that there are two fundamental types of ideas: one is “concrete” and the other is “meta.” A concrete idea is specific and actionable. It may be a chord progression like: A minor for two and a…"}},{"node":{"id":"362cb819-3e27-5202-98bf-310df4ba421f","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"May 02, 2020","description":null,"tags":["javascript","test runners","ava","mocha","jest","tech talk"],"title":"Comparing JavaScript Test Runners","type":"post"},"fields":{"slug":"/comparing-javascript-test-runners/"},"excerpt":"This post is a pointer to an article I completed recently - a comprehensive comparison of the AVA, Jest, Mocha, and JavaScript test runners. 👉 https://github.com/scraggo/comparing-javascript-test-runners/ 👈 Why is it on GitHub, not this blog? Not only does the repo contain the comparison article, I created a node application to generate the speed metrics in the article. The process looks like…"}},{"node":{"id":"5c2a373c-48fe-5078-9e3d-f21888265979","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2020","description":null,"tags":["typescript","open source"],"title":"Contributing a New Feature to Open Source: @sindresorhus/is","type":"post"},"fields":{"slug":"/contributing-to-open-source-is-type-checking/"},"excerpt":"This post is a recount of my recent experience contributing to is, a JavaScript open source type checking library. https://github.com/sindresorhus/is https://www.npmjs.com/package/@sindresorhus/is I’ll outline the process from beginning to end: the initial filing of the feature request, implementing the feature, collaborating on the pull request, and getting the feature released. Some of the open…"}},{"node":{"id":"eae0c8d9-4b57-5113-88ed-3ece28ea88ca","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"February 15, 2020","description":"Problems with unexpected assertion failures can arise while testing immutablejs with sinon. This post is a brief guide on how to create a custom matcher that will correctly calculate the equivalence between a mock/stub/spy call with an immutable parameter. The way I’ll be making the assertion is with calledWith from sinon-chai (a plugin for chai that helps with making should or expect assertions for sinon mocks). This github issue on sinonjs outlines the problem...","tags":["testing","sinon","immutablejs"],"title":"Testing immutable js with sinon custom matchers","type":"post"},"fields":{"slug":"/testing-immutable-js-with-sinon-custom-matchers/"},"excerpt":"Problems with unexpected assertion failures can arise while testing with . This post is a brief guide on how to create a custom matcher that will correctly calculate the equivalence between a mock/stub/spy call with an parameter. The way I’ll be making the assertion is with from (a plugin for that helps with making or assertions for mocks). This github issue on sinonjs outlines the problem…"}},{"node":{"id":"13bb4e43-1a4c-5619-88cf-18b133874a58","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 27, 2020","description":null,"tags":["random music generators"],"title":"Random Music Generators News 2020-01-27","type":"post"},"fields":{"slug":"/2020-01-27-random-music-generators-news/"},"excerpt":"New in 1.1.0 Yesterday, I released a feature that’s been in the works for over 6 months. You can now create melody presets. Check it out! If you have a go-to set of form parameters that make sounds that you really enjoy, you can save them and recall them later. As a necessity of saving presets, I added the ability to create an account. This will set the stage for being able to save presets for…"}},{"node":{"id":"208d49b8-08db-5947-81dc-1b7fec2f4c50","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 09, 2020","description":"Happy 2020! One of my new year’s resolutions is to redo my website with a lot of new things in mind. Here I’ll outline the changes I’m in the process of making. An important step in the whole makeover was getting an official domain name - I’m now live at scraggo.com! I’m using namecheap as the provider. The site has been hosted with github pages since its inception and I’ll…","tags":["gatsbyjs"],"title":"Website Makeover: Moving from Jekyll to Gatsby","type":"post"},"fields":{"slug":"/website-makeover-gatsby/"},"excerpt":"Happy 2020! One of my new year’s resolutions is to redo my website with a lot of new things in mind. Here I’ll outline the changes I’m in the process of making. EDIT Jan 18, 2020: Gatsby makeover complete! Now live: custom domain name An important step in the whole makeover was getting an official domain name - I’m now live at ! I’m using namecheap as the provider. The site has been hosted with…"}},{"node":{"id":"69ec04c0-36a1-5b4b-b7e5-895ff00cceda","frontmatter":{"author":"Dave Cohen","categories":["other"],"date":"January 01, 2020","description":null,"tags":null,"title":"2020 Resolutions and Reviewing the Decade","type":"post"},"fields":{"slug":"/2020-decade-in-review/"},"excerpt":"I really enjoy reflecting on the past year during the holidays. If I get a chance to do this, I come up with New Years resolutions afterwards. Some years I go through a somewhat involved process of going through my journal entries and coming up with the best realizations. This year, my girlfriend wanted to try Marie Forleo’s recommendation of reviewing the past decade. We went through the…"}},{"node":{"id":"71cb4d5a-1ffa-5471-9090-7ad8a844304b","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 21, 2019","description":null,"tags":["git"],"title":"How to Squash All Commits Related to a Single Issue into a Single Commit","type":"post"},"fields":{"slug":"/how-to-squash-commits/"},"excerpt":"Updated Sep 3, 2020 This article outlines how to use the “squash” feature of an interactive . What does “squashing” do? It allows you to take changes that are spread amongst multiple commits and consolidate them into one. Why should one consider squashing commits? A clean history makes tracking changes to a large codebase across time much easier. Many commits are small and unimportant in the grand…"}},{"node":{"id":"005c820c-061e-57bb-8255-c635792a976d","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"December 20, 2019","description":null,"tags":["music education"],"title":"About Songmind Studios","type":"post"},"fields":{"slug":"/about-songmind-studios/"},"excerpt":"In 2016, I decided to start my own brand of music education. I took the role of music coach, agent, and collaborator. The student and I would write and record music together to integrate learning and creativity in a holistic way. While I’ve suspended these services for the foreseeable future, I’m posting are the core concepts and aims of Songmind Studios. I’ll eventually make all my teaching…"}},{"node":{"id":"fe9a22be-2af0-5ee7-9e22-9ca6bb593de8","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 02, 2019","description":null,"tags":["career"],"title":"How to ace your initial programming job screen","type":"post"},"fields":{"slug":"/prepare-for-initial-screens/"},"excerpt":"Your resume and cover letter surely made a positive impact, but the most important evaluation has yet to come. If you’re searching for your first software development job, the process can be daunting. You may have heard that after sending your resume to a company, there’s an initial screen. This is usually done over the phone, but sometimes it happens in-person. Your resume and cover letter (the…"}},{"node":{"id":"3220ea90-ef5c-5200-befb-6f9a58952f53","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"April 03, 2019","description":null,"tags":["javascript"],"title":"Catching and handling different types of errors in promise chains","type":"post"},"fields":{"slug":"/catching-handling-errors-promise-chains/"},"excerpt":"When you need to make sequential API calls, promise chains are a reliable way to go. It gets a little tricky when you need to throw and handle errors differently at different points in the chain. This post will go into: throwing specific types of errors using creating an object literal dictionary to handle logic gracefully handling the errors differently at the end of the chain This article is…"}},{"node":{"id":"657093ab-4233-5d14-a741-44f2fa462db8","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 28, 2019","description":null,"tags":["javascript"],"title":"Using a filter function recursively","type":"post"},"fields":{"slug":"/recursive-filter-function/"},"excerpt":"The problem Given our array data structure, we only want to include items that have an ‘age’ property and the age is greater than 17. If the person is under age, we won’t allow any of their friends to be included (even if they are old enough to be.) (Contrived scenario, I know, but I recently needed to do something like this for a different type of authorization.) Run this code on repl.it We can…"}},{"node":{"id":"86cb31eb-6b40-50e3-9ddc-d195f0cee1c6","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 24, 2019","description":null,"tags":["git"],"title":"How to format and edit your git commit messages","type":"post"},"fields":{"slug":"/git-commit-format-squash/"},"excerpt":"When writing commit messages, it’s ideal to make them easy for another developer to read and understand exactly what’s in the commit. Oftentimes, though, we write commit messages quickly just to push a branch at the end of a workday, for instance (I know I’m guilty of this). One team member brought the Conventional Commits format to our attention. I’ve enjoyed using it and seeing the results when…"}},{"node":{"id":"35287751-dd87-580c-ae8e-8b1c02051859","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 23, 2019","description":null,"tags":["javascript"],"title":"How to prevent circular dependencies","type":"post"},"fields":{"slug":"/circular-dependencies-bug/"},"excerpt":"Some errors are kind of mysterious. The first time I got “‘myFunction’ is not a function” type errors, I was at a loss for a few hours. Logging out the functions from my require statements came back as or . What I learned, TL;DR - don’t import file ‘a’ into file ‘b’ AND file ‘b’ into file ‘a’. That’s an example of a “circular dependency.” Brief example of creating a circular dependency: myUtils…"}},{"node":{"id":"a5528eb3-e30d-5233-bd30-b8c7ae51558c","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2019","description":null,"tags":["javascript"],"title":"Custom type checking - isNaN vs Number.isNaN","type":"post"},"fields":{"slug":"/custom-type-checking-isnan/"},"excerpt":"Javascript is infamous for being “loose” and misleading with its typing. gives you , gives you , etc. So instead of writing conditionals using , doing specific checks, etc, I decided to make my own wrapper for which I called : I unknowingly put a bug in my app. Can you spot it? … It’s in the 3rd statement. Basically, the function took anything that wasn’t an ‘array’ or ‘null’ and decided it…"}},{"node":{"id":"ffbf844d-8df4-58a2-bbac-456ad18ce4e2","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 18, 2019","description":null,"tags":["javascript"],"title":"Using a Code Style Guide to Enforce Team Best Practices","type":"post"},"fields":{"slug":"/code-style-guide/"},"excerpt":"We all have opinions on what what coding best practices are and how code should be formatted. Recently, one of the teams I’ve been working on decided to add another member. I discovered that our coding styles were radically different. I decided to write some guidelines for our team to get us on the same page. I quickly realized that writing a style guide from scratch is a tall order. I’d already…"}},{"node":{"id":"78ad3884-f757-59b3-9a3e-cfb58062229e","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 18, 2018","description":null,"tags":["career"],"title":"Should junior developers work with recruiters?","type":"post"},"fields":{"slug":"/recruiters-and-junior-devs/"},"excerpt":"This is the first of a handful of posts about the 3-month search for my first full-time developer job. I graduated from a coding bootcamp in April. I’m a junior developer, though, I have some freelance projects on my resume that gave me about 2 years of experience. This, combined with a decently written Linkedin profile, contributed to my getting contacted by multiple recruiters daily. I wound up…"}},{"node":{"id":"58fbbba9-9063-500a-9fcb-829e58d07642","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"May 08, 2018","description":null,"tags":["computer science"],"title":"Debugging Strategies Checklist","type":"post"},"fields":{"slug":"/debugging-strategies-checklist/"},"excerpt":"Tracking down bugs in the software you’re working on can be tricky. Debugging is a massive topic and there are so many places bugs can show up. One thing’s for sure, whether you’re careful or not… Bugs will show up. I’m not saying this to be pessimistic. Creating and squashing bugs is not just a part of the process of writing software, it is the process! We’re solving problems and ironing out the…"}},{"node":{"id":"0092c8a9-f74f-5de1-a8e6-0fe315511475","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"April 16, 2018","description":null,"tags":["coding bootcamps","javascript"],"title":"Reflections From a Coding Bootcamp Graduate","type":"post"},"fields":{"slug":"/reflections-coding-bootcamp/"},"excerpt":"I was ready for a career change. It was October of 2017. The more time I spent coding and learning computer science fundamentals, the more I realized that a programming career would fit my personality* better than performing and teaching music. After spending a fair amount of time teaching myself to code and making websites, I began researching coding bootcamps. There were optimistic statistics of…"}},{"node":{"id":"8e59934a-7dcb-5377-ae8d-73c2d8ed7686","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"February 20, 2018","description":null,"tags":["javascript","computer science"],"title":"Tackling Hash Table Problems in JavaScript","type":"post"},"fields":{"slug":"/hash-tables-js/"},"excerpt":"Algorithms and data structures can be intimidating. The goal of this post is to explain some approaches to solving hash table algorithm problems providing clear examples with detailed solution explanations. I’m hoping this will help anyone uninitiated alleviate fears and make bigger strides in conquering these challenging problems. Why Hash Tables? While attending Fullstack Academy, I participated…"}},{"node":{"id":"d49b052b-2f19-5ddd-a73d-78e80b12bfdd","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 26, 2017","description":null,"tags":["coding bootcamps","javascript"],"title":"Now Attending: Fullstack Academy","type":"post"},"fields":{"slug":"/now-attending-fullstack/"},"excerpt":"Why I’m attending Fullstack Academy Since discovering a love for guitar and composition in my teens, I decided to pursue a career as a freelance music teacher, composer, recording engineer, and performing guitarist. After a decade of this, I realized that the rockstar dream didn’t suit me and I was tired of chasing it. I’d be happier with a more stable career that challenged me intellectually. I…"}},{"node":{"id":"e1022862-d7d0-5e18-994d-92f148fb9302","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 01, 2017","description":null,"tags":["javascript"],"title":"Intro to JavaScript Frameworks Part 1: The Vanilla JavaScript Version of TodoMVC","type":"post"},"fields":{"slug":"/intro-to-js-frameworks01/"},"excerpt":"The goal of this blog-series is to explain what frameworks do, why they’re used, and demonstrate with examples across many different frameworks. The series is aimed at those familiar with JavaScript syntax, accessing the DOM, functions, and classes (object-oriented programming). Further reading can be found at the bottom of this post. What is a JavaScript Framework? A framework is an imported…"}},{"node":{"id":"bd3eb5a8-b322-5b98-ad3f-6f3cae8be4e1","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 01, 2017","description":"This post contains an overview of what sorts of programming jobs are available. It\'s aimed at developers who want to try something new or are still deciding what to focus on in their efforts to become more marketable.","tags":["career"],"title":"Marketable Programming Skills","type":"post"},"fields":{"slug":"/marketable-programming-skills/"},"excerpt":"If you’ve been learning programming on your own, you may have made worked through some books, followed some online tutorials, and made a decent collection of simple apps. At a certain point you may wonder how much else you need to know to be able to start working as a programmer. I’m a self-taught coder with experience in web technologies (JavaScript, HTML, CSS, etc) and Python. Compiling some…"}},{"node":{"id":"b9bffa10-76c5-5831-96ad-63365ba582ec","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 01, 2017","description":null,"tags":["oop","python"],"title":"Using a Class in Python as a Code Wrapper for a Simple Game","type":"post"},"fields":{"slug":"/python-classes-guess-the-number/"},"excerpt":"Object-oriented design is a powerful programming paradigm that can be intimidating to anyone trying to learn how to use it. I worked through a number of excellent tutorials and books on the subject, but struggled to apply the concepts to my own code. I decided to convert a working program that didn’t use OOP and wrap it in a single class. The program I chose was Guess the Number written by Al…"}},{"node":{"id":"8a0e0fa2-afc3-5492-b98a-ed745595bdbf","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"January 15, 2017","description":null,"tags":["music education"],"title":"Honing Musical Strengths with a Student Evaluation","type":"post"},"fields":{"slug":"/honing-strengths-with-a-student-evaluation/"},"excerpt":"From time to time, we can find ourselves stagnating when studying music (or any other topic). To help become immune to this, it’s useful to fully recognize our strengths and acknowledge our weaknesses. Every strength is an opportunity to improve further and if we can acknowledge where we are struggling then we can begin to grow much faster and reach excellence. Ask yourself the following questions…"}},{"node":{"id":"cf15c4c6-a96d-537d-9525-34c1d200c9e4","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 01, 2016","description":null,"tags":["songwriting","promotion"],"title":"10 Issues Songwriters Face","type":"post"},"fields":{"slug":"/10-issues-songwriters-face/"},"excerpt":"It’s common for songwriters to feel overwhelmed when finishing their songs and getting them ready for their audience. There can be tremendous blocks going from inspiration to song completion. Listed below are the top issues I’ve encountered while interviewing songwriters and students of music who write music. 1. Not knowing “where to go next” with your song. This is a major problem for many…"}},{"node":{"id":"9e899d18-3457-5b38-89f4-b68c3fedda94","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"May 10, 2016","description":null,"tags":["bands"],"title":"The Five Dysfunctions of a Band","type":"post"},"fields":{"slug":"/5-dysfunctions-of-a-band/"},"excerpt":"The Five Dysfunctions of a Team (by Patrick Lencioni) is a highly recommended book for anyone that works with other people. (So - almost everyone!) The five dysfunctions are set up in a hierarchy. The bottom of the pyramid below shows that trust is the foundation and all else moves up from there. five-dysfunctions-pyramid The book opens with a story that brings the main five principles…"}},{"node":{"id":"a2bde957-6eed-524d-afe6-19d226d89c33","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"March 31, 2016","description":null,"tags":["practicing"],"title":"A Guide to Practicing and Overcoming Plateaus","type":"post"},"fields":{"slug":"/guide-to-practicing-overcoming-plateaus/"},"excerpt":"A long time student of mine recently began learning classical guitar. He had been studying jazz and blues for a number of years. He has a love for latin fingerstyle rhythms. The more lessons we had, the more he realized that he wanted to deepen his technical foundation. I recently told him: “The number of times you’ll reach a plateau is inversely proportional to how deeply you practice.” In other…"}},{"node":{"id":"04b1908e-5183-5e17-9415-9f4881c90c86","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"March 10, 2016","description":null,"tags":["recording","songwriting"],"title":"Preparing Your Song Demo for the Studio","type":"post"},"fields":{"slug":"/preparing-demo-for-studio/"},"excerpt":"We songwriters put a lot of work into our songs. Putting together interesting chord voicings, refining our lyrics to perfection, and getting the form ‘just right’ can take a lot of effort, but be very gratifying. When your song is finally finished, you might want to make the investment of bringing it to a studio with a band to lay down all of the parts. When it comes to recording in the studio…"}},{"node":{"id":"7e202b1a-2c4a-51f1-8046-587cb36c5751","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"January 06, 2016","description":null,"tags":["songwriting","creativity","productivity"],"title":"A 3 Step Process to Organizing Creativity","type":"post"},"fields":{"slug":"/organizing-creativity-3-step-process/"},"excerpt":"It’s difficult to keep track of everything that needs to be done with your musical ideas. If you write with any frequency, these ideas can amass until there are so many that you can’t keep track of them. Your ideas might range from little snippets to near complete works. Here are some things that commonly go wrong for me: I don’t take enough time to think about where an idea needs to go to be…"}},{"node":{"id":"c55142ea-f8a1-50bf-8922-e7f4ff2ee896","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 16, 2015","description":null,"tags":["songwriting"],"title":"Songwriting Tutorial: Snippet Challenge","type":"post"},"fields":{"slug":"/songwriting-snippet-challenge/"},"excerpt":"Have lots of unfinished ideas? Learn how to take a short instrumental idea and finish writing your song in one day. Over the years, I’ve written tons and tons of short musical ideas. I had been putting off turning them into real pieces until now. Inspired by my research on speed composing, I decided to make a challenge out of my problem. The Snippet Challenge & Simple Instrumental Song Forms In a…"}},{"node":{"id":"5591838f-0d37-5819-b56e-cdcfdfb6da95","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 15, 2015","description":null,"tags":["songwriting"],"title":"Songwriting and Serendipity","type":"post"},"fields":{"slug":"/songwriting-and-serendipity/"},"excerpt":"Why start a composition with a blank slate? Jam on a cover tune then take it in a different direction. Sometimes, the less experience you have figuring out songs, the better. When I was first learning guitar and had much less skill, I tried to figure out songs that I heard. I was usually unsuccessful at transcribing them accurately, but there were many occasions that I enjoyed what I was playing…"}},{"node":{"id":"972a1e06-645e-5949-8544-deaece011b95","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"October 15, 2015","description":null,"tags":["songwriting"],"title":"Songwriting Tutorial: Simplicity and Complexity","type":"post"},"fields":{"slug":"/songwriting-simplicity-complexity/"},"excerpt":"How to begin writing a song by choosing a lyrical theme and a musical mood. The Keys to Simplicity Selecting a mood / topic for the song The central theme of your song can come from anywhere - your mood, the news, or a conversation you heard while at a coffee shop. After choosing something, stay in that mindset until you find the need for a well-placed and meaningful contrast. It’s important to…"}}]}}}')},"6nK8":function(e,t,a){a("SRfc");var o=a("dVn5"),i=a("fo6e"),n=a("dt0z"),r=a("9NmV");e.exports=function(e,t,a){return e=n(e),void 0===(t=a?void 0:t)?i(e)?r(e):o(e):e.match(t)||[]}},"7TWv":function(e,t,a){"use strict";a.d(t,"a",(function(){return i})),a.d(t,"b",(function(){return n})),a.d(t,"c",(function(){return r}));a("rvZc"),a("dRSK"),a("Z2Ku"),a("L9s1");var o=a("d9uu"),i=function(e){return function(t){return t.node.frontmatter.categories.includes(e)}},n=function(e){var t=e.categories;return t?t.map(o.a).join(", "):"Uncategorized"},r=function(e){var t=e.data,a=e.filename,o=e.sizingStrategy,i=t.allFile.edges.find((function(e){return e.node.relativePath.endsWith(a)}));if(i)return i.node.childImageSharp[o]}},"9NmV":function(e,t,a){a("SRfc"),a("Oyvg");var o="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",i="["+o+"]",n="\\d+",r="[\\u2700-\\u27bf]",s="[a-z\\xdf-\\xf6\\xf8-\\xff]",c="[^\\ud800-\\udfff"+o+n+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",d="(?:\\ud83c[\\udde6-\\uddff]){2}",l="[\\ud800-\\udbff][\\udc00-\\udfff]",u="[A-Z\\xc0-\\xd6\\xd8-\\xde]",h="(?:"+s+"|"+c+")",m="(?:"+u+"|"+c+")",g="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",p="[\\ufe0e\\ufe0f]?"+g+("(?:\\u200d(?:"+["[^\\ud800-\\udfff]",d,l].join("|")+")[\\ufe0e\\ufe0f]?"+g+")*"),f="(?:"+[r,d,l].join("|")+")"+p,y=RegExp([u+"?"+s+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[i,u,"$"].join("|")+")",m+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[i,u+h,"$"].join("|")+")",u+"?"+h+"+(?:['’](?:d|ll|m|re|s|t|ve))?",u+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",n,f].join("|"),"g");e.exports=function(e){return e.match(y)||[]}},N1om:function(e,t,a){var o=a("sgoq")((function(e,t,a){return e+(a?"-":"")+t.toLowerCase()}));e.exports=o},dVn5:function(e,t,a){a("SRfc");var o=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;e.exports=function(e){return e.match(o)||[]}},"e+E3":function(e,t,a){"use strict";a("91GP");var o=a("5cHQ"),i=a("q1tI"),n=a.n(i),r=a("Wbzz"),s=a("jkPq"),c=a("7TWv"),d=function(e){var t=e.data,a=e.category,o=e.title;if(!t)return null;var i=t.allMarkdownRemark.edges,d=a?i.filter(Object(c.a)(a)):i;return n.a.createElement("div",{className:"posts-list"},n.a.createElement("div",{className:"posts-category"},n.a.createElement("h2",null,o," Posts "),n.a.createElement("span",null,"(",d.length,")")),d.map((function(e){var t=e.node,a=t.id,o=t.fields,i=t.frontmatter,d=t.excerpt,l=i.tags||[],u=o.slug;return n.a.createElement("article",{key:a,className:"post-wrapper"},n.a.createElement("header",{className:"post-title"},n.a.createElement("h3",null,n.a.createElement(r.Link,{to:u},i.title))),n.a.createElement("div",{className:"post-info-sm"},n.a.createElement(r.Link,{to:u},n.a.createElement("span",null,i.date," | ")),n.a.createElement("span",{className:"post-categories"},Object(c.b)(i)),l.map((function(e){return n.a.createElement(s.a,{key:e,text:e,variant:"postList"})}))),n.a.createElement(r.Link,{to:u},n.a.createElement("section",null,n.a.createElement("p",{className:"post-excerpt",dangerouslySetInnerHTML:{__html:i.description||d}}))))})))};t.a=function(e){return n.a.createElement(r.StaticQuery,{query:"4156120491",render:function(t){return n.a.createElement(d,Object.assign({data:t},e))},data:o})}},fo6e:function(e,t){var a=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;e.exports=function(e){return a.test(e)}},jkPq:function(e,t,a){"use strict";var o=a("q1tI"),i=a.n(o),n=a("N1om"),r=a.n(n),s=a("Wbzz"),c=a("d9uu"),d={post:function(e){var t=e.text;return i.a.createElement("span",{className:"post-info-sm post-tag"},t)},count:function(e){var t=e.count,a=e.text;return i.a.createElement("span",null,a+" ("+t+")")},postList:function(e){var t=e.text;return i.a.createElement("span",{className:"post-tag"},t)}};t.a=function(e){var t=e.count,a=e.text,o=e.variant,n=Object(c.a)(a),l=d[o];if(!l)throw new Error("props.variant "+o+" not in contentMap.");return i.a.createElement(s.Link,{to:"/tags/"+r()(a)+"/"},l({count:t,text:n}))}},lw47:function(e,t,a){"use strict";a.r(t);var o=a("q1tI"),i=a.n(o),n=a("7oih"),r=a("e+E3"),s=a("EYWl");t.default=function(){return i.a.createElement(n.a,null,i.a.createElement(s.a,{title:"Posts - Other"}),i.a.createElement(r.a,{category:"other",title:"Other"}))}},sgoq:function(e,t,a){a("pIFo"),a("Oyvg");var o=a("asDA"),i=a("TKrE"),n=a("6nK8"),r=RegExp("['’]","g");e.exports=function(e){return function(t){return o(n(i(t).replace(r,"")),e,"")}}}}]); +//# sourceMappingURL=component---src-pages-other-index-js-5cf19c9c5258a07ac857.js.map \ No newline at end of file diff --git a/component---src-pages-other-index-js-d366bf6afdd09c7b518b.js.map b/component---src-pages-other-index-js-5cf19c9c5258a07ac857.js.map similarity index 99% rename from component---src-pages-other-index-js-d366bf6afdd09c7b518b.js.map rename to component---src-pages-other-index-js-5cf19c9c5258a07ac857.js.map index 17fe6658..8da2a591 100644 --- a/component---src-pages-other-index-js-d366bf6afdd09c7b518b.js.map +++ b/component---src-pages-other-index-js-5cf19c9c5258a07ac857.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/lodash/words.js","webpack:///./src/utils/dataUtils.js","webpack:///./node_modules/lodash/_unicodeWords.js","webpack:///./node_modules/lodash/kebabCase.js","webpack:///./node_modules/lodash/_asciiWords.js","webpack:///./src/components/PostsList.js","webpack:///./node_modules/lodash/_hasUnicodeWord.js","webpack:///./src/components/TagLink.js","webpack:///./src/pages/other/index.js","webpack:///./node_modules/lodash/_createCompounder.js"],"names":["asciiWords","hasUnicodeWord","toString","unicodeWords","module","exports","string","pattern","guard","undefined","match","categoryFilter","category","data","node","frontmatter","categories","includes","getFormattedCategories","map","capitalizeWords","join","getImage","filename","sizingStrategy","found","allFile","edges","find","image","relativePath","endsWith","childImageSharp","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsRegional","rsSurrPair","rsUpper","rsMiscLower","rsMiscUpper","reOptMod","rsModifier","rsSeq","rsEmoji","reUnicodeWord","RegExp","kebabCase","createCompounder","result","word","index","toLowerCase","reAsciiWord","PostsList","title","postData","allMarkdownRemark","posts","filter","className","length","id","fields","excerpt","tags","url","slug","key","to","date","tag","text","variant","dangerouslySetInnerHTML","__html","description","props","query","render","reHasUnicodeWord","test","contentMap","post","count","postList","TagLink","capText","contentFunc","Error","arrayReduce","deburr","words","reApos","callback","replace"],"mappings":"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","file":"component---src-pages-other-index-js-d366bf6afdd09c7b518b.js","sourcesContent":["require(\"core-js/modules/es6.regexp.match\");\n\nvar asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\n\n\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;","import { capitalizeWords } from 'src/utils/stringUtils';\n\n/**\n * Get a filter callback for category\n * @param {string} category\n * @returns {function} filter\n */\nexport const categoryFilter = category => data =>\n data.node.frontmatter.categories.includes(category);\n\nexport const getFormattedCategories = frontmatter => {\n const { categories } = frontmatter;\n return categories\n ? categories.map(capitalizeWords).join(', ')\n : 'Uncategorized';\n};\n\n/**\n * Get image data from graphQl query\n * @param {object} config\n * @param {object} config.data -> the graphQl query result\n * @param {string} config.filename\n * @param {string} config.sizingStrategy -> oneOf('fixed', 'fluid')\n * @returns {object|undefined}\n */\nexport const getImage = ({ data, filename, sizingStrategy }) => {\n // data.allFile.edges -> array\n // data.allFile.edges[0].node.relativePath -> tech-projects/filename\n // data.allFile.edges[0].node.childImageSharp.fluid -> object base 64\n const found = data.allFile.edges.find(image =>\n image.node.relativePath.endsWith(filename)\n );\n if (found) {\n return found.node.childImageSharp[sizingStrategy];\n }\n};\n","require(\"core-js/modules/es6.regexp.match\");\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = \"\\\\ud800-\\\\udfff\",\n rsComboMarksRange = \"\\\\u0300-\\\\u036f\",\n reComboHalfMarksRange = \"\\\\ufe20-\\\\ufe2f\",\n rsComboSymbolsRange = \"\\\\u20d0-\\\\u20ff\",\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = \"\\\\u2700-\\\\u27bf\",\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = \"\\\\u2000-\\\\u206f\",\n rsSpaceRange = \" \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\",\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = \"\\\\ufe0e\\\\ufe0f\",\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n/** Used to compose unicode capture groups. */\n\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = \"\\\\ud83c[\\\\udffb-\\\\udfff]\",\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = \"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",\n rsSurrPair = \"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = \"\\\\u200d\";\n/** Used to compose unicode regexes. */\n\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n/** Used to match complex or compound words. */\n\nvar reUnicodeWord = RegExp([rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, rsUpper + '+' + rsOptContrUpper, rsOrdUpper, rsOrdLower, rsDigits, rsEmoji].join('|'), 'g');\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;","var createCompounder = require('./_createCompounder');\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n\n\nvar kebabCase = createCompounder(function (result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\nmodule.exports = kebabCase;","require(\"core-js/modules/es6.regexp.match\");\n\n/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;","import React from 'react';\nimport { Link, graphql, StaticQuery } from 'gatsby';\n\nimport TagLink from 'src/components/TagLink';\nimport { categoryFilter, getFormattedCategories } from 'src/utils/dataUtils';\n\n/** posts -> already filtered edges */\n/** totalCount -> data.allMarkdownRemark.totalCount */\nconst PostsList = ({ data, category, title }) => {\n if (!data) {\n return null;\n }\n\n const postData = data.allMarkdownRemark.edges;\n const posts = category ? postData.filter(categoryFilter(category)) : postData;\n\n return (\n
    \n
    \n

    {title} Posts

    \n ({posts.length})\n
    \n {posts.map(({ node }) => {\n const { id, fields, frontmatter, excerpt } = node;\n const tags = frontmatter.tags || [];\n const url = fields.slug;\n\n return (\n
    \n
    \n

    \n {frontmatter.title}\n

    \n
    \n
    \n \n {frontmatter.date} | \n \n \n {getFormattedCategories(frontmatter)}\n \n {tags.map(tag => (\n \n ))}\n
    \n \n
    \n \n
    \n \n
    \n );\n })}\n
    \n );\n};\n\nconst query = graphql`\n query {\n allMarkdownRemark(\n filter: { frontmatter: { type: { eq: \"post\" } } }\n sort: { fields: [frontmatter___date], order: DESC }\n ) {\n totalCount\n edges {\n node {\n id\n frontmatter {\n author\n categories\n date(formatString: \"MMMM DD, YYYY\")\n description\n tags\n title\n type\n }\n fields {\n slug\n }\n excerpt(pruneLength: 400)\n }\n }\n }\n }\n`;\n\nexport default props => (\n }\n />\n);\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;","import React from 'react';\nimport kebabCase from 'lodash/kebabCase';\nimport { Link } from 'gatsby';\n\nimport { capitalizeWords } from 'src/utils/stringUtils';\n\nconst contentMap = {\n post: ({ text }) => {text},\n count: ({ count, text }) => {`${text} (${count})`},\n postList: ({ text }) => {text},\n};\n\nconst TagLink = ({ count, text, variant }) => {\n const capText = capitalizeWords(text);\n const contentFunc = contentMap[variant];\n\n if (!contentFunc) {\n throw new Error(`props.variant ${variant} not in contentMap.`);\n }\n\n return (\n \n {contentFunc({ count, text: capText })}\n \n );\n};\n\nexport default TagLink;\n","import React from 'react';\n\nimport Layout from 'src/components/Layout';\nimport PostsList from 'src/components/PostsList';\nimport SEO from 'src/components/SEO';\n\nexport default () => (\n \n \n \n \n);\n","require(\"core-js/modules/es6.regexp.replace\");\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\nvar arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n/** Used to compose unicode capture groups. */\n\n\nvar rsApos = \"['\\u2019]\";\n/** Used to match apostrophes. */\n\nvar reApos = RegExp(rsApos, 'g');\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n\nfunction createCompounder(callback) {\n return function (string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/lodash/words.js","webpack:///./src/utils/dataUtils.js","webpack:///./node_modules/lodash/_unicodeWords.js","webpack:///./node_modules/lodash/kebabCase.js","webpack:///./node_modules/lodash/_asciiWords.js","webpack:///./src/components/PostsList.js","webpack:///./node_modules/lodash/_hasUnicodeWord.js","webpack:///./src/components/TagLink.js","webpack:///./src/pages/other/index.js","webpack:///./node_modules/lodash/_createCompounder.js"],"names":["asciiWords","hasUnicodeWord","toString","unicodeWords","module","exports","string","pattern","guard","undefined","match","categoryFilter","category","data","node","frontmatter","categories","includes","getFormattedCategories","map","capitalizeWords","join","getImage","filename","sizingStrategy","found","allFile","edges","find","image","relativePath","endsWith","childImageSharp","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsRegional","rsSurrPair","rsUpper","rsMiscLower","rsMiscUpper","reOptMod","rsModifier","rsSeq","rsEmoji","reUnicodeWord","RegExp","kebabCase","createCompounder","result","word","index","toLowerCase","reAsciiWord","PostsList","title","postData","allMarkdownRemark","posts","filter","className","length","id","fields","excerpt","tags","url","slug","key","to","date","tag","text","variant","dangerouslySetInnerHTML","__html","description","props","query","render","reHasUnicodeWord","test","contentMap","post","count","postList","TagLink","capText","contentFunc","Error","arrayReduce","deburr","words","reApos","callback","replace"],"mappings":"08/BAAA,EAAQ,QAER,IAAIA,EAAa,EAAQ,QACrBC,EAAiB,EAAQ,QACzBC,EAAW,EAAQ,QACnBC,EAAe,EAAQ,QAiC3BC,EAAOC,QAXP,SAAeC,EAAQC,EAASC,GAI9B,OAHAF,EAASJ,EAASI,QAGFG,KAFhBF,EAAUC,OAAQC,EAAYF,GAGrBN,EAAeK,GAAUH,EAAaG,GAAUN,EAAWM,GAG7DA,EAAOI,MAAMH,IAAY,K,kMC5BrBI,EAAiB,SAAAC,GAAQ,OAAI,SAAAC,GAAI,OAC5CA,EAAKC,KAAKC,YAAYC,WAAWC,SAASL,KAE/BM,EAAyB,SAAAH,GAAgB,IAC5CC,EAAeD,EAAfC,WACR,OAAOA,EACHA,EAAWG,IAAIC,KAAiBC,KAAK,MACrC,iBAWOC,EAAW,SAAC,GAAwC,IAAtCT,EAAqC,EAArCA,KAAMU,EAA+B,EAA/BA,SAAUC,EAAqB,EAArBA,eAInCC,EAAQZ,EAAKa,QAAQC,MAAMC,MAAK,SAAAC,GAAK,OACzCA,EAAMf,KAAKgB,aAAaC,SAASR,MAEnC,GAAIE,EACF,OAAOA,EAAMX,KAAKkB,gBAAgBR,K,uBCjCtC,EAAQ,QAER,EAAQ,QAGR,IAaIS,EAAeC,8OAIfC,EAAU,IAAMF,EAAe,IAE/BG,EAAW,OACXC,EAAY,oBACZC,EAAU,8BACVC,EAAS,oBAAuBN,EAAeG,EAjB9B,qEAqBjBI,EAAa,kCACbC,EAAa,qCACbC,EAAU,8BAIVC,EAAc,MAAQL,EAAU,IAAMC,EAAS,IAC/CK,EAAc,MAAQF,EAAU,IAAMH,EAAS,IAG/CM,EAAWC,gFAKXC,EAJW,oBAIQF,GAHP,gBAAwB,CAbtB,qBAaoCL,EAAYC,GAAYpB,KAAK,KAAO,qBAAiBwB,EAAW,MAIlHG,EAAU,MAAQ,CAACX,EAAWG,EAAYC,GAAYpB,KAAK,KAAO,IAAM0B,EAGxEE,EAAgBC,OAAO,CAACR,EAAU,IAAMJ,EAAU,oCAAgC,CAACH,EAASO,EAAS,KAAKrB,KAAK,KAAO,IAAKuB,EAAc,oCAAgC,CAACT,EAASO,EAAUC,EAAa,KAAKtB,KAAK,KAAO,IAAKqB,EAAU,IAAMC,EAAc,iCAAuBD,EAAU,iCALlR,mDADA,mDAMiUN,EAAUY,GAAS3B,KAAK,KAAM,KAahXjB,EAAOC,QAJP,SAAsBC,GACpB,OAAOA,EAAOI,MAAMuC,IAAkB,K,qBC5DxC,IAwBIE,EAxBmB,EAAQ,OAwBfC,EAAiB,SAAUC,EAAQC,EAAMC,GACvD,OAAOF,GAAUE,EAAQ,IAAM,IAAMD,EAAKE,iBAE5CpD,EAAOC,QAAU8C,G,qBC3BjB,EAAQ,QAGR,IAAIM,EAAc,4CAalBrD,EAAOC,QAJP,SAAoBC,GAClB,OAAOA,EAAOI,MAAM+C,IAAgB,K,uHCLhCC,EAAY,SAAC,GAA+B,IAA7B7C,EAA4B,EAA5BA,KAAMD,EAAsB,EAAtBA,SAAU+C,EAAY,EAAZA,MACnC,IAAK9C,EACH,OAAO,KAGT,IAAM+C,EAAW/C,EAAKgD,kBAAkBlC,MAClCmC,EAAQlD,EAAWgD,EAASG,OAAOpD,YAAeC,IAAagD,EAErE,OACE,yBAAKI,UAAU,cACb,yBAAKA,UAAU,kBACb,4BAAKL,EAAL,WACA,kCAAQG,EAAMG,OAAd,MAEDH,EAAM3C,KAAI,YAAe,IAAZL,EAAW,EAAXA,KACJoD,EAAqCpD,EAArCoD,GAAIC,EAAiCrD,EAAjCqD,OAAQpD,EAAyBD,EAAzBC,YAAaqD,EAAYtD,EAAZsD,QAC3BC,EAAOtD,EAAYsD,MAAQ,GAC3BC,EAAMH,EAAOI,KAEnB,OACE,6BAASC,IAAKN,EAAIF,UAAU,gBAC1B,4BAAQA,UAAU,cAChB,4BACE,kBAAC,OAAD,CAAMS,GAAIH,GAAMvD,EAAY4C,SAGhC,yBAAKK,UAAU,gBACb,kBAAC,OAAD,CAAMS,GAAIH,GACR,8BAAOvD,EAAY2D,KAAnB,QAEF,0BAAMV,UAAU,mBACb9C,YAAuBH,IAEzBsD,EAAKlD,KAAI,SAAAwD,GAAG,OACX,kBAAC,IAAD,CAASH,IAAKG,EAAKC,KAAMD,EAAKE,QAAQ,iBAG1C,kBAAC,OAAD,CAAMJ,GAAIH,GACR,iCACE,uBACEN,UAAU,eACVc,wBAAyB,CACvBC,OAAQhE,EAAYiE,aAAeZ,aAyCxC,aAAAa,GAAK,OAClB,kBAAC,cAAD,CACEC,MA/BO,aAgCPC,OAAQ,SAAAtE,GAAI,OAAI,kBAAC6C,EAAD,eAAW7C,KAAMA,GAAUoE,KAF7C,W,mBC3FF,IAAIG,EAAmB,qEAavBhF,EAAOC,QAJP,SAAwBC,GACtB,OAAO8E,EAAiBC,KAAK/E,K,kCCX/B,sEAMMgF,EAAa,CACjBC,KAAM,gBAAGX,EAAH,EAAGA,KAAH,OAAc,0BAAMZ,UAAU,yBAAyBY,IAC7DY,MAAO,gBAAGA,EAAH,EAAGA,MAAOZ,EAAV,EAAUA,KAAV,OAAqB,8BAAUA,EAAV,KAAmBY,EAAnB,MAC5BC,SAAU,gBAAGb,EAAH,EAAGA,KAAH,OAAc,0BAAMZ,UAAU,YAAYY,KAkBvCc,IAfC,SAAC,GAA8B,IAA5BF,EAA2B,EAA3BA,MAAOZ,EAAoB,EAApBA,KAAMC,EAAc,EAAdA,QACxBc,EAAUvE,YAAgBwD,GAC1BgB,EAAcN,EAAWT,GAE/B,IAAKe,EACH,MAAM,IAAIC,MAAJ,iBAA2BhB,EAA3B,uBAGR,OACE,kBAAC,OAAD,CAAMJ,GAAE,SAAWtB,IAAUyB,GAArB,KACLgB,EAAY,CAAEJ,QAAOZ,KAAMe,O,kCCtBlC,oEAMe,4BACb,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAKhC,MAAM,kBACX,kBAAC,IAAD,CAAW/C,SAAS,QAAQ+C,MAAM,a,qBCTtC,EAAQ,QAER,EAAQ,QAER,IAAImC,EAAc,EAAQ,QACtBC,EAAS,EAAQ,QACjBC,EAAQ,EAAQ,QAOhBC,EAAS/C,OAHA,OAGe,KAe5B9C,EAAOC,QANP,SAA0B6F,GACxB,OAAO,SAAU5F,GACf,OAAOwF,EAAYE,EAAMD,EAAOzF,GAAQ6F,QAAQF,EAAQ,KAAMC,EAAU","file":"component---src-pages-other-index-js-5cf19c9c5258a07ac857.js","sourcesContent":["require(\"core-js/modules/es6.regexp.match\");\n\nvar asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\n\n\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;","import { capitalizeWords } from 'src/utils/stringUtils';\n\n/**\n * Get a filter callback for category\n * @param {string} category\n * @returns {function} filter\n */\nexport const categoryFilter = category => data =>\n data.node.frontmatter.categories.includes(category);\n\nexport const getFormattedCategories = frontmatter => {\n const { categories } = frontmatter;\n return categories\n ? categories.map(capitalizeWords).join(', ')\n : 'Uncategorized';\n};\n\n/**\n * Get image data from graphQl query\n * @param {object} config\n * @param {object} config.data -> the graphQl query result\n * @param {string} config.filename\n * @param {string} config.sizingStrategy -> oneOf('fixed', 'fluid')\n * @returns {object|undefined}\n */\nexport const getImage = ({ data, filename, sizingStrategy }) => {\n // data.allFile.edges -> array\n // data.allFile.edges[0].node.relativePath -> tech-projects/filename\n // data.allFile.edges[0].node.childImageSharp.fluid -> object base 64\n const found = data.allFile.edges.find(image =>\n image.node.relativePath.endsWith(filename)\n );\n if (found) {\n return found.node.childImageSharp[sizingStrategy];\n }\n};\n","require(\"core-js/modules/es6.regexp.match\");\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = \"\\\\ud800-\\\\udfff\",\n rsComboMarksRange = \"\\\\u0300-\\\\u036f\",\n reComboHalfMarksRange = \"\\\\ufe20-\\\\ufe2f\",\n rsComboSymbolsRange = \"\\\\u20d0-\\\\u20ff\",\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = \"\\\\u2700-\\\\u27bf\",\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = \"\\\\u2000-\\\\u206f\",\n rsSpaceRange = \" \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\",\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = \"\\\\ufe0e\\\\ufe0f\",\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n/** Used to compose unicode capture groups. */\n\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = \"\\\\ud83c[\\\\udffb-\\\\udfff]\",\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = \"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",\n rsSurrPair = \"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = \"\\\\u200d\";\n/** Used to compose unicode regexes. */\n\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n/** Used to match complex or compound words. */\n\nvar reUnicodeWord = RegExp([rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, rsUpper + '+' + rsOptContrUpper, rsOrdUpper, rsOrdLower, rsDigits, rsEmoji].join('|'), 'g');\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;","var createCompounder = require('./_createCompounder');\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n\n\nvar kebabCase = createCompounder(function (result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\nmodule.exports = kebabCase;","require(\"core-js/modules/es6.regexp.match\");\n\n/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;","import React from 'react';\nimport { Link, graphql, StaticQuery } from 'gatsby';\n\nimport TagLink from 'src/components/TagLink';\nimport { categoryFilter, getFormattedCategories } from 'src/utils/dataUtils';\n\n/** posts -> already filtered edges */\n/** totalCount -> data.allMarkdownRemark.totalCount */\nconst PostsList = ({ data, category, title }) => {\n if (!data) {\n return null;\n }\n\n const postData = data.allMarkdownRemark.edges;\n const posts = category ? postData.filter(categoryFilter(category)) : postData;\n\n return (\n
    \n
    \n

    {title} Posts

    \n ({posts.length})\n
    \n {posts.map(({ node }) => {\n const { id, fields, frontmatter, excerpt } = node;\n const tags = frontmatter.tags || [];\n const url = fields.slug;\n\n return (\n
    \n
    \n

    \n {frontmatter.title}\n

    \n
    \n
    \n \n {frontmatter.date} | \n \n \n {getFormattedCategories(frontmatter)}\n \n {tags.map(tag => (\n \n ))}\n
    \n \n
    \n \n
    \n \n
    \n );\n })}\n
    \n );\n};\n\nconst query = graphql`\n query {\n allMarkdownRemark(\n filter: { frontmatter: { type: { eq: \"post\" } } }\n sort: { fields: [frontmatter___date], order: DESC }\n ) {\n totalCount\n edges {\n node {\n id\n frontmatter {\n author\n categories\n date(formatString: \"MMMM DD, YYYY\")\n description\n tags\n title\n type\n }\n fields {\n slug\n }\n excerpt(pruneLength: 400)\n }\n }\n }\n }\n`;\n\nexport default props => (\n }\n />\n);\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;","import React from 'react';\nimport kebabCase from 'lodash/kebabCase';\nimport { Link } from 'gatsby';\n\nimport { capitalizeWords } from 'src/utils/stringUtils';\n\nconst contentMap = {\n post: ({ text }) => {text},\n count: ({ count, text }) => {`${text} (${count})`},\n postList: ({ text }) => {text},\n};\n\nconst TagLink = ({ count, text, variant }) => {\n const capText = capitalizeWords(text);\n const contentFunc = contentMap[variant];\n\n if (!contentFunc) {\n throw new Error(`props.variant ${variant} not in contentMap.`);\n }\n\n return (\n \n {contentFunc({ count, text: capText })}\n \n );\n};\n\nexport default TagLink;\n","import React from 'react';\n\nimport Layout from 'src/components/Layout';\nimport PostsList from 'src/components/PostsList';\nimport SEO from 'src/components/SEO';\n\nexport default () => (\n \n \n \n \n);\n","require(\"core-js/modules/es6.regexp.replace\");\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\nvar arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n/** Used to compose unicode capture groups. */\n\n\nvar rsApos = \"['\\u2019]\";\n/** Used to match apostrophes. */\n\nvar reApos = RegExp(rsApos, 'g');\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n\nfunction createCompounder(callback) {\n return function (string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-other-index-js-d366bf6afdd09c7b518b.js b/component---src-pages-other-index-js-d366bf6afdd09c7b518b.js deleted file mode 100644 index 9f152f4a..00000000 --- a/component---src-pages-other-index-js-d366bf6afdd09c7b518b.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{"5cHQ":function(e){e.exports=JSON.parse('{"data":{"allMarkdownRemark":{"totalCount":44,"edges":[{"node":{"id":"970567e6-3f2a-5749-b60e-5fe9bce3ce59","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"June 01, 2023","description":null,"tags":["productivity","tech talk"],"title":"How I\'m Building My Second Brain","type":"post"},"fields":{"slug":"/building-my-second-brain/"},"excerpt":"Slides + Video “How I’m building my second brain” video (2022) (YouTube) “How I’m building my second brain” slides (2022) (PDF) Intro Creativity is bound up with making connections between disparate ideas. The connections piece is crucial. I know this because of my many failures with knowledge management. I went all in on the Getting Things Done (GTD) productivity system and wound up with a large…"}},{"node":{"id":"5bc00e6c-f6a8-51a5-9312-749eabf343c4","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 05, 2022","description":null,"tags":["random music generators"],"title":"Random Music Generators is now hosted on render.com","type":"post"},"fields":{"slug":"/2022-12-05-random-music-generators-news/"},"excerpt":"Random Music Generators is now hosted on render.com. Please update your bookmarks! https://random-music-generators.onrender.com"}},{"node":{"id":"87a467a5-a5cc-57bc-b828-33199e1396ed","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 05, 2021","description":null,"tags":["typescript","javascript"],"title":"TypeScript-lite: JSDoc for type-checking js files","type":"post"},"fields":{"slug":"/type-check-jsdocs-typescript/"},"excerpt":"Overview Did you know that you can use TypeScript features in JavaScript projects? When I discovered this and tried it out, I really enjoyed the results. Let’s go a bit into how it works. With a few simple ingredients: VSCode JavaScript Willingness to add types in JSDoc (and optionally importing TypeScript types) You can: statically check the types of .js files run compiler on .js files write…"}},{"node":{"id":"43882726-b323-56c1-986e-85fad7e68237","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 27, 2021","description":null,"tags":["career","mental health"],"title":"Programming with more ease","type":"post"},"fields":{"slug":"/programming-with-more-ease/"},"excerpt":"As professional programmers, the bulk of what we do is solving problems. A lot of the time, I’m motivated by problem-solving challenges. But sometimes I hit a wall. A given challenge can become a problem that I’m frustratingly unable to solve. Often, this frustration would spiral into a worse mental state. I’d imagine the problem as a scary, overwhelming, difficult to defeat monster - more…"}},{"node":{"id":"6a155da7-d04b-5289-b463-02babc9a2670","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 23, 2021","description":null,"tags":["design patterns"],"title":"How to Learn Design Patterns","type":"post"},"fields":{"slug":"/design-patterns-curriculum/"},"excerpt":"I’ve long been intrigued by design patterns, but when I started learning them, I realized quickly that I didn’t have a clear learning path. I didn’t know how I should learn design patterns or if it’s the right time for me to learn them. So, I sought out to answer some questions: What are the prerequisites for learning design patterns? What material should I use and how do I avoid being scattered…"}},{"node":{"id":"c373259e-e38e-59bb-ab3b-22a5afc45474","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2021","description":null,"tags":["design patterns"],"title":"Introduction to Design Patterns: Why they\'re worth learning","type":"post"},"fields":{"slug":"/design-patterns-intro/"},"excerpt":"As developers, we’re constantly learning - and there’s a lot to learn in general because the tech industry is broad and fast-paced. We want to have all the main bases covered so that we can be ready for any situation. We often hear about design patterns and how they can enable us to write well-architected software using object-oriented programming. If you’re like me, you might file that away as a…"}},{"node":{"id":"ef97f645-0325-5bf1-806d-ba14610e6780","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 30, 2021","description":null,"tags":["random music generators"],"title":"Random Music Generators News 2021-01-30","type":"post"},"fields":{"slug":"/2021-01-30-random-music-generators-news/"},"excerpt":"New in 1.3.1 This month, I released a big new feature that’s been requested often. You can now specify a custom note collection to create random melodies. Check it out! Note: This feature is available to use if you create an account. Part of the impetus to provide this feature was to aid in neuroscience research. Having the ability to create melodies with specific pitches will allow researchers…"}},{"node":{"id":"ba57e0fe-e724-5a6e-b122-d39a3674b8fc","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 10, 2020","description":null,"tags":["career"],"title":"Are You Ready to be a Professional Software Engineer?","type":"post"},"fields":{"slug":"/tech-career-resources/"},"excerpt":"Updated March 21, 2021 Did you just graduate from a coding bootcamp, obtain a CS degree, or built an involved side project? How do you know when you’re ready to write software professionally? This post has two parts: questions I ask my mentees to help clarify their job search a collection of resources I’ve found or made that helped my on my job search Questions to clarify the job search There are…"}},{"node":{"id":"ef2f493a-fbef-500d-a57e-689069307ca5","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 21, 2020","description":null,"tags":["immerjs","javascript","react","redux"],"title":"My love hate relationship with ImmerJS","type":"post"},"fields":{"slug":"/love-hate-immer-js/"},"excerpt":"After having used immutable js for a while, discovering ImmerJS was a breath of fresh air. Where immutable js forces you to learn its gigantic API, ImmerJS takes advantage of ES6 Proxies. These allow you to modify a “draft” version of an object as if you’re mutating it, but the draft is actually a copy so you’re not mutating the original! The return of immer’s function always returns a perfect…"}},{"node":{"id":"f2cf9b4b-5eb8-5856-bd0a-86b1e7bc66f4","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 15, 2020","description":null,"tags":["career","coding bootcamps","electron","javascript","tech talk"],"title":"Tech Talk - How I\'d Improve My Capstone Project","type":"post"},"fields":{"slug":"/tech-talk-improving-capstone-project/"},"excerpt":"In February 2020, I returned to my bootcamp to give a tech talk on what I’d do to improve my Capstone project. (I also answer career and other questions from the audience at the end.) Download the slides here (PDF) I’m excited to share what I’ve learned so far from working on enterprise software for almost 2 years. The talk is a deep dive into the codebase that myself and three others worked on…"}},{"node":{"id":"d6855891-7ad1-5756-b178-be45a9213df7","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 02, 2020","description":null,"tags":["javascript","node","productivity"],"title":"Using question-prompter for study, self-reflection, and more","type":"post"},"fields":{"slug":"/using-question-prompter/"},"excerpt":"I recently created a node command line app called question-prompter. It prompts you at your terminal to answer questions that you come up with. After you answer them, it saves them to a or file in a directory of your choosing. Background I find a lot of benefit from regularly checking in with myself. While many authors have written about this kind of reflection, Tim Ferriss comes to mind first…"}},{"node":{"id":"d83dfc88-d6b1-51d0-924a-b4ef8ea54dcf","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"June 03, 2020","description":null,"tags":["songwriting","composition","creativity"],"title":"Meta Ideas - Generating Creative Content","type":"post"},"fields":{"slug":"/meta-ideas-generating-creative-content/"},"excerpt":"I’ve been writing down small music (and other) ideas for over 20 years. I’ve generally struggled to store, organize, and retrieve them effectively. As I was going through my archives recently, it dawned on me that there are two fundamental types of ideas: one is “concrete” and the other is “meta.” A concrete idea is specific and actionable. It may be a chord progression like: A minor for two and a…"}},{"node":{"id":"362cb819-3e27-5202-98bf-310df4ba421f","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"May 02, 2020","description":null,"tags":["javascript","test runners","ava","mocha","jest","tech talk"],"title":"Comparing JavaScript Test Runners","type":"post"},"fields":{"slug":"/comparing-javascript-test-runners/"},"excerpt":"This post is a pointer to an article I completed recently - a comprehensive comparison of the AVA, Jest, Mocha, and JavaScript test runners. 👉 https://github.com/scraggo/comparing-javascript-test-runners/ 👈 Why is it on GitHub, not this blog? Not only does the repo contain the comparison article, I created a node application to generate the speed metrics in the article. The process looks like…"}},{"node":{"id":"5c2a373c-48fe-5078-9e3d-f21888265979","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2020","description":null,"tags":["typescript","open source"],"title":"Contributing a New Feature to Open Source: @sindresorhus/is","type":"post"},"fields":{"slug":"/contributing-to-open-source-is-type-checking/"},"excerpt":"This post is a recount of my recent experience contributing to is, a JavaScript open source type checking library. https://github.com/sindresorhus/is https://www.npmjs.com/package/@sindresorhus/is I’ll outline the process from beginning to end: the initial filing of the feature request, implementing the feature, collaborating on the pull request, and getting the feature released. Some of the open…"}},{"node":{"id":"eae0c8d9-4b57-5113-88ed-3ece28ea88ca","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"February 15, 2020","description":"Problems with unexpected assertion failures can arise while testing immutablejs with sinon. This post is a brief guide on how to create a custom matcher that will correctly calculate the equivalence between a mock/stub/spy call with an immutable parameter. The way I’ll be making the assertion is with calledWith from sinon-chai (a plugin for chai that helps with making should or expect assertions for sinon mocks). This github issue on sinonjs outlines the problem...","tags":["testing","sinon","immutablejs"],"title":"Testing immutable js with sinon custom matchers","type":"post"},"fields":{"slug":"/testing-immutable-js-with-sinon-custom-matchers/"},"excerpt":"Problems with unexpected assertion failures can arise while testing with . This post is a brief guide on how to create a custom matcher that will correctly calculate the equivalence between a mock/stub/spy call with an parameter. The way I’ll be making the assertion is with from (a plugin for that helps with making or assertions for mocks). This github issue on sinonjs outlines the problem…"}},{"node":{"id":"13bb4e43-1a4c-5619-88cf-18b133874a58","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 27, 2020","description":null,"tags":["random music generators"],"title":"Random Music Generators News 2020-01-27","type":"post"},"fields":{"slug":"/2020-01-27-random-music-generators-news/"},"excerpt":"New in 1.1.0 Yesterday, I released a feature that’s been in the works for over 6 months. You can now create melody presets. Check it out! If you have a go-to set of form parameters that make sounds that you really enjoy, you can save them and recall them later. As a necessity of saving presets, I added the ability to create an account. This will set the stage for being able to save presets for…"}},{"node":{"id":"208d49b8-08db-5947-81dc-1b7fec2f4c50","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 09, 2020","description":"Happy 2020! One of my new year’s resolutions is to redo my website with a lot of new things in mind. Here I’ll outline the changes I’m in the process of making. An important step in the whole makeover was getting an official domain name - I’m now live at scraggo.com! I’m using namecheap as the provider. The site has been hosted with github pages since its inception and I’ll…","tags":["gatsbyjs"],"title":"Website Makeover: Moving from Jekyll to Gatsby","type":"post"},"fields":{"slug":"/website-makeover-gatsby/"},"excerpt":"Happy 2020! One of my new year’s resolutions is to redo my website with a lot of new things in mind. Here I’ll outline the changes I’m in the process of making. EDIT Jan 18, 2020: Gatsby makeover complete! Now live: custom domain name An important step in the whole makeover was getting an official domain name - I’m now live at ! I’m using namecheap as the provider. The site has been hosted with…"}},{"node":{"id":"69ec04c0-36a1-5b4b-b7e5-895ff00cceda","frontmatter":{"author":"Dave Cohen","categories":["other"],"date":"January 01, 2020","description":null,"tags":null,"title":"2020 Resolutions and Reviewing the Decade","type":"post"},"fields":{"slug":"/2020-decade-in-review/"},"excerpt":"I really enjoy reflecting on the past year during the holidays. If I get a chance to do this, I come up with New Years resolutions afterwards. Some years I go through a somewhat involved process of going through my journal entries and coming up with the best realizations. This year, my girlfriend wanted to try Marie Forleo’s recommendation of reviewing the past decade. We went through the…"}},{"node":{"id":"71cb4d5a-1ffa-5471-9090-7ad8a844304b","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 21, 2019","description":null,"tags":["git"],"title":"How to Squash All Commits Related to a Single Issue into a Single Commit","type":"post"},"fields":{"slug":"/how-to-squash-commits/"},"excerpt":"Updated Sep 3, 2020 This article outlines how to use the “squash” feature of an interactive . What does “squashing” do? It allows you to take changes that are spread amongst multiple commits and consolidate them into one. Why should one consider squashing commits? A clean history makes tracking changes to a large codebase across time much easier. Many commits are small and unimportant in the grand…"}},{"node":{"id":"005c820c-061e-57bb-8255-c635792a976d","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"December 20, 2019","description":null,"tags":["music education"],"title":"About Songmind Studios","type":"post"},"fields":{"slug":"/about-songmind-studios/"},"excerpt":"In 2016, I decided to start my own brand of music education. I took the role of music coach, agent, and collaborator. The student and I would write and record music together to integrate learning and creativity in a holistic way. While I’ve suspended these services for the foreseeable future, I’m posting are the core concepts and aims of Songmind Studios. I’ll eventually make all my teaching…"}},{"node":{"id":"fe9a22be-2af0-5ee7-9e22-9ca6bb593de8","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 02, 2019","description":null,"tags":["career"],"title":"How to ace your initial programming job screen","type":"post"},"fields":{"slug":"/prepare-for-initial-screens/"},"excerpt":"Your resume and cover letter surely made a positive impact, but the most important evaluation has yet to come. If you’re searching for your first software development job, the process can be daunting. You may have heard that after sending your resume to a company, there’s an initial screen. This is usually done over the phone, but sometimes it happens in-person. Your resume and cover letter (the…"}},{"node":{"id":"3220ea90-ef5c-5200-befb-6f9a58952f53","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"April 03, 2019","description":null,"tags":["javascript"],"title":"Catching and handling different types of errors in promise chains","type":"post"},"fields":{"slug":"/catching-handling-errors-promise-chains/"},"excerpt":"When you need to make sequential API calls, promise chains are a reliable way to go. It gets a little tricky when you need to throw and handle errors differently at different points in the chain. This post will go into: throwing specific types of errors using creating an object literal dictionary to handle logic gracefully handling the errors differently at the end of the chain This article is…"}},{"node":{"id":"657093ab-4233-5d14-a741-44f2fa462db8","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 28, 2019","description":null,"tags":["javascript"],"title":"Using a filter function recursively","type":"post"},"fields":{"slug":"/recursive-filter-function/"},"excerpt":"The problem Given our array data structure, we only want to include items that have an ‘age’ property and the age is greater than 17. If the person is under age, we won’t allow any of their friends to be included (even if they are old enough to be.) (Contrived scenario, I know, but I recently needed to do something like this for a different type of authorization.) Run this code on repl.it We can…"}},{"node":{"id":"86cb31eb-6b40-50e3-9ddc-d195f0cee1c6","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 24, 2019","description":null,"tags":["git"],"title":"How to format and edit your git commit messages","type":"post"},"fields":{"slug":"/git-commit-format-squash/"},"excerpt":"When writing commit messages, it’s ideal to make them easy for another developer to read and understand exactly what’s in the commit. Oftentimes, though, we write commit messages quickly just to push a branch at the end of a workday, for instance (I know I’m guilty of this). One team member brought the Conventional Commits format to our attention. I’ve enjoyed using it and seeing the results when…"}},{"node":{"id":"35287751-dd87-580c-ae8e-8b1c02051859","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 23, 2019","description":null,"tags":["javascript"],"title":"How to prevent circular dependencies","type":"post"},"fields":{"slug":"/circular-dependencies-bug/"},"excerpt":"Some errors are kind of mysterious. The first time I got “‘myFunction’ is not a function” type errors, I was at a loss for a few hours. Logging out the functions from my require statements came back as or . What I learned, TL;DR - don’t import file ‘a’ into file ‘b’ AND file ‘b’ into file ‘a’. That’s an example of a “circular dependency.” Brief example of creating a circular dependency: myUtils…"}},{"node":{"id":"a5528eb3-e30d-5233-bd30-b8c7ae51558c","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2019","description":null,"tags":["javascript"],"title":"Custom type checking - isNaN vs Number.isNaN","type":"post"},"fields":{"slug":"/custom-type-checking-isnan/"},"excerpt":"Javascript is infamous for being “loose” and misleading with its typing. gives you , gives you , etc. So instead of writing conditionals using , doing specific checks, etc, I decided to make my own wrapper for which I called : I unknowingly put a bug in my app. Can you spot it? … It’s in the 3rd statement. Basically, the function took anything that wasn’t an ‘array’ or ‘null’ and decided it…"}},{"node":{"id":"ffbf844d-8df4-58a2-bbac-456ad18ce4e2","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 18, 2019","description":null,"tags":["javascript"],"title":"Using a Code Style Guide to Enforce Team Best Practices","type":"post"},"fields":{"slug":"/code-style-guide/"},"excerpt":"We all have opinions on what what coding best practices are and how code should be formatted. Recently, one of the teams I’ve been working on decided to add another member. I discovered that our coding styles were radically different. I decided to write some guidelines for our team to get us on the same page. I quickly realized that writing a style guide from scratch is a tall order. I’d already…"}},{"node":{"id":"78ad3884-f757-59b3-9a3e-cfb58062229e","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 18, 2018","description":null,"tags":["career"],"title":"Should junior developers work with recruiters?","type":"post"},"fields":{"slug":"/recruiters-and-junior-devs/"},"excerpt":"This is the first of a handful of posts about the 3-month search for my first full-time developer job. I graduated from a coding bootcamp in April. I’m a junior developer, though, I have some freelance projects on my resume that gave me about 2 years of experience. This, combined with a decently written Linkedin profile, contributed to my getting contacted by multiple recruiters daily. I wound up…"}},{"node":{"id":"58fbbba9-9063-500a-9fcb-829e58d07642","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"May 08, 2018","description":null,"tags":["computer science"],"title":"Debugging Strategies Checklist","type":"post"},"fields":{"slug":"/debugging-strategies-checklist/"},"excerpt":"Tracking down bugs in the software you’re working on can be tricky. Debugging is a massive topic and there are so many places bugs can show up. One thing’s for sure, whether you’re careful or not… Bugs will show up. I’m not saying this to be pessimistic. Creating and squashing bugs is not just a part of the process of writing software, it is the process! We’re solving problems and ironing out the…"}},{"node":{"id":"0092c8a9-f74f-5de1-a8e6-0fe315511475","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"April 16, 2018","description":null,"tags":["coding bootcamps","javascript"],"title":"Reflections From a Coding Bootcamp Graduate","type":"post"},"fields":{"slug":"/reflections-coding-bootcamp/"},"excerpt":"I was ready for a career change. It was October of 2017. The more time I spent coding and learning computer science fundamentals, the more I realized that a programming career would fit my personality* better than performing and teaching music. After spending a fair amount of time teaching myself to code and making websites, I began researching coding bootcamps. There were optimistic statistics of…"}},{"node":{"id":"8e59934a-7dcb-5377-ae8d-73c2d8ed7686","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"February 20, 2018","description":null,"tags":["javascript","computer science"],"title":"Tackling Hash Table Problems in JavaScript","type":"post"},"fields":{"slug":"/hash-tables-js/"},"excerpt":"Algorithms and data structures can be intimidating. The goal of this post is to explain some approaches to solving hash table algorithm problems providing clear examples with detailed solution explanations. I’m hoping this will help anyone uninitiated alleviate fears and make bigger strides in conquering these challenging problems. Why Hash Tables? While attending Fullstack Academy, I participated…"}},{"node":{"id":"d49b052b-2f19-5ddd-a73d-78e80b12bfdd","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 26, 2017","description":null,"tags":["coding bootcamps","javascript"],"title":"Now Attending: Fullstack Academy","type":"post"},"fields":{"slug":"/now-attending-fullstack/"},"excerpt":"Why I’m attending Fullstack Academy Since discovering a love for guitar and composition in my teens, I decided to pursue a career as a freelance music teacher, composer, recording engineer, and performing guitarist. After a decade of this, I realized that the rockstar dream didn’t suit me and I was tired of chasing it. I’d be happier with a more stable career that challenged me intellectually. I…"}},{"node":{"id":"e1022862-d7d0-5e18-994d-92f148fb9302","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 01, 2017","description":null,"tags":["javascript"],"title":"Intro to JavaScript Frameworks Part 1: The Vanilla JavaScript Version of TodoMVC","type":"post"},"fields":{"slug":"/intro-to-js-frameworks01/"},"excerpt":"The goal of this blog-series is to explain what frameworks do, why they’re used, and demonstrate with examples across many different frameworks. The series is aimed at those familiar with JavaScript syntax, accessing the DOM, functions, and classes (object-oriented programming). Further reading can be found at the bottom of this post. What is a JavaScript Framework? A framework is an imported…"}},{"node":{"id":"bd3eb5a8-b322-5b98-ad3f-6f3cae8be4e1","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 01, 2017","description":"This post contains an overview of what sorts of programming jobs are available. It\'s aimed at developers who want to try something new or are still deciding what to focus on in their efforts to become more marketable.","tags":["career"],"title":"Marketable Programming Skills","type":"post"},"fields":{"slug":"/marketable-programming-skills/"},"excerpt":"If you’ve been learning programming on your own, you may have made worked through some books, followed some online tutorials, and made a decent collection of simple apps. At a certain point you may wonder how much else you need to know to be able to start working as a programmer. I’m a self-taught coder with experience in web technologies (JavaScript, HTML, CSS, etc) and Python. Compiling some…"}},{"node":{"id":"b9bffa10-76c5-5831-96ad-63365ba582ec","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 01, 2017","description":null,"tags":["oop","python"],"title":"Using a Class in Python as a Code Wrapper for a Simple Game","type":"post"},"fields":{"slug":"/python-classes-guess-the-number/"},"excerpt":"Object-oriented design is a powerful programming paradigm that can be intimidating to anyone trying to learn how to use it. I worked through a number of excellent tutorials and books on the subject, but struggled to apply the concepts to my own code. I decided to convert a working program that didn’t use OOP and wrap it in a single class. The program I chose was Guess the Number written by Al…"}},{"node":{"id":"8a0e0fa2-afc3-5492-b98a-ed745595bdbf","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"January 15, 2017","description":null,"tags":["music education"],"title":"Honing Musical Strengths with a Student Evaluation","type":"post"},"fields":{"slug":"/honing-strengths-with-a-student-evaluation/"},"excerpt":"From time to time, we can find ourselves stagnating when studying music (or any other topic). To help become immune to this, it’s useful to fully recognize our strengths and acknowledge our weaknesses. Every strength is an opportunity to improve further and if we can acknowledge where we are struggling then we can begin to grow much faster and reach excellence. Ask yourself the following questions…"}},{"node":{"id":"cf15c4c6-a96d-537d-9525-34c1d200c9e4","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 01, 2016","description":null,"tags":["songwriting","promotion"],"title":"10 Issues Songwriters Face","type":"post"},"fields":{"slug":"/10-issues-songwriters-face/"},"excerpt":"It’s common for songwriters to feel overwhelmed when finishing their songs and getting them ready for their audience. There can be tremendous blocks going from inspiration to song completion. Listed below are the top issues I’ve encountered while interviewing songwriters and students of music who write music. 1. Not knowing “where to go next” with your song. This is a major problem for many…"}},{"node":{"id":"9e899d18-3457-5b38-89f4-b68c3fedda94","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"May 10, 2016","description":null,"tags":["bands"],"title":"The Five Dysfunctions of a Band","type":"post"},"fields":{"slug":"/5-dysfunctions-of-a-band/"},"excerpt":"The Five Dysfunctions of a Team (by Patrick Lencioni) is a highly recommended book for anyone that works with other people. (So - almost everyone!) The five dysfunctions are set up in a hierarchy. The bottom of the pyramid below shows that trust is the foundation and all else moves up from there. five-dysfunctions-pyramid The book opens with a story that brings the main five principles…"}},{"node":{"id":"a2bde957-6eed-524d-afe6-19d226d89c33","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"March 31, 2016","description":null,"tags":["practicing"],"title":"A Guide to Practicing and Overcoming Plateaus","type":"post"},"fields":{"slug":"/guide-to-practicing-overcoming-plateaus/"},"excerpt":"A long time student of mine recently began learning classical guitar. He had been studying jazz and blues for a number of years. He has a love for latin fingerstyle rhythms. The more lessons we had, the more he realized that he wanted to deepen his technical foundation. I recently told him: “The number of times you’ll reach a plateau is inversely proportional to how deeply you practice.” In other…"}},{"node":{"id":"04b1908e-5183-5e17-9415-9f4881c90c86","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"March 10, 2016","description":null,"tags":["recording","songwriting"],"title":"Preparing Your Song Demo for the Studio","type":"post"},"fields":{"slug":"/preparing-demo-for-studio/"},"excerpt":"We songwriters put a lot of work into our songs. Putting together interesting chord voicings, refining our lyrics to perfection, and getting the form ‘just right’ can take a lot of effort, but be very gratifying. When your song is finally finished, you might want to make the investment of bringing it to a studio with a band to lay down all of the parts. When it comes to recording in the studio…"}},{"node":{"id":"7e202b1a-2c4a-51f1-8046-587cb36c5751","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"January 06, 2016","description":null,"tags":["songwriting","creativity","productivity"],"title":"A 3 Step Process to Organizing Creativity","type":"post"},"fields":{"slug":"/organizing-creativity-3-step-process/"},"excerpt":"It’s difficult to keep track of everything that needs to be done with your musical ideas. If you write with any frequency, these ideas can amass until there are so many that you can’t keep track of them. Your ideas might range from little snippets to near complete works. Here are some things that commonly go wrong for me: I don’t take enough time to think about where an idea needs to go to be…"}},{"node":{"id":"c55142ea-f8a1-50bf-8922-e7f4ff2ee896","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 16, 2015","description":null,"tags":["songwriting"],"title":"Songwriting Tutorial: Snippet Challenge","type":"post"},"fields":{"slug":"/songwriting-snippet-challenge/"},"excerpt":"Have lots of unfinished ideas? Learn how to take a short instrumental idea and finish writing your song in one day. Over the years, I’ve written tons and tons of short musical ideas. I had been putting off turning them into real pieces until now. Inspired by my research on speed composing, I decided to make a challenge out of my problem. The Snippet Challenge & Simple Instrumental Song Forms In a…"}},{"node":{"id":"5591838f-0d37-5819-b56e-cdcfdfb6da95","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 15, 2015","description":null,"tags":["songwriting"],"title":"Songwriting and Serendipity","type":"post"},"fields":{"slug":"/songwriting-and-serendipity/"},"excerpt":"Why start a composition with a blank slate? Jam on a cover tune then take it in a different direction. Sometimes, the less experience you have figuring out songs, the better. When I was first learning guitar and had much less skill, I tried to figure out songs that I heard. I was usually unsuccessful at transcribing them accurately, but there were many occasions that I enjoyed what I was playing…"}},{"node":{"id":"972a1e06-645e-5949-8544-deaece011b95","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"October 15, 2015","description":null,"tags":["songwriting"],"title":"Songwriting Tutorial: Simplicity and Complexity","type":"post"},"fields":{"slug":"/songwriting-simplicity-complexity/"},"excerpt":"How to begin writing a song by choosing a lyrical theme and a musical mood. The Keys to Simplicity Selecting a mood / topic for the song The central theme of your song can come from anywhere - your mood, the news, or a conversation you heard while at a coffee shop. After choosing something, stay in that mindset until you find the need for a well-placed and meaningful contrast. It’s important to…"}}]}}}')},"6nK8":function(e,t,a){a("SRfc");var o=a("dVn5"),i=a("fo6e"),n=a("dt0z"),r=a("9NmV");e.exports=function(e,t,a){return e=n(e),void 0===(t=a?void 0:t)?i(e)?r(e):o(e):e.match(t)||[]}},"7TWv":function(e,t,a){"use strict";a.d(t,"a",(function(){return i})),a.d(t,"b",(function(){return n})),a.d(t,"c",(function(){return r}));a("rvZc"),a("dRSK"),a("Z2Ku"),a("L9s1");var o=a("d9uu"),i=function(e){return function(t){return t.node.frontmatter.categories.includes(e)}},n=function(e){var t=e.categories;return t?t.map(o.a).join(", "):"Uncategorized"},r=function(e){var t=e.data,a=e.filename,o=e.sizingStrategy,i=t.allFile.edges.find((function(e){return e.node.relativePath.endsWith(a)}));if(i)return i.node.childImageSharp[o]}},"9NmV":function(e,t,a){a("SRfc"),a("Oyvg");var o="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",i="["+o+"]",n="\\d+",r="[\\u2700-\\u27bf]",s="[a-z\\xdf-\\xf6\\xf8-\\xff]",c="[^\\ud800-\\udfff"+o+n+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",d="(?:\\ud83c[\\udde6-\\uddff]){2}",l="[\\ud800-\\udbff][\\udc00-\\udfff]",u="[A-Z\\xc0-\\xd6\\xd8-\\xde]",h="(?:"+s+"|"+c+")",m="(?:"+u+"|"+c+")",g="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",p="[\\ufe0e\\ufe0f]?"+g+("(?:\\u200d(?:"+["[^\\ud800-\\udfff]",d,l].join("|")+")[\\ufe0e\\ufe0f]?"+g+")*"),f="(?:"+[r,d,l].join("|")+")"+p,y=RegExp([u+"?"+s+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[i,u,"$"].join("|")+")",m+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[i,u+h,"$"].join("|")+")",u+"?"+h+"+(?:['’](?:d|ll|m|re|s|t|ve))?",u+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",n,f].join("|"),"g");e.exports=function(e){return e.match(y)||[]}},N1om:function(e,t,a){var o=a("sgoq")((function(e,t,a){return e+(a?"-":"")+t.toLowerCase()}));e.exports=o},dVn5:function(e,t,a){a("SRfc");var o=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;e.exports=function(e){return e.match(o)||[]}},"e+E3":function(e,t,a){"use strict";a("91GP");var o=a("5cHQ"),i=a("q1tI"),n=a.n(i),r=a("Wbzz"),s=a("jkPq"),c=a("7TWv"),d=function(e){var t=e.data,a=e.category,o=e.title;if(!t)return null;var i=t.allMarkdownRemark.edges,d=a?i.filter(Object(c.a)(a)):i;return n.a.createElement("div",{className:"posts-list"},n.a.createElement("div",{className:"posts-category"},n.a.createElement("h2",null,o," Posts "),n.a.createElement("span",null,"(",d.length,")")),d.map((function(e){var t=e.node,a=t.id,o=t.fields,i=t.frontmatter,d=t.excerpt,l=i.tags||[],u=o.slug;return n.a.createElement("article",{key:a,className:"post-wrapper"},n.a.createElement("header",{className:"post-title"},n.a.createElement("h3",null,n.a.createElement(r.Link,{to:u},i.title))),n.a.createElement("div",{className:"post-info-sm"},n.a.createElement(r.Link,{to:u},n.a.createElement("span",null,i.date," | ")),n.a.createElement("span",{className:"post-categories"},Object(c.b)(i)),l.map((function(e){return n.a.createElement(s.a,{key:e,text:e,variant:"postList"})}))),n.a.createElement(r.Link,{to:u},n.a.createElement("section",null,n.a.createElement("p",{className:"post-excerpt",dangerouslySetInnerHTML:{__html:i.description||d}}))))})))};t.a=function(e){return n.a.createElement(r.StaticQuery,{query:"4156120491",render:function(t){return n.a.createElement(d,Object.assign({data:t},e))},data:o})}},fo6e:function(e,t){var a=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;e.exports=function(e){return a.test(e)}},jkPq:function(e,t,a){"use strict";var o=a("q1tI"),i=a.n(o),n=a("N1om"),r=a.n(n),s=a("Wbzz"),c=a("d9uu"),d={post:function(e){var t=e.text;return i.a.createElement("span",{className:"post-info-sm post-tag"},t)},count:function(e){var t=e.count,a=e.text;return i.a.createElement("span",null,a+" ("+t+")")},postList:function(e){var t=e.text;return i.a.createElement("span",{className:"post-tag"},t)}};t.a=function(e){var t=e.count,a=e.text,o=e.variant,n=Object(c.a)(a),l=d[o];if(!l)throw new Error("props.variant "+o+" not in contentMap.");return i.a.createElement(s.Link,{to:"/tags/"+r()(a)+"/"},l({count:t,text:n}))}},lw47:function(e,t,a){"use strict";a.r(t);var o=a("q1tI"),i=a.n(o),n=a("7oih"),r=a("e+E3"),s=a("EYWl");t.default=function(){return i.a.createElement(n.a,null,i.a.createElement(s.a,{title:"Posts - Other"}),i.a.createElement(r.a,{category:"other",title:"Other"}))}},sgoq:function(e,t,a){a("pIFo"),a("Oyvg");var o=a("asDA"),i=a("TKrE"),n=a("6nK8"),r=RegExp("['’]","g");e.exports=function(e){return function(t){return o(n(i(t).replace(r,"")),e,"")}}}}]); -//# sourceMappingURL=component---src-pages-other-index-js-d366bf6afdd09c7b518b.js.map \ No newline at end of file diff --git a/component---src-pages-tech-index-js-27895506d838fb1f5138.js b/component---src-pages-tech-index-js-27895506d838fb1f5138.js new file mode 100644 index 00000000..ea16de19 --- /dev/null +++ b/component---src-pages-tech-index-js-27895506d838fb1f5138.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{"5cHQ":function(e){e.exports=JSON.parse('{"data":{"allMarkdownRemark":{"totalCount":44,"edges":[{"node":{"id":"970567e6-3f2a-5749-b60e-5fe9bce3ce59","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"June 01, 2023","description":null,"tags":["productivity","tech talk"],"title":"How I\'m Building My Second Brain","type":"post"},"fields":{"slug":"/building-my-second-brain/"},"excerpt":"Slides + Video “How I’m building my second brain” video (2022) (YouTube) “How I’m building my second brain” slides (2022) (PDF) Intro Creativity is bound up with making connections between disparate ideas. The connections piece is crucial - personal knowledge management falls apart without it. Long ago, I treated the Getting Things Done (GTD) productivity system as gospel. The way I used it…"}},{"node":{"id":"5bc00e6c-f6a8-51a5-9312-749eabf343c4","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 05, 2022","description":null,"tags":["random music generators"],"title":"Random Music Generators is now hosted on render.com","type":"post"},"fields":{"slug":"/2022-12-05-random-music-generators-news/"},"excerpt":"Random Music Generators is now hosted on render.com. Please update your bookmarks! https://random-music-generators.onrender.com"}},{"node":{"id":"87a467a5-a5cc-57bc-b828-33199e1396ed","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 05, 2021","description":null,"tags":["typescript","javascript"],"title":"TypeScript-lite: JSDoc for type-checking js files","type":"post"},"fields":{"slug":"/type-check-jsdocs-typescript/"},"excerpt":"Overview Did you know that you can use TypeScript features in JavaScript projects? When I discovered this and tried it out, I really enjoyed the results. Let’s go a bit into how it works. With a few simple ingredients: VSCode JavaScript Willingness to add types in JSDoc (and optionally importing TypeScript types) You can: statically check the types of .js files run compiler on .js files write…"}},{"node":{"id":"43882726-b323-56c1-986e-85fad7e68237","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 27, 2021","description":null,"tags":["career","mental health"],"title":"Programming with more ease","type":"post"},"fields":{"slug":"/programming-with-more-ease/"},"excerpt":"As professional programmers, the bulk of what we do is solving problems. A lot of the time, I’m motivated by problem-solving challenges. But sometimes I hit a wall. A given challenge can become a problem that I’m frustratingly unable to solve. Often, this frustration would spiral into a worse mental state. I’d imagine the problem as a scary, overwhelming, difficult to defeat monster - more…"}},{"node":{"id":"6a155da7-d04b-5289-b463-02babc9a2670","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 23, 2021","description":null,"tags":["design patterns"],"title":"How to Learn Design Patterns","type":"post"},"fields":{"slug":"/design-patterns-curriculum/"},"excerpt":"I’ve long been intrigued by design patterns, but when I started learning them, I realized quickly that I didn’t have a clear learning path. I didn’t know how I should learn design patterns or if it’s the right time for me to learn them. So, I sought out to answer some questions: What are the prerequisites for learning design patterns? What material should I use and how do I avoid being scattered…"}},{"node":{"id":"c373259e-e38e-59bb-ab3b-22a5afc45474","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2021","description":null,"tags":["design patterns"],"title":"Introduction to Design Patterns: Why they\'re worth learning","type":"post"},"fields":{"slug":"/design-patterns-intro/"},"excerpt":"As developers, we’re constantly learning - and there’s a lot to learn in general because the tech industry is broad and fast-paced. We want to have all the main bases covered so that we can be ready for any situation. We often hear about design patterns and how they can enable us to write well-architected software using object-oriented programming. If you’re like me, you might file that away as a…"}},{"node":{"id":"ef97f645-0325-5bf1-806d-ba14610e6780","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 30, 2021","description":null,"tags":["random music generators"],"title":"Random Music Generators News 2021-01-30","type":"post"},"fields":{"slug":"/2021-01-30-random-music-generators-news/"},"excerpt":"New in 1.3.1 This month, I released a big new feature that’s been requested often. You can now specify a custom note collection to create random melodies. Check it out! Note: This feature is available to use if you create an account. Part of the impetus to provide this feature was to aid in neuroscience research. Having the ability to create melodies with specific pitches will allow researchers…"}},{"node":{"id":"ba57e0fe-e724-5a6e-b122-d39a3674b8fc","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 10, 2020","description":null,"tags":["career"],"title":"Are You Ready to be a Professional Software Engineer?","type":"post"},"fields":{"slug":"/tech-career-resources/"},"excerpt":"Updated March 21, 2021 Did you just graduate from a coding bootcamp, obtain a CS degree, or built an involved side project? How do you know when you’re ready to write software professionally? This post has two parts: questions I ask my mentees to help clarify their job search a collection of resources I’ve found or made that helped my on my job search Questions to clarify the job search There are…"}},{"node":{"id":"ef2f493a-fbef-500d-a57e-689069307ca5","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 21, 2020","description":null,"tags":["immerjs","javascript","react","redux"],"title":"My love hate relationship with ImmerJS","type":"post"},"fields":{"slug":"/love-hate-immer-js/"},"excerpt":"After having used immutable js for a while, discovering ImmerJS was a breath of fresh air. Where immutable js forces you to learn its gigantic API, ImmerJS takes advantage of ES6 Proxies. These allow you to modify a “draft” version of an object as if you’re mutating it, but the draft is actually a copy so you’re not mutating the original! The return of immer’s function always returns a perfect…"}},{"node":{"id":"f2cf9b4b-5eb8-5856-bd0a-86b1e7bc66f4","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 15, 2020","description":null,"tags":["career","coding bootcamps","electron","javascript","tech talk"],"title":"Tech Talk - How I\'d Improve My Capstone Project","type":"post"},"fields":{"slug":"/tech-talk-improving-capstone-project/"},"excerpt":"In February 2020, I returned to my bootcamp to give a tech talk on what I’d do to improve my Capstone project. (I also answer career and other questions from the audience at the end.) Download the slides here (PDF) I’m excited to share what I’ve learned so far from working on enterprise software for almost 2 years. The talk is a deep dive into the codebase that myself and three others worked on…"}},{"node":{"id":"d6855891-7ad1-5756-b178-be45a9213df7","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 02, 2020","description":null,"tags":["javascript","node","productivity"],"title":"Using question-prompter for study, self-reflection, and more","type":"post"},"fields":{"slug":"/using-question-prompter/"},"excerpt":"I recently created a node command line app called question-prompter. It prompts you at your terminal to answer questions that you come up with. After you answer them, it saves them to a or file in a directory of your choosing. Background I find a lot of benefit from regularly checking in with myself. While many authors have written about this kind of reflection, Tim Ferriss comes to mind first…"}},{"node":{"id":"d83dfc88-d6b1-51d0-924a-b4ef8ea54dcf","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"June 03, 2020","description":null,"tags":["songwriting","composition","creativity"],"title":"Meta Ideas - Generating Creative Content","type":"post"},"fields":{"slug":"/meta-ideas-generating-creative-content/"},"excerpt":"I’ve been writing down small music (and other) ideas for over 20 years. I’ve generally struggled to store, organize, and retrieve them effectively. As I was going through my archives recently, it dawned on me that there are two fundamental types of ideas: one is “concrete” and the other is “meta.” A concrete idea is specific and actionable. It may be a chord progression like: A minor for two and a…"}},{"node":{"id":"362cb819-3e27-5202-98bf-310df4ba421f","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"May 02, 2020","description":null,"tags":["javascript","test runners","ava","mocha","jest","tech talk"],"title":"Comparing JavaScript Test Runners","type":"post"},"fields":{"slug":"/comparing-javascript-test-runners/"},"excerpt":"This post is a pointer to an article I completed recently - a comprehensive comparison of the AVA, Jest, Mocha, and JavaScript test runners. 👉 https://github.com/scraggo/comparing-javascript-test-runners/ 👈 Why is it on GitHub, not this blog? Not only does the repo contain the comparison article, I created a node application to generate the speed metrics in the article. The process looks like…"}},{"node":{"id":"5c2a373c-48fe-5078-9e3d-f21888265979","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2020","description":null,"tags":["typescript","open source"],"title":"Contributing a New Feature to Open Source: @sindresorhus/is","type":"post"},"fields":{"slug":"/contributing-to-open-source-is-type-checking/"},"excerpt":"This post is a recount of my recent experience contributing to is, a JavaScript open source type checking library. https://github.com/sindresorhus/is https://www.npmjs.com/package/@sindresorhus/is I’ll outline the process from beginning to end: the initial filing of the feature request, implementing the feature, collaborating on the pull request, and getting the feature released. Some of the open…"}},{"node":{"id":"eae0c8d9-4b57-5113-88ed-3ece28ea88ca","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"February 15, 2020","description":"Problems with unexpected assertion failures can arise while testing immutablejs with sinon. This post is a brief guide on how to create a custom matcher that will correctly calculate the equivalence between a mock/stub/spy call with an immutable parameter. The way I’ll be making the assertion is with calledWith from sinon-chai (a plugin for chai that helps with making should or expect assertions for sinon mocks). This github issue on sinonjs outlines the problem...","tags":["testing","sinon","immutablejs"],"title":"Testing immutable js with sinon custom matchers","type":"post"},"fields":{"slug":"/testing-immutable-js-with-sinon-custom-matchers/"},"excerpt":"Problems with unexpected assertion failures can arise while testing with . This post is a brief guide on how to create a custom matcher that will correctly calculate the equivalence between a mock/stub/spy call with an parameter. The way I’ll be making the assertion is with from (a plugin for that helps with making or assertions for mocks). This github issue on sinonjs outlines the problem…"}},{"node":{"id":"13bb4e43-1a4c-5619-88cf-18b133874a58","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 27, 2020","description":null,"tags":["random music generators"],"title":"Random Music Generators News 2020-01-27","type":"post"},"fields":{"slug":"/2020-01-27-random-music-generators-news/"},"excerpt":"New in 1.1.0 Yesterday, I released a feature that’s been in the works for over 6 months. You can now create melody presets. Check it out! If you have a go-to set of form parameters that make sounds that you really enjoy, you can save them and recall them later. As a necessity of saving presets, I added the ability to create an account. This will set the stage for being able to save presets for…"}},{"node":{"id":"208d49b8-08db-5947-81dc-1b7fec2f4c50","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 09, 2020","description":"Happy 2020! One of my new year’s resolutions is to redo my website with a lot of new things in mind. Here I’ll outline the changes I’m in the process of making. An important step in the whole makeover was getting an official domain name - I’m now live at scraggo.com! I’m using namecheap as the provider. The site has been hosted with github pages since its inception and I’ll…","tags":["gatsbyjs"],"title":"Website Makeover: Moving from Jekyll to Gatsby","type":"post"},"fields":{"slug":"/website-makeover-gatsby/"},"excerpt":"Happy 2020! One of my new year’s resolutions is to redo my website with a lot of new things in mind. Here I’ll outline the changes I’m in the process of making. EDIT Jan 18, 2020: Gatsby makeover complete! Now live: custom domain name An important step in the whole makeover was getting an official domain name - I’m now live at ! I’m using namecheap as the provider. The site has been hosted with…"}},{"node":{"id":"69ec04c0-36a1-5b4b-b7e5-895ff00cceda","frontmatter":{"author":"Dave Cohen","categories":["other"],"date":"January 01, 2020","description":null,"tags":null,"title":"2020 Resolutions and Reviewing the Decade","type":"post"},"fields":{"slug":"/2020-decade-in-review/"},"excerpt":"I really enjoy reflecting on the past year during the holidays. If I get a chance to do this, I come up with New Years resolutions afterwards. Some years I go through a somewhat involved process of going through my journal entries and coming up with the best realizations. This year, my girlfriend wanted to try Marie Forleo’s recommendation of reviewing the past decade. We went through the…"}},{"node":{"id":"71cb4d5a-1ffa-5471-9090-7ad8a844304b","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 21, 2019","description":null,"tags":["git"],"title":"How to Squash All Commits Related to a Single Issue into a Single Commit","type":"post"},"fields":{"slug":"/how-to-squash-commits/"},"excerpt":"Updated Sep 3, 2020 This article outlines how to use the “squash” feature of an interactive . What does “squashing” do? It allows you to take changes that are spread amongst multiple commits and consolidate them into one. Why should one consider squashing commits? A clean history makes tracking changes to a large codebase across time much easier. Many commits are small and unimportant in the grand…"}},{"node":{"id":"005c820c-061e-57bb-8255-c635792a976d","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"December 20, 2019","description":null,"tags":["music education"],"title":"About Songmind Studios","type":"post"},"fields":{"slug":"/about-songmind-studios/"},"excerpt":"In 2016, I decided to start my own brand of music education. I took the role of music coach, agent, and collaborator. The student and I would write and record music together to integrate learning and creativity in a holistic way. While I’ve suspended these services for the foreseeable future, I’m posting are the core concepts and aims of Songmind Studios. I’ll eventually make all my teaching…"}},{"node":{"id":"fe9a22be-2af0-5ee7-9e22-9ca6bb593de8","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 02, 2019","description":null,"tags":["career"],"title":"How to ace your initial programming job screen","type":"post"},"fields":{"slug":"/prepare-for-initial-screens/"},"excerpt":"Your resume and cover letter surely made a positive impact, but the most important evaluation has yet to come. If you’re searching for your first software development job, the process can be daunting. You may have heard that after sending your resume to a company, there’s an initial screen. This is usually done over the phone, but sometimes it happens in-person. Your resume and cover letter (the…"}},{"node":{"id":"3220ea90-ef5c-5200-befb-6f9a58952f53","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"April 03, 2019","description":null,"tags":["javascript"],"title":"Catching and handling different types of errors in promise chains","type":"post"},"fields":{"slug":"/catching-handling-errors-promise-chains/"},"excerpt":"When you need to make sequential API calls, promise chains are a reliable way to go. It gets a little tricky when you need to throw and handle errors differently at different points in the chain. This post will go into: throwing specific types of errors using creating an object literal dictionary to handle logic gracefully handling the errors differently at the end of the chain This article is…"}},{"node":{"id":"657093ab-4233-5d14-a741-44f2fa462db8","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 28, 2019","description":null,"tags":["javascript"],"title":"Using a filter function recursively","type":"post"},"fields":{"slug":"/recursive-filter-function/"},"excerpt":"The problem Given our array data structure, we only want to include items that have an ‘age’ property and the age is greater than 17. If the person is under age, we won’t allow any of their friends to be included (even if they are old enough to be.) (Contrived scenario, I know, but I recently needed to do something like this for a different type of authorization.) Run this code on repl.it We can…"}},{"node":{"id":"86cb31eb-6b40-50e3-9ddc-d195f0cee1c6","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 24, 2019","description":null,"tags":["git"],"title":"How to format and edit your git commit messages","type":"post"},"fields":{"slug":"/git-commit-format-squash/"},"excerpt":"When writing commit messages, it’s ideal to make them easy for another developer to read and understand exactly what’s in the commit. Oftentimes, though, we write commit messages quickly just to push a branch at the end of a workday, for instance (I know I’m guilty of this). One team member brought the Conventional Commits format to our attention. I’ve enjoyed using it and seeing the results when…"}},{"node":{"id":"35287751-dd87-580c-ae8e-8b1c02051859","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 23, 2019","description":null,"tags":["javascript"],"title":"How to prevent circular dependencies","type":"post"},"fields":{"slug":"/circular-dependencies-bug/"},"excerpt":"Some errors are kind of mysterious. The first time I got “‘myFunction’ is not a function” type errors, I was at a loss for a few hours. Logging out the functions from my require statements came back as or . What I learned, TL;DR - don’t import file ‘a’ into file ‘b’ AND file ‘b’ into file ‘a’. That’s an example of a “circular dependency.” Brief example of creating a circular dependency: myUtils…"}},{"node":{"id":"a5528eb3-e30d-5233-bd30-b8c7ae51558c","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2019","description":null,"tags":["javascript"],"title":"Custom type checking - isNaN vs Number.isNaN","type":"post"},"fields":{"slug":"/custom-type-checking-isnan/"},"excerpt":"Javascript is infamous for being “loose” and misleading with its typing. gives you , gives you , etc. So instead of writing conditionals using , doing specific checks, etc, I decided to make my own wrapper for which I called : I unknowingly put a bug in my app. Can you spot it? … It’s in the 3rd statement. Basically, the function took anything that wasn’t an ‘array’ or ‘null’ and decided it…"}},{"node":{"id":"ffbf844d-8df4-58a2-bbac-456ad18ce4e2","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 18, 2019","description":null,"tags":["javascript"],"title":"Using a Code Style Guide to Enforce Team Best Practices","type":"post"},"fields":{"slug":"/code-style-guide/"},"excerpt":"We all have opinions on what what coding best practices are and how code should be formatted. Recently, one of the teams I’ve been working on decided to add another member. I discovered that our coding styles were radically different. I decided to write some guidelines for our team to get us on the same page. I quickly realized that writing a style guide from scratch is a tall order. I’d already…"}},{"node":{"id":"78ad3884-f757-59b3-9a3e-cfb58062229e","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 18, 2018","description":null,"tags":["career"],"title":"Should junior developers work with recruiters?","type":"post"},"fields":{"slug":"/recruiters-and-junior-devs/"},"excerpt":"This is the first of a handful of posts about the 3-month search for my first full-time developer job. I graduated from a coding bootcamp in April. I’m a junior developer, though, I have some freelance projects on my resume that gave me about 2 years of experience. This, combined with a decently written Linkedin profile, contributed to my getting contacted by multiple recruiters daily. I wound up…"}},{"node":{"id":"58fbbba9-9063-500a-9fcb-829e58d07642","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"May 08, 2018","description":null,"tags":["computer science"],"title":"Debugging Strategies Checklist","type":"post"},"fields":{"slug":"/debugging-strategies-checklist/"},"excerpt":"Tracking down bugs in the software you’re working on can be tricky. Debugging is a massive topic and there are so many places bugs can show up. One thing’s for sure, whether you’re careful or not… Bugs will show up. I’m not saying this to be pessimistic. Creating and squashing bugs is not just a part of the process of writing software, it is the process! We’re solving problems and ironing out the…"}},{"node":{"id":"0092c8a9-f74f-5de1-a8e6-0fe315511475","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"April 16, 2018","description":null,"tags":["coding bootcamps","javascript"],"title":"Reflections From a Coding Bootcamp Graduate","type":"post"},"fields":{"slug":"/reflections-coding-bootcamp/"},"excerpt":"I was ready for a career change. It was October of 2017. The more time I spent coding and learning computer science fundamentals, the more I realized that a programming career would fit my personality* better than performing and teaching music. After spending a fair amount of time teaching myself to code and making websites, I began researching coding bootcamps. There were optimistic statistics of…"}},{"node":{"id":"8e59934a-7dcb-5377-ae8d-73c2d8ed7686","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"February 20, 2018","description":null,"tags":["javascript","computer science"],"title":"Tackling Hash Table Problems in JavaScript","type":"post"},"fields":{"slug":"/hash-tables-js/"},"excerpt":"Algorithms and data structures can be intimidating. The goal of this post is to explain some approaches to solving hash table algorithm problems providing clear examples with detailed solution explanations. I’m hoping this will help anyone uninitiated alleviate fears and make bigger strides in conquering these challenging problems. Why Hash Tables? While attending Fullstack Academy, I participated…"}},{"node":{"id":"d49b052b-2f19-5ddd-a73d-78e80b12bfdd","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 26, 2017","description":null,"tags":["coding bootcamps","javascript"],"title":"Now Attending: Fullstack Academy","type":"post"},"fields":{"slug":"/now-attending-fullstack/"},"excerpt":"Why I’m attending Fullstack Academy Since discovering a love for guitar and composition in my teens, I decided to pursue a career as a freelance music teacher, composer, recording engineer, and performing guitarist. After a decade of this, I realized that the rockstar dream didn’t suit me and I was tired of chasing it. I’d be happier with a more stable career that challenged me intellectually. I…"}},{"node":{"id":"e1022862-d7d0-5e18-994d-92f148fb9302","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 01, 2017","description":null,"tags":["javascript"],"title":"Intro to JavaScript Frameworks Part 1: The Vanilla JavaScript Version of TodoMVC","type":"post"},"fields":{"slug":"/intro-to-js-frameworks01/"},"excerpt":"The goal of this blog-series is to explain what frameworks do, why they’re used, and demonstrate with examples across many different frameworks. The series is aimed at those familiar with JavaScript syntax, accessing the DOM, functions, and classes (object-oriented programming). Further reading can be found at the bottom of this post. What is a JavaScript Framework? A framework is an imported…"}},{"node":{"id":"bd3eb5a8-b322-5b98-ad3f-6f3cae8be4e1","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 01, 2017","description":"This post contains an overview of what sorts of programming jobs are available. It\'s aimed at developers who want to try something new or are still deciding what to focus on in their efforts to become more marketable.","tags":["career"],"title":"Marketable Programming Skills","type":"post"},"fields":{"slug":"/marketable-programming-skills/"},"excerpt":"If you’ve been learning programming on your own, you may have made worked through some books, followed some online tutorials, and made a decent collection of simple apps. At a certain point you may wonder how much else you need to know to be able to start working as a programmer. I’m a self-taught coder with experience in web technologies (JavaScript, HTML, CSS, etc) and Python. Compiling some…"}},{"node":{"id":"b9bffa10-76c5-5831-96ad-63365ba582ec","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 01, 2017","description":null,"tags":["oop","python"],"title":"Using a Class in Python as a Code Wrapper for a Simple Game","type":"post"},"fields":{"slug":"/python-classes-guess-the-number/"},"excerpt":"Object-oriented design is a powerful programming paradigm that can be intimidating to anyone trying to learn how to use it. I worked through a number of excellent tutorials and books on the subject, but struggled to apply the concepts to my own code. I decided to convert a working program that didn’t use OOP and wrap it in a single class. The program I chose was Guess the Number written by Al…"}},{"node":{"id":"8a0e0fa2-afc3-5492-b98a-ed745595bdbf","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"January 15, 2017","description":null,"tags":["music education"],"title":"Honing Musical Strengths with a Student Evaluation","type":"post"},"fields":{"slug":"/honing-strengths-with-a-student-evaluation/"},"excerpt":"From time to time, we can find ourselves stagnating when studying music (or any other topic). To help become immune to this, it’s useful to fully recognize our strengths and acknowledge our weaknesses. Every strength is an opportunity to improve further and if we can acknowledge where we are struggling then we can begin to grow much faster and reach excellence. Ask yourself the following questions…"}},{"node":{"id":"cf15c4c6-a96d-537d-9525-34c1d200c9e4","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 01, 2016","description":null,"tags":["songwriting","promotion"],"title":"10 Issues Songwriters Face","type":"post"},"fields":{"slug":"/10-issues-songwriters-face/"},"excerpt":"It’s common for songwriters to feel overwhelmed when finishing their songs and getting them ready for their audience. There can be tremendous blocks going from inspiration to song completion. Listed below are the top issues I’ve encountered while interviewing songwriters and students of music who write music. 1. Not knowing “where to go next” with your song. This is a major problem for many…"}},{"node":{"id":"9e899d18-3457-5b38-89f4-b68c3fedda94","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"May 10, 2016","description":null,"tags":["bands"],"title":"The Five Dysfunctions of a Band","type":"post"},"fields":{"slug":"/5-dysfunctions-of-a-band/"},"excerpt":"The Five Dysfunctions of a Team (by Patrick Lencioni) is a highly recommended book for anyone that works with other people. (So - almost everyone!) The five dysfunctions are set up in a hierarchy. The bottom of the pyramid below shows that trust is the foundation and all else moves up from there. five-dysfunctions-pyramid The book opens with a story that brings the main five principles…"}},{"node":{"id":"a2bde957-6eed-524d-afe6-19d226d89c33","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"March 31, 2016","description":null,"tags":["practicing"],"title":"A Guide to Practicing and Overcoming Plateaus","type":"post"},"fields":{"slug":"/guide-to-practicing-overcoming-plateaus/"},"excerpt":"A long time student of mine recently began learning classical guitar. He had been studying jazz and blues for a number of years. He has a love for latin fingerstyle rhythms. The more lessons we had, the more he realized that he wanted to deepen his technical foundation. I recently told him: “The number of times you’ll reach a plateau is inversely proportional to how deeply you practice.” In other…"}},{"node":{"id":"04b1908e-5183-5e17-9415-9f4881c90c86","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"March 10, 2016","description":null,"tags":["recording","songwriting"],"title":"Preparing Your Song Demo for the Studio","type":"post"},"fields":{"slug":"/preparing-demo-for-studio/"},"excerpt":"We songwriters put a lot of work into our songs. Putting together interesting chord voicings, refining our lyrics to perfection, and getting the form ‘just right’ can take a lot of effort, but be very gratifying. When your song is finally finished, you might want to make the investment of bringing it to a studio with a band to lay down all of the parts. When it comes to recording in the studio…"}},{"node":{"id":"7e202b1a-2c4a-51f1-8046-587cb36c5751","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"January 06, 2016","description":null,"tags":["songwriting","creativity","productivity"],"title":"A 3 Step Process to Organizing Creativity","type":"post"},"fields":{"slug":"/organizing-creativity-3-step-process/"},"excerpt":"It’s difficult to keep track of everything that needs to be done with your musical ideas. If you write with any frequency, these ideas can amass until there are so many that you can’t keep track of them. Your ideas might range from little snippets to near complete works. Here are some things that commonly go wrong for me: I don’t take enough time to think about where an idea needs to go to be…"}},{"node":{"id":"c55142ea-f8a1-50bf-8922-e7f4ff2ee896","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 16, 2015","description":null,"tags":["songwriting"],"title":"Songwriting Tutorial: Snippet Challenge","type":"post"},"fields":{"slug":"/songwriting-snippet-challenge/"},"excerpt":"Have lots of unfinished ideas? Learn how to take a short instrumental idea and finish writing your song in one day. Over the years, I’ve written tons and tons of short musical ideas. I had been putting off turning them into real pieces until now. Inspired by my research on speed composing, I decided to make a challenge out of my problem. The Snippet Challenge & Simple Instrumental Song Forms In a…"}},{"node":{"id":"5591838f-0d37-5819-b56e-cdcfdfb6da95","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 15, 2015","description":null,"tags":["songwriting"],"title":"Songwriting and Serendipity","type":"post"},"fields":{"slug":"/songwriting-and-serendipity/"},"excerpt":"Why start a composition with a blank slate? Jam on a cover tune then take it in a different direction. Sometimes, the less experience you have figuring out songs, the better. When I was first learning guitar and had much less skill, I tried to figure out songs that I heard. I was usually unsuccessful at transcribing them accurately, but there were many occasions that I enjoyed what I was playing…"}},{"node":{"id":"972a1e06-645e-5949-8544-deaece011b95","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"October 15, 2015","description":null,"tags":["songwriting"],"title":"Songwriting Tutorial: Simplicity and Complexity","type":"post"},"fields":{"slug":"/songwriting-simplicity-complexity/"},"excerpt":"How to begin writing a song by choosing a lyrical theme and a musical mood. The Keys to Simplicity Selecting a mood / topic for the song The central theme of your song can come from anywhere - your mood, the news, or a conversation you heard while at a coffee shop. After choosing something, stay in that mindset until you find the need for a well-placed and meaningful contrast. It’s important to…"}}]}}}')},"6nK8":function(e,t,a){a("SRfc");var o=a("dVn5"),i=a("fo6e"),n=a("dt0z"),r=a("9NmV");e.exports=function(e,t,a){return e=n(e),void 0===(t=a?void 0:t)?i(e)?r(e):o(e):e.match(t)||[]}},"7TWv":function(e,t,a){"use strict";a.d(t,"a",(function(){return i})),a.d(t,"b",(function(){return n})),a.d(t,"c",(function(){return r}));a("rvZc"),a("dRSK"),a("Z2Ku"),a("L9s1");var o=a("d9uu"),i=function(e){return function(t){return t.node.frontmatter.categories.includes(e)}},n=function(e){var t=e.categories;return t?t.map(o.a).join(", "):"Uncategorized"},r=function(e){var t=e.data,a=e.filename,o=e.sizingStrategy,i=t.allFile.edges.find((function(e){return e.node.relativePath.endsWith(a)}));if(i)return i.node.childImageSharp[o]}},"9NmV":function(e,t,a){a("SRfc"),a("Oyvg");var o="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",i="["+o+"]",n="\\d+",r="[\\u2700-\\u27bf]",s="[a-z\\xdf-\\xf6\\xf8-\\xff]",c="[^\\ud800-\\udfff"+o+n+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",d="(?:\\ud83c[\\udde6-\\uddff]){2}",l="[\\ud800-\\udbff][\\udc00-\\udfff]",u="[A-Z\\xc0-\\xd6\\xd8-\\xde]",h="(?:"+s+"|"+c+")",m="(?:"+u+"|"+c+")",g="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",p="[\\ufe0e\\ufe0f]?"+g+("(?:\\u200d(?:"+["[^\\ud800-\\udfff]",d,l].join("|")+")[\\ufe0e\\ufe0f]?"+g+")*"),f="(?:"+[r,d,l].join("|")+")"+p,y=RegExp([u+"?"+s+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[i,u,"$"].join("|")+")",m+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[i,u+h,"$"].join("|")+")",u+"?"+h+"+(?:['’](?:d|ll|m|re|s|t|ve))?",u+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",n,f].join("|"),"g");e.exports=function(e){return e.match(y)||[]}},N1om:function(e,t,a){var o=a("sgoq")((function(e,t,a){return e+(a?"-":"")+t.toLowerCase()}));e.exports=o},dVn5:function(e,t,a){a("SRfc");var o=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;e.exports=function(e){return e.match(o)||[]}},"e+E3":function(e,t,a){"use strict";a("91GP");var o=a("5cHQ"),i=a("q1tI"),n=a.n(i),r=a("Wbzz"),s=a("jkPq"),c=a("7TWv"),d=function(e){var t=e.data,a=e.category,o=e.title;if(!t)return null;var i=t.allMarkdownRemark.edges,d=a?i.filter(Object(c.a)(a)):i;return n.a.createElement("div",{className:"posts-list"},n.a.createElement("div",{className:"posts-category"},n.a.createElement("h2",null,o," Posts "),n.a.createElement("span",null,"(",d.length,")")),d.map((function(e){var t=e.node,a=t.id,o=t.fields,i=t.frontmatter,d=t.excerpt,l=i.tags||[],u=o.slug;return n.a.createElement("article",{key:a,className:"post-wrapper"},n.a.createElement("header",{className:"post-title"},n.a.createElement("h3",null,n.a.createElement(r.Link,{to:u},i.title))),n.a.createElement("div",{className:"post-info-sm"},n.a.createElement(r.Link,{to:u},n.a.createElement("span",null,i.date," | ")),n.a.createElement("span",{className:"post-categories"},Object(c.b)(i)),l.map((function(e){return n.a.createElement(s.a,{key:e,text:e,variant:"postList"})}))),n.a.createElement(r.Link,{to:u},n.a.createElement("section",null,n.a.createElement("p",{className:"post-excerpt",dangerouslySetInnerHTML:{__html:i.description||d}}))))})))};t.a=function(e){return n.a.createElement(r.StaticQuery,{query:"4156120491",render:function(t){return n.a.createElement(d,Object.assign({data:t},e))},data:o})}},fo6e:function(e,t){var a=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;e.exports=function(e){return a.test(e)}},hYRG:function(e,t,a){"use strict";a.r(t);var o=a("q1tI"),i=a.n(o),n=a("7oih"),r=a("e+E3"),s=a("EYWl");t.default=function(){return i.a.createElement(n.a,null,i.a.createElement(s.a,{title:"Posts - Technology"}),i.a.createElement(r.a,{category:"tech",title:"Tech"}))}},jkPq:function(e,t,a){"use strict";var o=a("q1tI"),i=a.n(o),n=a("N1om"),r=a.n(n),s=a("Wbzz"),c=a("d9uu"),d={post:function(e){var t=e.text;return i.a.createElement("span",{className:"post-info-sm post-tag"},t)},count:function(e){var t=e.count,a=e.text;return i.a.createElement("span",null,a+" ("+t+")")},postList:function(e){var t=e.text;return i.a.createElement("span",{className:"post-tag"},t)}};t.a=function(e){var t=e.count,a=e.text,o=e.variant,n=Object(c.a)(a),l=d[o];if(!l)throw new Error("props.variant "+o+" not in contentMap.");return i.a.createElement(s.Link,{to:"/tags/"+r()(a)+"/"},l({count:t,text:n}))}},sgoq:function(e,t,a){a("pIFo"),a("Oyvg");var o=a("asDA"),i=a("TKrE"),n=a("6nK8"),r=RegExp("['’]","g");e.exports=function(e){return function(t){return o(n(i(t).replace(r,"")),e,"")}}}}]); +//# sourceMappingURL=component---src-pages-tech-index-js-27895506d838fb1f5138.js.map \ No newline at end of file diff --git a/component---src-pages-tech-index-js-b2fb9efa597e0ce040ae.js.map b/component---src-pages-tech-index-js-27895506d838fb1f5138.js.map similarity index 99% rename from component---src-pages-tech-index-js-b2fb9efa597e0ce040ae.js.map rename to component---src-pages-tech-index-js-27895506d838fb1f5138.js.map index 2344d4da..167bebcd 100644 --- a/component---src-pages-tech-index-js-b2fb9efa597e0ce040ae.js.map +++ b/component---src-pages-tech-index-js-27895506d838fb1f5138.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/lodash/words.js","webpack:///./src/utils/dataUtils.js","webpack:///./node_modules/lodash/_unicodeWords.js","webpack:///./node_modules/lodash/kebabCase.js","webpack:///./node_modules/lodash/_asciiWords.js","webpack:///./src/components/PostsList.js","webpack:///./node_modules/lodash/_hasUnicodeWord.js","webpack:///./src/pages/tech/index.js","webpack:///./src/components/TagLink.js","webpack:///./node_modules/lodash/_createCompounder.js"],"names":["asciiWords","hasUnicodeWord","toString","unicodeWords","module","exports","string","pattern","guard","undefined","match","categoryFilter","category","data","node","frontmatter","categories","includes","getFormattedCategories","map","capitalizeWords","join","getImage","filename","sizingStrategy","found","allFile","edges","find","image","relativePath","endsWith","childImageSharp","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsRegional","rsSurrPair","rsUpper","rsMiscLower","rsMiscUpper","reOptMod","rsModifier","rsSeq","rsEmoji","reUnicodeWord","RegExp","kebabCase","createCompounder","result","word","index","toLowerCase","reAsciiWord","PostsList","title","postData","allMarkdownRemark","posts","filter","className","length","id","fields","excerpt","tags","url","slug","key","to","date","tag","text","variant","dangerouslySetInnerHTML","__html","description","props","query","render","reHasUnicodeWord","test","contentMap","post","count","postList","TagLink","capText","contentFunc","Error","arrayReduce","deburr","words","reApos","callback","replace"],"mappings":"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","file":"component---src-pages-tech-index-js-b2fb9efa597e0ce040ae.js","sourcesContent":["require(\"core-js/modules/es6.regexp.match\");\n\nvar asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\n\n\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;","import { capitalizeWords } from 'src/utils/stringUtils';\n\n/**\n * Get a filter callback for category\n * @param {string} category\n * @returns {function} filter\n */\nexport const categoryFilter = category => data =>\n data.node.frontmatter.categories.includes(category);\n\nexport const getFormattedCategories = frontmatter => {\n const { categories } = frontmatter;\n return categories\n ? categories.map(capitalizeWords).join(', ')\n : 'Uncategorized';\n};\n\n/**\n * Get image data from graphQl query\n * @param {object} config\n * @param {object} config.data -> the graphQl query result\n * @param {string} config.filename\n * @param {string} config.sizingStrategy -> oneOf('fixed', 'fluid')\n * @returns {object|undefined}\n */\nexport const getImage = ({ data, filename, sizingStrategy }) => {\n // data.allFile.edges -> array\n // data.allFile.edges[0].node.relativePath -> tech-projects/filename\n // data.allFile.edges[0].node.childImageSharp.fluid -> object base 64\n const found = data.allFile.edges.find(image =>\n image.node.relativePath.endsWith(filename)\n );\n if (found) {\n return found.node.childImageSharp[sizingStrategy];\n }\n};\n","require(\"core-js/modules/es6.regexp.match\");\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = \"\\\\ud800-\\\\udfff\",\n rsComboMarksRange = \"\\\\u0300-\\\\u036f\",\n reComboHalfMarksRange = \"\\\\ufe20-\\\\ufe2f\",\n rsComboSymbolsRange = \"\\\\u20d0-\\\\u20ff\",\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = \"\\\\u2700-\\\\u27bf\",\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = \"\\\\u2000-\\\\u206f\",\n rsSpaceRange = \" \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\",\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = \"\\\\ufe0e\\\\ufe0f\",\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n/** Used to compose unicode capture groups. */\n\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = \"\\\\ud83c[\\\\udffb-\\\\udfff]\",\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = \"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",\n rsSurrPair = \"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = \"\\\\u200d\";\n/** Used to compose unicode regexes. */\n\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n/** Used to match complex or compound words. */\n\nvar reUnicodeWord = RegExp([rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, rsUpper + '+' + rsOptContrUpper, rsOrdUpper, rsOrdLower, rsDigits, rsEmoji].join('|'), 'g');\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;","var createCompounder = require('./_createCompounder');\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n\n\nvar kebabCase = createCompounder(function (result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\nmodule.exports = kebabCase;","require(\"core-js/modules/es6.regexp.match\");\n\n/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;","import React from 'react';\nimport { Link, graphql, StaticQuery } from 'gatsby';\n\nimport TagLink from 'src/components/TagLink';\nimport { categoryFilter, getFormattedCategories } from 'src/utils/dataUtils';\n\n/** posts -> already filtered edges */\n/** totalCount -> data.allMarkdownRemark.totalCount */\nconst PostsList = ({ data, category, title }) => {\n if (!data) {\n return null;\n }\n\n const postData = data.allMarkdownRemark.edges;\n const posts = category ? postData.filter(categoryFilter(category)) : postData;\n\n return (\n
    \n
    \n

    {title} Posts

    \n ({posts.length})\n
    \n {posts.map(({ node }) => {\n const { id, fields, frontmatter, excerpt } = node;\n const tags = frontmatter.tags || [];\n const url = fields.slug;\n\n return (\n
    \n
    \n

    \n {frontmatter.title}\n

    \n
    \n
    \n \n {frontmatter.date} | \n \n \n {getFormattedCategories(frontmatter)}\n \n {tags.map(tag => (\n \n ))}\n
    \n \n
    \n \n
    \n \n
    \n );\n })}\n
    \n );\n};\n\nconst query = graphql`\n query {\n allMarkdownRemark(\n filter: { frontmatter: { type: { eq: \"post\" } } }\n sort: { fields: [frontmatter___date], order: DESC }\n ) {\n totalCount\n edges {\n node {\n id\n frontmatter {\n author\n categories\n date(formatString: \"MMMM DD, YYYY\")\n description\n tags\n title\n type\n }\n fields {\n slug\n }\n excerpt(pruneLength: 400)\n }\n }\n }\n }\n`;\n\nexport default props => (\n }\n />\n);\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;","import React from 'react';\n\nimport Layout from 'src/components/Layout';\nimport PostsList from 'src/components/PostsList';\nimport SEO from 'src/components/SEO';\n\nexport default () => (\n \n \n \n \n);\n","import React from 'react';\nimport kebabCase from 'lodash/kebabCase';\nimport { Link } from 'gatsby';\n\nimport { capitalizeWords } from 'src/utils/stringUtils';\n\nconst contentMap = {\n post: ({ text }) => {text},\n count: ({ count, text }) => {`${text} (${count})`},\n postList: ({ text }) => {text},\n};\n\nconst TagLink = ({ count, text, variant }) => {\n const capText = capitalizeWords(text);\n const contentFunc = contentMap[variant];\n\n if (!contentFunc) {\n throw new Error(`props.variant ${variant} not in contentMap.`);\n }\n\n return (\n \n {contentFunc({ count, text: capText })}\n \n );\n};\n\nexport default TagLink;\n","require(\"core-js/modules/es6.regexp.replace\");\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\nvar arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n/** Used to compose unicode capture groups. */\n\n\nvar rsApos = \"['\\u2019]\";\n/** Used to match apostrophes. */\n\nvar reApos = RegExp(rsApos, 'g');\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n\nfunction createCompounder(callback) {\n return function (string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/lodash/words.js","webpack:///./src/utils/dataUtils.js","webpack:///./node_modules/lodash/_unicodeWords.js","webpack:///./node_modules/lodash/kebabCase.js","webpack:///./node_modules/lodash/_asciiWords.js","webpack:///./src/components/PostsList.js","webpack:///./node_modules/lodash/_hasUnicodeWord.js","webpack:///./src/pages/tech/index.js","webpack:///./src/components/TagLink.js","webpack:///./node_modules/lodash/_createCompounder.js"],"names":["asciiWords","hasUnicodeWord","toString","unicodeWords","module","exports","string","pattern","guard","undefined","match","categoryFilter","category","data","node","frontmatter","categories","includes","getFormattedCategories","map","capitalizeWords","join","getImage","filename","sizingStrategy","found","allFile","edges","find","image","relativePath","endsWith","childImageSharp","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsRegional","rsSurrPair","rsUpper","rsMiscLower","rsMiscUpper","reOptMod","rsModifier","rsSeq","rsEmoji","reUnicodeWord","RegExp","kebabCase","createCompounder","result","word","index","toLowerCase","reAsciiWord","PostsList","title","postData","allMarkdownRemark","posts","filter","className","length","id","fields","excerpt","tags","url","slug","key","to","date","tag","text","variant","dangerouslySetInnerHTML","__html","description","props","query","render","reHasUnicodeWord","test","contentMap","post","count","postList","TagLink","capText","contentFunc","Error","arrayReduce","deburr","words","reApos","callback","replace"],"mappings":"08/BAAA,EAAQ,QAER,IAAIA,EAAa,EAAQ,QACrBC,EAAiB,EAAQ,QACzBC,EAAW,EAAQ,QACnBC,EAAe,EAAQ,QAiC3BC,EAAOC,QAXP,SAAeC,EAAQC,EAASC,GAI9B,OAHAF,EAASJ,EAASI,QAGFG,KAFhBF,EAAUC,OAAQC,EAAYF,GAGrBN,EAAeK,GAAUH,EAAaG,GAAUN,EAAWM,GAG7DA,EAAOI,MAAMH,IAAY,K,kMC5BrBI,EAAiB,SAAAC,GAAQ,OAAI,SAAAC,GAAI,OAC5CA,EAAKC,KAAKC,YAAYC,WAAWC,SAASL,KAE/BM,EAAyB,SAAAH,GAAgB,IAC5CC,EAAeD,EAAfC,WACR,OAAOA,EACHA,EAAWG,IAAIC,KAAiBC,KAAK,MACrC,iBAWOC,EAAW,SAAC,GAAwC,IAAtCT,EAAqC,EAArCA,KAAMU,EAA+B,EAA/BA,SAAUC,EAAqB,EAArBA,eAInCC,EAAQZ,EAAKa,QAAQC,MAAMC,MAAK,SAAAC,GAAK,OACzCA,EAAMf,KAAKgB,aAAaC,SAASR,MAEnC,GAAIE,EACF,OAAOA,EAAMX,KAAKkB,gBAAgBR,K,uBCjCtC,EAAQ,QAER,EAAQ,QAGR,IAaIS,EAAeC,8OAIfC,EAAU,IAAMF,EAAe,IAE/BG,EAAW,OACXC,EAAY,oBACZC,EAAU,8BACVC,EAAS,oBAAuBN,EAAeG,EAjB9B,qEAqBjBI,EAAa,kCACbC,EAAa,qCACbC,EAAU,8BAIVC,EAAc,MAAQL,EAAU,IAAMC,EAAS,IAC/CK,EAAc,MAAQF,EAAU,IAAMH,EAAS,IAG/CM,EAAWC,gFAKXC,EAJW,oBAIQF,GAHP,gBAAwB,CAbtB,qBAaoCL,EAAYC,GAAYpB,KAAK,KAAO,qBAAiBwB,EAAW,MAIlHG,EAAU,MAAQ,CAACX,EAAWG,EAAYC,GAAYpB,KAAK,KAAO,IAAM0B,EAGxEE,EAAgBC,OAAO,CAACR,EAAU,IAAMJ,EAAU,oCAAgC,CAACH,EAASO,EAAS,KAAKrB,KAAK,KAAO,IAAKuB,EAAc,oCAAgC,CAACT,EAASO,EAAUC,EAAa,KAAKtB,KAAK,KAAO,IAAKqB,EAAU,IAAMC,EAAc,iCAAuBD,EAAU,iCALlR,mDADA,mDAMiUN,EAAUY,GAAS3B,KAAK,KAAM,KAahXjB,EAAOC,QAJP,SAAsBC,GACpB,OAAOA,EAAOI,MAAMuC,IAAkB,K,qBC5DxC,IAwBIE,EAxBmB,EAAQ,OAwBfC,EAAiB,SAAUC,EAAQC,EAAMC,GACvD,OAAOF,GAAUE,EAAQ,IAAM,IAAMD,EAAKE,iBAE5CpD,EAAOC,QAAU8C,G,qBC3BjB,EAAQ,QAGR,IAAIM,EAAc,4CAalBrD,EAAOC,QAJP,SAAoBC,GAClB,OAAOA,EAAOI,MAAM+C,IAAgB,K,uHCLhCC,EAAY,SAAC,GAA+B,IAA7B7C,EAA4B,EAA5BA,KAAMD,EAAsB,EAAtBA,SAAU+C,EAAY,EAAZA,MACnC,IAAK9C,EACH,OAAO,KAGT,IAAM+C,EAAW/C,EAAKgD,kBAAkBlC,MAClCmC,EAAQlD,EAAWgD,EAASG,OAAOpD,YAAeC,IAAagD,EAErE,OACE,yBAAKI,UAAU,cACb,yBAAKA,UAAU,kBACb,4BAAKL,EAAL,WACA,kCAAQG,EAAMG,OAAd,MAEDH,EAAM3C,KAAI,YAAe,IAAZL,EAAW,EAAXA,KACJoD,EAAqCpD,EAArCoD,GAAIC,EAAiCrD,EAAjCqD,OAAQpD,EAAyBD,EAAzBC,YAAaqD,EAAYtD,EAAZsD,QAC3BC,EAAOtD,EAAYsD,MAAQ,GAC3BC,EAAMH,EAAOI,KAEnB,OACE,6BAASC,IAAKN,EAAIF,UAAU,gBAC1B,4BAAQA,UAAU,cAChB,4BACE,kBAAC,OAAD,CAAMS,GAAIH,GAAMvD,EAAY4C,SAGhC,yBAAKK,UAAU,gBACb,kBAAC,OAAD,CAAMS,GAAIH,GACR,8BAAOvD,EAAY2D,KAAnB,QAEF,0BAAMV,UAAU,mBACb9C,YAAuBH,IAEzBsD,EAAKlD,KAAI,SAAAwD,GAAG,OACX,kBAAC,IAAD,CAASH,IAAKG,EAAKC,KAAMD,EAAKE,QAAQ,iBAG1C,kBAAC,OAAD,CAAMJ,GAAIH,GACR,iCACE,uBACEN,UAAU,eACVc,wBAAyB,CACvBC,OAAQhE,EAAYiE,aAAeZ,aAyCxC,aAAAa,GAAK,OAClB,kBAAC,cAAD,CACEC,MA/BO,aAgCPC,OAAQ,SAAAtE,GAAI,OAAI,kBAAC6C,EAAD,eAAW7C,KAAMA,GAAUoE,KAF7C,W,mBC3FF,IAAIG,EAAmB,qEAavBhF,EAAOC,QAJP,SAAwBC,GACtB,OAAO8E,EAAiBC,KAAK/E,K,kCCX/B,oEAMe,4BACb,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAKqD,MAAM,uBACX,kBAAC,IAAD,CAAW/C,SAAS,OAAO+C,MAAM,Y,kCCTrC,sEAMM2B,EAAa,CACjBC,KAAM,gBAAGX,EAAH,EAAGA,KAAH,OAAc,0BAAMZ,UAAU,yBAAyBY,IAC7DY,MAAO,gBAAGA,EAAH,EAAGA,MAAOZ,EAAV,EAAUA,KAAV,OAAqB,8BAAUA,EAAV,KAAmBY,EAAnB,MAC5BC,SAAU,gBAAGb,EAAH,EAAGA,KAAH,OAAc,0BAAMZ,UAAU,YAAYY,KAkBvCc,IAfC,SAAC,GAA8B,IAA5BF,EAA2B,EAA3BA,MAAOZ,EAAoB,EAApBA,KAAMC,EAAc,EAAdA,QACxBc,EAAUvE,YAAgBwD,GAC1BgB,EAAcN,EAAWT,GAE/B,IAAKe,EACH,MAAM,IAAIC,MAAJ,iBAA2BhB,EAA3B,uBAGR,OACE,kBAAC,OAAD,CAAMJ,GAAE,SAAWtB,IAAUyB,GAArB,KACLgB,EAAY,CAAEJ,QAAOZ,KAAMe,O,qBCtBlC,EAAQ,QAER,EAAQ,QAER,IAAIG,EAAc,EAAQ,QACtBC,EAAS,EAAQ,QACjBC,EAAQ,EAAQ,QAOhBC,EAAS/C,OAHA,OAGe,KAe5B9C,EAAOC,QANP,SAA0B6F,GACxB,OAAO,SAAU5F,GACf,OAAOwF,EAAYE,EAAMD,EAAOzF,GAAQ6F,QAAQF,EAAQ,KAAMC,EAAU","file":"component---src-pages-tech-index-js-27895506d838fb1f5138.js","sourcesContent":["require(\"core-js/modules/es6.regexp.match\");\n\nvar asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\n\n\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;","import { capitalizeWords } from 'src/utils/stringUtils';\n\n/**\n * Get a filter callback for category\n * @param {string} category\n * @returns {function} filter\n */\nexport const categoryFilter = category => data =>\n data.node.frontmatter.categories.includes(category);\n\nexport const getFormattedCategories = frontmatter => {\n const { categories } = frontmatter;\n return categories\n ? categories.map(capitalizeWords).join(', ')\n : 'Uncategorized';\n};\n\n/**\n * Get image data from graphQl query\n * @param {object} config\n * @param {object} config.data -> the graphQl query result\n * @param {string} config.filename\n * @param {string} config.sizingStrategy -> oneOf('fixed', 'fluid')\n * @returns {object|undefined}\n */\nexport const getImage = ({ data, filename, sizingStrategy }) => {\n // data.allFile.edges -> array\n // data.allFile.edges[0].node.relativePath -> tech-projects/filename\n // data.allFile.edges[0].node.childImageSharp.fluid -> object base 64\n const found = data.allFile.edges.find(image =>\n image.node.relativePath.endsWith(filename)\n );\n if (found) {\n return found.node.childImageSharp[sizingStrategy];\n }\n};\n","require(\"core-js/modules/es6.regexp.match\");\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = \"\\\\ud800-\\\\udfff\",\n rsComboMarksRange = \"\\\\u0300-\\\\u036f\",\n reComboHalfMarksRange = \"\\\\ufe20-\\\\ufe2f\",\n rsComboSymbolsRange = \"\\\\u20d0-\\\\u20ff\",\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = \"\\\\u2700-\\\\u27bf\",\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = \"\\\\u2000-\\\\u206f\",\n rsSpaceRange = \" \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\",\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = \"\\\\ufe0e\\\\ufe0f\",\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n/** Used to compose unicode capture groups. */\n\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = \"\\\\ud83c[\\\\udffb-\\\\udfff]\",\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = \"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",\n rsSurrPair = \"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = \"\\\\u200d\";\n/** Used to compose unicode regexes. */\n\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n/** Used to match complex or compound words. */\n\nvar reUnicodeWord = RegExp([rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, rsUpper + '+' + rsOptContrUpper, rsOrdUpper, rsOrdLower, rsDigits, rsEmoji].join('|'), 'g');\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;","var createCompounder = require('./_createCompounder');\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n\n\nvar kebabCase = createCompounder(function (result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\nmodule.exports = kebabCase;","require(\"core-js/modules/es6.regexp.match\");\n\n/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;","import React from 'react';\nimport { Link, graphql, StaticQuery } from 'gatsby';\n\nimport TagLink from 'src/components/TagLink';\nimport { categoryFilter, getFormattedCategories } from 'src/utils/dataUtils';\n\n/** posts -> already filtered edges */\n/** totalCount -> data.allMarkdownRemark.totalCount */\nconst PostsList = ({ data, category, title }) => {\n if (!data) {\n return null;\n }\n\n const postData = data.allMarkdownRemark.edges;\n const posts = category ? postData.filter(categoryFilter(category)) : postData;\n\n return (\n
    \n
    \n

    {title} Posts

    \n ({posts.length})\n
    \n {posts.map(({ node }) => {\n const { id, fields, frontmatter, excerpt } = node;\n const tags = frontmatter.tags || [];\n const url = fields.slug;\n\n return (\n
    \n
    \n

    \n {frontmatter.title}\n

    \n
    \n
    \n \n {frontmatter.date} | \n \n \n {getFormattedCategories(frontmatter)}\n \n {tags.map(tag => (\n \n ))}\n
    \n \n
    \n \n
    \n \n
    \n );\n })}\n
    \n );\n};\n\nconst query = graphql`\n query {\n allMarkdownRemark(\n filter: { frontmatter: { type: { eq: \"post\" } } }\n sort: { fields: [frontmatter___date], order: DESC }\n ) {\n totalCount\n edges {\n node {\n id\n frontmatter {\n author\n categories\n date(formatString: \"MMMM DD, YYYY\")\n description\n tags\n title\n type\n }\n fields {\n slug\n }\n excerpt(pruneLength: 400)\n }\n }\n }\n }\n`;\n\nexport default props => (\n }\n />\n);\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;","import React from 'react';\n\nimport Layout from 'src/components/Layout';\nimport PostsList from 'src/components/PostsList';\nimport SEO from 'src/components/SEO';\n\nexport default () => (\n \n \n \n \n);\n","import React from 'react';\nimport kebabCase from 'lodash/kebabCase';\nimport { Link } from 'gatsby';\n\nimport { capitalizeWords } from 'src/utils/stringUtils';\n\nconst contentMap = {\n post: ({ text }) => {text},\n count: ({ count, text }) => {`${text} (${count})`},\n postList: ({ text }) => {text},\n};\n\nconst TagLink = ({ count, text, variant }) => {\n const capText = capitalizeWords(text);\n const contentFunc = contentMap[variant];\n\n if (!contentFunc) {\n throw new Error(`props.variant ${variant} not in contentMap.`);\n }\n\n return (\n \n {contentFunc({ count, text: capText })}\n \n );\n};\n\nexport default TagLink;\n","require(\"core-js/modules/es6.regexp.replace\");\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\nvar arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n/** Used to compose unicode capture groups. */\n\n\nvar rsApos = \"['\\u2019]\";\n/** Used to match apostrophes. */\n\nvar reApos = RegExp(rsApos, 'g');\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n\nfunction createCompounder(callback) {\n return function (string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-tech-index-js-b2fb9efa597e0ce040ae.js b/component---src-pages-tech-index-js-b2fb9efa597e0ce040ae.js deleted file mode 100644 index 9a590255..00000000 --- a/component---src-pages-tech-index-js-b2fb9efa597e0ce040ae.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{"5cHQ":function(e){e.exports=JSON.parse('{"data":{"allMarkdownRemark":{"totalCount":44,"edges":[{"node":{"id":"970567e6-3f2a-5749-b60e-5fe9bce3ce59","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"June 01, 2023","description":null,"tags":["productivity","tech talk"],"title":"How I\'m Building My Second Brain","type":"post"},"fields":{"slug":"/building-my-second-brain/"},"excerpt":"Slides + Video “How I’m building my second brain” video (2022) (YouTube) “How I’m building my second brain” slides (2022) (PDF) Intro Creativity is bound up with making connections between disparate ideas. The connections piece is crucial. I know this because of my many failures with knowledge management. I went all in on the Getting Things Done (GTD) productivity system and wound up with a large…"}},{"node":{"id":"5bc00e6c-f6a8-51a5-9312-749eabf343c4","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 05, 2022","description":null,"tags":["random music generators"],"title":"Random Music Generators is now hosted on render.com","type":"post"},"fields":{"slug":"/2022-12-05-random-music-generators-news/"},"excerpt":"Random Music Generators is now hosted on render.com. Please update your bookmarks! https://random-music-generators.onrender.com"}},{"node":{"id":"87a467a5-a5cc-57bc-b828-33199e1396ed","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 05, 2021","description":null,"tags":["typescript","javascript"],"title":"TypeScript-lite: JSDoc for type-checking js files","type":"post"},"fields":{"slug":"/type-check-jsdocs-typescript/"},"excerpt":"Overview Did you know that you can use TypeScript features in JavaScript projects? When I discovered this and tried it out, I really enjoyed the results. Let’s go a bit into how it works. With a few simple ingredients: VSCode JavaScript Willingness to add types in JSDoc (and optionally importing TypeScript types) You can: statically check the types of .js files run compiler on .js files write…"}},{"node":{"id":"43882726-b323-56c1-986e-85fad7e68237","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 27, 2021","description":null,"tags":["career","mental health"],"title":"Programming with more ease","type":"post"},"fields":{"slug":"/programming-with-more-ease/"},"excerpt":"As professional programmers, the bulk of what we do is solving problems. A lot of the time, I’m motivated by problem-solving challenges. But sometimes I hit a wall. A given challenge can become a problem that I’m frustratingly unable to solve. Often, this frustration would spiral into a worse mental state. I’d imagine the problem as a scary, overwhelming, difficult to defeat monster - more…"}},{"node":{"id":"6a155da7-d04b-5289-b463-02babc9a2670","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 23, 2021","description":null,"tags":["design patterns"],"title":"How to Learn Design Patterns","type":"post"},"fields":{"slug":"/design-patterns-curriculum/"},"excerpt":"I’ve long been intrigued by design patterns, but when I started learning them, I realized quickly that I didn’t have a clear learning path. I didn’t know how I should learn design patterns or if it’s the right time for me to learn them. So, I sought out to answer some questions: What are the prerequisites for learning design patterns? What material should I use and how do I avoid being scattered…"}},{"node":{"id":"c373259e-e38e-59bb-ab3b-22a5afc45474","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2021","description":null,"tags":["design patterns"],"title":"Introduction to Design Patterns: Why they\'re worth learning","type":"post"},"fields":{"slug":"/design-patterns-intro/"},"excerpt":"As developers, we’re constantly learning - and there’s a lot to learn in general because the tech industry is broad and fast-paced. We want to have all the main bases covered so that we can be ready for any situation. We often hear about design patterns and how they can enable us to write well-architected software using object-oriented programming. If you’re like me, you might file that away as a…"}},{"node":{"id":"ef97f645-0325-5bf1-806d-ba14610e6780","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 30, 2021","description":null,"tags":["random music generators"],"title":"Random Music Generators News 2021-01-30","type":"post"},"fields":{"slug":"/2021-01-30-random-music-generators-news/"},"excerpt":"New in 1.3.1 This month, I released a big new feature that’s been requested often. You can now specify a custom note collection to create random melodies. Check it out! Note: This feature is available to use if you create an account. Part of the impetus to provide this feature was to aid in neuroscience research. Having the ability to create melodies with specific pitches will allow researchers…"}},{"node":{"id":"ba57e0fe-e724-5a6e-b122-d39a3674b8fc","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 10, 2020","description":null,"tags":["career"],"title":"Are You Ready to be a Professional Software Engineer?","type":"post"},"fields":{"slug":"/tech-career-resources/"},"excerpt":"Updated March 21, 2021 Did you just graduate from a coding bootcamp, obtain a CS degree, or built an involved side project? How do you know when you’re ready to write software professionally? This post has two parts: questions I ask my mentees to help clarify their job search a collection of resources I’ve found or made that helped my on my job search Questions to clarify the job search There are…"}},{"node":{"id":"ef2f493a-fbef-500d-a57e-689069307ca5","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 21, 2020","description":null,"tags":["immerjs","javascript","react","redux"],"title":"My love hate relationship with ImmerJS","type":"post"},"fields":{"slug":"/love-hate-immer-js/"},"excerpt":"After having used immutable js for a while, discovering ImmerJS was a breath of fresh air. Where immutable js forces you to learn its gigantic API, ImmerJS takes advantage of ES6 Proxies. These allow you to modify a “draft” version of an object as if you’re mutating it, but the draft is actually a copy so you’re not mutating the original! The return of immer’s function always returns a perfect…"}},{"node":{"id":"f2cf9b4b-5eb8-5856-bd0a-86b1e7bc66f4","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 15, 2020","description":null,"tags":["career","coding bootcamps","electron","javascript","tech talk"],"title":"Tech Talk - How I\'d Improve My Capstone Project","type":"post"},"fields":{"slug":"/tech-talk-improving-capstone-project/"},"excerpt":"In February 2020, I returned to my bootcamp to give a tech talk on what I’d do to improve my Capstone project. (I also answer career and other questions from the audience at the end.) Download the slides here (PDF) I’m excited to share what I’ve learned so far from working on enterprise software for almost 2 years. The talk is a deep dive into the codebase that myself and three others worked on…"}},{"node":{"id":"d6855891-7ad1-5756-b178-be45a9213df7","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 02, 2020","description":null,"tags":["javascript","node","productivity"],"title":"Using question-prompter for study, self-reflection, and more","type":"post"},"fields":{"slug":"/using-question-prompter/"},"excerpt":"I recently created a node command line app called question-prompter. It prompts you at your terminal to answer questions that you come up with. After you answer them, it saves them to a or file in a directory of your choosing. Background I find a lot of benefit from regularly checking in with myself. While many authors have written about this kind of reflection, Tim Ferriss comes to mind first…"}},{"node":{"id":"d83dfc88-d6b1-51d0-924a-b4ef8ea54dcf","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"June 03, 2020","description":null,"tags":["songwriting","composition","creativity"],"title":"Meta Ideas - Generating Creative Content","type":"post"},"fields":{"slug":"/meta-ideas-generating-creative-content/"},"excerpt":"I’ve been writing down small music (and other) ideas for over 20 years. I’ve generally struggled to store, organize, and retrieve them effectively. As I was going through my archives recently, it dawned on me that there are two fundamental types of ideas: one is “concrete” and the other is “meta.” A concrete idea is specific and actionable. It may be a chord progression like: A minor for two and a…"}},{"node":{"id":"362cb819-3e27-5202-98bf-310df4ba421f","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"May 02, 2020","description":null,"tags":["javascript","test runners","ava","mocha","jest","tech talk"],"title":"Comparing JavaScript Test Runners","type":"post"},"fields":{"slug":"/comparing-javascript-test-runners/"},"excerpt":"This post is a pointer to an article I completed recently - a comprehensive comparison of the AVA, Jest, Mocha, and JavaScript test runners. 👉 https://github.com/scraggo/comparing-javascript-test-runners/ 👈 Why is it on GitHub, not this blog? Not only does the repo contain the comparison article, I created a node application to generate the speed metrics in the article. The process looks like…"}},{"node":{"id":"5c2a373c-48fe-5078-9e3d-f21888265979","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2020","description":null,"tags":["typescript","open source"],"title":"Contributing a New Feature to Open Source: @sindresorhus/is","type":"post"},"fields":{"slug":"/contributing-to-open-source-is-type-checking/"},"excerpt":"This post is a recount of my recent experience contributing to is, a JavaScript open source type checking library. https://github.com/sindresorhus/is https://www.npmjs.com/package/@sindresorhus/is I’ll outline the process from beginning to end: the initial filing of the feature request, implementing the feature, collaborating on the pull request, and getting the feature released. Some of the open…"}},{"node":{"id":"eae0c8d9-4b57-5113-88ed-3ece28ea88ca","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"February 15, 2020","description":"Problems with unexpected assertion failures can arise while testing immutablejs with sinon. This post is a brief guide on how to create a custom matcher that will correctly calculate the equivalence between a mock/stub/spy call with an immutable parameter. The way I’ll be making the assertion is with calledWith from sinon-chai (a plugin for chai that helps with making should or expect assertions for sinon mocks). This github issue on sinonjs outlines the problem...","tags":["testing","sinon","immutablejs"],"title":"Testing immutable js with sinon custom matchers","type":"post"},"fields":{"slug":"/testing-immutable-js-with-sinon-custom-matchers/"},"excerpt":"Problems with unexpected assertion failures can arise while testing with . This post is a brief guide on how to create a custom matcher that will correctly calculate the equivalence between a mock/stub/spy call with an parameter. The way I’ll be making the assertion is with from (a plugin for that helps with making or assertions for mocks). This github issue on sinonjs outlines the problem…"}},{"node":{"id":"13bb4e43-1a4c-5619-88cf-18b133874a58","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 27, 2020","description":null,"tags":["random music generators"],"title":"Random Music Generators News 2020-01-27","type":"post"},"fields":{"slug":"/2020-01-27-random-music-generators-news/"},"excerpt":"New in 1.1.0 Yesterday, I released a feature that’s been in the works for over 6 months. You can now create melody presets. Check it out! If you have a go-to set of form parameters that make sounds that you really enjoy, you can save them and recall them later. As a necessity of saving presets, I added the ability to create an account. This will set the stage for being able to save presets for…"}},{"node":{"id":"208d49b8-08db-5947-81dc-1b7fec2f4c50","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 09, 2020","description":"Happy 2020! One of my new year’s resolutions is to redo my website with a lot of new things in mind. Here I’ll outline the changes I’m in the process of making. An important step in the whole makeover was getting an official domain name - I’m now live at scraggo.com! I’m using namecheap as the provider. The site has been hosted with github pages since its inception and I’ll…","tags":["gatsbyjs"],"title":"Website Makeover: Moving from Jekyll to Gatsby","type":"post"},"fields":{"slug":"/website-makeover-gatsby/"},"excerpt":"Happy 2020! One of my new year’s resolutions is to redo my website with a lot of new things in mind. Here I’ll outline the changes I’m in the process of making. EDIT Jan 18, 2020: Gatsby makeover complete! Now live: custom domain name An important step in the whole makeover was getting an official domain name - I’m now live at ! I’m using namecheap as the provider. The site has been hosted with…"}},{"node":{"id":"69ec04c0-36a1-5b4b-b7e5-895ff00cceda","frontmatter":{"author":"Dave Cohen","categories":["other"],"date":"January 01, 2020","description":null,"tags":null,"title":"2020 Resolutions and Reviewing the Decade","type":"post"},"fields":{"slug":"/2020-decade-in-review/"},"excerpt":"I really enjoy reflecting on the past year during the holidays. If I get a chance to do this, I come up with New Years resolutions afterwards. Some years I go through a somewhat involved process of going through my journal entries and coming up with the best realizations. This year, my girlfriend wanted to try Marie Forleo’s recommendation of reviewing the past decade. We went through the…"}},{"node":{"id":"71cb4d5a-1ffa-5471-9090-7ad8a844304b","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 21, 2019","description":null,"tags":["git"],"title":"How to Squash All Commits Related to a Single Issue into a Single Commit","type":"post"},"fields":{"slug":"/how-to-squash-commits/"},"excerpt":"Updated Sep 3, 2020 This article outlines how to use the “squash” feature of an interactive . What does “squashing” do? It allows you to take changes that are spread amongst multiple commits and consolidate them into one. Why should one consider squashing commits? A clean history makes tracking changes to a large codebase across time much easier. Many commits are small and unimportant in the grand…"}},{"node":{"id":"005c820c-061e-57bb-8255-c635792a976d","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"December 20, 2019","description":null,"tags":["music education"],"title":"About Songmind Studios","type":"post"},"fields":{"slug":"/about-songmind-studios/"},"excerpt":"In 2016, I decided to start my own brand of music education. I took the role of music coach, agent, and collaborator. The student and I would write and record music together to integrate learning and creativity in a holistic way. While I’ve suspended these services for the foreseeable future, I’m posting are the core concepts and aims of Songmind Studios. I’ll eventually make all my teaching…"}},{"node":{"id":"fe9a22be-2af0-5ee7-9e22-9ca6bb593de8","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 02, 2019","description":null,"tags":["career"],"title":"How to ace your initial programming job screen","type":"post"},"fields":{"slug":"/prepare-for-initial-screens/"},"excerpt":"Your resume and cover letter surely made a positive impact, but the most important evaluation has yet to come. If you’re searching for your first software development job, the process can be daunting. You may have heard that after sending your resume to a company, there’s an initial screen. This is usually done over the phone, but sometimes it happens in-person. Your resume and cover letter (the…"}},{"node":{"id":"3220ea90-ef5c-5200-befb-6f9a58952f53","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"April 03, 2019","description":null,"tags":["javascript"],"title":"Catching and handling different types of errors in promise chains","type":"post"},"fields":{"slug":"/catching-handling-errors-promise-chains/"},"excerpt":"When you need to make sequential API calls, promise chains are a reliable way to go. It gets a little tricky when you need to throw and handle errors differently at different points in the chain. This post will go into: throwing specific types of errors using creating an object literal dictionary to handle logic gracefully handling the errors differently at the end of the chain This article is…"}},{"node":{"id":"657093ab-4233-5d14-a741-44f2fa462db8","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 28, 2019","description":null,"tags":["javascript"],"title":"Using a filter function recursively","type":"post"},"fields":{"slug":"/recursive-filter-function/"},"excerpt":"The problem Given our array data structure, we only want to include items that have an ‘age’ property and the age is greater than 17. If the person is under age, we won’t allow any of their friends to be included (even if they are old enough to be.) (Contrived scenario, I know, but I recently needed to do something like this for a different type of authorization.) Run this code on repl.it We can…"}},{"node":{"id":"86cb31eb-6b40-50e3-9ddc-d195f0cee1c6","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 24, 2019","description":null,"tags":["git"],"title":"How to format and edit your git commit messages","type":"post"},"fields":{"slug":"/git-commit-format-squash/"},"excerpt":"When writing commit messages, it’s ideal to make them easy for another developer to read and understand exactly what’s in the commit. Oftentimes, though, we write commit messages quickly just to push a branch at the end of a workday, for instance (I know I’m guilty of this). One team member brought the Conventional Commits format to our attention. I’ve enjoyed using it and seeing the results when…"}},{"node":{"id":"35287751-dd87-580c-ae8e-8b1c02051859","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 23, 2019","description":null,"tags":["javascript"],"title":"How to prevent circular dependencies","type":"post"},"fields":{"slug":"/circular-dependencies-bug/"},"excerpt":"Some errors are kind of mysterious. The first time I got “‘myFunction’ is not a function” type errors, I was at a loss for a few hours. Logging out the functions from my require statements came back as or . What I learned, TL;DR - don’t import file ‘a’ into file ‘b’ AND file ‘b’ into file ‘a’. That’s an example of a “circular dependency.” Brief example of creating a circular dependency: myUtils…"}},{"node":{"id":"a5528eb3-e30d-5233-bd30-b8c7ae51558c","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2019","description":null,"tags":["javascript"],"title":"Custom type checking - isNaN vs Number.isNaN","type":"post"},"fields":{"slug":"/custom-type-checking-isnan/"},"excerpt":"Javascript is infamous for being “loose” and misleading with its typing. gives you , gives you , etc. So instead of writing conditionals using , doing specific checks, etc, I decided to make my own wrapper for which I called : I unknowingly put a bug in my app. Can you spot it? … It’s in the 3rd statement. Basically, the function took anything that wasn’t an ‘array’ or ‘null’ and decided it…"}},{"node":{"id":"ffbf844d-8df4-58a2-bbac-456ad18ce4e2","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 18, 2019","description":null,"tags":["javascript"],"title":"Using a Code Style Guide to Enforce Team Best Practices","type":"post"},"fields":{"slug":"/code-style-guide/"},"excerpt":"We all have opinions on what what coding best practices are and how code should be formatted. Recently, one of the teams I’ve been working on decided to add another member. I discovered that our coding styles were radically different. I decided to write some guidelines for our team to get us on the same page. I quickly realized that writing a style guide from scratch is a tall order. I’d already…"}},{"node":{"id":"78ad3884-f757-59b3-9a3e-cfb58062229e","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 18, 2018","description":null,"tags":["career"],"title":"Should junior developers work with recruiters?","type":"post"},"fields":{"slug":"/recruiters-and-junior-devs/"},"excerpt":"This is the first of a handful of posts about the 3-month search for my first full-time developer job. I graduated from a coding bootcamp in April. I’m a junior developer, though, I have some freelance projects on my resume that gave me about 2 years of experience. This, combined with a decently written Linkedin profile, contributed to my getting contacted by multiple recruiters daily. I wound up…"}},{"node":{"id":"58fbbba9-9063-500a-9fcb-829e58d07642","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"May 08, 2018","description":null,"tags":["computer science"],"title":"Debugging Strategies Checklist","type":"post"},"fields":{"slug":"/debugging-strategies-checklist/"},"excerpt":"Tracking down bugs in the software you’re working on can be tricky. Debugging is a massive topic and there are so many places bugs can show up. One thing’s for sure, whether you’re careful or not… Bugs will show up. I’m not saying this to be pessimistic. Creating and squashing bugs is not just a part of the process of writing software, it is the process! We’re solving problems and ironing out the…"}},{"node":{"id":"0092c8a9-f74f-5de1-a8e6-0fe315511475","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"April 16, 2018","description":null,"tags":["coding bootcamps","javascript"],"title":"Reflections From a Coding Bootcamp Graduate","type":"post"},"fields":{"slug":"/reflections-coding-bootcamp/"},"excerpt":"I was ready for a career change. It was October of 2017. The more time I spent coding and learning computer science fundamentals, the more I realized that a programming career would fit my personality* better than performing and teaching music. After spending a fair amount of time teaching myself to code and making websites, I began researching coding bootcamps. There were optimistic statistics of…"}},{"node":{"id":"8e59934a-7dcb-5377-ae8d-73c2d8ed7686","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"February 20, 2018","description":null,"tags":["javascript","computer science"],"title":"Tackling Hash Table Problems in JavaScript","type":"post"},"fields":{"slug":"/hash-tables-js/"},"excerpt":"Algorithms and data structures can be intimidating. The goal of this post is to explain some approaches to solving hash table algorithm problems providing clear examples with detailed solution explanations. I’m hoping this will help anyone uninitiated alleviate fears and make bigger strides in conquering these challenging problems. Why Hash Tables? While attending Fullstack Academy, I participated…"}},{"node":{"id":"d49b052b-2f19-5ddd-a73d-78e80b12bfdd","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 26, 2017","description":null,"tags":["coding bootcamps","javascript"],"title":"Now Attending: Fullstack Academy","type":"post"},"fields":{"slug":"/now-attending-fullstack/"},"excerpt":"Why I’m attending Fullstack Academy Since discovering a love for guitar and composition in my teens, I decided to pursue a career as a freelance music teacher, composer, recording engineer, and performing guitarist. After a decade of this, I realized that the rockstar dream didn’t suit me and I was tired of chasing it. I’d be happier with a more stable career that challenged me intellectually. I…"}},{"node":{"id":"e1022862-d7d0-5e18-994d-92f148fb9302","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 01, 2017","description":null,"tags":["javascript"],"title":"Intro to JavaScript Frameworks Part 1: The Vanilla JavaScript Version of TodoMVC","type":"post"},"fields":{"slug":"/intro-to-js-frameworks01/"},"excerpt":"The goal of this blog-series is to explain what frameworks do, why they’re used, and demonstrate with examples across many different frameworks. The series is aimed at those familiar with JavaScript syntax, accessing the DOM, functions, and classes (object-oriented programming). Further reading can be found at the bottom of this post. What is a JavaScript Framework? A framework is an imported…"}},{"node":{"id":"bd3eb5a8-b322-5b98-ad3f-6f3cae8be4e1","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 01, 2017","description":"This post contains an overview of what sorts of programming jobs are available. It\'s aimed at developers who want to try something new or are still deciding what to focus on in their efforts to become more marketable.","tags":["career"],"title":"Marketable Programming Skills","type":"post"},"fields":{"slug":"/marketable-programming-skills/"},"excerpt":"If you’ve been learning programming on your own, you may have made worked through some books, followed some online tutorials, and made a decent collection of simple apps. At a certain point you may wonder how much else you need to know to be able to start working as a programmer. I’m a self-taught coder with experience in web technologies (JavaScript, HTML, CSS, etc) and Python. Compiling some…"}},{"node":{"id":"b9bffa10-76c5-5831-96ad-63365ba582ec","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 01, 2017","description":null,"tags":["oop","python"],"title":"Using a Class in Python as a Code Wrapper for a Simple Game","type":"post"},"fields":{"slug":"/python-classes-guess-the-number/"},"excerpt":"Object-oriented design is a powerful programming paradigm that can be intimidating to anyone trying to learn how to use it. I worked through a number of excellent tutorials and books on the subject, but struggled to apply the concepts to my own code. I decided to convert a working program that didn’t use OOP and wrap it in a single class. The program I chose was Guess the Number written by Al…"}},{"node":{"id":"8a0e0fa2-afc3-5492-b98a-ed745595bdbf","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"January 15, 2017","description":null,"tags":["music education"],"title":"Honing Musical Strengths with a Student Evaluation","type":"post"},"fields":{"slug":"/honing-strengths-with-a-student-evaluation/"},"excerpt":"From time to time, we can find ourselves stagnating when studying music (or any other topic). To help become immune to this, it’s useful to fully recognize our strengths and acknowledge our weaknesses. Every strength is an opportunity to improve further and if we can acknowledge where we are struggling then we can begin to grow much faster and reach excellence. Ask yourself the following questions…"}},{"node":{"id":"cf15c4c6-a96d-537d-9525-34c1d200c9e4","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 01, 2016","description":null,"tags":["songwriting","promotion"],"title":"10 Issues Songwriters Face","type":"post"},"fields":{"slug":"/10-issues-songwriters-face/"},"excerpt":"It’s common for songwriters to feel overwhelmed when finishing their songs and getting them ready for their audience. There can be tremendous blocks going from inspiration to song completion. Listed below are the top issues I’ve encountered while interviewing songwriters and students of music who write music. 1. Not knowing “where to go next” with your song. This is a major problem for many…"}},{"node":{"id":"9e899d18-3457-5b38-89f4-b68c3fedda94","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"May 10, 2016","description":null,"tags":["bands"],"title":"The Five Dysfunctions of a Band","type":"post"},"fields":{"slug":"/5-dysfunctions-of-a-band/"},"excerpt":"The Five Dysfunctions of a Team (by Patrick Lencioni) is a highly recommended book for anyone that works with other people. (So - almost everyone!) The five dysfunctions are set up in a hierarchy. The bottom of the pyramid below shows that trust is the foundation and all else moves up from there. five-dysfunctions-pyramid The book opens with a story that brings the main five principles…"}},{"node":{"id":"a2bde957-6eed-524d-afe6-19d226d89c33","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"March 31, 2016","description":null,"tags":["practicing"],"title":"A Guide to Practicing and Overcoming Plateaus","type":"post"},"fields":{"slug":"/guide-to-practicing-overcoming-plateaus/"},"excerpt":"A long time student of mine recently began learning classical guitar. He had been studying jazz and blues for a number of years. He has a love for latin fingerstyle rhythms. The more lessons we had, the more he realized that he wanted to deepen his technical foundation. I recently told him: “The number of times you’ll reach a plateau is inversely proportional to how deeply you practice.” In other…"}},{"node":{"id":"04b1908e-5183-5e17-9415-9f4881c90c86","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"March 10, 2016","description":null,"tags":["recording","songwriting"],"title":"Preparing Your Song Demo for the Studio","type":"post"},"fields":{"slug":"/preparing-demo-for-studio/"},"excerpt":"We songwriters put a lot of work into our songs. Putting together interesting chord voicings, refining our lyrics to perfection, and getting the form ‘just right’ can take a lot of effort, but be very gratifying. When your song is finally finished, you might want to make the investment of bringing it to a studio with a band to lay down all of the parts. When it comes to recording in the studio…"}},{"node":{"id":"7e202b1a-2c4a-51f1-8046-587cb36c5751","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"January 06, 2016","description":null,"tags":["songwriting","creativity","productivity"],"title":"A 3 Step Process to Organizing Creativity","type":"post"},"fields":{"slug":"/organizing-creativity-3-step-process/"},"excerpt":"It’s difficult to keep track of everything that needs to be done with your musical ideas. If you write with any frequency, these ideas can amass until there are so many that you can’t keep track of them. Your ideas might range from little snippets to near complete works. Here are some things that commonly go wrong for me: I don’t take enough time to think about where an idea needs to go to be…"}},{"node":{"id":"c55142ea-f8a1-50bf-8922-e7f4ff2ee896","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 16, 2015","description":null,"tags":["songwriting"],"title":"Songwriting Tutorial: Snippet Challenge","type":"post"},"fields":{"slug":"/songwriting-snippet-challenge/"},"excerpt":"Have lots of unfinished ideas? Learn how to take a short instrumental idea and finish writing your song in one day. Over the years, I’ve written tons and tons of short musical ideas. I had been putting off turning them into real pieces until now. Inspired by my research on speed composing, I decided to make a challenge out of my problem. The Snippet Challenge & Simple Instrumental Song Forms In a…"}},{"node":{"id":"5591838f-0d37-5819-b56e-cdcfdfb6da95","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 15, 2015","description":null,"tags":["songwriting"],"title":"Songwriting and Serendipity","type":"post"},"fields":{"slug":"/songwriting-and-serendipity/"},"excerpt":"Why start a composition with a blank slate? Jam on a cover tune then take it in a different direction. Sometimes, the less experience you have figuring out songs, the better. When I was first learning guitar and had much less skill, I tried to figure out songs that I heard. I was usually unsuccessful at transcribing them accurately, but there were many occasions that I enjoyed what I was playing…"}},{"node":{"id":"972a1e06-645e-5949-8544-deaece011b95","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"October 15, 2015","description":null,"tags":["songwriting"],"title":"Songwriting Tutorial: Simplicity and Complexity","type":"post"},"fields":{"slug":"/songwriting-simplicity-complexity/"},"excerpt":"How to begin writing a song by choosing a lyrical theme and a musical mood. The Keys to Simplicity Selecting a mood / topic for the song The central theme of your song can come from anywhere - your mood, the news, or a conversation you heard while at a coffee shop. After choosing something, stay in that mindset until you find the need for a well-placed and meaningful contrast. It’s important to…"}}]}}}')},"6nK8":function(e,t,a){a("SRfc");var o=a("dVn5"),i=a("fo6e"),n=a("dt0z"),r=a("9NmV");e.exports=function(e,t,a){return e=n(e),void 0===(t=a?void 0:t)?i(e)?r(e):o(e):e.match(t)||[]}},"7TWv":function(e,t,a){"use strict";a.d(t,"a",(function(){return i})),a.d(t,"b",(function(){return n})),a.d(t,"c",(function(){return r}));a("rvZc"),a("dRSK"),a("Z2Ku"),a("L9s1");var o=a("d9uu"),i=function(e){return function(t){return t.node.frontmatter.categories.includes(e)}},n=function(e){var t=e.categories;return t?t.map(o.a).join(", "):"Uncategorized"},r=function(e){var t=e.data,a=e.filename,o=e.sizingStrategy,i=t.allFile.edges.find((function(e){return e.node.relativePath.endsWith(a)}));if(i)return i.node.childImageSharp[o]}},"9NmV":function(e,t,a){a("SRfc"),a("Oyvg");var o="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",i="["+o+"]",n="\\d+",r="[\\u2700-\\u27bf]",s="[a-z\\xdf-\\xf6\\xf8-\\xff]",c="[^\\ud800-\\udfff"+o+n+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",d="(?:\\ud83c[\\udde6-\\uddff]){2}",l="[\\ud800-\\udbff][\\udc00-\\udfff]",u="[A-Z\\xc0-\\xd6\\xd8-\\xde]",h="(?:"+s+"|"+c+")",m="(?:"+u+"|"+c+")",g="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",p="[\\ufe0e\\ufe0f]?"+g+("(?:\\u200d(?:"+["[^\\ud800-\\udfff]",d,l].join("|")+")[\\ufe0e\\ufe0f]?"+g+")*"),f="(?:"+[r,d,l].join("|")+")"+p,y=RegExp([u+"?"+s+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[i,u,"$"].join("|")+")",m+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[i,u+h,"$"].join("|")+")",u+"?"+h+"+(?:['’](?:d|ll|m|re|s|t|ve))?",u+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",n,f].join("|"),"g");e.exports=function(e){return e.match(y)||[]}},N1om:function(e,t,a){var o=a("sgoq")((function(e,t,a){return e+(a?"-":"")+t.toLowerCase()}));e.exports=o},dVn5:function(e,t,a){a("SRfc");var o=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;e.exports=function(e){return e.match(o)||[]}},"e+E3":function(e,t,a){"use strict";a("91GP");var o=a("5cHQ"),i=a("q1tI"),n=a.n(i),r=a("Wbzz"),s=a("jkPq"),c=a("7TWv"),d=function(e){var t=e.data,a=e.category,o=e.title;if(!t)return null;var i=t.allMarkdownRemark.edges,d=a?i.filter(Object(c.a)(a)):i;return n.a.createElement("div",{className:"posts-list"},n.a.createElement("div",{className:"posts-category"},n.a.createElement("h2",null,o," Posts "),n.a.createElement("span",null,"(",d.length,")")),d.map((function(e){var t=e.node,a=t.id,o=t.fields,i=t.frontmatter,d=t.excerpt,l=i.tags||[],u=o.slug;return n.a.createElement("article",{key:a,className:"post-wrapper"},n.a.createElement("header",{className:"post-title"},n.a.createElement("h3",null,n.a.createElement(r.Link,{to:u},i.title))),n.a.createElement("div",{className:"post-info-sm"},n.a.createElement(r.Link,{to:u},n.a.createElement("span",null,i.date," | ")),n.a.createElement("span",{className:"post-categories"},Object(c.b)(i)),l.map((function(e){return n.a.createElement(s.a,{key:e,text:e,variant:"postList"})}))),n.a.createElement(r.Link,{to:u},n.a.createElement("section",null,n.a.createElement("p",{className:"post-excerpt",dangerouslySetInnerHTML:{__html:i.description||d}}))))})))};t.a=function(e){return n.a.createElement(r.StaticQuery,{query:"4156120491",render:function(t){return n.a.createElement(d,Object.assign({data:t},e))},data:o})}},fo6e:function(e,t){var a=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;e.exports=function(e){return a.test(e)}},hYRG:function(e,t,a){"use strict";a.r(t);var o=a("q1tI"),i=a.n(o),n=a("7oih"),r=a("e+E3"),s=a("EYWl");t.default=function(){return i.a.createElement(n.a,null,i.a.createElement(s.a,{title:"Posts - Technology"}),i.a.createElement(r.a,{category:"tech",title:"Tech"}))}},jkPq:function(e,t,a){"use strict";var o=a("q1tI"),i=a.n(o),n=a("N1om"),r=a.n(n),s=a("Wbzz"),c=a("d9uu"),d={post:function(e){var t=e.text;return i.a.createElement("span",{className:"post-info-sm post-tag"},t)},count:function(e){var t=e.count,a=e.text;return i.a.createElement("span",null,a+" ("+t+")")},postList:function(e){var t=e.text;return i.a.createElement("span",{className:"post-tag"},t)}};t.a=function(e){var t=e.count,a=e.text,o=e.variant,n=Object(c.a)(a),l=d[o];if(!l)throw new Error("props.variant "+o+" not in contentMap.");return i.a.createElement(s.Link,{to:"/tags/"+r()(a)+"/"},l({count:t,text:n}))}},sgoq:function(e,t,a){a("pIFo"),a("Oyvg");var o=a("asDA"),i=a("TKrE"),n=a("6nK8"),r=RegExp("['’]","g");e.exports=function(e){return function(t){return o(n(i(t).replace(r,"")),e,"")}}}}]); -//# sourceMappingURL=component---src-pages-tech-index-js-b2fb9efa597e0ce040ae.js.map \ No newline at end of file diff --git a/contact/index.html b/contact/index.html index ef0c42c4..a4565653 100644 --- a/contact/index.html +++ b/contact/index.html @@ -368,4 +368,4 @@ domain: 'scraggo.com' }); woopra.track(); -

    (After form submission, scroll to top to confirm that message was sent.)

    \ No newline at end of file +

    (After form submission, scroll to top to confirm that message was sent.)

    \ No newline at end of file diff --git a/contributing-to-open-source-is-type-checking/index.html b/contributing-to-open-source-is-type-checking/index.html index e4a5b6ba..ab7fa390 100644 --- a/contributing-to-open-source-is-type-checking/index.html +++ b/contributing-to-open-source-is-type-checking/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

    Contributing a New Feature to Open Source: @sindresorhus/is

    This post is a recount of my recent experience contributing to is, a JavaScript open source type checking library.

    +

    Contributing a New Feature to Open Source: @sindresorhus/is

    This post is a recount of my recent experience contributing to is, a JavaScript open source type checking library.

    https://github.com/sindresorhus/is

    https://www.npmjs.com/package/@sindresorhus/is

    @@ -436,4 +436,4 @@

    The release of is@2.1.0

    https://github.com/sindresorhus/is#anypredicate—predicate-values

    -

    Working on this feature was amazing in so many ways. I had a great experience collaborating with @sindresorhus and his team, I enjoyed the challenge of working on an unfamiliar codebase, and it was incredibly rewarding to see that the feature I put in might be used and appreciated by other developers. I’m looking forward to the next time I have the chance to contribute to an awesome, well-maintained open source library. Let me know about your experiences using is. 😁

    \ No newline at end of file +

    Working on this feature was amazing in so many ways. I had a great experience collaborating with @sindresorhus and his team, I enjoyed the challenge of working on an unfamiliar codebase, and it was incredibly rewarding to see that the feature I put in might be used and appreciated by other developers. I’m looking forward to the next time I have the chance to contribute to an awesome, well-maintained open source library. Let me know about your experiences using is. 😁

    \ No newline at end of file diff --git a/custom-type-checking-isnan/index.html b/custom-type-checking-isnan/index.html index 8f7fd81b..9b00aed6 100644 --- a/custom-type-checking-isnan/index.html +++ b/custom-type-checking-isnan/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

    Custom type checking - isNaN vs Number.isNaN

    Javascript is infamous for being “loose” and misleading with its typing. typeof [1, 2, 3] gives you 'object', typeof null gives you 'object', etc.

    +

    Custom type checking - isNaN vs Number.isNaN

    Javascript is infamous for being “loose” and misleading with its typing. typeof [1, 2, 3] gives you 'object', typeof null gives you 'object', etc.

    So instead of writing conditionals using Array.isArray(), doing specific null checks, etc, I decided to make my own wrapper for typeof which I called getType:

    /**
      * Get typeof item with a few extra types specified.
    @@ -484,4 +484,4 @@
       throw new Error(
         `Bad input: ${thing}. Expected array, object, or number, got '${typeof thing}'`
       );
    -}
    \ No newline at end of file +}
    \ No newline at end of file diff --git a/debugging-strategies-checklist/index.html b/debugging-strategies-checklist/index.html index 9b056cc2..9a6e2d0a 100644 --- a/debugging-strategies-checklist/index.html +++ b/debugging-strategies-checklist/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

    Debugging Strategies Checklist

    Tracking down bugs in the software you’re working on can be tricky. Debugging is a massive topic and there are so many places bugs can show up. One thing’s for sure, whether you’re careful or not…

    +

    Debugging Strategies Checklist

    Tracking down bugs in the software you’re working on can be tricky. Debugging is a massive topic and there are so many places bugs can show up. One thing’s for sure, whether you’re careful or not…

    Bugs will show up.

    I’m not saying this to be pessimistic. Creating and squashing bugs is not just a part of the process of writing software, it is the process! We’re solving problems and ironing out the kinks as we go.

    Further Reading

  • Debugging Checklist
  • flatiron-school/ruby-debugging-checklist: A list of things to do when you hit a bug in your ruby code.
  • The “Stupid” Checklist: Just say “No!” to emotional debugging…emotionally! by Mark Witmer on CodePen
  • -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/design-patterns-curriculum/index.html b/design-patterns-curriculum/index.html index 0bc11e6f..5454fa9e 100644 --- a/design-patterns-curriculum/index.html +++ b/design-patterns-curriculum/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

    How to Learn Design Patterns

    I’ve long been intrigued by design patterns, but when I started learning them, I realized quickly that I didn’t have a clear learning path. I didn’t know how I should learn design patterns or if it’s the right time for me to learn them.

    +

    How to Learn Design Patterns

    I’ve long been intrigued by design patterns, but when I started learning them, I realized quickly that I didn’t have a clear learning path. I didn’t know how I should learn design patterns or if it’s the right time for me to learn them.

    So, I sought out to answer some questions: What are the prerequisites for learning design patterns? What material should I use and how do I avoid being scattered? How do I put them into practice?

    This article is a continuation of a previous post where I introduced design patterns and discussed the “what” and the “why” of them. This post aims to give you a curriculum for learning design patterns and resources that have helped me.

    Prerequisites

    @@ -533,4 +533,4 @@

    Resources

  • https://docs.microsoft.com/en-us/azure/architecture/patterns/
  • My introduction to Design Patterns

    -

    I introduce design patterns and discuss the “what” and the “why” of them here.

    \ No newline at end of file +

    I introduce design patterns and discuss the “what” and the “why” of them here.

    \ No newline at end of file diff --git a/design-patterns-intro/index.html b/design-patterns-intro/index.html index 110ddd98..22d56ad0 100644 --- a/design-patterns-intro/index.html +++ b/design-patterns-intro/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

    Introduction to Design Patterns: Why they're worth learning

    As developers, we’re constantly learning - and there’s a lot to learn in general because the tech industry is broad and fast-paced. We want to have all the main bases covered so that we can be ready for any situation. We often hear about design patterns and how they can enable us to write well-architected software using object-oriented programming. If you’re like me, you might file that away as a set of concepts to learn later. I filed them into the “important, but not urgent” (quadrant two of Eisenhower’s matrix) category. Of course, there are many topics to learn that are required for us to do our job. So design patterns might not make it to the top of your priority list - where items like testing, frameworks, CI/CD, or a dozen other things live.

    +

    Introduction to Design Patterns: Why they're worth learning

    As developers, we’re constantly learning - and there’s a lot to learn in general because the tech industry is broad and fast-paced. We want to have all the main bases covered so that we can be ready for any situation. We often hear about design patterns and how they can enable us to write well-architected software using object-oriented programming. If you’re like me, you might file that away as a set of concepts to learn later. I filed them into the “important, but not urgent” (quadrant two of Eisenhower’s matrix) category. Of course, there are many topics to learn that are required for us to do our job. So design patterns might not make it to the top of your priority list - where items like testing, frameworks, CI/CD, or a dozen other things live.

    I was always intrigued by design patterns, but as with learning anything new, I was in the dark about a lot of things. First, I didn’t know why I should learn them. I didn’t know what they are. “Are they best practices, SOLID principles, architecture guides, or what?” I would ask. I don’t know exactly how they can help me (besides simply being familiar). Naturally, I didn’t have a clear learning path - I didn’t know how I should learn them or if it’s the right time for me to learn them. What are the prerequisites? What material should I use and how do I avoid being scattered? How do I put them into practice?

    Now that I’ve spent over a year learning design patterns, I wanted to share my journey and hopefully answer all of the above questions. I went from feeling scattered amongst resources I haphazardly encountered like blog posts and videos, to seeking out some books, and encountering a few patterns at work. When my mentor made a few fantastic recommendations, I was off to the races:

    \ No newline at end of file +

    In my next post, I provide a number of resources that I’ve found helpful while learning and a suggested curriculum.

    \ No newline at end of file diff --git a/git-commit-format-squash/index.html b/git-commit-format-squash/index.html index 2886e0dc..7b2987cb 100644 --- a/git-commit-format-squash/index.html +++ b/git-commit-format-squash/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

    How to format and edit your git commit messages

    When writing commit messages, it’s ideal to make them easy for another developer to read and understand exactly what’s in the commit. Oftentimes, though, we write commit messages quickly just to push a branch at the end of a workday, for instance (I know I’m guilty of this).

    +

    How to format and edit your git commit messages

    When writing commit messages, it’s ideal to make them easy for another developer to read and understand exactly what’s in the commit. Oftentimes, though, we write commit messages quickly just to push a branch at the end of a workday, for instance (I know I’m guilty of this).

    One team member brought the Conventional Commits format to our attention. I’ve enjoyed using it and seeing the results when reviewing pull requests.

    To enforce this pattern, I recommend using this tool: conventional-changelog/commitlint: 📓 Lint commit messages.

    Verbatim from the readme:

    @@ -398,4 +398,4 @@

    Squashing commits

    Want to edit your commit messages before you do a pull request? Squash your commits!

    Here’s my guide on how to do it.

    Related posts

    -

    Using a Code Style Guide to Enforce Team Best Practices

    \ No newline at end of file +

    Using a Code Style Guide to Enforce Team Best Practices

    \ No newline at end of file diff --git a/guide-to-practicing-overcoming-plateaus/index.html b/guide-to-practicing-overcoming-plateaus/index.html index cc059c64..a0ef5819 100644 --- a/guide-to-practicing-overcoming-plateaus/index.html +++ b/guide-to-practicing-overcoming-plateaus/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

    A Guide to Practicing and Overcoming Plateaus

    A long time student of mine recently began learning classical guitar. He had been studying jazz and blues for a number of years. He has a love for latin fingerstyle rhythms. The more lessons we had, the more he realized that he wanted to deepen his technical foundation. I recently told him:

    +

    A Guide to Practicing and Overcoming Plateaus

    A long time student of mine recently began learning classical guitar. He had been studying jazz and blues for a number of years. He has a love for latin fingerstyle rhythms. The more lessons we had, the more he realized that he wanted to deepen his technical foundation. I recently told him:

    “The number of times you’ll reach a plateau is inversely proportional to how deeply you practice.”

    @@ -488,7 +488,7 @@

    Metronome Workout: Working on Problem Areas

    />

    -

    Let’s go back to our theoretical 4 measure piece of music. How fast can you play measures 1 and 2 cleanly? The only way to know for sure is to use a metronome. The metronome is how we turn practicing into a rigorous scientific procedure. Think of it like exercise. Would you work out without keeping track of the weight you can lift? Would you always lift the same 50 lb. weight and never get stronger? Or, worse yet, would you risk injuring yourself by setting the exercise machine to 50 pounds one day, then 80 the next day? You always want to be moving in gradual succession, increasing the weight little by little during your regular lifting sessions. My favorite ways to use a metronome are below:

    +

    Let’s go back to our theoretical 4 measure piece of music. How fast can you play measures 1 and 2 cleanly? The only way to know for sure is to use a metronome. The metronome is how we turn practicing into a rigorous scientific procedure. Think of it like exercise. Would you work out without keeping track of the weight you can lift? Would you always lift the same 50 lb. weight and never get stronger? Or, worse yet, would you risk injuring yourself by setting the exercise machine to 50 pounds one day, then 80 the next day? You always want to be moving in gradual succession, increasing the weight little by little during your regular lifting sessions. My favorite ways to use a metronome are below:

    1. Find the “goal tempo.” What is the actual tempo of the piece of music you’re trying to master? Write this down in your practice log.
    2. Find your “working tempo.” Set the metronome at a medium tempo and adjust it until you find a tempo that you can play some of the piece comfortably. Note this in your practice log (along with anything else you noticed while playing.)
    3. @@ -536,4 +536,4 @@

      More Reading and Inspiration

    4. Jamie Andreas at guitarprinciples.com - Read all that Jamie has to say. Jamie was one of the first people to inspire me to practice better.
    5. The Bulletproof Musician - This has been a great blog for a long time.
    6. Craig Sparks on Practicing - Fellow teacher and musician has these great words to share.
    7. -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/hash-tables-js/index.html b/hash-tables-js/index.html index c39900de..bb9a04f9 100644 --- a/hash-tables-js/index.html +++ b/hash-tables-js/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

    Tackling Hash Table Problems in JavaScript

    Algorithms and data structures can be intimidating. The goal of this post is to explain some approaches to solving hash table algorithm problems providing clear examples with detailed solution explanations. I’m hoping this will help anyone uninitiated alleviate fears and make bigger strides in conquering these challenging problems.

    +

    Tackling Hash Table Problems in JavaScript

    Algorithms and data structures can be intimidating. The goal of this post is to explain some approaches to solving hash table algorithm problems providing clear examples with detailed solution explanations. I’m hoping this will help anyone uninitiated alleviate fears and make bigger strides in conquering these challenging problems.

    Why Hash Tables?

    While attending Fullstack Academy, I participated in an algorithms class taught by alumnus Clément Mihailescu, an employee of Google. I found the class to be enlightening and engaging. (I was also star-struck because he works at Google.) He founded AlgoExpert which is a top-notch platform for practicing interview problems. I highly recommend it for those who are serious about acing their interviews. I was inspired by the power of hash tables after the class and went on a journey to solve as many hash table problems as I could find.

    Hash Tables introduction

    @@ -714,4 +714,4 @@

    Longest Harmonious Subsequence (tagged as ‘Easy’)

    Parting Notes

    I’m no expert at algorithms in general, but I’m definitely enjoying learning about them. The more I learn, the more I’m able to visualize different approaches to problems and begin to optimize my solutions. Please contact me below if you have comments about this article and/or suggestions for improvement.

    -

    This “enrichment piece” was written as a student at Fullstack Academy.

    \ No newline at end of file +

    This “enrichment piece” was written as a student at Fullstack Academy.

    \ No newline at end of file diff --git a/honing-strengths-with-a-student-evaluation/index.html b/honing-strengths-with-a-student-evaluation/index.html index f6960549..29c8542f 100644 --- a/honing-strengths-with-a-student-evaluation/index.html +++ b/honing-strengths-with-a-student-evaluation/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

    Honing Musical Strengths with a Student Evaluation

    From time to time, we can find ourselves stagnating when studying music (or any other topic). To help become immune to this, it’s useful to fully recognize our strengths and acknowledge our weaknesses. Every strength is an opportunity to improve further and if we can acknowledge where we are struggling then we can begin to grow much faster and reach excellence.

    +

    Honing Musical Strengths with a Student Evaluation

    From time to time, we can find ourselves stagnating when studying music (or any other topic). To help become immune to this, it’s useful to fully recognize our strengths and acknowledge our weaknesses. Every strength is an opportunity to improve further and if we can acknowledge where we are struggling then we can begin to grow much faster and reach excellence.

    Ask yourself the following questions. Give yourself a grade (1-10) for each attribute. Teachers may use this as a guide to evaluate students. Take the evaluation here.

    1. Attitude

    Are you enthusiastic? Do you find what you’re learning enjoyable? Do you want to know more? Do you come with preconceptions, expectations, or negative viewpoints from past experiences? If so, what are they?

    @@ -431,4 +431,4 @@

    I keep forgetting!

    Student 8 was very open minded and enjoyed guitar. The issue was that he continually made the same mistakes. We eventually crafted a routine which continually stressed the basics that we’ve gone over and we regularly reviewed pieces that he liked.
    Takeaway: If you find yourself unable to remember certain things, begin each lesson and practice session with a warm-up routine that includes the concepts and pieces that need to be remembered.

    What have you learned about yourself as a student?

    -

    Taking this evaluation has helped me as a musician and teacher in many ways - hopefully it can help you too. You can take the evaluation here and discuss your results with a qualified music instructor at SongMind Studios (instructions in the form). Otherwise, please share your experiences in a comment below!

    \ No newline at end of file +

    Taking this evaluation has helped me as a musician and teacher in many ways - hopefully it can help you too. You can take the evaluation here and discuss your results with a qualified music instructor at SongMind Studios (instructions in the form). Otherwise, please share your experiences in a comment below!

    \ No newline at end of file diff --git a/how-to-squash-commits/index.html b/how-to-squash-commits/index.html index 70eeef99..8817e159 100644 --- a/how-to-squash-commits/index.html +++ b/how-to-squash-commits/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

    How to Squash All Commits Related to a Single Issue into a Single Commit

    Updated Sep 3, 2020

    +

    How to Squash All Commits Related to a Single Issue into a Single Commit

    Updated Sep 3, 2020

    This article outlines how to use the “squash” feature of an interactive git rebase.

    What does “squashing” do?

    It allows you to take changes that are spread amongst multiple commits and consolidate them into one.

    @@ -434,4 +434,4 @@

    Resources

  • Squash All Commits Related to a Single Issue into a Single Commit
  • How to set up Visual Studio Code as your git editor

    -

    https://code.visualstudio.com/docs/editor/versioncontrol#_vs-code-as-git-editor

    \ No newline at end of file +

    https://code.visualstudio.com/docs/editor/versioncontrol#_vs-code-as-git-editor

    \ No newline at end of file diff --git a/index.html b/index.html index 2e90f507..da4e4fb7 100644 --- a/index.html +++ b/index.html @@ -368,4 +368,4 @@ domain: 'scraggo.com' }); woopra.track(); -

    All Posts

    (44)

    Introduction to Design Patterns: Why they're worth learning

    As developers, we’re constantly learning - and there’s a lot to learn in general because the tech industry is broad and fast-paced. We want to have all the main bases covered so that we can be ready for any situation. We often hear about design patterns and how they can enable us to write well-architected software using object-oriented programming. If you’re like me, you might file that away as a…

    Tech Talk - How I'd Improve My Capstone Project

    In February 2020, I returned to my bootcamp to give a tech talk on what I’d do to improve my Capstone project. (I also answer career and other questions from the audience at the end.) Download the slides here (PDF) I’m excited to share what I’ve learned so far from working on enterprise software for almost 2 years. The talk is a deep dive into the codebase that myself and three others worked on…

    Using question-prompter for study, self-reflection, and more

    I recently created a node command line app called question-prompter. It prompts you at your terminal to answer questions that you come up with. After you answer them, it saves them to a or file in a directory of your choosing. Background I find a lot of benefit from regularly checking in with myself. While many authors have written about this kind of reflection, Tim Ferriss comes to mind first…

    Meta Ideas - Generating Creative Content

    I’ve been writing down small music (and other) ideas for over 20 years. I’ve generally struggled to store, organize, and retrieve them effectively. As I was going through my archives recently, it dawned on me that there are two fundamental types of ideas: one is “concrete” and the other is “meta.” A concrete idea is specific and actionable. It may be a chord progression like: A minor for two and a…

    Contributing a New Feature to Open Source: @sindresorhus/is

    This post is a recount of my recent experience contributing to is, a JavaScript open source type checking library. https://github.com/sindresorhus/is https://www.npmjs.com/package/@sindresorhus/is I’ll outline the process from beginning to end: the initial filing of the feature request, implementing the feature, collaborating on the pull request, and getting the feature released. Some of the open…

    Testing immutable js with sinon custom matchers

    Problems with unexpected assertion failures can arise while testing immutablejs with sinon. This post is a brief guide on how to create a custom matcher that will correctly calculate the equivalence between a mock/stub/spy call with an immutable parameter. The way I’ll be making the assertion is with calledWith from sinon-chai (a plugin for chai that helps with making should or expect assertions for sinon mocks). This github issue on sinonjs outlines the problem...

    How to Squash All Commits Related to a Single Issue into a Single Commit

    Updated Sep 3, 2020 This article outlines how to use the “squash” feature of an interactive . What does “squashing” do? It allows you to take changes that are spread amongst multiple commits and consolidate them into one. Why should one consider squashing commits? A clean history makes tracking changes to a large codebase across time much easier. Many commits are small and unimportant in the grand…

    Intro to JavaScript Frameworks Part 1: The Vanilla JavaScript Version of TodoMVC

    The goal of this blog-series is to explain what frameworks do, why they’re used, and demonstrate with examples across many different frameworks. The series is aimed at those familiar with JavaScript syntax, accessing the DOM, functions, and classes (object-oriented programming). Further reading can be found at the bottom of this post. What is a JavaScript Framework? A framework is an imported…

    A 3 Step Process to Organizing Creativity

    It’s difficult to keep track of everything that needs to be done with your musical ideas. If you write with any frequency, these ideas can amass until there are so many that you can’t keep track of them. Your ideas might range from little snippets to near complete works. Here are some things that commonly go wrong for me: I don’t take enough time to think about where an idea needs to go to be…

    \ No newline at end of file +

    All Posts

    (44)

    Introduction to Design Patterns: Why they're worth learning

    As developers, we’re constantly learning - and there’s a lot to learn in general because the tech industry is broad and fast-paced. We want to have all the main bases covered so that we can be ready for any situation. We often hear about design patterns and how they can enable us to write well-architected software using object-oriented programming. If you’re like me, you might file that away as a…

    Tech Talk - How I'd Improve My Capstone Project

    In February 2020, I returned to my bootcamp to give a tech talk on what I’d do to improve my Capstone project. (I also answer career and other questions from the audience at the end.) Download the slides here (PDF) I’m excited to share what I’ve learned so far from working on enterprise software for almost 2 years. The talk is a deep dive into the codebase that myself and three others worked on…

    Using question-prompter for study, self-reflection, and more

    I recently created a node command line app called question-prompter. It prompts you at your terminal to answer questions that you come up with. After you answer them, it saves them to a or file in a directory of your choosing. Background I find a lot of benefit from regularly checking in with myself. While many authors have written about this kind of reflection, Tim Ferriss comes to mind first…

    Meta Ideas - Generating Creative Content

    I’ve been writing down small music (and other) ideas for over 20 years. I’ve generally struggled to store, organize, and retrieve them effectively. As I was going through my archives recently, it dawned on me that there are two fundamental types of ideas: one is “concrete” and the other is “meta.” A concrete idea is specific and actionable. It may be a chord progression like: A minor for two and a…

    Contributing a New Feature to Open Source: @sindresorhus/is

    This post is a recount of my recent experience contributing to is, a JavaScript open source type checking library. https://github.com/sindresorhus/is https://www.npmjs.com/package/@sindresorhus/is I’ll outline the process from beginning to end: the initial filing of the feature request, implementing the feature, collaborating on the pull request, and getting the feature released. Some of the open…

    Testing immutable js with sinon custom matchers

    Problems with unexpected assertion failures can arise while testing immutablejs with sinon. This post is a brief guide on how to create a custom matcher that will correctly calculate the equivalence between a mock/stub/spy call with an immutable parameter. The way I’ll be making the assertion is with calledWith from sinon-chai (a plugin for chai that helps with making should or expect assertions for sinon mocks). This github issue on sinonjs outlines the problem...

    How to Squash All Commits Related to a Single Issue into a Single Commit

    Updated Sep 3, 2020 This article outlines how to use the “squash” feature of an interactive . What does “squashing” do? It allows you to take changes that are spread amongst multiple commits and consolidate them into one. Why should one consider squashing commits? A clean history makes tracking changes to a large codebase across time much easier. Many commits are small and unimportant in the grand…

    Intro to JavaScript Frameworks Part 1: The Vanilla JavaScript Version of TodoMVC

    The goal of this blog-series is to explain what frameworks do, why they’re used, and demonstrate with examples across many different frameworks. The series is aimed at those familiar with JavaScript syntax, accessing the DOM, functions, and classes (object-oriented programming). Further reading can be found at the bottom of this post. What is a JavaScript Framework? A framework is an imported…

    A 3 Step Process to Organizing Creativity

    It’s difficult to keep track of everything that needs to be done with your musical ideas. If you write with any frequency, these ideas can amass until there are so many that you can’t keep track of them. Your ideas might range from little snippets to near complete works. Here are some things that commonly go wrong for me: I don’t take enough time to think about where an idea needs to go to be…

    \ No newline at end of file diff --git a/intro-to-js-frameworks01/index.html b/intro-to-js-frameworks01/index.html index d450f158..7daef117 100644 --- a/intro-to-js-frameworks01/index.html +++ b/intro-to-js-frameworks01/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

    Intro to JavaScript Frameworks Part 1: The Vanilla JavaScript Version of TodoMVC

    The goal of this blog-series is to explain what frameworks do, why they’re used, and demonstrate with examples across many different frameworks. The series is aimed at those familiar with JavaScript syntax, accessing the DOM, functions, and classes (object-oriented programming). [Further reading can be found at the bottom of this post.]

    +

    Intro to JavaScript Frameworks Part 1: The Vanilla JavaScript Version of TodoMVC

    The goal of this blog-series is to explain what frameworks do, why they’re used, and demonstrate with examples across many different frameworks. The series is aimed at those familiar with JavaScript syntax, accessing the DOM, functions, and classes (object-oriented programming). [Further reading can be found at the bottom of this post.]

    What is a JavaScript Framework?

    A framework is an imported codebase that adds structure to your code. The ones that are mentioned frequently these days are React, Vue, Angular, Backbone, Ember, Aurelia, and more. Many of them follow the Model–view–controller / MVC paradigm (while others may only do M, V, or C).

      @@ -477,4 +477,4 @@

      Further Reading

      })(); -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/love-hate-immer-js/index.html b/love-hate-immer-js/index.html index adc31119..9f55a01c 100644 --- a/love-hate-immer-js/index.html +++ b/love-hate-immer-js/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

    My love hate relationship with ImmerJS

    After having used immutable js for a while, discovering ImmerJS was a breath of fresh air. Where immutable js forces you to learn its gigantic API, ImmerJS takes advantage of ES6 Proxies. These allow you to modify a “draft” version of an object as if you’re mutating it, but the draft is actually a copy so you’re not mutating the original! The return of immer’s produce function always returns a perfect clone of the draft. ImmerJS also touts:

    +

    My love hate relationship with ImmerJS

    After having used immutable js for a while, discovering ImmerJS was a breath of fresh air. Where immutable js forces you to learn its gigantic API, ImmerJS takes advantage of ES6 Proxies. These allow you to modify a “draft” version of an object as if you’re mutating it, but the draft is actually a copy so you’re not mutating the original! The return of immer’s produce function always returns a perfect clone of the draft. ImmerJS also touts:

    Winner of the “Breakthrough of the year” React open source award and “Most impactful contribution” JavaScript open source award in 2019.

    Benefits

    @@ -504,4 +504,4 @@

    Spread assignment workaround

    Conclusion

    Be warned: finding workarounds (that aren’t documented) and getting errors related to modifying drafts bring the learning curve of ImmerJS up. I’m not going to peel ImmerJS out of the codebase I’m working on just yet, but I expect to discover more headaches while continuing to use it. I love ImmerJS when it simplifies things, but hate it when it gets in the way.

    Have any thoughts on using immer? Please share them with me!

    -

    Contact me

    \ No newline at end of file +

    Contact me

    \ No newline at end of file diff --git a/marketable-programming-skills/index.html b/marketable-programming-skills/index.html index 718d5adb..4e9df368 100644 --- a/marketable-programming-skills/index.html +++ b/marketable-programming-skills/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

    Marketable Programming Skills

    If you’ve been learning programming on your own, you may have made worked through some books, followed some online tutorials, and made a decent collection of simple apps. At a certain point you may wonder how much else you need to know to be able to start working as a programmer. I’m a self-taught coder with experience in web technologies (JavaScript, HTML, CSS, etc) and Python. Compiling some info from job listings has enlightened me to what’s in demand in my area (Chicago, IL, USA) and in general.

    +

    Marketable Programming Skills

    If you’ve been learning programming on your own, you may have made worked through some books, followed some online tutorials, and made a decent collection of simple apps. At a certain point you may wonder how much else you need to know to be able to start working as a programmer. I’m a self-taught coder with experience in web technologies (JavaScript, HTML, CSS, etc) and Python. Compiling some info from job listings has enlightened me to what’s in demand in my area (Chicago, IL, USA) and in general.

    Python-related Jobs

    1. Bots (read more on Quora)

    If you can automate tasks on the web using Mechanize, Requests, BeautifulSoup, and Selenium, there are many freelance temp jobs as well as part-time and full-time jobs.

    @@ -491,4 +491,4 @@

    MISC Skills Needed

  • Functional Programming: (Scala, Clojure, Ocaml, F#, Erlang, Elixir)
  • Haskell Backend
  • Firebase
  • -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/meta-ideas-generating-creative-content/index.html b/meta-ideas-generating-creative-content/index.html index b2108418..6c946e7f 100644 --- a/meta-ideas-generating-creative-content/index.html +++ b/meta-ideas-generating-creative-content/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

    Meta Ideas - Generating Creative Content

    I’ve been writing down small music (and other) ideas for over 20 years. I’ve generally struggled to store, organize, and retrieve them effectively. As I was going through my archives recently, it dawned on me that there are two fundamental types of ideas: one is “concrete” and the other is “meta.”

    +

    Meta Ideas - Generating Creative Content

    I’ve been writing down small music (and other) ideas for over 20 years. I’ve generally struggled to store, organize, and retrieve them effectively. As I was going through my archives recently, it dawned on me that there are two fundamental types of ideas: one is “concrete” and the other is “meta.”

    A concrete idea is specific and actionable. It may be a chord progression like:

    A minor for two and a half bars, then a G major chord for half a bar. 132 beats per minute, 4/4 time…

    @@ -640,4 +640,4 @@

    Thinking Visually

  • Dan Roam Visual thinking Vivid - YouTube
  • Share your Meta Ideas

    -

    Have any suggestions or ideas of your own? Please contact me.

    \ No newline at end of file +

    Have any suggestions or ideas of your own? Please contact me.

    \ No newline at end of file diff --git a/music/discography/index.html b/music/discography/index.html index 88cf3f7a..13ab0658 100644 --- a/music/discography/index.html +++ b/music/discography/index.html @@ -368,4 +368,4 @@ domain: 'scraggo.com' }); woopra.track(); -

    Why I Support Bandcamp

    Bandcamp is the ideal music-sharing platform for a DIY artist. They take 20% and pay daily and don't require approvals. The bigger platforms take 30-40% and give the artist no control of their music. Read more

    Discography

    scraggo's releases onBandcampSpotifyApple MusicYoutube MusicGoogle PlayAmazon

    • Identity BandcampSpotifyApple MusicYoutube MusicGoogle PlayAmazon
    • Creative Being BandcampSpotifyApple MusicYoutube MusicGoogle PlayAmazon

    Collaborations

    Driven to Clarity's releases onSpotifyApple MusicYoutube MusicGoogle PlayAmazon

    • Heading Out SpotifyApple MusicYoutube MusicGoogle PlayAmazon

    Rapid Dissension's releases onBeatportSpotifyApple MusicYoutube MusicGoogle PlayAmazon

      \ No newline at end of file +

      Why I Support Bandcamp

      Bandcamp is the ideal music-sharing platform for a DIY artist. They take 20% and pay daily and don't require approvals. The bigger platforms take 30-40% and give the artist no control of their music. Read more

      Discography

      scraggo's releases onBandcampSpotifyApple MusicYoutube MusicGoogle PlayAmazon

      • Identity BandcampSpotifyApple MusicYoutube MusicGoogle PlayAmazon
      • Creative Being BandcampSpotifyApple MusicYoutube MusicGoogle PlayAmazon

      Collaborations

      Driven to Clarity's releases onSpotifyApple MusicYoutube MusicGoogle PlayAmazon

      • Heading Out SpotifyApple MusicYoutube MusicGoogle PlayAmazon

      Rapid Dissension's releases onBeatportSpotifyApple MusicYoutube MusicGoogle PlayAmazon

        \ No newline at end of file diff --git a/music/index.html b/music/index.html index a91b85ab..ccc117c3 100644 --- a/music/index.html +++ b/music/index.html @@ -368,4 +368,4 @@ domain: 'scraggo.com' }); woopra.track(); -

        Music Posts

        (11)

        Meta Ideas - Generating Creative Content

        I’ve been writing down small music (and other) ideas for over 20 years. I’ve generally struggled to store, organize, and retrieve them effectively. As I was going through my archives recently, it dawned on me that there are two fundamental types of ideas: one is “concrete” and the other is “meta.” A concrete idea is specific and actionable. It may be a chord progression like: A minor for two and a…

        A 3 Step Process to Organizing Creativity

        It’s difficult to keep track of everything that needs to be done with your musical ideas. If you write with any frequency, these ideas can amass until there are so many that you can’t keep track of them. Your ideas might range from little snippets to near complete works. Here are some things that commonly go wrong for me: I don’t take enough time to think about where an idea needs to go to be…

        \ No newline at end of file +

        Music Posts

        (11)

        Meta Ideas - Generating Creative Content

        I’ve been writing down small music (and other) ideas for over 20 years. I’ve generally struggled to store, organize, and retrieve them effectively. As I was going through my archives recently, it dawned on me that there are two fundamental types of ideas: one is “concrete” and the other is “meta.” A concrete idea is specific and actionable. It may be a chord progression like: A minor for two and a…

        A 3 Step Process to Organizing Creativity

        It’s difficult to keep track of everything that needs to be done with your musical ideas. If you write with any frequency, these ideas can amass until there are so many that you can’t keep track of them. Your ideas might range from little snippets to near complete works. Here are some things that commonly go wrong for me: I don’t take enough time to think about where an idea needs to go to be…

        \ No newline at end of file diff --git a/music/teaching-resources/index.html b/music/teaching-resources/index.html index a0445d5b..7e5788db 100644 --- a/music/teaching-resources/index.html +++ b/music/teaching-resources/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

        Teaching Resources

        +

        Teaching Resources

        In addition to the music blog posts available on this site, below are free and paid resources that contain instructional information on guitar, songwriting, recording, and more.

        Dave's Lessons on mikesmasterclasses.com

        $29.95 each

        @@ -389,4 +389,4 @@

        Category: Guitar - Jazz Repertoire and Improvisation

        So What Beginner Jazz Lesson Miles Davis Dorian Licks We discuss how to play the jazz tune "So What," how to play the D and Eb Dorian modes, and how to improvise within those positions. This incredibly popular YouTube lesson also has an accompanying lesson PDF.

        Beginner Jazz Guitar Basic Shell Chord Voicings using Autumn Leaves In this lesson, using the jazz standard Autumn Leaves, I explore basic shell voicings which are simple on the hands, make jazz tensions possible, and promote mobility across the guitar neck. These are either Root, 3rd, 7th voicings (if the 5th string is the root) or Root, 7th, 3rd voicings (if the 6th string is the root).

        Category: Guitar Warmups

        -

        Guitar Warmup - String Skipping and Stretching This guitar warmup includes the working of all combinations of the 4 left hand fingers, stretches, and inside/outside picking with string skips. It's a doozy - hope you enjoy. It is recommended for intermediate to advanced players.

        \ No newline at end of file +

        Guitar Warmup - String Skipping and Stretching This guitar warmup includes the working of all combinations of the 4 left hand fingers, stretches, and inside/outside picking with string skips. It's a doozy - hope you enjoy. It is recommended for intermediate to advanced players.

        \ No newline at end of file diff --git a/now-attending-fullstack/index.html b/now-attending-fullstack/index.html index 0a34b0c4..349b4284 100644 --- a/now-attending-fullstack/index.html +++ b/now-attending-fullstack/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

        Now Attending: Fullstack Academy

        Why I’m attending Fullstack Academy

        +

        Now Attending: Fullstack Academy

        Why I’m attending Fullstack Academy

        Since discovering a love for guitar and composition in my teens, I decided to pursue a career as a freelance music teacher, composer, recording engineer, and performing guitarist. After a decade of this, I realized that the rockstar dream didn’t suit me and I was tired of chasing it. I’d be happier with a more stable career that challenged me intellectually. I’ve always enjoyed working with technology, so the field of programming piqued my interest.

        My girlfriend encouraged me to start teaching myself the basics of programming to see if I would like it. After a short amount of time doing so, I was surprised to find that I was completely hooked on it (more details to follow). I wanted to make this new career a reality as soon as possible. I began looking into formally studying computer science, coding bootcamps, and other DIY options.

        Bootcamps: The Cons

        @@ -402,4 +402,4 @@

        My background in more detail

        I am a 33 year old professional musician holding degrees in Recording Engineering, Composition, and Jazz Guitar from the Peabody Conservatory. Composing music that blends a number of styles is my musical passion. I’ve played guitar, bass, drums, and sang in thousands of performances with rock, pop, jazz, and classical ensembles. My most recent position was at a private middle/high school in Chicago where I taught web programming, music composition, and recording arts. My proudest achievements to date include releasing a solo album called “Creative Being” and starting a teaching program where students learn music and make an album in the process.

        Since high school, I’ve built many simple websites, but I wanted to know more about programming “for real.” I’ve spent almost 12 months learning on my own and have enjoyed it immensely. I completed the “Introduction to Computer Science and Programming in Python” course offered through MIT OpenCourseWare. I realized how much I enjoyed creating useful programs, working with data structures, and refining code with abstraction to make it more maintainable. I’ve been continuously working to develop my programming skills by sharing what I learn with others and building websites, chrome extensions, and programs using Python, JavaScript, and the command-line.

        More

        -

        This blog post was written as a student of Fullstack Academy.

        \ No newline at end of file +

        This blog post was written as a student of Fullstack Academy.

        \ No newline at end of file diff --git a/offline-plugin-app-shell-fallback/index.html b/offline-plugin-app-shell-fallback/index.html index bc45d691..967a7822 100644 --- a/offline-plugin-app-shell-fallback/index.html +++ b/offline-plugin-app-shell-fallback/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}}
        \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}}
        \ No newline at end of file diff --git a/organizing-creativity-3-step-process/index.html b/organizing-creativity-3-step-process/index.html index 4165c6ba..3e14b297 100644 --- a/organizing-creativity-3-step-process/index.html +++ b/organizing-creativity-3-step-process/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

        A 3 Step Process to Organizing Creativity

        It’s difficult to keep track of everything that needs to be done with your musical ideas. If you write with any frequency, these ideas can amass until there are so many that you can’t keep track of them. Your ideas might range from little snippets to near complete works. Here are some things that commonly go wrong for me:

        +

        A 3 Step Process to Organizing Creativity

        It’s difficult to keep track of everything that needs to be done with your musical ideas. If you write with any frequency, these ideas can amass until there are so many that you can’t keep track of them. Your ideas might range from little snippets to near complete works. Here are some things that commonly go wrong for me:

        1. I don’t take enough time to think about where an idea needs to go to be improved, completed, and fully fleshed out.
        2. I abandon the ideas for months or years, then become unable to find it easily (or at all) if I want to revisit it.
        3. @@ -409,4 +409,4 @@

          3. Idea Refinement and Completion

        4. Get input from musicians you respect if you’re working alone.

        Conclusion

        -

        Composition is a process that everyone discovers and refines for themselves. I hope my suggestions on generating, planning, and refining your ideas are helpful. If you have any thoughts on creativity and productivity, feel free to comment below or join the discussion on our Facebook page!

        \ No newline at end of file +

        Composition is a process that everyone discovers and refines for themselves. I hope my suggestions on generating, planning, and refining your ideas are helpful. If you have any thoughts on creativity and productivity, feel free to comment below or join the discussion on our Facebook page!

        \ No newline at end of file diff --git a/other/index.html b/other/index.html index 5b2a8aa6..6f359aa9 100644 --- a/other/index.html +++ b/other/index.html @@ -368,4 +368,4 @@ domain: 'scraggo.com' }); woopra.track(); - \ No newline at end of file + \ No newline at end of file diff --git a/page-data/app-data.json b/page-data/app-data.json index d3dc217b..c5ab62b7 100644 --- a/page-data/app-data.json +++ b/page-data/app-data.json @@ -1 +1 @@ -{"webpackCompilationHash":"c72656b339826520cbf8"} +{"webpackCompilationHash":"07a1b279d3e5197da2a5"} diff --git a/page-data/building-my-second-brain/page-data.json b/page-data/building-my-second-brain/page-data.json index b54ac4e5..0e0bff12 100644 --- a/page-data/building-my-second-brain/page-data.json +++ b/page-data/building-my-second-brain/page-data.json @@ -1 +1 @@ -{"componentChunkName":"component---src-templates-blog-post-js","path":"/building-my-second-brain/","result":{"data":{"site":{"siteMetadata":{"title":"scraggo.com"}},"markdownRemark":{"id":"970567e6-3f2a-5749-b60e-5fe9bce3ce59","excerpt":"Slides + Video “How I’m building my second brain” video (2022) (YouTube) “How I’m building my second brain” slides (2022) (PDF) Intro Creativity is bound up…","html":"

        Slides + Video

        \n

        “How I’m building my second brain” video (2022) (YouTube)

        \n

        “How I’m building my second brain” slides (2022) (PDF)

        \n

        Intro

        \n

        Creativity is bound up with making connections between disparate ideas.

        \n

        The connections piece is crucial. I know this because of my many failures with knowledge management. I went all in on the Getting Things Done (GTD) productivity system and wound up with a large, messy digital collection. The five stages of the GTD workflow are capture, clarify, organize, reflect, and engage. I captured anything that I could digitize. I clarified with a complex system of tags. I organized by putting things in hierarchies of folders. I reflected by journaling about it all. And inevitably fell short on the engagement piece.

        \n

        (This seems to be a pretty common problem. https://giansegato.com/essays/edutainment-is-not-learning | HN comments.)

        \n

        Having declared bankruptcy on my notes too many times, I knew I needed something different. I discovered the Second Brain concept and got hooked. It helped steer me to abandoning arbitrary collections, nested directory structures, and complicated tagging systems locked in proprietary software. Notes are connected to each other and structure emerges, almost effortlessly.

        \n

        My notes are now in markdown, a plaintext “markup” language that allows headings, bullet points, checkboxes, blockquotes, etc. The document can output as rich text like you see on the web, but it’s readable as is. To connect notes in your second brain you can use standard link syntax or take it up a notch with backlinks - where notes have awareness from where they were linked.

        \n

        By connecting notes in this way, we approach how the brain stores and retrieves knowledge. Building links over time allows us to create a reservoir of connections which have connections, which have connections, which becomes a nice web of digital neurons. To aid the creative process, you can view your linked notes as a knowledge graph like the ones in these images to add fascination to your connection sessions.

        \n

        This is just the tip of the iceberg. If your brain craves more, below is the text for a talk I gave on how I take notes, synthesize ideas, and manage my tasks.

        \n

        What’s a “second brain?”

        \n

        In concept, it’s an external information collection that aids thinking and memory.

        \n

        The way I put this into practice is a collection of markdown notes linked with bi-directional backlinks (notated with double square brackets: [[]])

        \n

        The collection is basically a wiki.

        \n

        The wider concept is Personal Knowledge Management (PKM).

        \n

        I first discovered these ideas through Zettelkasten concepts.

        \n

        Around the net, it’s also known as:

        \n
          \n
        • digital gardening
        • \n
        • life operating system
        • \n
        • “Linking your Thinking”
        • \n
        \n

        See “Resources” below for more info on the related concepts.

        \n

        The problem: One brain is limited

        \n
          \n
        • Juggling projects
        • \n
        • Learning something new can be intimidating
        • \n
        • Disparate sources: Slack, emails, bookmarks, notes, etc
        • \n
        • Googling repeatedly (but…sites go down)
        • \n
        • Are we able to make notes and discover them without too much friction?
        • \n
        \n

        Second brain benefits

        \n
          \n
        • Solidify knowledge
        • \n
        • Readily search and share ideas
        • \n
        • Consolidate and reduce clutter (collector’s fallacy)
        • \n
        • Structure emerges from links within notes, not directories
        • \n
        \n

        What are Backlinks?

        \n

        Weblinks are uni-directional - the destination has no knowledge of the source that linked to it. Backlinks are bi-directional - the destination links back to all of its sources.

        \n

        backlink syntax: [[link-to-note]] (note that we omit the .md file extension.)

        \n

        Demo - The practice of building a second brain

        \n

        1. Taking notes on https://blog.appsignal.com/2021/09/01/best-practices-for-logging-in-nodejs.html

        \n
          \n
        • Copying content from browser documents into a google doc to retain formatting
        • \n
        • Docs to Markdown: convert formatted text to markdown in Google Docs
        • \n
        • Paste markdown into your notes collection
        • \n
        • Give it a unique filename like node-logging-best-practices-isiah.md
        • \n
        \n

        2. Putting link to above notes into a reference schema, aka “Map of Content”

        \n

        My dev notes schema:

        \n
        - Bash\n  - [[bash-notes]]\n- CSS\n  - [[css-grid]]\n- Docker\n  - [[docker-notes]]\n- JavaScript\n  - [[node-notes]]\n  - [[react-notes]]\n- ... etc
        \n

        Since I have a lot of notes on node, I’ll put it in the node-notes.md file:

        \n
        Node notes:\n\n- [[node-logging-best-practices-isiah]]\n- [[node-log-object]]\n- ... etc
        \n

        3. Writing: linking original writings to reference material

        \n

        filename: logging-best-practices-dec.md

        \n
        What I've learned about logging\n\nCombining [[node-logging-best-practices-isaiah]] with [[logging-best-practices-uhrig]]\n\n- experiences with lambdas\n- experiences with chat-bot and sumo\n- [[node-log-object]]\n\n220607
        \n

        4. Task management: Todo list that links to project docs with original writings

        \n

        filename: 0-this-week-todo.md

        \n
        # This week todo\n\n## Sprint work\n\n[[JIRA-1234-upgrade-all-the-things]]\n\n## Else\n\nDon't forget -> [[0-backlog]]\n\n@! Respond to email\n\nRespond to slack message\n\nWrite [[logging-best-practices-dec]]\n\nPrepare slides\n\nPost meeting notes\n\n## Done\n\nx 2022-03-01 Thing I got done
        \n

        filename: 0-backlog.md

        \n
        # Todo backlog\n\nWorking group\n\nProfessional dev:\n- Learn x\n- Learn y
        \n

        filename: JIRA-1234-upgrade-all-the-things.md

        \n
        # Title\n\nHere are some very interesting notes
        \n

        Parting thoughts

        \n

        Experiment to find your way

        \n
          \n
        • Learn: research / collect information and organize it in a way that’s relevant to you
        • \n
        • Create: synthesize your collected knowledge into original writings
        • \n
        • Manage: keep track of work in progress, increase productivity
        • \n
        \n

        Make a habit of connecting as much as you can

        \n
          \n
        • creative synthesis: new ideas form effortlessly from linked ideas
        • \n
        \n

        Compound growth

        \n
          \n
        • In ~6 months, work/personal second brains: 870 backlinks in 226 files. >50 article highlights, ~12 book takeaways, weekly micro-blogging
        • \n
        \n

        Resources

        \n

        Methodology

        \n

        Zettelkasten, Linking Your Thinking, and Nick Milo’s Search for Ground | The Daily Pony

        \n\n

        Introduction to the Zettelkasten Method

        \n\n

        The PARA Method: A Universal System for Organizing Digital Information - Forte Labs

        \n

        How to Manage Your Digital Files: 9 Tips and Tools to Keep You Organized see The Noguchi Filing System

        \n

        Tools

        \n\n

        “VS Code - flavored” second brain:

        \n\n

        Example sites:

        \n\n

        Knowledge site generators:

        \n","fields":{"slug":"/building-my-second-brain/"},"frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"June 01, 2023","description":null,"tags":["productivity","tech talk"],"title":"How I'm Building My Second Brain"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"slug":"/building-my-second-brain/","previous":{"fields":{"slug":"/2022-12-05-random-music-generators-news/"},"frontmatter":{"tags":["random music generators"],"title":"Random Music Generators is now hosted on render.com","type":"post"}},"next":null}}} \ No newline at end of file +{"componentChunkName":"component---src-templates-blog-post-js","path":"/building-my-second-brain/","result":{"data":{"site":{"siteMetadata":{"title":"scraggo.com"}},"markdownRemark":{"id":"970567e6-3f2a-5749-b60e-5fe9bce3ce59","excerpt":"Slides + Video “How I’m building my second brain” video (2022) (YouTube) “How I’m building my second brain” slides (2022) (PDF) Intro Creativity is bound up…","html":"

        Slides + Video

        \n

        “How I’m building my second brain” video (2022) (YouTube)

        \n

        “How I’m building my second brain” slides (2022) (PDF)

        \n

        Intro

        \n

        Creativity is bound up with making connections between disparate ideas. The connections piece is crucial - personal knowledge management falls apart without it.

        \n

        Long ago, I treated the Getting Things Done (GTD) productivity system as gospel. The way I used it, though, resulted in a large, messy collection of digital notes in Evernote. The five stages of the GTD workflow are capture, clarify, organize, reflect, and engage. I captured anything that I could digitize. I clarified with a complex system of tags. I organized by putting things in hierarchies of folders. I reflected by creating journal entries during weekly reviews. And ultimately fell short on the engagement piece.

        \n

        Having declared bankruptcy on my notes too many times, I knew I needed something different. I discovered the Second Brain concept and got hooked. I clearly saw the pitfalls inherent in my old system. I stopped creating arbitrary collections in single files. I abandoned rigid hierarchical directory structures and complicated tagging systems. (I also migrated out of Evernote - vendor lock-in being one of many reasons.) With my shiny, new second-brain notes collection, notes connect to each other and structure emerges, almost effortlessly.

        \n

        My notes are now in markdown, a plaintext “markup” language that allows headings, bullet points, checkboxes, blockquotes, etc. The document can output as rich text like you see on the web, but it’s readable as is. To connect notes in your second brain you can use standard link syntax or take it up a notch with backlinks - where notes have an automatic awareness of any notes that are linked to it.

        \n

        By connecting notes in this way, we approach how the brain stores and retrieves knowledge. Building links over time allows us to create a reservoir of connections which have connections, which have connections, which becomes a nice web of digital neurons. To aid the creative process, you can view your linked notes as a knowledge graph like the ones in these images to add fascination to your connection sessions.

        \n

        This is just the tip of the iceberg. If your brain craves more, below is the text for a talk I gave on how I take notes, synthesize ideas, and manage my tasks.

        \n\n

        What’s a “second brain?”

        \n

        In concept, it’s an external information collection that aids thinking and memory.

        \n

        The way I put this into practice is a collection of markdown notes linked with bi-directional backlinks (notated with double square brackets: [[]])

        \n

        The collection is basically a wiki.

        \n

        The wider concept is Personal Knowledge Management (PKM).

        \n

        I first discovered these ideas through Zettelkasten concepts.

        \n

        Around the net, it’s also known as:

        \n
          \n
        • digital gardening
        • \n
        • life operating system
        • \n
        • “Linking your Thinking”
        • \n
        \n

        See “Resources” below for more info on the related concepts.

        \n

        The problem: One brain is limited

        \n
          \n
        • We usually have multiple projects to juggle
        • \n
        • Learning something new can be intimidating
        • \n
        • Info comes from many disparate sources: Slack, emails, bookmarks, notes, etc
        • \n
        • We can’t just Google repeatedly or save bookmarks (sites go down, etc)
        • \n
        \n

        The key to the solution is being able to make and discover notes without too much friction.

        \n

        Second brain benefits

        \n
          \n
        • Solidify knowledge
        • \n
        • Readily search and share ideas
        • \n
        • Consolidate and reduce clutter (collector’s fallacy)
        • \n
        • Structure emerges from links within notes, not directories
        • \n
        \n

        What are Backlinks?

        \n

        Weblinks are uni-directional - the destination has no knowledge of the source that linked to it. Backlinks are bi-directional - the destination links back to all of its sources.

        \n

        backlink syntax: [[link-to-note]] (note that we omit the .md file extension.)

        \n

        Demo - The practice of building a second brain

        \n

        1. Taking notes on https://blog.appsignal.com/2021/09/01/best-practices-for-logging-in-nodejs.html

        \n
          \n
        • Copying content from browser documents into a google doc to retain formatting
        • \n
        • Docs to Markdown: convert formatted text to markdown in Google Docs
        • \n
        • Paste markdown into your notes collection
        • \n
        • Give it a unique filename like node-logging-best-practices-isiah.md
        • \n
        \n

        2. Putting link to above notes into a reference schema, aka “Map of Content”

        \n

        My dev notes schema:

        \n
        - Bash\n  - [[bash-notes]]\n- CSS\n  - [[css-grid]]\n- Docker\n  - [[docker-notes]]\n- JavaScript\n  - [[node-notes]]\n  - [[react-notes]]\n- ... etc
        \n

        Since I have a lot of notes on node, I’ll put it in the node-notes.md file:

        \n
        Node notes:\n\n- [[node-logging-best-practices-isiah]]\n- [[node-log-object]]\n- ... etc
        \n

        3. Writing: linking original writings to reference material

        \n

        filename: logging-best-practices-dec.md

        \n
        What I've learned about logging\n\nCombining [[node-logging-best-practices-isaiah]] with [[logging-best-practices-uhrig]]\n\n- experiences with lambdas\n- experiences with chat-bot and sumo\n- [[node-log-object]]\n\n220607
        \n

        4. Task management: Todo list that links to project docs with original writings

        \n

        filename: 0-this-week-todo.md

        \n
        # This week todo\n\n## Sprint work\n\n[[JIRA-1234-upgrade-all-the-things]]\n\n## Else\n\nDon't forget -> [[0-backlog]]\n\n@! Respond to email\n\nRespond to slack message\n\nWrite [[logging-best-practices-dec]]\n\nPrepare slides\n\nPost meeting notes\n\n## Done\n\nx 2022-03-01 Thing I got done
        \n

        filename: 0-backlog.md

        \n
        # Todo backlog\n\nWorking group\n\nProfessional dev:\n- Learn x\n- Learn y
        \n

        filename: JIRA-1234-upgrade-all-the-things.md

        \n
        # Title\n\nHere are some very interesting notes
        \n

        Parting thoughts

        \n

        Experiment to find your way

        \n
          \n
        • Learn: research / collect information and organize it in a way that’s relevant to you
        • \n
        • Create: synthesize your collected knowledge into original writings
        • \n
        • Manage: keep track of work in progress, increase productivity
        • \n
        \n

        Make a habit of connecting as much as you can

        \n
          \n
        • creative synthesis: new ideas form effortlessly from linked ideas
        • \n
        \n

        Compound growth

        \n
          \n
        • In ~6 months, work/personal second brains: 870 backlinks in 226 files. >50 article highlights, ~12 book takeaways, weekly micro-blogging
        • \n
        \n

        Resources

        \n

        Methodology

        \n

        Building a Second Brain: The Definitive Introductory Guide | Forte Labs

        \n

        Zettelkasten, Linking Your Thinking, and Nick Milo’s Search for Ground | The Daily Pony

        \n\n

        Introduction to the Zettelkasten Method | zettelkasten.de

        \n

        Tools

        \n\n

        “VS Code - flavored” second brain:

        \n\n

        Example sites:

        \n\n

        Knowledge site generators:

        \n\n

        Related

        \n\n

        Forte Labs

        \n\n

        How to Manage Your Digital Files: 9 Tips and Tools to Keep You Organized see The Noguchi Filing System

        ","fields":{"slug":"/building-my-second-brain/"},"frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"June 01, 2023","description":null,"tags":["productivity","tech talk"],"title":"How I'm Building My Second Brain"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"slug":"/building-my-second-brain/","previous":{"fields":{"slug":"/2022-12-05-random-music-generators-news/"},"frontmatter":{"tags":["random music generators"],"title":"Random Music Generators is now hosted on render.com","type":"post"}},"next":null}}} \ No newline at end of file diff --git a/page-data/guide-to-practicing-overcoming-plateaus/page-data.json b/page-data/guide-to-practicing-overcoming-plateaus/page-data.json index c97f60b7..ddf7cd75 100644 --- a/page-data/guide-to-practicing-overcoming-plateaus/page-data.json +++ b/page-data/guide-to-practicing-overcoming-plateaus/page-data.json @@ -1 +1 @@ -{"componentChunkName":"component---src-templates-blog-post-js","path":"/guide-to-practicing-overcoming-plateaus/","result":{"data":{"site":{"siteMetadata":{"title":"scraggo.com"}},"markdownRemark":{"id":"a2bde957-6eed-524d-afe6-19d226d89c33","excerpt":"A long time student of mine recently began learning classical guitar. He had been studying jazz and blues for a number of years. He has a love for latin…","html":"

        A long time student of mine recently began learning classical guitar. He had been studying jazz and blues for a number of years. He has a love for latin fingerstyle rhythms. The more lessons we had, the more he realized that he wanted to deepen his technical foundation. I recently told him:

        \n
        \n

        “The number of times you’ll reach a plateau is inversely proportional to how deeply you practice.”

        \n
        \n

        In other words, steady progress comes with very slow practice and attention to very small details. In this article, we’ll be going into how to deepen your practice and overcome your plateaus for good.

        \n

        Practice What Needs to Be Practiced

        \n

        There’s “playing” guitar and there’s “practicing” guitar.

        \n

        Playing is simply loving the experience of playing and living in the moment.

        \n

        Practicing is finding the areas where you’re weak and relentlessly focusing on them until you make improvements.

        \n

        We need both the enjoyment, creativity, and musical satisfaction of playing the guitar and the discipline good practice habits to grow as a musician (and ultimately enjoy playing even more!)

        \n

        The first error of practicing is playing what you’re good at and hoping the spots that need work will get better on their own, without too much conscious effort. If you have a teacher, he or she will tell you what spots need to be practiced. If you’re a good student, you’ll work on those spots much more often than the other spots! (Have you been only playing the “fun” parts?) Don’t have a teacher? Record yourself and diagnose your own playing. It won’t be easy at first, but with time, you’ll be able to zero-in on your problem areas.

        \n

        Write Your Music, Mark it, and Use a Practice Log

        \n

        \n \n \n \n \n

        \n

        It’s helpful to have a printed piece of sheet music in front of you while practicing. If you don’t, it will benefit you in many ways to write it down in TAB, chord sheet, or standard notation. Begin marking the music by identifying the overall structure of the piece and phrases that are found in multiple places. Then, circle the areas that give you difficulty. You’ll then be marking the music with technique reminders, including:

        \n
          \n
        • circled notes
        • \n
        • left and right hand fingerings
        • \n
        • picking directions
        • \n
        • string numbers
        • \n
        • note letter names
        • \n
        • TAB
        • \n
        • and anything else on the page that will assist with technique.
        • \n
        \n

        \n \n \n \n \n

        \n

        It’s helpful to have a printed piece of sheet music in front of you while practicing. If you don’t, it will benefit you in many ways to write it down in TAB, chord sheet, or standard notation. Begin marking the music by identifying the overall structure of the piece and phrases that are found in multiple places. Then, circle the areas that give you difficulty. You’ll then be marking the music with technique reminders, including:

        \n
          \n
        • circled notes
        • \n
        • left and right hand fingerings
        • \n
        • picking directions
        • \n
        • string numbers
        • \n
        • note letter names
        • \n
        • TAB
        • \n
        • and anything else on the page that will assist with technique.
        • \n
        \n

        \n \n

        How to ace your initial programming job screen

        +

        How to ace your initial programming job screen

        Your resume and cover letter surely made a positive impact, but the most important evaluation has yet to come.

        If you’re searching for your first software development job, the process can be daunting. You may have heard that after sending your resume to a company, there’s an initial screen. This is usually done over the phone, but sometimes it happens in-person. Your resume and cover letter (the first impression) surely made a positive impact, but the most important evaluation has yet to come: making a human connection with a company recruiter. They’ll be mentally noting how you speak, your confidence level, how passionate you are, and much more.

        @@ -490,4 +490,4 @@

        When the travel and client interaction weren’t right

        Wrap up

        Having gone through all of these phone screens has been a valuable experience. From these, I’ve been made multiple offers and have now worked full-time with two companies. I’m also able to more easily see early indicators of fit. I’ll ask these questions to myself right away:

        Do I feel confident about my technical knowledge and experience? Am I excited about the company’s culture and products? Is the phone interview going in such a way that I don’t get the impression that I’m being negatively judged? Possibly most importantly, do I feel like the company will value my contributions and pay me a fair rate?

        -

        I realize now that all my “mistakes” during phone screens were all part of learning how to navigate this industry. Sure, I could’ve had better answers. Sure, I could’ve been more targeted about what I was looking for. But sometimes you just have to “go for it” and see what sticks.

        \ No newline at end of file +

        I realize now that all my “mistakes” during phone screens were all part of learning how to navigate this industry. Sure, I could’ve had better answers. Sure, I could’ve been more targeted about what I was looking for. But sometimes you just have to “go for it” and see what sticks.

        \ No newline at end of file diff --git a/preparing-demo-for-studio/index.html b/preparing-demo-for-studio/index.html index 8c48265d..feb94653 100644 --- a/preparing-demo-for-studio/index.html +++ b/preparing-demo-for-studio/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

        Preparing Your Song Demo for the Studio

        We songwriters put a lot of work into our songs.

        +

        Preparing Your Song Demo for the Studio

        We songwriters put a lot of work into our songs.

        Putting together interesting chord voicings, refining our lyrics to perfection, and getting the form ‘just right’ can take a lot of effort, but be very gratifying. When your song is finally finished, you might want to make the investment of bringing it to a studio with a band to lay down all of the parts.

        A Final Note />

        -

        We hope this helps! Leave a comment to let us know how you prepare your demos for recording sessions.

        \ No newline at end of file +

        We hope this helps! Leave a comment to let us know how you prepare your demos for recording sessions.

        \ No newline at end of file diff --git a/programming-with-more-ease/index.html b/programming-with-more-ease/index.html index bbecc4d7..cd6ee595 100644 --- a/programming-with-more-ease/index.html +++ b/programming-with-more-ease/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

        Programming with more ease

        As professional programmers, the bulk of what we do is solving problems.

        +

        Programming with more ease

        As professional programmers, the bulk of what we do is solving problems.

        A lot of the time, I’m motivated by problem-solving challenges. But sometimes I hit a wall. A given challenge can become a problem that I’m frustratingly unable to solve.

        Often, this frustration would spiral into a worse mental state. I’d imagine the problem as a scary, overwhelming, difficult to defeat monster - more difficult than it really is. I’d put a lot of pressure on myself. ”Solving problems is my job”, after all.

        You can probably see that this state of mind that isn’t conducive to problem solving.

        @@ -454,4 +454,4 @@

        Resources

      • Socratic method - Wikipedia
      • How Do Work Breaks Help Your Brain? 5 Surprising Answers | Psychology Today
      • To Become a Better Writer, Be a Frequent Walker | Psychology Today
      • -
        \ No newline at end of file +
        \ No newline at end of file diff --git a/python-classes-guess-the-number/index.html b/python-classes-guess-the-number/index.html index 3d8f87ee..8c455705 100644 --- a/python-classes-guess-the-number/index.html +++ b/python-classes-guess-the-number/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

        Using a Class in Python as a Code Wrapper for a Simple Game

        Object-oriented design is a powerful programming paradigm that can be intimidating to anyone trying to learn how to use it. I worked through a number of excellent tutorials and books on the subject, but struggled to apply the concepts to my own code. I decided to convert a working program that didn’t use OOP and wrap it in a single class.

        +

        Using a Class in Python as a Code Wrapper for a Simple Game

        Object-oriented design is a powerful programming paradigm that can be intimidating to anyone trying to learn how to use it. I worked through a number of excellent tutorials and books on the subject, but struggled to apply the concepts to my own code. I decided to convert a working program that didn’t use OOP and wrap it in a single class.

        The program I chose was Guess the Number written by Al Sweigart for his book Invent Your Own Computer Games with Python. This book is an excellent way to learn Python 3 (and also a fun way!)

        After you’ve looked at the code, you’ll notice that the game doesn’t include any options. It runs only once. There are no functions, only global variables. It does well for its purpose as a program that teaches beginning concepts, but it’s not extendable as-is. You could certainly wrap it all in a single “main” function, then wrap that function in a while loop, and that would solve a few problems, but I wanted to go beyond those simple additions.

        The full code for the class-extended program is here. Below, I will explain the additions and changes from adding object-orientation.

        @@ -469,4 +469,4 @@

        More Resources on OOP in Python

      • Python OOP - Deck of Cards - YouTube
      • Python’s Program to demonstrate the use of Class, Object and Module
      • Coder’s Apprentice - see OOP chapters
      • -
        \ No newline at end of file +
        \ No newline at end of file diff --git a/reading-list/index.html b/reading-list/index.html index c7a5d8a4..424ef483 100644 --- a/reading-list/index.html +++ b/reading-list/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

        My favorite books and essays (most recently read listed first)

        +

        My favorite books and essays (most recently read listed first)

        Check out these reading lists for more ideas on what to read next: Derek Sivers, Ryan Holiday, James Clear

        -
        Filter by:
        Lean principles applied to business and life. "Fix what bugs you." Free download.
        Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones - by James Clear
        Goals are useful for setting a direction, but systems are best for making progress. Author link
        The central premise is that if you think better (by examining and cognitive distortions with more accurate thoughts), you'll feel better. A seminal work of Cognitive Therapy.
        Learn how to generate, recognize, voice, and champion original ideas. Better manage your emotional states, spark ideas in a team, and nurture originality.
        Quiet: The Power of Introverts in a World That Can't Stop Talking - by Susan Cain
        Quiet is an antidote for society's fixation with sociability and extroversion. The book takes a tour through the wide-ranging research on introversion, demonstrating its underestimated upside – and how we need to adapt to take advantage of it.
        Think Like a Rocket Scientist: Simple Strategies You Can Use to Make Giant Leaps in Work and Life - by Ozan Varol
        Through engaging stories to illustrate key concepts, Varol shares how to Launch, Accelerate, and Achieve. In Launch, we explore the topics of embracing uncertainty, reasoning from first principles, and thinking creatively. In Accelerate, we consider how we can improve our approach to problem solving. In Achieve, we learn how to respond to the flip-side outcomes of failure and success. Author link Notes
        Being Peace - by Thich Nhat Hanh
        This book shows how our state of mind and body can make the world a peaceful place. We learn to transform the very situations that pressure and antagonize us into opportunities for practicing mindfulness.
        Breath: The New Science of a Lost Art - by James Nestor
        This book is filled with great tips, exercises, and anecdotes. Breathing exclusively through my nose has been a game-changer for sleep, singing, and more. Author link
        Essays - by Dean Schlecht
        In addition to the essays, this psychotherapist provides meditation audio files that put your "active imagination" (a concept accredited to Carl Jung) to use. Author link
        It's Not Always Depression: Working the Change Triangle to Listen to the Body, Discover Core Emotions, and Connect to Your Authentic Self - by Hilary Jacobs Hendel
        The author teaches the "Change Triangle" methodology for processing emotions, calming, etc. Author link
        Man's Search for Meaning - by Victor Frankl
        In Man’s Search for Meaning, Viktor Frankl tells his story of surviving a concentration camp and how this experience led to his theory on the importance of meaning in one’s life (Logotherapy). You can find meaning in work (by doing something significant), in love (by caring for another person), and in courage during difficult times. Notes
        The Surrender Experiment: My Journey into Life's Perfection - by Michael Singer
        A much needed perspective shift. Why expecting reality to conform to your desires is a guaranteed path to disappointment. Instead, saying yes to opportunities presented to you and learning to be neutral (or even happy) about events you normally would be displeased with. Author is very much into meditation and being in touch with your higher mind / deeper self. Author link
        The Big Leap - by Gay Hendricks
        Find your Zone of Genius. Conquer your self-imposed Upper Limits.
        is a massive compendium of everything Tim Ferriss has learned about health, wealth and wisdom from interviewing over 200 world-class performers on his podcast, The Tim Ferriss show. All about Tim Ferriss
        Habit 1: Be Proactive. Habit 2: Begin With the End in Mind. Habit 3: Put First Things First. Habit 4: Think Win-Win. Habit 5: Seek First to Understand, Then to Be Understood. Habit 6: Synergize. Habit 7: Sharpen the Saw. Author link
        Eastern Body, Western Mind - by Anodea Judith
        Effortless Mastery - by Kenny Werner
        Through the use of humor and nearly 400 drawings, charts, and diagrams, serious philosophical topics come alive for the reader without compromising the importance of the subject matter.
        Outliers: The Story of Success - by Malcolm Gladwell
        The Advancing Guitarist - by Mick Goodrick
        The Four Agreements: A Practical Guide to Personal Freedom (A Toltec Wisdom Book) - by Don Miguel Ruiz
        The Music Lesson - by Victor Wooten
        The Tipping Point - by Malcolm Gladwell
        The War of Art - by Steven Pressfield
        The Way of Zen - by Alan Watts
        Zen Guitar - by Philip Toshio Sudo
        Lovely and very quotable. May transform how you approach guitar and music.
        Everyday decisions have become increasingly complex due to the overwhelming abundance of choice with which we are presented. TED Talk
        Astrophysics for People in a Hurry - by Neil deGrasse Tyson
        Creative Quest - by Questlove
        Using examples from scientific studies and his Mindfulness-Based Stress Reduction program, the author motivates us to engage in formal and informal meditation practices. These include sitting, scanning our bodies, gentle yoga, walking, and examining the stressors in our lives through the lens of wholeness.
        Detox Your Thoughts: Quit Negative Self-Talk for Good and Discover the Life You've Always Wanted - by Andrea Bonior
        Heart Breath Mind: Train Your Heart to Conquer Stress and Achieve Success - by Dr. Leah Lagos
        10-week program to improve overall body functioning and reduce stress. This includes increasing heart rate variability (HRV), finding your resonant breathing frequency, and using exercises to reliably work through challenging emotions. Author link Notes
        Hitchhiker's Guide to the Galaxy - by Douglas Adams
        Life Loves You: 7 Spiritual Practices to Heal Your Life - by Robert Holden and Louise Hay
        Adult Children of Emotionally Immature Parents: How to Heal from Distant, Rejecting, or Self-Involved Parents - by Lindsay C. Gibson
        Focusing - by Eugene Gendlin
        In the same vein as It’s Not Always Depression. I really like the terminology the author uses. Author link
        Can’t Hurt Me - by David Goggins
        Daring Greatly - by Brene Brown
        This strongly worded opinion piece is organized into two parts. The first part, "Lamentation", criticizes the way mathematics is typically taught in American schools and argues for an aesthetic, intuitive, and problem-oriented approach to teaching. The second part, "Exultation", gives specific examples of how to teach mathematics as an art. PDF
        The Art of Learning: An Inner Journey to Optimal Performance - by Josh Waitzkin
        Nice way to learn Python and programming. Free download.
        The Desire Map - by Danielle LaPorte
        The Story of Philosophy: The Lives and Opinions of the World's Greatest Philosophers - by Will Durant
        You Are a Badass: How to Stop Doubting Your Greatness and Start Living an Awesome Life - by Jen Sincero
        Drop Dead Healthy: One Man's Humble Quest for Bodily Perfection - by A. J. Jacobs
        Lean" strategy as demonstrated by the practices and success of the Toyota car company.
        You Can Heal Your Life - by Louise Hay
        All You Need to Know About the Music Business - by Donald S. Passman
        As a Man Thinketh - by James Allen
        Conversations with God - by Neale Donald Walsch
        Getting Things Done - by David Allen
        Introducing Jung - by Maggie Hyde, Michael McGuinness, Richard Appignanesi
        Music and the Mind - by Anthony Storr
        Narcissus and Goldmund - by Hermann Hesse
        Neuro-linguistic Programming for Dummies - by Romilla Ready and Kate Burton
        Rational Mysticism: Spirituality Meets Science in the Search for Enlightenment - by John Horgan
        Siddhartha - by Hermann Hesse
        The 4 Hour Body: An Uncommon Guide to Rapid Fat Loss, Incredible Sex and Becoming Superhuman - by Tim Ferriss
        The 4-Hour Workweek: Escape 9-5, Live Anywhere, and Join the New Rich - by Tim Ferriss
        The Meaning of Dreams - by Calvin Hall
        The Power of Habit - by Charles Duhigg
        The Power of Now: A Guide to Spiritual Enlightenment - by Eckhart Tolle
        The Prophet - by Kahlil Gibran
        The Selfish Gene - by Richard Dawkins
        The Tao of Physics: An Exploration of the Parallels between Modern Physics and Eastern Mysticism - by Fritjof Capra
        Think Better: An Innovator's Guide to Productive Thinking - by Tim Hurson
        Favorite chapter is on Divergent Thinking Tim Hurson talks about Productive Thinking | YouTube
        This is Your Brain on Music - by Daniel J. Levitin
        Thus Spoke Zarathustra - by Friederich Nietzsche
        Why Beauty Is Truth: The History of Symmetry - by Ian Stewart
        Guitar Technique - by Hector Quine
        Your job is not to be a fire-killer. Your job is to be a fire-prevention specialist. Stop expending energy in the constant repair of the bad results that have been produced by your unseen and therefore unmanaged systems. Instead, spend your days observing and then managing the systems that are creating the results. Author link
        \ No newline at end of file +
        Filter by:
        Lean principles applied to business and life. "Fix what bugs you." Free download.
        Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones - by James Clear
        Goals are useful for setting a direction, but systems are best for making progress. Author link
        The central premise is that if you think better (by examining and cognitive distortions with more accurate thoughts), you'll feel better. A seminal work of Cognitive Therapy.
        Learn how to generate, recognize, voice, and champion original ideas. Better manage your emotional states, spark ideas in a team, and nurture originality.
        Quiet: The Power of Introverts in a World That Can't Stop Talking - by Susan Cain
        Quiet is an antidote for society's fixation with sociability and extroversion. The book takes a tour through the wide-ranging research on introversion, demonstrating its underestimated upside – and how we need to adapt to take advantage of it.
        Think Like a Rocket Scientist: Simple Strategies You Can Use to Make Giant Leaps in Work and Life - by Ozan Varol
        Through engaging stories to illustrate key concepts, Varol shares how to Launch, Accelerate, and Achieve. In Launch, we explore the topics of embracing uncertainty, reasoning from first principles, and thinking creatively. In Accelerate, we consider how we can improve our approach to problem solving. In Achieve, we learn how to respond to the flip-side outcomes of failure and success. Author link Notes
        Being Peace - by Thich Nhat Hanh
        This book shows how our state of mind and body can make the world a peaceful place. We learn to transform the very situations that pressure and antagonize us into opportunities for practicing mindfulness.
        Breath: The New Science of a Lost Art - by James Nestor
        This book is filled with great tips, exercises, and anecdotes. Breathing exclusively through my nose has been a game-changer for sleep, singing, and more. Author link
        Essays - by Dean Schlecht
        In addition to the essays, this psychotherapist provides meditation audio files that put your "active imagination" (a concept accredited to Carl Jung) to use. Author link
        It's Not Always Depression: Working the Change Triangle to Listen to the Body, Discover Core Emotions, and Connect to Your Authentic Self - by Hilary Jacobs Hendel
        The author teaches the "Change Triangle" methodology for processing emotions, calming, etc. Author link
        Man's Search for Meaning - by Victor Frankl
        In Man’s Search for Meaning, Viktor Frankl tells his story of surviving a concentration camp and how this experience led to his theory on the importance of meaning in one’s life (Logotherapy). You can find meaning in work (by doing something significant), in love (by caring for another person), and in courage during difficult times. Notes
        The Surrender Experiment: My Journey into Life's Perfection - by Michael Singer
        A much needed perspective shift. Why expecting reality to conform to your desires is a guaranteed path to disappointment. Instead, saying yes to opportunities presented to you and learning to be neutral (or even happy) about events you normally would be displeased with. Author is very much into meditation and being in touch with your higher mind / deeper self. Author link
        The Big Leap - by Gay Hendricks
        Find your Zone of Genius. Conquer your self-imposed Upper Limits.
        is a massive compendium of everything Tim Ferriss has learned about health, wealth and wisdom from interviewing over 200 world-class performers on his podcast, The Tim Ferriss show. All about Tim Ferriss
        Habit 1: Be Proactive. Habit 2: Begin With the End in Mind. Habit 3: Put First Things First. Habit 4: Think Win-Win. Habit 5: Seek First to Understand, Then to Be Understood. Habit 6: Synergize. Habit 7: Sharpen the Saw. Author link
        Eastern Body, Western Mind - by Anodea Judith
        Effortless Mastery - by Kenny Werner
        Through the use of humor and nearly 400 drawings, charts, and diagrams, serious philosophical topics come alive for the reader without compromising the importance of the subject matter.
        Outliers: The Story of Success - by Malcolm Gladwell
        The Advancing Guitarist - by Mick Goodrick
        The Four Agreements: A Practical Guide to Personal Freedom (A Toltec Wisdom Book) - by Don Miguel Ruiz
        The Music Lesson - by Victor Wooten
        The Tipping Point - by Malcolm Gladwell
        The War of Art - by Steven Pressfield
        The Way of Zen - by Alan Watts
        Zen Guitar - by Philip Toshio Sudo
        Lovely and very quotable. May transform how you approach guitar and music.
        Everyday decisions have become increasingly complex due to the overwhelming abundance of choice with which we are presented. TED Talk
        Astrophysics for People in a Hurry - by Neil deGrasse Tyson
        Creative Quest - by Questlove
        Using examples from scientific studies and his Mindfulness-Based Stress Reduction program, the author motivates us to engage in formal and informal meditation practices. These include sitting, scanning our bodies, gentle yoga, walking, and examining the stressors in our lives through the lens of wholeness.
        Detox Your Thoughts: Quit Negative Self-Talk for Good and Discover the Life You've Always Wanted - by Andrea Bonior
        Heart Breath Mind: Train Your Heart to Conquer Stress and Achieve Success - by Dr. Leah Lagos
        10-week program to improve overall body functioning and reduce stress. This includes increasing heart rate variability (HRV), finding your resonant breathing frequency, and using exercises to reliably work through challenging emotions. Author link Notes
        Hitchhiker's Guide to the Galaxy - by Douglas Adams
        Life Loves You: 7 Spiritual Practices to Heal Your Life - by Robert Holden and Louise Hay
        Adult Children of Emotionally Immature Parents: How to Heal from Distant, Rejecting, or Self-Involved Parents - by Lindsay C. Gibson
        Focusing - by Eugene Gendlin
        In the same vein as It’s Not Always Depression. I really like the terminology the author uses. Author link
        Can’t Hurt Me - by David Goggins
        Daring Greatly - by Brene Brown
        This strongly worded opinion piece is organized into two parts. The first part, "Lamentation", criticizes the way mathematics is typically taught in American schools and argues for an aesthetic, intuitive, and problem-oriented approach to teaching. The second part, "Exultation", gives specific examples of how to teach mathematics as an art. PDF
        The Art of Learning: An Inner Journey to Optimal Performance - by Josh Waitzkin
        Nice way to learn Python and programming. Free download.
        The Desire Map - by Danielle LaPorte
        The Story of Philosophy: The Lives and Opinions of the World's Greatest Philosophers - by Will Durant
        You Are a Badass: How to Stop Doubting Your Greatness and Start Living an Awesome Life - by Jen Sincero
        Drop Dead Healthy: One Man's Humble Quest for Bodily Perfection - by A. J. Jacobs
        Lean" strategy as demonstrated by the practices and success of the Toyota car company.
        You Can Heal Your Life - by Louise Hay
        All You Need to Know About the Music Business - by Donald S. Passman
        As a Man Thinketh - by James Allen
        Conversations with God - by Neale Donald Walsch
        Getting Things Done - by David Allen
        Introducing Jung - by Maggie Hyde, Michael McGuinness, Richard Appignanesi
        Music and the Mind - by Anthony Storr
        Narcissus and Goldmund - by Hermann Hesse
        Neuro-linguistic Programming for Dummies - by Romilla Ready and Kate Burton
        Rational Mysticism: Spirituality Meets Science in the Search for Enlightenment - by John Horgan
        Siddhartha - by Hermann Hesse
        The 4 Hour Body: An Uncommon Guide to Rapid Fat Loss, Incredible Sex and Becoming Superhuman - by Tim Ferriss
        The 4-Hour Workweek: Escape 9-5, Live Anywhere, and Join the New Rich - by Tim Ferriss
        The Meaning of Dreams - by Calvin Hall
        The Power of Habit - by Charles Duhigg
        The Power of Now: A Guide to Spiritual Enlightenment - by Eckhart Tolle
        The Prophet - by Kahlil Gibran
        The Selfish Gene - by Richard Dawkins
        The Tao of Physics: An Exploration of the Parallels between Modern Physics and Eastern Mysticism - by Fritjof Capra
        Think Better: An Innovator's Guide to Productive Thinking - by Tim Hurson
        Favorite chapter is on Divergent Thinking Tim Hurson talks about Productive Thinking | YouTube
        This is Your Brain on Music - by Daniel J. Levitin
        Thus Spoke Zarathustra - by Friederich Nietzsche
        Why Beauty Is Truth: The History of Symmetry - by Ian Stewart
        Guitar Technique - by Hector Quine
        Your job is not to be a fire-killer. Your job is to be a fire-prevention specialist. Stop expending energy in the constant repair of the bad results that have been produced by your unseen and therefore unmanaged systems. Instead, spend your days observing and then managing the systems that are creating the results. Author link
        \ No newline at end of file diff --git a/recruiters-and-junior-devs/index.html b/recruiters-and-junior-devs/index.html index 5615149c..a0e13c26 100644 --- a/recruiters-and-junior-devs/index.html +++ b/recruiters-and-junior-devs/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

        Should junior developers work with recruiters?

        This is the first of a handful of posts about the 3-month search for my first full-time developer job.

        +

        Should junior developers work with recruiters?

        This is the first of a handful of posts about the 3-month search for my first full-time developer job.

        I graduated from a coding bootcamp in April. I’m a junior developer, though, I have some freelance projects on my resume that gave me about 2 years of experience. This, combined with a decently written Linkedin profile, contributed to my getting contacted by multiple recruiters daily. I wound up landing my first full-time job (a contract position) through one of those recruiters. I’ll go into that in detail later in the post.

        TL-DR;

        \ No newline at end of file +
        \ No newline at end of file diff --git a/recursive-filter-function/index.html b/recursive-filter-function/index.html index 9e0685f4..eeda5d92 100644 --- a/recursive-filter-function/index.html +++ b/recursive-filter-function/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

        Using a filter function recursively

        The problem

        +

        Using a filter function recursively

        The problem

        Given our array data structure, we only want to include items that have an ‘age’ property and the age is greater than 17. If the person is under age, we won’t allow any of their friends to be included (even if they are old enough to be.)

        (Contrived scenario, I know, but I recently needed to do something like this for a different type of authorization.)

        \ No newline at end of file +
        \ No newline at end of file diff --git a/reflections-coding-bootcamp/index.html b/reflections-coding-bootcamp/index.html index e24b9bdb..7e6639b1 100644 --- a/reflections-coding-bootcamp/index.html +++ b/reflections-coding-bootcamp/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

        Reflections From a Coding Bootcamp Graduate

        I was ready for a career change. It was October of 2017. The more time I spent coding and learning computer science fundamentals, the more I realized that a programming career would fit my personality* better than performing and teaching music.

        +

        Reflections From a Coding Bootcamp Graduate

        I was ready for a career change. It was October of 2017. The more time I spent coding and learning computer science fundamentals, the more I realized that a programming career would fit my personality* better than performing and teaching music.

        After spending a fair amount of time teaching myself to code and making websites, I began researching coding bootcamps. There were optimistic statistics of people making $80,000 after graduating. There were detractors who warn strongly against bootcamps. I was skeptical, but decided I wasn’t learning fast enough.

        * Read more about my bootcamp decision: @@ -444,4 +444,4 @@

        Now What?

      • Moving applications along the job pipeline: writing cover letters, scheduling phone screens, working on coding challenges, and preparing for interviews
      • Enjoying having a little more free time :)
      • -

        Please contact me if you’d like to discuss anything in my post. Best of luck!

        \ No newline at end of file +

        Please contact me if you’d like to discuss anything in my post. Best of luck!

        \ No newline at end of file diff --git a/rss.xml b/rss.xml index 63e66c34..3f7cab2a 100644 --- a/rss.xml +++ b/rss.xml @@ -1,14 +1,17 @@ -<![CDATA[scraggo.com]]>https://www.scraggo.comGatsbyJSSun, 09 Jul 2023 19:19:41 GMT<![CDATA[How I'm Building My Second Brain]]>https://www.scraggo.com/building-my-second-brain/https://www.scraggo.com/building-my-second-brain/Thu, 01 Jun 2023 00:00:00 GMT<h2>Slides + Video</h2> +<![CDATA[scraggo.com]]>https://www.scraggo.comGatsbyJSThu, 27 Jul 2023 00:08:49 GMT<![CDATA[How I'm Building My Second Brain]]>https://www.scraggo.com/building-my-second-brain/https://www.scraggo.com/building-my-second-brain/Thu, 01 Jun 2023 00:00:00 GMT<h2>Slides + Video</h2> <p><a href="https://youtu.be/5-5aO-F6HA4">“How I’m building my second brain” video (2022) (YouTube)</a></p> <p><a href="/0994bf6c1add8db9ae8766da1299af19/second-brain-slides.pdf">“How I’m building my second brain” slides (2022) (PDF)</a></p> <h2>Intro</h2> -<p>Creativity is bound up with making connections between disparate ideas.</p> -<p>The <em>connections</em> piece is crucial. I know this because of my many failures with knowledge management. I went all in on the <a href="https://en.wikipedia.org/wiki/Getting_Things_Done">Getting Things Done (GTD)</a> productivity system and wound up with a large, messy digital collection. The five stages of the GTD workflow are <em>capture, clarify, organize, reflect, and engage.</em> I captured anything that I could digitize. I clarified with a complex system of tags. I organized by putting things in hierarchies of folders. I reflected by journaling about it all. And inevitably fell short on the engagement piece.</p> -<p>(This seems to be a pretty common problem. <a href="https://giansegato.com/essays/edutainment-is-not-learning">https://giansegato.com/essays/edutainment-is-not-learning</a> | <a href="https://news.ycombinator.com/item?id=36580837">HN comments</a>.)</p> -<p>Having declared bankruptcy on my notes too many times, I knew I needed something different. I discovered the <em><a href="https://writing.bobdoto.computer/zettelkasten-linking-your-thinking-and-nick-milos-search-for-ground/">Second Brain</a></em> concept and got hooked. It helped steer me to abandoning arbitrary collections, nested directory structures, and complicated tagging systems locked in proprietary software. <em>Notes are connected to each other</em> and structure emerges, almost effortlessly.</p> -<p>My notes are now in markdown, a plaintext “markup” language that allows headings, bullet points, checkboxes, blockquotes, etc. The document can output as rich text like you see on the web, but it’s readable as is. To connect notes in your second brain you can use standard link syntax or take it up a notch with <em>backlinks</em> - where notes have awareness from where they were linked.</p> +<p>Creativity is bound up with making connections between disparate ideas. The <em>connections</em> piece is crucial - personal knowledge management falls apart without it.</p> +<p>Long ago, I treated the <a href="https://en.wikipedia.org/wiki/Getting_Things_Done">Getting Things Done (GTD)</a> productivity system as gospel. The way I used it, though, resulted in a large, messy collection of digital notes in Evernote. The five stages of the GTD workflow are <em>capture, clarify, organize, reflect, and engage</em>. I captured anything that I could digitize. I clarified with a complex system of tags. I organized by putting things in hierarchies of folders. I reflected by creating journal entries during weekly reviews. And ultimately fell short on the engagement piece.</p> +<p>Having declared bankruptcy on my notes too many times, I knew I needed something different. I discovered the <em><a href="https://writing.bobdoto.computer/zettelkasten-linking-your-thinking-and-nick-milos-search-for-ground/">Second Brain</a></em> concept and got hooked. I clearly saw the pitfalls inherent in my old system. I stopped creating arbitrary collections in single files. I abandoned rigid hierarchical directory structures and complicated tagging systems. (I also migrated out of Evernote - vendor lock-in being one of many reasons.) With my shiny, new second-brain notes collection, <em>notes connect to each other</em> and structure emerges, almost effortlessly.</p> +<p>My notes are now in markdown, a plaintext “markup” language that allows headings, bullet points, checkboxes, blockquotes, etc. The document can output as rich text like you see on the web, but it’s readable as is. To connect notes in your second brain you can use standard link syntax or take it up a notch with <em>backlinks</em> - where notes have an automatic awareness of any notes that are linked to it.</p> <p>By connecting notes in this way, we approach how the brain stores and retrieves knowledge. Building links over time allows us to create a reservoir of connections which have connections, which have connections, which becomes a nice web of digital neurons. To aid the creative process, you can view your linked notes as a knowledge graph <a href="https://duckduckgo.com/?t=ffab&#x26;q=knowledge+graph&#x26;atb=v174-1&#x26;iax=images&#x26;ia=images">like the ones in these images</a> to add fascination to your connection sessions.</p> <p>This is just the tip of the iceberg. If your brain craves more, below is the text for a talk I gave on how I take notes, synthesize ideas, and manage my tasks.</p> +<ul> +<li><a href="https://youtu.be/5-5aO-F6HA4">“How I’m building my second brain” video (2022) (YouTube)</a></li> +<li><a href="/0994bf6c1add8db9ae8766da1299af19/second-brain-slides.pdf">“How I’m building my second brain” slides (2022) (PDF)</a></li> +</ul> <h2>What’s a “second brain?”</h2> <p>In concept, it’s an external information collection that aids thinking and memory.</p> <p>The way I put this into practice is a collection of markdown notes linked with bi-directional backlinks (notated with double square brackets: <code class="language-text">[[]]</code>)</p> @@ -24,12 +27,12 @@ <p><em>See “Resources” below for more info on the related concepts.</em></p> <h2>The problem: One brain is limited</h2> <ul> -<li>Juggling projects</li> +<li>We usually have multiple projects to juggle</li> <li>Learning something new can be intimidating</li> -<li>Disparate sources: Slack, emails, bookmarks, notes, etc</li> -<li>Googling repeatedly (but…sites go down)</li> -<li><strong>Are we able to make notes and discover them without too much friction?</strong></li> +<li>Info comes from many disparate sources: Slack, emails, bookmarks, notes, etc</li> +<li>We can’t just Google repeatedly or save bookmarks (sites go down, etc)</li> </ul> +<p>The key to the solution is being able to make and discover notes without too much friction.</p> <h2>Second brain benefits</h2> <ul> <li>Solidify knowledge</li> @@ -131,17 +134,13 @@ Here are some very interesting notes</code></pre></div> </ul> <h2>Resources</h2> <h3>Methodology</h3> +<p><a href="https://fortelabs.com/blog/basboverview/">Building a Second Brain: The Definitive Introductory Guide | Forte Labs</a></p> <p><a href="https://writing.bobdoto.computer/zettelkasten-linking-your-thinking-and-nick-milos-search-for-ground/">Zettelkasten, Linking Your Thinking, and Nick Milo’s Search for Ground | The Daily Pony</a></p> <ul> -<li><a href="https://news.ycombinator.com/item?id=31507132">Hacker News comments for ^</a></li> +<li><a href="https://news.ycombinator.com/item?id=31507132">Hacker News discussion on ^</a></li> <li><a href="https://www.asianefficiency.com/podcasts/387-nick-milo/">Podcast episode with Nick Milo</a></li> </ul> -<p><a href="https://zettelkasten.de/introduction/">Introduction to the Zettelkasten Method</a></p> -<ul> -<li><a href="https://zettelkasten.de/posts/collectors-fallacy/">collector’s fallacy</a></li> -</ul> -<p><a href="https://fortelabs.co/blog/para/">The PARA Method: A Universal System for Organizing Digital Information - Forte Labs</a></p> -<p><a href="https://www.makeuseof.com/tag/manage-digital-files/">How to Manage Your Digital Files: 9 Tips and Tools to Keep You Organized</a> see The Noguchi Filing System</p> +<p><a href="https://zettelkasten.de/introduction/">Introduction to the Zettelkasten Method | zettelkasten.de</a></p> <h3>Tools</h3> <ul> <li><a href="http://github.com/yorkxin/copy-as-markdown">Copy As Markdown</a> browser extension</li> @@ -162,7 +161,19 @@ Here are some very interesting notes</code></pre></div> <ul> <li><a href="https://github.com/binyamin/eleventy-garden">https://github.com/binyamin/eleventy-garden</a></li> <li><a href="https://github.com/mathieudutour/gatsby-digital-garden/">https://github.com/mathieudutour/gatsby-digital-garden/</a></li> -</ul><![CDATA[Random Music Generators is now hosted on render.com]]>https://www.scraggo.com/2022-12-05-random-music-generators-news/https://www.scraggo.com/2022-12-05-random-music-generators-news/Mon, 05 Dec 2022 00:00:00 GMT<p><a href="https://random-music-generators.onrender.com">Random Music Generators is now hosted on render.com. Please update your bookmarks!</a></p> +</ul> +<h3>Related</h3> +<ul> +<li><a href="https://thesephist.com/posts/hyperlink/">Hyperlink maximalism | thesephist.com</a> | <a href="https://news.ycombinator.com/item?id=36866242">Hyperlink maximalism (2022) | Hacker News</a> - The Obsidian plugin looks neat</li> +<li><a href="https://zettelkasten.de/posts/collectors-fallacy/">collector’s fallacy | zettelkasten.de</a></li> +<li><a href="https://giansegato.com/essays/edutainment-is-not-learning">How to Learn Better in the Digital Age</a> | <a href="https://news.ycombinator.com/item?id=36580837">Learning needs to be effortful to be effective | Hacker News</a></li> +</ul> +<p>Forte Labs</p> +<ul> +<li><a href="https://fortelabs.co/blog/para/">The PARA Method: A Universal System for Organizing Digital Information - Forte Labs</a></li> +<li><a href="https://fortelabs.com/blog/series/ps/">Progressive Summarization – Forte Labs</a></li> +</ul> +<p><a href="https://www.makeuseof.com/tag/manage-digital-files/">How to Manage Your Digital Files: 9 Tips and Tools to Keep You Organized</a> see <em>The Noguchi Filing System</em></p><![CDATA[Random Music Generators is now hosted on render.com]]>https://www.scraggo.com/2022-12-05-random-music-generators-news/https://www.scraggo.com/2022-12-05-random-music-generators-news/Mon, 05 Dec 2022 00:00:00 GMT<p><a href="https://random-music-generators.onrender.com">Random Music Generators is now hosted on render.com. Please update your bookmarks!</a></p> <p><a href="https://random-music-generators.onrender.com">https://random-music-generators.onrender.com</a></p><![CDATA[TypeScript-lite: JSDoc for type-checking js files]]>https://www.scraggo.com/type-check-jsdocs-typescript/https://www.scraggo.com/type-check-jsdocs-typescript/Sun, 05 Dec 2021 00:15:31 GMT<h2>Overview</h2> <p>Did you know that you can use TypeScript features in JavaScript projects? When I discovered this and tried it out, I really enjoyed the results. Let’s go a bit into how it works.</p> <p>With a few simple ingredients:</p> @@ -4153,7 +4164,7 @@ It’s a cheesy saying, but it really comes down to achieving results as a band /> </a> </span></p> -<p>Let’s go back to our theoretical 4 measure piece of music. How fast can you play measures 1 and 2 cleanly? The only way to know for sure is to use a <a href="http://www.webmetronome.com/">metronome</a>. The metronome is how we turn practicing into a rigorous scientific procedure. Think of it like exercise. Would you work out without keeping track of the weight you can lift? Would you always lift the same 50 lb. weight and never get stronger? Or, worse yet, would you risk injuring yourself by setting the exercise machine to 50 pounds one day, then 80 the next day? You always want to be moving in gradual succession, increasing the weight little by little during your regular lifting sessions. My favorite ways to use a metronome are below:</p> +<p>Let’s go back to our theoretical 4 measure piece of music. How fast can you play measures 1 and 2 cleanly? The only way to know for sure is to use a <a href="https://www.onlinemetronome.app">metronome</a>. The metronome is how we turn practicing into a rigorous scientific procedure. Think of it like exercise. Would you work out without keeping track of the weight you can lift? Would you always lift the same 50 lb. weight and never get stronger? Or, worse yet, would you risk injuring yourself by setting the exercise machine to 50 pounds one day, then 80 the next day? You always want to be moving in gradual succession, increasing the weight little by little during your regular lifting sessions. My favorite ways to use a metronome are below:</p> <ol> <li>Find the “goal tempo.” What is the actual tempo of the piece of music you’re trying to master? Write this down in your practice log.</li> <li>Find your “working tempo.” Set the metronome at a medium tempo and adjust it until you find a tempo that you can play some of the piece comfortably. Note this in your practice log (along with anything else you noticed while playing.)</li> diff --git a/songwriting-and-serendipity/index.html b/songwriting-and-serendipity/index.html index 260a76eb..7accd4df 100644 --- a/songwriting-and-serendipity/index.html +++ b/songwriting-and-serendipity/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

        Songwriting and Serendipity

        Why start a composition with a blank slate? Jam on a cover tune then take it in a different direction.

        +

        Songwriting and Serendipity

        Why start a composition with a blank slate? Jam on a cover tune then take it in a different direction.

        Sometimes, the less experience you have figuring out songs, the better. When I was first learning guitar and had much less skill, I tried to figure out songs that I heard. I was usually unsuccessful at transcribing them accurately, but there were many occasions that I enjoyed what I was playing (despite it being wrong) and wrote a song based on it. I call that Serendipity.

        What is “serendipity?”

        @@ -377,4 +377,4 @@

        My starting points

        I chose songs from the following 5 decades as my starting points: the 60’s, 70’s, 80’s, 90’s, and 2000’s. Can you identify what songs I’m using?

        A word of CAUTION: Make sure your idea is different enough from your inspiration to avoid getting sued over copyright issues!

        Compositional devices

        -

        As an exercise to the student, can you pick out how I’m changing the music that I’m using as a starting point? In future lessons, I will talk in more detail about variation techniques and how to use them in your songs.

        \ No newline at end of file +

        As an exercise to the student, can you pick out how I’m changing the music that I’m using as a starting point? In future lessons, I will talk in more detail about variation techniques and how to use them in your songs.

        \ No newline at end of file diff --git a/songwriting-simplicity-complexity/index.html b/songwriting-simplicity-complexity/index.html index c86c1e0a..ba6dc651 100644 --- a/songwriting-simplicity-complexity/index.html +++ b/songwriting-simplicity-complexity/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

        Songwriting Tutorial: Simplicity and Complexity

        How to begin writing a song by choosing a lyrical theme and a musical mood.

        +

        Songwriting Tutorial: Simplicity and Complexity

        How to begin writing a song by choosing a lyrical theme and a musical mood.

        The Keys to Simplicity

        Selecting a mood / topic for the song

        @@ -392,4 +392,4 @@

        Plug into song forms and lyric templates.

        Knowledge of Diatonic Music Theory

        Knowing the difference between major and minor helps serve the message of the song. There are other modes besides these 2 that we’ll explore later. You can change keys globally and locally to add complexity, but only if that serves the song’s central message.

        Your foundation depends on simplicity.

        -

        It’s easy to fall in love with bending the rules for it’s own sake (as evidenced by my own stylistic quirks), but you can write a great song by remaining simple in your message and form.

        \ No newline at end of file +

        It’s easy to fall in love with bending the rules for it’s own sake (as evidenced by my own stylistic quirks), but you can write a great song by remaining simple in your message and form.

        \ No newline at end of file diff --git a/songwriting-snippet-challenge/index.html b/songwriting-snippet-challenge/index.html index e308d0b1..5e55f375 100644 --- a/songwriting-snippet-challenge/index.html +++ b/songwriting-snippet-challenge/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

        Songwriting Tutorial: Snippet Challenge

        +

        Songwriting Tutorial: Snippet Challenge

        Have lots of unfinished ideas? Learn how to take a short instrumental idea and finish writing your song in one day.

        Over the years, I’ve written tons and tons of short musical ideas. I had been putting off turning them into real pieces until now. Inspired by my research on speed composing, I decided to make a challenge out of my problem.

        The Snippet Challenge & Simple Instrumental Song Forms

        @@ -395,4 +395,4 @@

        Ternary Form with a Bridge (ABACBA)

        Here, the B section has to flow from the A section and the C section later. Make sure that these parts connect well.

        As mentioned, the C section is the second contrast of the piece. When writing the C section, it should lead nicely from A and flow smoothly into B. Once again, I urge you to read http://music.tutsplus.com/tutorials/an-introduction-to-form-in-instrumental-music—audio-23381 to hear examples of how this is done.

        Conclusion

        -

        Taking this challenge has been very helpful to me in many ways. It forces one to make musical decisions, no more putting them off for months while waiting for divine inspiration! It allows one to explore harmonic, melodic, and rhythmic variations in a non-judgemental setting. Please share your thoughts in a comment below or on the youtube video.

        \ No newline at end of file +

        Taking this challenge has been very helpful to me in many ways. It forces one to make musical decisions, no more putting them off for months while waiting for divine inspiration! It allows one to explore harmonic, melodic, and rhythmic variations in a non-judgemental setting. Please share your thoughts in a comment below or on the youtube video.

        \ No newline at end of file diff --git a/static/d/4156120491.json b/static/d/4156120491.json index e8881004..b0d61496 100644 --- a/static/d/4156120491.json +++ b/static/d/4156120491.json @@ -1 +1 @@ -{"data":{"allMarkdownRemark":{"totalCount":44,"edges":[{"node":{"id":"970567e6-3f2a-5749-b60e-5fe9bce3ce59","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"June 01, 2023","description":null,"tags":["productivity","tech talk"],"title":"How I'm Building My Second Brain","type":"post"},"fields":{"slug":"/building-my-second-brain/"},"excerpt":"Slides + Video “How I’m building my second brain” video (2022) (YouTube) “How I’m building my second brain” slides (2022) (PDF) Intro Creativity is bound up with making connections between disparate ideas. The connections piece is crucial. I know this because of my many failures with knowledge management. I went all in on the Getting Things Done (GTD) productivity system and wound up with a large…"}},{"node":{"id":"5bc00e6c-f6a8-51a5-9312-749eabf343c4","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 05, 2022","description":null,"tags":["random music generators"],"title":"Random Music Generators is now hosted on render.com","type":"post"},"fields":{"slug":"/2022-12-05-random-music-generators-news/"},"excerpt":"Random Music Generators is now hosted on render.com. Please update your bookmarks! https://random-music-generators.onrender.com"}},{"node":{"id":"87a467a5-a5cc-57bc-b828-33199e1396ed","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 05, 2021","description":null,"tags":["typescript","javascript"],"title":"TypeScript-lite: JSDoc for type-checking js files","type":"post"},"fields":{"slug":"/type-check-jsdocs-typescript/"},"excerpt":"Overview Did you know that you can use TypeScript features in JavaScript projects? When I discovered this and tried it out, I really enjoyed the results. Let’s go a bit into how it works. With a few simple ingredients: VSCode JavaScript Willingness to add types in JSDoc (and optionally importing TypeScript types) You can: statically check the types of .js files run compiler on .js files write…"}},{"node":{"id":"43882726-b323-56c1-986e-85fad7e68237","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 27, 2021","description":null,"tags":["career","mental health"],"title":"Programming with more ease","type":"post"},"fields":{"slug":"/programming-with-more-ease/"},"excerpt":"As professional programmers, the bulk of what we do is solving problems. A lot of the time, I’m motivated by problem-solving challenges. But sometimes I hit a wall. A given challenge can become a problem that I’m frustratingly unable to solve. Often, this frustration would spiral into a worse mental state. I’d imagine the problem as a scary, overwhelming, difficult to defeat monster - more…"}},{"node":{"id":"6a155da7-d04b-5289-b463-02babc9a2670","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 23, 2021","description":null,"tags":["design patterns"],"title":"How to Learn Design Patterns","type":"post"},"fields":{"slug":"/design-patterns-curriculum/"},"excerpt":"I’ve long been intrigued by design patterns, but when I started learning them, I realized quickly that I didn’t have a clear learning path. I didn’t know how I should learn design patterns or if it’s the right time for me to learn them. So, I sought out to answer some questions: What are the prerequisites for learning design patterns? What material should I use and how do I avoid being scattered…"}},{"node":{"id":"c373259e-e38e-59bb-ab3b-22a5afc45474","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2021","description":null,"tags":["design patterns"],"title":"Introduction to Design Patterns: Why they're worth learning","type":"post"},"fields":{"slug":"/design-patterns-intro/"},"excerpt":"As developers, we’re constantly learning - and there’s a lot to learn in general because the tech industry is broad and fast-paced. We want to have all the main bases covered so that we can be ready for any situation. We often hear about design patterns and how they can enable us to write well-architected software using object-oriented programming. If you’re like me, you might file that away as a…"}},{"node":{"id":"ef97f645-0325-5bf1-806d-ba14610e6780","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 30, 2021","description":null,"tags":["random music generators"],"title":"Random Music Generators News 2021-01-30","type":"post"},"fields":{"slug":"/2021-01-30-random-music-generators-news/"},"excerpt":"New in 1.3.1 This month, I released a big new feature that’s been requested often. You can now specify a custom note collection to create random melodies. Check it out! Note: This feature is available to use if you create an account. Part of the impetus to provide this feature was to aid in neuroscience research. Having the ability to create melodies with specific pitches will allow researchers…"}},{"node":{"id":"ba57e0fe-e724-5a6e-b122-d39a3674b8fc","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 10, 2020","description":null,"tags":["career"],"title":"Are You Ready to be a Professional Software Engineer?","type":"post"},"fields":{"slug":"/tech-career-resources/"},"excerpt":"Updated March 21, 2021 Did you just graduate from a coding bootcamp, obtain a CS degree, or built an involved side project? How do you know when you’re ready to write software professionally? This post has two parts: questions I ask my mentees to help clarify their job search a collection of resources I’ve found or made that helped my on my job search Questions to clarify the job search There are…"}},{"node":{"id":"ef2f493a-fbef-500d-a57e-689069307ca5","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 21, 2020","description":null,"tags":["immerjs","javascript","react","redux"],"title":"My love hate relationship with ImmerJS","type":"post"},"fields":{"slug":"/love-hate-immer-js/"},"excerpt":"After having used immutable js for a while, discovering ImmerJS was a breath of fresh air. Where immutable js forces you to learn its gigantic API, ImmerJS takes advantage of ES6 Proxies. These allow you to modify a “draft” version of an object as if you’re mutating it, but the draft is actually a copy so you’re not mutating the original! The return of immer’s function always returns a perfect…"}},{"node":{"id":"f2cf9b4b-5eb8-5856-bd0a-86b1e7bc66f4","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 15, 2020","description":null,"tags":["career","coding bootcamps","electron","javascript","tech talk"],"title":"Tech Talk - How I'd Improve My Capstone Project","type":"post"},"fields":{"slug":"/tech-talk-improving-capstone-project/"},"excerpt":"In February 2020, I returned to my bootcamp to give a tech talk on what I’d do to improve my Capstone project. (I also answer career and other questions from the audience at the end.) Download the slides here (PDF) I’m excited to share what I’ve learned so far from working on enterprise software for almost 2 years. The talk is a deep dive into the codebase that myself and three others worked on…"}},{"node":{"id":"d6855891-7ad1-5756-b178-be45a9213df7","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 02, 2020","description":null,"tags":["javascript","node","productivity"],"title":"Using question-prompter for study, self-reflection, and more","type":"post"},"fields":{"slug":"/using-question-prompter/"},"excerpt":"I recently created a node command line app called question-prompter. It prompts you at your terminal to answer questions that you come up with. After you answer them, it saves them to a or file in a directory of your choosing. Background I find a lot of benefit from regularly checking in with myself. While many authors have written about this kind of reflection, Tim Ferriss comes to mind first…"}},{"node":{"id":"d83dfc88-d6b1-51d0-924a-b4ef8ea54dcf","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"June 03, 2020","description":null,"tags":["songwriting","composition","creativity"],"title":"Meta Ideas - Generating Creative Content","type":"post"},"fields":{"slug":"/meta-ideas-generating-creative-content/"},"excerpt":"I’ve been writing down small music (and other) ideas for over 20 years. I’ve generally struggled to store, organize, and retrieve them effectively. As I was going through my archives recently, it dawned on me that there are two fundamental types of ideas: one is “concrete” and the other is “meta.” A concrete idea is specific and actionable. It may be a chord progression like: A minor for two and a…"}},{"node":{"id":"362cb819-3e27-5202-98bf-310df4ba421f","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"May 02, 2020","description":null,"tags":["javascript","test runners","ava","mocha","jest","tech talk"],"title":"Comparing JavaScript Test Runners","type":"post"},"fields":{"slug":"/comparing-javascript-test-runners/"},"excerpt":"This post is a pointer to an article I completed recently - a comprehensive comparison of the AVA, Jest, Mocha, and JavaScript test runners. 👉 https://github.com/scraggo/comparing-javascript-test-runners/ 👈 Why is it on GitHub, not this blog? Not only does the repo contain the comparison article, I created a node application to generate the speed metrics in the article. The process looks like…"}},{"node":{"id":"5c2a373c-48fe-5078-9e3d-f21888265979","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2020","description":null,"tags":["typescript","open source"],"title":"Contributing a New Feature to Open Source: @sindresorhus/is","type":"post"},"fields":{"slug":"/contributing-to-open-source-is-type-checking/"},"excerpt":"This post is a recount of my recent experience contributing to is, a JavaScript open source type checking library. https://github.com/sindresorhus/is https://www.npmjs.com/package/@sindresorhus/is I’ll outline the process from beginning to end: the initial filing of the feature request, implementing the feature, collaborating on the pull request, and getting the feature released. Some of the open…"}},{"node":{"id":"eae0c8d9-4b57-5113-88ed-3ece28ea88ca","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"February 15, 2020","description":"Problems with unexpected assertion failures can arise while testing immutablejs with sinon. This post is a brief guide on how to create a custom matcher that will correctly calculate the equivalence between a mock/stub/spy call with an immutable parameter. The way I’ll be making the assertion is with calledWith from sinon-chai (a plugin for chai that helps with making should or expect assertions for sinon mocks). This github issue on sinonjs outlines the problem...","tags":["testing","sinon","immutablejs"],"title":"Testing immutable js with sinon custom matchers","type":"post"},"fields":{"slug":"/testing-immutable-js-with-sinon-custom-matchers/"},"excerpt":"Problems with unexpected assertion failures can arise while testing with . This post is a brief guide on how to create a custom matcher that will correctly calculate the equivalence between a mock/stub/spy call with an parameter. The way I’ll be making the assertion is with from (a plugin for that helps with making or assertions for mocks). This github issue on sinonjs outlines the problem…"}},{"node":{"id":"13bb4e43-1a4c-5619-88cf-18b133874a58","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 27, 2020","description":null,"tags":["random music generators"],"title":"Random Music Generators News 2020-01-27","type":"post"},"fields":{"slug":"/2020-01-27-random-music-generators-news/"},"excerpt":"New in 1.1.0 Yesterday, I released a feature that’s been in the works for over 6 months. You can now create melody presets. Check it out! If you have a go-to set of form parameters that make sounds that you really enjoy, you can save them and recall them later. As a necessity of saving presets, I added the ability to create an account. This will set the stage for being able to save presets for…"}},{"node":{"id":"208d49b8-08db-5947-81dc-1b7fec2f4c50","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 09, 2020","description":"Happy 2020! One of my new year’s resolutions is to redo my website with a lot of new things in mind. Here I’ll outline the changes I’m in the process of making. An important step in the whole makeover was getting an official domain name - I’m now live at scraggo.com! I’m using namecheap as the provider. The site has been hosted with github pages since its inception and I’ll…","tags":["gatsbyjs"],"title":"Website Makeover: Moving from Jekyll to Gatsby","type":"post"},"fields":{"slug":"/website-makeover-gatsby/"},"excerpt":"Happy 2020! One of my new year’s resolutions is to redo my website with a lot of new things in mind. Here I’ll outline the changes I’m in the process of making. EDIT Jan 18, 2020: Gatsby makeover complete! Now live: custom domain name An important step in the whole makeover was getting an official domain name - I’m now live at ! I’m using namecheap as the provider. The site has been hosted with…"}},{"node":{"id":"69ec04c0-36a1-5b4b-b7e5-895ff00cceda","frontmatter":{"author":"Dave Cohen","categories":["other"],"date":"January 01, 2020","description":null,"tags":null,"title":"2020 Resolutions and Reviewing the Decade","type":"post"},"fields":{"slug":"/2020-decade-in-review/"},"excerpt":"I really enjoy reflecting on the past year during the holidays. If I get a chance to do this, I come up with New Years resolutions afterwards. Some years I go through a somewhat involved process of going through my journal entries and coming up with the best realizations. This year, my girlfriend wanted to try Marie Forleo’s recommendation of reviewing the past decade. We went through the…"}},{"node":{"id":"71cb4d5a-1ffa-5471-9090-7ad8a844304b","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 21, 2019","description":null,"tags":["git"],"title":"How to Squash All Commits Related to a Single Issue into a Single Commit","type":"post"},"fields":{"slug":"/how-to-squash-commits/"},"excerpt":"Updated Sep 3, 2020 This article outlines how to use the “squash” feature of an interactive . What does “squashing” do? It allows you to take changes that are spread amongst multiple commits and consolidate them into one. Why should one consider squashing commits? A clean history makes tracking changes to a large codebase across time much easier. Many commits are small and unimportant in the grand…"}},{"node":{"id":"005c820c-061e-57bb-8255-c635792a976d","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"December 20, 2019","description":null,"tags":["music education"],"title":"About Songmind Studios","type":"post"},"fields":{"slug":"/about-songmind-studios/"},"excerpt":"In 2016, I decided to start my own brand of music education. I took the role of music coach, agent, and collaborator. The student and I would write and record music together to integrate learning and creativity in a holistic way. While I’ve suspended these services for the foreseeable future, I’m posting are the core concepts and aims of Songmind Studios. I’ll eventually make all my teaching…"}},{"node":{"id":"fe9a22be-2af0-5ee7-9e22-9ca6bb593de8","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 02, 2019","description":null,"tags":["career"],"title":"How to ace your initial programming job screen","type":"post"},"fields":{"slug":"/prepare-for-initial-screens/"},"excerpt":"Your resume and cover letter surely made a positive impact, but the most important evaluation has yet to come. If you’re searching for your first software development job, the process can be daunting. You may have heard that after sending your resume to a company, there’s an initial screen. This is usually done over the phone, but sometimes it happens in-person. Your resume and cover letter (the…"}},{"node":{"id":"3220ea90-ef5c-5200-befb-6f9a58952f53","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"April 03, 2019","description":null,"tags":["javascript"],"title":"Catching and handling different types of errors in promise chains","type":"post"},"fields":{"slug":"/catching-handling-errors-promise-chains/"},"excerpt":"When you need to make sequential API calls, promise chains are a reliable way to go. It gets a little tricky when you need to throw and handle errors differently at different points in the chain. This post will go into: throwing specific types of errors using creating an object literal dictionary to handle logic gracefully handling the errors differently at the end of the chain This article is…"}},{"node":{"id":"657093ab-4233-5d14-a741-44f2fa462db8","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 28, 2019","description":null,"tags":["javascript"],"title":"Using a filter function recursively","type":"post"},"fields":{"slug":"/recursive-filter-function/"},"excerpt":"The problem Given our array data structure, we only want to include items that have an ‘age’ property and the age is greater than 17. If the person is under age, we won’t allow any of their friends to be included (even if they are old enough to be.) (Contrived scenario, I know, but I recently needed to do something like this for a different type of authorization.) Run this code on repl.it We can…"}},{"node":{"id":"86cb31eb-6b40-50e3-9ddc-d195f0cee1c6","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 24, 2019","description":null,"tags":["git"],"title":"How to format and edit your git commit messages","type":"post"},"fields":{"slug":"/git-commit-format-squash/"},"excerpt":"When writing commit messages, it’s ideal to make them easy for another developer to read and understand exactly what’s in the commit. Oftentimes, though, we write commit messages quickly just to push a branch at the end of a workday, for instance (I know I’m guilty of this). One team member brought the Conventional Commits format to our attention. I’ve enjoyed using it and seeing the results when…"}},{"node":{"id":"35287751-dd87-580c-ae8e-8b1c02051859","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 23, 2019","description":null,"tags":["javascript"],"title":"How to prevent circular dependencies","type":"post"},"fields":{"slug":"/circular-dependencies-bug/"},"excerpt":"Some errors are kind of mysterious. The first time I got “‘myFunction’ is not a function” type errors, I was at a loss for a few hours. Logging out the functions from my require statements came back as or . What I learned, TL;DR - don’t import file ‘a’ into file ‘b’ AND file ‘b’ into file ‘a’. That’s an example of a “circular dependency.” Brief example of creating a circular dependency: myUtils…"}},{"node":{"id":"a5528eb3-e30d-5233-bd30-b8c7ae51558c","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2019","description":null,"tags":["javascript"],"title":"Custom type checking - isNaN vs Number.isNaN","type":"post"},"fields":{"slug":"/custom-type-checking-isnan/"},"excerpt":"Javascript is infamous for being “loose” and misleading with its typing. gives you , gives you , etc. So instead of writing conditionals using , doing specific checks, etc, I decided to make my own wrapper for which I called : I unknowingly put a bug in my app. Can you spot it? … It’s in the 3rd statement. Basically, the function took anything that wasn’t an ‘array’ or ‘null’ and decided it…"}},{"node":{"id":"ffbf844d-8df4-58a2-bbac-456ad18ce4e2","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 18, 2019","description":null,"tags":["javascript"],"title":"Using a Code Style Guide to Enforce Team Best Practices","type":"post"},"fields":{"slug":"/code-style-guide/"},"excerpt":"We all have opinions on what what coding best practices are and how code should be formatted. Recently, one of the teams I’ve been working on decided to add another member. I discovered that our coding styles were radically different. I decided to write some guidelines for our team to get us on the same page. I quickly realized that writing a style guide from scratch is a tall order. I’d already…"}},{"node":{"id":"78ad3884-f757-59b3-9a3e-cfb58062229e","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 18, 2018","description":null,"tags":["career"],"title":"Should junior developers work with recruiters?","type":"post"},"fields":{"slug":"/recruiters-and-junior-devs/"},"excerpt":"This is the first of a handful of posts about the 3-month search for my first full-time developer job. I graduated from a coding bootcamp in April. I’m a junior developer, though, I have some freelance projects on my resume that gave me about 2 years of experience. This, combined with a decently written Linkedin profile, contributed to my getting contacted by multiple recruiters daily. I wound up…"}},{"node":{"id":"58fbbba9-9063-500a-9fcb-829e58d07642","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"May 08, 2018","description":null,"tags":["computer science"],"title":"Debugging Strategies Checklist","type":"post"},"fields":{"slug":"/debugging-strategies-checklist/"},"excerpt":"Tracking down bugs in the software you’re working on can be tricky. Debugging is a massive topic and there are so many places bugs can show up. One thing’s for sure, whether you’re careful or not… Bugs will show up. I’m not saying this to be pessimistic. Creating and squashing bugs is not just a part of the process of writing software, it is the process! We’re solving problems and ironing out the…"}},{"node":{"id":"0092c8a9-f74f-5de1-a8e6-0fe315511475","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"April 16, 2018","description":null,"tags":["coding bootcamps","javascript"],"title":"Reflections From a Coding Bootcamp Graduate","type":"post"},"fields":{"slug":"/reflections-coding-bootcamp/"},"excerpt":"I was ready for a career change. It was October of 2017. The more time I spent coding and learning computer science fundamentals, the more I realized that a programming career would fit my personality* better than performing and teaching music. After spending a fair amount of time teaching myself to code and making websites, I began researching coding bootcamps. There were optimistic statistics of…"}},{"node":{"id":"8e59934a-7dcb-5377-ae8d-73c2d8ed7686","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"February 20, 2018","description":null,"tags":["javascript","computer science"],"title":"Tackling Hash Table Problems in JavaScript","type":"post"},"fields":{"slug":"/hash-tables-js/"},"excerpt":"Algorithms and data structures can be intimidating. The goal of this post is to explain some approaches to solving hash table algorithm problems providing clear examples with detailed solution explanations. I’m hoping this will help anyone uninitiated alleviate fears and make bigger strides in conquering these challenging problems. Why Hash Tables? While attending Fullstack Academy, I participated…"}},{"node":{"id":"d49b052b-2f19-5ddd-a73d-78e80b12bfdd","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 26, 2017","description":null,"tags":["coding bootcamps","javascript"],"title":"Now Attending: Fullstack Academy","type":"post"},"fields":{"slug":"/now-attending-fullstack/"},"excerpt":"Why I’m attending Fullstack Academy Since discovering a love for guitar and composition in my teens, I decided to pursue a career as a freelance music teacher, composer, recording engineer, and performing guitarist. After a decade of this, I realized that the rockstar dream didn’t suit me and I was tired of chasing it. I’d be happier with a more stable career that challenged me intellectually. I…"}},{"node":{"id":"e1022862-d7d0-5e18-994d-92f148fb9302","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 01, 2017","description":null,"tags":["javascript"],"title":"Intro to JavaScript Frameworks Part 1: The Vanilla JavaScript Version of TodoMVC","type":"post"},"fields":{"slug":"/intro-to-js-frameworks01/"},"excerpt":"The goal of this blog-series is to explain what frameworks do, why they’re used, and demonstrate with examples across many different frameworks. The series is aimed at those familiar with JavaScript syntax, accessing the DOM, functions, and classes (object-oriented programming). Further reading can be found at the bottom of this post. What is a JavaScript Framework? A framework is an imported…"}},{"node":{"id":"bd3eb5a8-b322-5b98-ad3f-6f3cae8be4e1","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 01, 2017","description":"This post contains an overview of what sorts of programming jobs are available. It's aimed at developers who want to try something new or are still deciding what to focus on in their efforts to become more marketable.","tags":["career"],"title":"Marketable Programming Skills","type":"post"},"fields":{"slug":"/marketable-programming-skills/"},"excerpt":"If you’ve been learning programming on your own, you may have made worked through some books, followed some online tutorials, and made a decent collection of simple apps. At a certain point you may wonder how much else you need to know to be able to start working as a programmer. I’m a self-taught coder with experience in web technologies (JavaScript, HTML, CSS, etc) and Python. Compiling some…"}},{"node":{"id":"b9bffa10-76c5-5831-96ad-63365ba582ec","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 01, 2017","description":null,"tags":["oop","python"],"title":"Using a Class in Python as a Code Wrapper for a Simple Game","type":"post"},"fields":{"slug":"/python-classes-guess-the-number/"},"excerpt":"Object-oriented design is a powerful programming paradigm that can be intimidating to anyone trying to learn how to use it. I worked through a number of excellent tutorials and books on the subject, but struggled to apply the concepts to my own code. I decided to convert a working program that didn’t use OOP and wrap it in a single class. The program I chose was Guess the Number written by Al…"}},{"node":{"id":"8a0e0fa2-afc3-5492-b98a-ed745595bdbf","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"January 15, 2017","description":null,"tags":["music education"],"title":"Honing Musical Strengths with a Student Evaluation","type":"post"},"fields":{"slug":"/honing-strengths-with-a-student-evaluation/"},"excerpt":"From time to time, we can find ourselves stagnating when studying music (or any other topic). To help become immune to this, it’s useful to fully recognize our strengths and acknowledge our weaknesses. Every strength is an opportunity to improve further and if we can acknowledge where we are struggling then we can begin to grow much faster and reach excellence. Ask yourself the following questions…"}},{"node":{"id":"cf15c4c6-a96d-537d-9525-34c1d200c9e4","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 01, 2016","description":null,"tags":["songwriting","promotion"],"title":"10 Issues Songwriters Face","type":"post"},"fields":{"slug":"/10-issues-songwriters-face/"},"excerpt":"It’s common for songwriters to feel overwhelmed when finishing their songs and getting them ready for their audience. There can be tremendous blocks going from inspiration to song completion. Listed below are the top issues I’ve encountered while interviewing songwriters and students of music who write music. 1. Not knowing “where to go next” with your song. This is a major problem for many…"}},{"node":{"id":"9e899d18-3457-5b38-89f4-b68c3fedda94","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"May 10, 2016","description":null,"tags":["bands"],"title":"The Five Dysfunctions of a Band","type":"post"},"fields":{"slug":"/5-dysfunctions-of-a-band/"},"excerpt":"The Five Dysfunctions of a Team (by Patrick Lencioni) is a highly recommended book for anyone that works with other people. (So - almost everyone!) The five dysfunctions are set up in a hierarchy. The bottom of the pyramid below shows that trust is the foundation and all else moves up from there. five-dysfunctions-pyramid The book opens with a story that brings the main five principles…"}},{"node":{"id":"a2bde957-6eed-524d-afe6-19d226d89c33","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"March 31, 2016","description":null,"tags":["practicing"],"title":"A Guide to Practicing and Overcoming Plateaus","type":"post"},"fields":{"slug":"/guide-to-practicing-overcoming-plateaus/"},"excerpt":"A long time student of mine recently began learning classical guitar. He had been studying jazz and blues for a number of years. He has a love for latin fingerstyle rhythms. The more lessons we had, the more he realized that he wanted to deepen his technical foundation. I recently told him: “The number of times you’ll reach a plateau is inversely proportional to how deeply you practice.” In other…"}},{"node":{"id":"04b1908e-5183-5e17-9415-9f4881c90c86","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"March 10, 2016","description":null,"tags":["recording","songwriting"],"title":"Preparing Your Song Demo for the Studio","type":"post"},"fields":{"slug":"/preparing-demo-for-studio/"},"excerpt":"We songwriters put a lot of work into our songs. Putting together interesting chord voicings, refining our lyrics to perfection, and getting the form ‘just right’ can take a lot of effort, but be very gratifying. When your song is finally finished, you might want to make the investment of bringing it to a studio with a band to lay down all of the parts. When it comes to recording in the studio…"}},{"node":{"id":"7e202b1a-2c4a-51f1-8046-587cb36c5751","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"January 06, 2016","description":null,"tags":["songwriting","creativity","productivity"],"title":"A 3 Step Process to Organizing Creativity","type":"post"},"fields":{"slug":"/organizing-creativity-3-step-process/"},"excerpt":"It’s difficult to keep track of everything that needs to be done with your musical ideas. If you write with any frequency, these ideas can amass until there are so many that you can’t keep track of them. Your ideas might range from little snippets to near complete works. Here are some things that commonly go wrong for me: I don’t take enough time to think about where an idea needs to go to be…"}},{"node":{"id":"c55142ea-f8a1-50bf-8922-e7f4ff2ee896","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 16, 2015","description":null,"tags":["songwriting"],"title":"Songwriting Tutorial: Snippet Challenge","type":"post"},"fields":{"slug":"/songwriting-snippet-challenge/"},"excerpt":"Have lots of unfinished ideas? Learn how to take a short instrumental idea and finish writing your song in one day. Over the years, I’ve written tons and tons of short musical ideas. I had been putting off turning them into real pieces until now. Inspired by my research on speed composing, I decided to make a challenge out of my problem. The Snippet Challenge & Simple Instrumental Song Forms In a…"}},{"node":{"id":"5591838f-0d37-5819-b56e-cdcfdfb6da95","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 15, 2015","description":null,"tags":["songwriting"],"title":"Songwriting and Serendipity","type":"post"},"fields":{"slug":"/songwriting-and-serendipity/"},"excerpt":"Why start a composition with a blank slate? Jam on a cover tune then take it in a different direction. Sometimes, the less experience you have figuring out songs, the better. When I was first learning guitar and had much less skill, I tried to figure out songs that I heard. I was usually unsuccessful at transcribing them accurately, but there were many occasions that I enjoyed what I was playing…"}},{"node":{"id":"972a1e06-645e-5949-8544-deaece011b95","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"October 15, 2015","description":null,"tags":["songwriting"],"title":"Songwriting Tutorial: Simplicity and Complexity","type":"post"},"fields":{"slug":"/songwriting-simplicity-complexity/"},"excerpt":"How to begin writing a song by choosing a lyrical theme and a musical mood. The Keys to Simplicity Selecting a mood / topic for the song The central theme of your song can come from anywhere - your mood, the news, or a conversation you heard while at a coffee shop. After choosing something, stay in that mindset until you find the need for a well-placed and meaningful contrast. It’s important to…"}}]}}} \ No newline at end of file +{"data":{"allMarkdownRemark":{"totalCount":44,"edges":[{"node":{"id":"970567e6-3f2a-5749-b60e-5fe9bce3ce59","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"June 01, 2023","description":null,"tags":["productivity","tech talk"],"title":"How I'm Building My Second Brain","type":"post"},"fields":{"slug":"/building-my-second-brain/"},"excerpt":"Slides + Video “How I’m building my second brain” video (2022) (YouTube) “How I’m building my second brain” slides (2022) (PDF) Intro Creativity is bound up with making connections between disparate ideas. The connections piece is crucial - personal knowledge management falls apart without it. Long ago, I treated the Getting Things Done (GTD) productivity system as gospel. The way I used it…"}},{"node":{"id":"5bc00e6c-f6a8-51a5-9312-749eabf343c4","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 05, 2022","description":null,"tags":["random music generators"],"title":"Random Music Generators is now hosted on render.com","type":"post"},"fields":{"slug":"/2022-12-05-random-music-generators-news/"},"excerpt":"Random Music Generators is now hosted on render.com. Please update your bookmarks! https://random-music-generators.onrender.com"}},{"node":{"id":"87a467a5-a5cc-57bc-b828-33199e1396ed","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 05, 2021","description":null,"tags":["typescript","javascript"],"title":"TypeScript-lite: JSDoc for type-checking js files","type":"post"},"fields":{"slug":"/type-check-jsdocs-typescript/"},"excerpt":"Overview Did you know that you can use TypeScript features in JavaScript projects? When I discovered this and tried it out, I really enjoyed the results. Let’s go a bit into how it works. With a few simple ingredients: VSCode JavaScript Willingness to add types in JSDoc (and optionally importing TypeScript types) You can: statically check the types of .js files run compiler on .js files write…"}},{"node":{"id":"43882726-b323-56c1-986e-85fad7e68237","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 27, 2021","description":null,"tags":["career","mental health"],"title":"Programming with more ease","type":"post"},"fields":{"slug":"/programming-with-more-ease/"},"excerpt":"As professional programmers, the bulk of what we do is solving problems. A lot of the time, I’m motivated by problem-solving challenges. But sometimes I hit a wall. A given challenge can become a problem that I’m frustratingly unable to solve. Often, this frustration would spiral into a worse mental state. I’d imagine the problem as a scary, overwhelming, difficult to defeat monster - more…"}},{"node":{"id":"6a155da7-d04b-5289-b463-02babc9a2670","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 23, 2021","description":null,"tags":["design patterns"],"title":"How to Learn Design Patterns","type":"post"},"fields":{"slug":"/design-patterns-curriculum/"},"excerpt":"I’ve long been intrigued by design patterns, but when I started learning them, I realized quickly that I didn’t have a clear learning path. I didn’t know how I should learn design patterns or if it’s the right time for me to learn them. So, I sought out to answer some questions: What are the prerequisites for learning design patterns? What material should I use and how do I avoid being scattered…"}},{"node":{"id":"c373259e-e38e-59bb-ab3b-22a5afc45474","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2021","description":null,"tags":["design patterns"],"title":"Introduction to Design Patterns: Why they're worth learning","type":"post"},"fields":{"slug":"/design-patterns-intro/"},"excerpt":"As developers, we’re constantly learning - and there’s a lot to learn in general because the tech industry is broad and fast-paced. We want to have all the main bases covered so that we can be ready for any situation. We often hear about design patterns and how they can enable us to write well-architected software using object-oriented programming. If you’re like me, you might file that away as a…"}},{"node":{"id":"ef97f645-0325-5bf1-806d-ba14610e6780","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 30, 2021","description":null,"tags":["random music generators"],"title":"Random Music Generators News 2021-01-30","type":"post"},"fields":{"slug":"/2021-01-30-random-music-generators-news/"},"excerpt":"New in 1.3.1 This month, I released a big new feature that’s been requested often. You can now specify a custom note collection to create random melodies. Check it out! Note: This feature is available to use if you create an account. Part of the impetus to provide this feature was to aid in neuroscience research. Having the ability to create melodies with specific pitches will allow researchers…"}},{"node":{"id":"ba57e0fe-e724-5a6e-b122-d39a3674b8fc","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 10, 2020","description":null,"tags":["career"],"title":"Are You Ready to be a Professional Software Engineer?","type":"post"},"fields":{"slug":"/tech-career-resources/"},"excerpt":"Updated March 21, 2021 Did you just graduate from a coding bootcamp, obtain a CS degree, or built an involved side project? How do you know when you’re ready to write software professionally? This post has two parts: questions I ask my mentees to help clarify their job search a collection of resources I’ve found or made that helped my on my job search Questions to clarify the job search There are…"}},{"node":{"id":"ef2f493a-fbef-500d-a57e-689069307ca5","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 21, 2020","description":null,"tags":["immerjs","javascript","react","redux"],"title":"My love hate relationship with ImmerJS","type":"post"},"fields":{"slug":"/love-hate-immer-js/"},"excerpt":"After having used immutable js for a while, discovering ImmerJS was a breath of fresh air. Where immutable js forces you to learn its gigantic API, ImmerJS takes advantage of ES6 Proxies. These allow you to modify a “draft” version of an object as if you’re mutating it, but the draft is actually a copy so you’re not mutating the original! The return of immer’s function always returns a perfect…"}},{"node":{"id":"f2cf9b4b-5eb8-5856-bd0a-86b1e7bc66f4","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 15, 2020","description":null,"tags":["career","coding bootcamps","electron","javascript","tech talk"],"title":"Tech Talk - How I'd Improve My Capstone Project","type":"post"},"fields":{"slug":"/tech-talk-improving-capstone-project/"},"excerpt":"In February 2020, I returned to my bootcamp to give a tech talk on what I’d do to improve my Capstone project. (I also answer career and other questions from the audience at the end.) Download the slides here (PDF) I’m excited to share what I’ve learned so far from working on enterprise software for almost 2 years. The talk is a deep dive into the codebase that myself and three others worked on…"}},{"node":{"id":"d6855891-7ad1-5756-b178-be45a9213df7","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 02, 2020","description":null,"tags":["javascript","node","productivity"],"title":"Using question-prompter for study, self-reflection, and more","type":"post"},"fields":{"slug":"/using-question-prompter/"},"excerpt":"I recently created a node command line app called question-prompter. It prompts you at your terminal to answer questions that you come up with. After you answer them, it saves them to a or file in a directory of your choosing. Background I find a lot of benefit from regularly checking in with myself. While many authors have written about this kind of reflection, Tim Ferriss comes to mind first…"}},{"node":{"id":"d83dfc88-d6b1-51d0-924a-b4ef8ea54dcf","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"June 03, 2020","description":null,"tags":["songwriting","composition","creativity"],"title":"Meta Ideas - Generating Creative Content","type":"post"},"fields":{"slug":"/meta-ideas-generating-creative-content/"},"excerpt":"I’ve been writing down small music (and other) ideas for over 20 years. I’ve generally struggled to store, organize, and retrieve them effectively. As I was going through my archives recently, it dawned on me that there are two fundamental types of ideas: one is “concrete” and the other is “meta.” A concrete idea is specific and actionable. It may be a chord progression like: A minor for two and a…"}},{"node":{"id":"362cb819-3e27-5202-98bf-310df4ba421f","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"May 02, 2020","description":null,"tags":["javascript","test runners","ava","mocha","jest","tech talk"],"title":"Comparing JavaScript Test Runners","type":"post"},"fields":{"slug":"/comparing-javascript-test-runners/"},"excerpt":"This post is a pointer to an article I completed recently - a comprehensive comparison of the AVA, Jest, Mocha, and JavaScript test runners. 👉 https://github.com/scraggo/comparing-javascript-test-runners/ 👈 Why is it on GitHub, not this blog? Not only does the repo contain the comparison article, I created a node application to generate the speed metrics in the article. The process looks like…"}},{"node":{"id":"5c2a373c-48fe-5078-9e3d-f21888265979","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2020","description":null,"tags":["typescript","open source"],"title":"Contributing a New Feature to Open Source: @sindresorhus/is","type":"post"},"fields":{"slug":"/contributing-to-open-source-is-type-checking/"},"excerpt":"This post is a recount of my recent experience contributing to is, a JavaScript open source type checking library. https://github.com/sindresorhus/is https://www.npmjs.com/package/@sindresorhus/is I’ll outline the process from beginning to end: the initial filing of the feature request, implementing the feature, collaborating on the pull request, and getting the feature released. Some of the open…"}},{"node":{"id":"eae0c8d9-4b57-5113-88ed-3ece28ea88ca","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"February 15, 2020","description":"Problems with unexpected assertion failures can arise while testing immutablejs with sinon. This post is a brief guide on how to create a custom matcher that will correctly calculate the equivalence between a mock/stub/spy call with an immutable parameter. The way I’ll be making the assertion is with calledWith from sinon-chai (a plugin for chai that helps with making should or expect assertions for sinon mocks). This github issue on sinonjs outlines the problem...","tags":["testing","sinon","immutablejs"],"title":"Testing immutable js with sinon custom matchers","type":"post"},"fields":{"slug":"/testing-immutable-js-with-sinon-custom-matchers/"},"excerpt":"Problems with unexpected assertion failures can arise while testing with . This post is a brief guide on how to create a custom matcher that will correctly calculate the equivalence between a mock/stub/spy call with an parameter. The way I’ll be making the assertion is with from (a plugin for that helps with making or assertions for mocks). This github issue on sinonjs outlines the problem…"}},{"node":{"id":"13bb4e43-1a4c-5619-88cf-18b133874a58","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 27, 2020","description":null,"tags":["random music generators"],"title":"Random Music Generators News 2020-01-27","type":"post"},"fields":{"slug":"/2020-01-27-random-music-generators-news/"},"excerpt":"New in 1.1.0 Yesterday, I released a feature that’s been in the works for over 6 months. You can now create melody presets. Check it out! If you have a go-to set of form parameters that make sounds that you really enjoy, you can save them and recall them later. As a necessity of saving presets, I added the ability to create an account. This will set the stage for being able to save presets for…"}},{"node":{"id":"208d49b8-08db-5947-81dc-1b7fec2f4c50","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"January 09, 2020","description":"Happy 2020! One of my new year’s resolutions is to redo my website with a lot of new things in mind. Here I’ll outline the changes I’m in the process of making. An important step in the whole makeover was getting an official domain name - I’m now live at scraggo.com! I’m using namecheap as the provider. The site has been hosted with github pages since its inception and I’ll…","tags":["gatsbyjs"],"title":"Website Makeover: Moving from Jekyll to Gatsby","type":"post"},"fields":{"slug":"/website-makeover-gatsby/"},"excerpt":"Happy 2020! One of my new year’s resolutions is to redo my website with a lot of new things in mind. Here I’ll outline the changes I’m in the process of making. EDIT Jan 18, 2020: Gatsby makeover complete! Now live: custom domain name An important step in the whole makeover was getting an official domain name - I’m now live at ! I’m using namecheap as the provider. The site has been hosted with…"}},{"node":{"id":"69ec04c0-36a1-5b4b-b7e5-895ff00cceda","frontmatter":{"author":"Dave Cohen","categories":["other"],"date":"January 01, 2020","description":null,"tags":null,"title":"2020 Resolutions and Reviewing the Decade","type":"post"},"fields":{"slug":"/2020-decade-in-review/"},"excerpt":"I really enjoy reflecting on the past year during the holidays. If I get a chance to do this, I come up with New Years resolutions afterwards. Some years I go through a somewhat involved process of going through my journal entries and coming up with the best realizations. This year, my girlfriend wanted to try Marie Forleo’s recommendation of reviewing the past decade. We went through the…"}},{"node":{"id":"71cb4d5a-1ffa-5471-9090-7ad8a844304b","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 21, 2019","description":null,"tags":["git"],"title":"How to Squash All Commits Related to a Single Issue into a Single Commit","type":"post"},"fields":{"slug":"/how-to-squash-commits/"},"excerpt":"Updated Sep 3, 2020 This article outlines how to use the “squash” feature of an interactive . What does “squashing” do? It allows you to take changes that are spread amongst multiple commits and consolidate them into one. Why should one consider squashing commits? A clean history makes tracking changes to a large codebase across time much easier. Many commits are small and unimportant in the grand…"}},{"node":{"id":"005c820c-061e-57bb-8255-c635792a976d","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"December 20, 2019","description":null,"tags":["music education"],"title":"About Songmind Studios","type":"post"},"fields":{"slug":"/about-songmind-studios/"},"excerpt":"In 2016, I decided to start my own brand of music education. I took the role of music coach, agent, and collaborator. The student and I would write and record music together to integrate learning and creativity in a holistic way. While I’ve suspended these services for the foreseeable future, I’m posting are the core concepts and aims of Songmind Studios. I’ll eventually make all my teaching…"}},{"node":{"id":"fe9a22be-2af0-5ee7-9e22-9ca6bb593de8","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 02, 2019","description":null,"tags":["career"],"title":"How to ace your initial programming job screen","type":"post"},"fields":{"slug":"/prepare-for-initial-screens/"},"excerpt":"Your resume and cover letter surely made a positive impact, but the most important evaluation has yet to come. If you’re searching for your first software development job, the process can be daunting. You may have heard that after sending your resume to a company, there’s an initial screen. This is usually done over the phone, but sometimes it happens in-person. Your resume and cover letter (the…"}},{"node":{"id":"3220ea90-ef5c-5200-befb-6f9a58952f53","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"April 03, 2019","description":null,"tags":["javascript"],"title":"Catching and handling different types of errors in promise chains","type":"post"},"fields":{"slug":"/catching-handling-errors-promise-chains/"},"excerpt":"When you need to make sequential API calls, promise chains are a reliable way to go. It gets a little tricky when you need to throw and handle errors differently at different points in the chain. This post will go into: throwing specific types of errors using creating an object literal dictionary to handle logic gracefully handling the errors differently at the end of the chain This article is…"}},{"node":{"id":"657093ab-4233-5d14-a741-44f2fa462db8","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 28, 2019","description":null,"tags":["javascript"],"title":"Using a filter function recursively","type":"post"},"fields":{"slug":"/recursive-filter-function/"},"excerpt":"The problem Given our array data structure, we only want to include items that have an ‘age’ property and the age is greater than 17. If the person is under age, we won’t allow any of their friends to be included (even if they are old enough to be.) (Contrived scenario, I know, but I recently needed to do something like this for a different type of authorization.) Run this code on repl.it We can…"}},{"node":{"id":"86cb31eb-6b40-50e3-9ddc-d195f0cee1c6","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 24, 2019","description":null,"tags":["git"],"title":"How to format and edit your git commit messages","type":"post"},"fields":{"slug":"/git-commit-format-squash/"},"excerpt":"When writing commit messages, it’s ideal to make them easy for another developer to read and understand exactly what’s in the commit. Oftentimes, though, we write commit messages quickly just to push a branch at the end of a workday, for instance (I know I’m guilty of this). One team member brought the Conventional Commits format to our attention. I’ve enjoyed using it and seeing the results when…"}},{"node":{"id":"35287751-dd87-580c-ae8e-8b1c02051859","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 23, 2019","description":null,"tags":["javascript"],"title":"How to prevent circular dependencies","type":"post"},"fields":{"slug":"/circular-dependencies-bug/"},"excerpt":"Some errors are kind of mysterious. The first time I got “‘myFunction’ is not a function” type errors, I was at a loss for a few hours. Logging out the functions from my require statements came back as or . What I learned, TL;DR - don’t import file ‘a’ into file ‘b’ AND file ‘b’ into file ‘a’. That’s an example of a “circular dependency.” Brief example of creating a circular dependency: myUtils…"}},{"node":{"id":"a5528eb3-e30d-5233-bd30-b8c7ae51558c","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 22, 2019","description":null,"tags":["javascript"],"title":"Custom type checking - isNaN vs Number.isNaN","type":"post"},"fields":{"slug":"/custom-type-checking-isnan/"},"excerpt":"Javascript is infamous for being “loose” and misleading with its typing. gives you , gives you , etc. So instead of writing conditionals using , doing specific checks, etc, I decided to make my own wrapper for which I called : I unknowingly put a bug in my app. Can you spot it? … It’s in the 3rd statement. Basically, the function took anything that wasn’t an ‘array’ or ‘null’ and decided it…"}},{"node":{"id":"ffbf844d-8df4-58a2-bbac-456ad18ce4e2","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"March 18, 2019","description":null,"tags":["javascript"],"title":"Using a Code Style Guide to Enforce Team Best Practices","type":"post"},"fields":{"slug":"/code-style-guide/"},"excerpt":"We all have opinions on what what coding best practices are and how code should be formatted. Recently, one of the teams I’ve been working on decided to add another member. I discovered that our coding styles were radically different. I decided to write some guidelines for our team to get us on the same page. I quickly realized that writing a style guide from scratch is a tall order. I’d already…"}},{"node":{"id":"78ad3884-f757-59b3-9a3e-cfb58062229e","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 18, 2018","description":null,"tags":["career"],"title":"Should junior developers work with recruiters?","type":"post"},"fields":{"slug":"/recruiters-and-junior-devs/"},"excerpt":"This is the first of a handful of posts about the 3-month search for my first full-time developer job. I graduated from a coding bootcamp in April. I’m a junior developer, though, I have some freelance projects on my resume that gave me about 2 years of experience. This, combined with a decently written Linkedin profile, contributed to my getting contacted by multiple recruiters daily. I wound up…"}},{"node":{"id":"58fbbba9-9063-500a-9fcb-829e58d07642","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"May 08, 2018","description":null,"tags":["computer science"],"title":"Debugging Strategies Checklist","type":"post"},"fields":{"slug":"/debugging-strategies-checklist/"},"excerpt":"Tracking down bugs in the software you’re working on can be tricky. Debugging is a massive topic and there are so many places bugs can show up. One thing’s for sure, whether you’re careful or not… Bugs will show up. I’m not saying this to be pessimistic. Creating and squashing bugs is not just a part of the process of writing software, it is the process! We’re solving problems and ironing out the…"}},{"node":{"id":"0092c8a9-f74f-5de1-a8e6-0fe315511475","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"April 16, 2018","description":null,"tags":["coding bootcamps","javascript"],"title":"Reflections From a Coding Bootcamp Graduate","type":"post"},"fields":{"slug":"/reflections-coding-bootcamp/"},"excerpt":"I was ready for a career change. It was October of 2017. The more time I spent coding and learning computer science fundamentals, the more I realized that a programming career would fit my personality* better than performing and teaching music. After spending a fair amount of time teaching myself to code and making websites, I began researching coding bootcamps. There were optimistic statistics of…"}},{"node":{"id":"8e59934a-7dcb-5377-ae8d-73c2d8ed7686","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"February 20, 2018","description":null,"tags":["javascript","computer science"],"title":"Tackling Hash Table Problems in JavaScript","type":"post"},"fields":{"slug":"/hash-tables-js/"},"excerpt":"Algorithms and data structures can be intimidating. The goal of this post is to explain some approaches to solving hash table algorithm problems providing clear examples with detailed solution explanations. I’m hoping this will help anyone uninitiated alleviate fears and make bigger strides in conquering these challenging problems. Why Hash Tables? While attending Fullstack Academy, I participated…"}},{"node":{"id":"d49b052b-2f19-5ddd-a73d-78e80b12bfdd","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"December 26, 2017","description":null,"tags":["coding bootcamps","javascript"],"title":"Now Attending: Fullstack Academy","type":"post"},"fields":{"slug":"/now-attending-fullstack/"},"excerpt":"Why I’m attending Fullstack Academy Since discovering a love for guitar and composition in my teens, I decided to pursue a career as a freelance music teacher, composer, recording engineer, and performing guitarist. After a decade of this, I realized that the rockstar dream didn’t suit me and I was tired of chasing it. I’d be happier with a more stable career that challenged me intellectually. I…"}},{"node":{"id":"e1022862-d7d0-5e18-994d-92f148fb9302","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"September 01, 2017","description":null,"tags":["javascript"],"title":"Intro to JavaScript Frameworks Part 1: The Vanilla JavaScript Version of TodoMVC","type":"post"},"fields":{"slug":"/intro-to-js-frameworks01/"},"excerpt":"The goal of this blog-series is to explain what frameworks do, why they’re used, and demonstrate with examples across many different frameworks. The series is aimed at those familiar with JavaScript syntax, accessing the DOM, functions, and classes (object-oriented programming). Further reading can be found at the bottom of this post. What is a JavaScript Framework? A framework is an imported…"}},{"node":{"id":"bd3eb5a8-b322-5b98-ad3f-6f3cae8be4e1","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"August 01, 2017","description":"This post contains an overview of what sorts of programming jobs are available. It's aimed at developers who want to try something new or are still deciding what to focus on in their efforts to become more marketable.","tags":["career"],"title":"Marketable Programming Skills","type":"post"},"fields":{"slug":"/marketable-programming-skills/"},"excerpt":"If you’ve been learning programming on your own, you may have made worked through some books, followed some online tutorials, and made a decent collection of simple apps. At a certain point you may wonder how much else you need to know to be able to start working as a programmer. I’m a self-taught coder with experience in web technologies (JavaScript, HTML, CSS, etc) and Python. Compiling some…"}},{"node":{"id":"b9bffa10-76c5-5831-96ad-63365ba582ec","frontmatter":{"author":"Dave Cohen","categories":["tech"],"date":"July 01, 2017","description":null,"tags":["oop","python"],"title":"Using a Class in Python as a Code Wrapper for a Simple Game","type":"post"},"fields":{"slug":"/python-classes-guess-the-number/"},"excerpt":"Object-oriented design is a powerful programming paradigm that can be intimidating to anyone trying to learn how to use it. I worked through a number of excellent tutorials and books on the subject, but struggled to apply the concepts to my own code. I decided to convert a working program that didn’t use OOP and wrap it in a single class. The program I chose was Guess the Number written by Al…"}},{"node":{"id":"8a0e0fa2-afc3-5492-b98a-ed745595bdbf","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"January 15, 2017","description":null,"tags":["music education"],"title":"Honing Musical Strengths with a Student Evaluation","type":"post"},"fields":{"slug":"/honing-strengths-with-a-student-evaluation/"},"excerpt":"From time to time, we can find ourselves stagnating when studying music (or any other topic). To help become immune to this, it’s useful to fully recognize our strengths and acknowledge our weaknesses. Every strength is an opportunity to improve further and if we can acknowledge where we are struggling then we can begin to grow much faster and reach excellence. Ask yourself the following questions…"}},{"node":{"id":"cf15c4c6-a96d-537d-9525-34c1d200c9e4","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 01, 2016","description":null,"tags":["songwriting","promotion"],"title":"10 Issues Songwriters Face","type":"post"},"fields":{"slug":"/10-issues-songwriters-face/"},"excerpt":"It’s common for songwriters to feel overwhelmed when finishing their songs and getting them ready for their audience. There can be tremendous blocks going from inspiration to song completion. Listed below are the top issues I’ve encountered while interviewing songwriters and students of music who write music. 1. Not knowing “where to go next” with your song. This is a major problem for many…"}},{"node":{"id":"9e899d18-3457-5b38-89f4-b68c3fedda94","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"May 10, 2016","description":null,"tags":["bands"],"title":"The Five Dysfunctions of a Band","type":"post"},"fields":{"slug":"/5-dysfunctions-of-a-band/"},"excerpt":"The Five Dysfunctions of a Team (by Patrick Lencioni) is a highly recommended book for anyone that works with other people. (So - almost everyone!) The five dysfunctions are set up in a hierarchy. The bottom of the pyramid below shows that trust is the foundation and all else moves up from there. five-dysfunctions-pyramid The book opens with a story that brings the main five principles…"}},{"node":{"id":"a2bde957-6eed-524d-afe6-19d226d89c33","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"March 31, 2016","description":null,"tags":["practicing"],"title":"A Guide to Practicing and Overcoming Plateaus","type":"post"},"fields":{"slug":"/guide-to-practicing-overcoming-plateaus/"},"excerpt":"A long time student of mine recently began learning classical guitar. He had been studying jazz and blues for a number of years. He has a love for latin fingerstyle rhythms. The more lessons we had, the more he realized that he wanted to deepen his technical foundation. I recently told him: “The number of times you’ll reach a plateau is inversely proportional to how deeply you practice.” In other…"}},{"node":{"id":"04b1908e-5183-5e17-9415-9f4881c90c86","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"March 10, 2016","description":null,"tags":["recording","songwriting"],"title":"Preparing Your Song Demo for the Studio","type":"post"},"fields":{"slug":"/preparing-demo-for-studio/"},"excerpt":"We songwriters put a lot of work into our songs. Putting together interesting chord voicings, refining our lyrics to perfection, and getting the form ‘just right’ can take a lot of effort, but be very gratifying. When your song is finally finished, you might want to make the investment of bringing it to a studio with a band to lay down all of the parts. When it comes to recording in the studio…"}},{"node":{"id":"7e202b1a-2c4a-51f1-8046-587cb36c5751","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"January 06, 2016","description":null,"tags":["songwriting","creativity","productivity"],"title":"A 3 Step Process to Organizing Creativity","type":"post"},"fields":{"slug":"/organizing-creativity-3-step-process/"},"excerpt":"It’s difficult to keep track of everything that needs to be done with your musical ideas. If you write with any frequency, these ideas can amass until there are so many that you can’t keep track of them. Your ideas might range from little snippets to near complete works. Here are some things that commonly go wrong for me: I don’t take enough time to think about where an idea needs to go to be…"}},{"node":{"id":"c55142ea-f8a1-50bf-8922-e7f4ff2ee896","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 16, 2015","description":null,"tags":["songwriting"],"title":"Songwriting Tutorial: Snippet Challenge","type":"post"},"fields":{"slug":"/songwriting-snippet-challenge/"},"excerpt":"Have lots of unfinished ideas? Learn how to take a short instrumental idea and finish writing your song in one day. Over the years, I’ve written tons and tons of short musical ideas. I had been putting off turning them into real pieces until now. Inspired by my research on speed composing, I decided to make a challenge out of my problem. The Snippet Challenge & Simple Instrumental Song Forms In a…"}},{"node":{"id":"5591838f-0d37-5819-b56e-cdcfdfb6da95","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"November 15, 2015","description":null,"tags":["songwriting"],"title":"Songwriting and Serendipity","type":"post"},"fields":{"slug":"/songwriting-and-serendipity/"},"excerpt":"Why start a composition with a blank slate? Jam on a cover tune then take it in a different direction. Sometimes, the less experience you have figuring out songs, the better. When I was first learning guitar and had much less skill, I tried to figure out songs that I heard. I was usually unsuccessful at transcribing them accurately, but there were many occasions that I enjoyed what I was playing…"}},{"node":{"id":"972a1e06-645e-5949-8544-deaece011b95","frontmatter":{"author":"Dave Cohen","categories":["music"],"date":"October 15, 2015","description":null,"tags":["songwriting"],"title":"Songwriting Tutorial: Simplicity and Complexity","type":"post"},"fields":{"slug":"/songwriting-simplicity-complexity/"},"excerpt":"How to begin writing a song by choosing a lyrical theme and a musical mood. The Keys to Simplicity Selecting a mood / topic for the song The central theme of your song can come from anywhere - your mood, the news, or a conversation you heard while at a coffee shop. After choosing something, stay in that mindset until you find the need for a well-placed and meaningful contrast. It’s important to…"}}]}}} \ No newline at end of file diff --git a/sw.js b/sw.js index e76b7652..0007ee35 100644 --- a/sw.js +++ b/sw.js @@ -27,7 +27,7 @@ workbox.core.clientsClaim(); */ self.__precacheManifest = [ { - "url": "webpack-runtime-a80e0e5c3c6ab082d7ca.js" + "url": "webpack-runtime-e9f14361a30f5e19595e.js" }, { "url": "styles.a364ccac1ffcd42bb98a.css" @@ -39,14 +39,14 @@ self.__precacheManifest = [ "url": "commons-9e4b76150033d9357c37.js" }, { - "url": "app-e6d974cf9700e3928dc3.js" + "url": "app-aae54d2eda84058ab49f.js" }, { "url": "component---node-modules-gatsby-plugin-offline-app-shell-js-5efb7b8fb8a6286e0a5c.js" }, { "url": "offline-plugin-app-shell-fallback/index.html", - "revision": "6abbe6a9cdd1eacff8bfa2309533eb66" + "revision": "2dba58ce32dfc0801a8a4b5cf70badf3" }, { "url": "manifest.webmanifest", @@ -143,7 +143,7 @@ const navigationRoute = new NavigationRoute(async ({ event }) => { // Check for resources + the app bundle // The latter may not exist if the SW is updating to a new version const resources = await idbKeyval.get(`resources:${pathname}`) - if (!resources || !(await caches.match(`/app-e6d974cf9700e3928dc3.js`))) { + if (!resources || !(await caches.match(`/app-aae54d2eda84058ab49f.js`))) { return await fetch(event.request) } diff --git a/tags/ava/index.html b/tags/ava/index.html index 3d9e4bcd..bfa61eab 100644 --- a/tags/ava/index.html +++ b/tags/ava/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/bands/index.html b/tags/bands/index.html index 62bffb55..77131efa 100644 --- a/tags/bands/index.html +++ b/tags/bands/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/career/index.html b/tags/career/index.html index 411dc5c0..a2d21db8 100644 --- a/tags/career/index.html +++ b/tags/career/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/coding-bootcamps/index.html b/tags/coding-bootcamps/index.html index 21f8457a..62ef011e 100644 --- a/tags/coding-bootcamps/index.html +++ b/tags/coding-bootcamps/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/composition/index.html b/tags/composition/index.html index 30618834..19a08bae 100644 --- a/tags/composition/index.html +++ b/tags/composition/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/computer-science/index.html b/tags/computer-science/index.html index 7c0c61e7..ab0a435b 100644 --- a/tags/computer-science/index.html +++ b/tags/computer-science/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/creativity/index.html b/tags/creativity/index.html index 634f4ae8..409609ec 100644 --- a/tags/creativity/index.html +++ b/tags/creativity/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/design-patterns/index.html b/tags/design-patterns/index.html index 7af4a48b..d743861c 100644 --- a/tags/design-patterns/index.html +++ b/tags/design-patterns/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/electron/index.html b/tags/electron/index.html index 096928e5..738f6855 100644 --- a/tags/electron/index.html +++ b/tags/electron/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/gatsbyjs/index.html b/tags/gatsbyjs/index.html index e9aa532d..85c64d64 100644 --- a/tags/gatsbyjs/index.html +++ b/tags/gatsbyjs/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/git/index.html b/tags/git/index.html index 92081ea8..4ae7f7e3 100644 --- a/tags/git/index.html +++ b/tags/git/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/immerjs/index.html b/tags/immerjs/index.html index 7fe07f23..07caa743 100644 --- a/tags/immerjs/index.html +++ b/tags/immerjs/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/immutablejs/index.html b/tags/immutablejs/index.html index f83a795c..5c85a07e 100644 --- a/tags/immutablejs/index.html +++ b/tags/immutablejs/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/index.html b/tags/index.html index 7ca3af0c..dedaa6e9 100644 --- a/tags/index.html +++ b/tags/index.html @@ -368,4 +368,4 @@ domain: 'scraggo.com' }); woopra.track(); - \ No newline at end of file + \ No newline at end of file diff --git a/tags/javascript/index.html b/tags/javascript/index.html index 0c42c598..c6061673 100644 --- a/tags/javascript/index.html +++ b/tags/javascript/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/jest/index.html b/tags/jest/index.html index d20d0711..be7c1ddf 100644 --- a/tags/jest/index.html +++ b/tags/jest/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/mental-health/index.html b/tags/mental-health/index.html index 49a3bce7..8b786fe9 100644 --- a/tags/mental-health/index.html +++ b/tags/mental-health/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/mocha/index.html b/tags/mocha/index.html index d75c455a..066fa4f1 100644 --- a/tags/mocha/index.html +++ b/tags/mocha/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/music-education/index.html b/tags/music-education/index.html index 107c67d9..dfccaa37 100644 --- a/tags/music-education/index.html +++ b/tags/music-education/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/node/index.html b/tags/node/index.html index 34a44811..acd6afb2 100644 --- a/tags/node/index.html +++ b/tags/node/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/oop/index.html b/tags/oop/index.html index 28ff0864..eb235c83 100644 --- a/tags/oop/index.html +++ b/tags/oop/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/open-source/index.html b/tags/open-source/index.html index fa288053..fd0f0c51 100644 --- a/tags/open-source/index.html +++ b/tags/open-source/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/practicing/index.html b/tags/practicing/index.html index 2c5989bd..a0c565fd 100644 --- a/tags/practicing/index.html +++ b/tags/practicing/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/productivity/index.html b/tags/productivity/index.html index 80e7fc95..b324d92b 100644 --- a/tags/productivity/index.html +++ b/tags/productivity/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/promotion/index.html b/tags/promotion/index.html index d7eea28c..cedb75d2 100644 --- a/tags/promotion/index.html +++ b/tags/promotion/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/python/index.html b/tags/python/index.html index e47bc431..2f249309 100644 --- a/tags/python/index.html +++ b/tags/python/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/random-music-generators/index.html b/tags/random-music-generators/index.html index f7dbf29a..dbc808d6 100644 --- a/tags/random-music-generators/index.html +++ b/tags/random-music-generators/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/react/index.html b/tags/react/index.html index 02590c8d..305dff69 100644 --- a/tags/react/index.html +++ b/tags/react/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/recording/index.html b/tags/recording/index.html index f6395b95..eee946ef 100644 --- a/tags/recording/index.html +++ b/tags/recording/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/redux/index.html b/tags/redux/index.html index a82d5307..8fa2376c 100644 --- a/tags/redux/index.html +++ b/tags/redux/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/sinon/index.html b/tags/sinon/index.html index 78e28d5d..53d77376 100644 --- a/tags/sinon/index.html +++ b/tags/sinon/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/songwriting/index.html b/tags/songwriting/index.html index 87be66cd..c93f2392 100644 --- a/tags/songwriting/index.html +++ b/tags/songwriting/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/tech-talk/index.html b/tags/tech-talk/index.html index c4f17e7c..d13aecd2 100644 --- a/tags/tech-talk/index.html +++ b/tags/tech-talk/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/test-runners/index.html b/tags/test-runners/index.html index 08a18999..4995dcc7 100644 --- a/tags/test-runners/index.html +++ b/tags/test-runners/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/testing/index.html b/tags/testing/index.html index 6ee5ac53..926849ad 100644 --- a/tags/testing/index.html +++ b/tags/testing/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tags/typescript/index.html b/tags/typescript/index.html index d5fa93e2..e0a19bed 100644 --- a/tags/typescript/index.html +++ b/tags/typescript/index.html @@ -359,4 +359,4 @@ * Released under the MIT license * http://opensource.org/licenses/MIT * - */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file + */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1}10%{-webkit-transform:scale(.8) translateZ(0);transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{-webkit-transform:scale(1.05) translateZ(0);transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;-webkit-transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;-webkit-transform:translateX(0) rotateY(0) rotateX(0);transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;-webkit-transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;-webkit-transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropIn{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(10%);transform:translateY(10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10%);transform:translateY(-10%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(-10%);transform:translateX(-10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(5%);transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-5%);transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(5%);transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}to{opacity:0;-webkit-transform:translateX(-5%);transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}to{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:perspective(2000px) rotateY(0);transform:perspective(2000px) rotateY(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:perspective(2000px) rotateX(0);transform:perspective(2000px) rotateX(0);opacity:1}to{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;-webkit-transform:translate3d(0,1500px,0);transform:translate3d(0,1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInDown{0%{opacity:0;-webkit-transform:translate3d(0,-1500px,0);transform:translate3d(0,-1500px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInLeft{0%{opacity:0;-webkit-transform:translate3d(1500px,0,0);transform:translate3d(1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes flyInRight{0%{opacity:0;-webkit-transform:translate3d(-1500px,0,0);transform:translate3d(-1500px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;-webkit-transform-origin:center left;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;-webkit-transform-origin:center left;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:top center;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;-webkit-transform-origin:bottom center;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center right;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;-webkit-transform-origin:center left;transform-origin:center left}@-webkit-keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateX(15deg);transform:perspective(1000px) rotateX(15deg)}80%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}to{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}60%{-webkit-transform:perspective(1000px) rotateY(-17.5deg);transform:perspective(1000px) rotateY(-17.5deg)}80%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}to{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{-webkit-transform:perspective(1000px) rotateX(0);transform:perspective(1000px) rotateX(0)}40%{-webkit-transform:perspective(1000px) rotateX(-7.5deg);transform:perspective(1000px) rotateX(-7.5deg)}60%{-webkit-transform:perspective(1000px) rotateX(17.5deg);transform:perspective(1000px) rotateX(17.5deg)}80%{-webkit-transform:perspective(1000px) rotateX(-30deg);transform:perspective(1000px) rotateX(-30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateX(90deg);transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{-webkit-transform:perspective(1000px) rotateY(0);transform:perspective(1000px) rotateY(0)}40%{-webkit-transform:perspective(1000px) rotateY(7.5deg);transform:perspective(1000px) rotateY(7.5deg)}60%{-webkit-transform:perspective(1000px) rotateY(-10deg);transform:perspective(1000px) rotateY(-10deg)}80%{-webkit-transform:perspective(1000px) rotateY(30deg);transform:perspective(1000px) rotateY(30deg);opacity:1}to{-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:1;-webkit-transform:scale(0);transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-3deg);transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}to{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(.9);transform:scale(.9);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes jiggle{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.flex-wrap{flex-wrap:wrap}.flex-jc-center{justify-content:center}.flex-ai-center{align-items:center}.site-header{margin-bottom:1.5rem}.site-header .site-title-nav-container{display:flex}.site-header .site-title-nav-container img{width:100%}.site-header .site-logo{width:100px;flex-shrink:0}.site-header .site-banner-nav{padding-top:8px}.site-header .site-banner-nav .site-banner{width:200px}.site-header nav{margin:-4px 0 0 6px}.site-header nav ul{list-style-type:none;margin:0;padding:0}.site-header nav .category-label{margin-right:16px}.site-header nav .dropdown-list-link{margin:8px;display:block;min-width:90px}.site-layout{margin:16px auto;max-width:768px;padding:0 16px}.site-footer{margin-top:32px}.site-footer .copyright,.site-footer .footer-social{margin-right:6px}.site-footer .footer-social{color:grey;font-size:14px;font-style:italic}.list-link{display:inline-block;margin:0 16px 8px 0;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.list-link,.list-link a{color:#450000}.list-link .ui.dropdown>.dropdown.icon{margin-left:6px}.post-info-sm{font-size:14px;font-family:Montserrat,Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 0 8px;color:#450000}.post-info-sm a{color:#450000}.post-excerpt{color:#000}.post-categories{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.post-tag{background-color:#fff6e1;border-radius:4px;box-shadow:2px 2px 1px 0 #f1f1f1;color:#6d6767;margin:0 4px;padding:2px 4px}.posts-list .posts-category{margin:16px 0}.posts-list .posts-category h2{display:inline-block;padding:0;margin:0 4px 0 0}.posts-list .posts-category span{font-size:14px;vertical-align:text-bottom}.posts-list h4{margin:8px 0 16px}.posts-list .post-wrapper{margin:8px 0 32px}.posts-list .post-title{margin:0 0 8px}.posts-list .post-title h3{font-size:24px;text-transform:capitalize}.posts-list .post-excerpt{margin:0}.blog-post-template .post-categories,.blog-post-template .post-tag{text-transform:none}.blog-post-template .nav-prev-next{margin-top:32px}.blog-post-template .nav-prev-next ul{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0}.text-wrapper blockquote,.text-wrapper ol,.text-wrapper ul{margin:0 0 12px}.text-wrapper li,.text-wrapper ol,.text-wrapper ul{padding:0}.text-wrapper ul li{margin-left:28px;margin-bottom:0}.text-wrapper ol li{margin-left:24px;padding-left:4px}.text-wrapper li{margin-bottom:4px}.text-wrapper li p,.text-wrapper li ul{margin-bottom:0}.text-wrapper h2{color:#450000}.text-wrapper h3{font-size:1.35rem}.text-wrapper blockquote{font-style:italic;border-left:.32813rem solid #dedbaf;padding-left:12px}.text-wrapper header{text-transform:uppercase;text-align:center;margin-bottom:24px}.text-wrapper header h1{font-weight:500;letter-spacing:1.5px;font-size:40px}.text-wrapper header h1 a{color:#000}.text-wrapper header h1 a:hover{text-decoration:underline}.text-wrapper header p{margin-bottom:12px}.text-wrapper header .color-grey{color:grey}.text-wrapper table{margin-bottom:16px;table-layout:fixed;width:100%;border-collapse:collapse}.text-wrapper td,.text-wrapper th{border:1px solid grey;margin:0;padding:2px 6px}html{background-color:transparent}body{font-size:16px}@font-face{font-family:Montserrat;src:url(/assets/font/Montserrat-Regular.woff)}.gatsby-highlight{background-color:#f6fbff;border-radius:.3em;margin:.5em 0;padding:1em;overflow:auto}.gatsby-highlight pre[class*=language-]{background-color:transparent;margin:0;padding:0;overflow:initial;float:left;min-width:100%}.gatsby-highlight-code-line{background-color:#fefdc4;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #f99}.icon{display:inline-block;max-height:16px;margin-right:8px}.music-discography-page .feature{margin-bottom:32px}.music-discography-page .feature .featured-image,.music-discography-page .feature .featured-image-back{display:inline-block;margin:auto;width:50%}.music-discography-page .feature .featured-links{margin-top:8px}.music-discography-page .feature .icon{max-height:24px}.music-discography-page .album-link-button{border:1px solid rgba(0,0,0,.87);border-radius:5px;color:rgba(0,0,0,.87);font-size:1rem;padding:2px 6px;margin:0 1px 1px}.music-discography-page .album-link-button:hover{border:1px solid #1e70bf;color:#1e70bf}.music-discography-page .album-link,.music-discography-page .album-link-small{text-decoration:underline;padding:0 4px}.music-discography-page .album-link-small{font-size:1rem}.music-discography-page .artist-releases{margin-bottom:24px}.music-discography-page .artist-releases h4{font-weight:400}.music-discography-page .album-li{list-style:none;margin-bottom:8px;font-weight:700;font-size:1rem}.music-discography-page .album-li a{font-weight:400}.music-discography-page .support-message{border:1px solid #37378a;padding:6px;background-color:#fbfbe5}.music-discography-page .support-message h3,.music-discography-page .support-message p{font-size:.8rem}@media screen and (max-width:520px){.music-discography-page .feature .featured-image{width:100%}.music-discography-page .feature .featured-image-back{display:none}}.book{margin-bottom:24px}.book-title{font-size:18px;font-weight:700;margin-bottom:6px}.book-favorite{margin-left:4px}.reading-list-filter{margin:24px 0}.flex{display:flex}.margin-top-lg{margin-top:1.5rem}.margin-top-md{margin-top:8px}h3{font-size:1.6rem}.portfolio-text{width:50%}.portfolio-img{margin-left:50px;max-width:750px}.portfolio-img img{width:100%;max-width:750px}.project hr{border:0;border-top:1px solid #ccc;margin:2rem 2rem 2rem 0}@media screen and (min-width:0px){.portfolio-wrapper{display:block}.portfolio-img{margin:0 auto;padding-top:10px}.portfolio-text{width:100%}} \ No newline at end of file diff --git a/tech-career-resources/index.html b/tech-career-resources/index.html index a7966c5a..a0fc1f8b 100644 --- a/tech-career-resources/index.html +++ b/tech-career-resources/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

        Are You Ready to be a Professional Software Engineer?

        Updated March 21, 2021

        + \ No newline at end of file +
        \ No newline at end of file diff --git a/tech-talk-improving-capstone-project/index.html b/tech-talk-improving-capstone-project/index.html index 41080921..8c54dd5c 100644 --- a/tech-talk-improving-capstone-project/index.html +++ b/tech-talk-improving-capstone-project/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

        Tech Talk - How I'd Improve My Capstone Project

        In February 2020, I returned to my bootcamp to give a tech talk on what I’d do to improve my Capstone project. (I also answer career and other questions from the audience at the end.)

        + \ No newline at end of file +
        \ No newline at end of file diff --git a/tech/index.html b/tech/index.html index 2c8b6ac2..358709d5 100644 --- a/tech/index.html +++ b/tech/index.html @@ -368,4 +368,4 @@ domain: 'scraggo.com' }); woopra.track(); -

        Tech Posts

        (32)

        Introduction to Design Patterns: Why they're worth learning

        As developers, we’re constantly learning - and there’s a lot to learn in general because the tech industry is broad and fast-paced. We want to have all the main bases covered so that we can be ready for any situation. We often hear about design patterns and how they can enable us to write well-architected software using object-oriented programming. If you’re like me, you might file that away as a…

        Tech Talk - How I'd Improve My Capstone Project

        In February 2020, I returned to my bootcamp to give a tech talk on what I’d do to improve my Capstone project. (I also answer career and other questions from the audience at the end.) Download the slides here (PDF) I’m excited to share what I’ve learned so far from working on enterprise software for almost 2 years. The talk is a deep dive into the codebase that myself and three others worked on…

        Using question-prompter for study, self-reflection, and more

        I recently created a node command line app called question-prompter. It prompts you at your terminal to answer questions that you come up with. After you answer them, it saves them to a or file in a directory of your choosing. Background I find a lot of benefit from regularly checking in with myself. While many authors have written about this kind of reflection, Tim Ferriss comes to mind first…

        Contributing a New Feature to Open Source: @sindresorhus/is

        This post is a recount of my recent experience contributing to is, a JavaScript open source type checking library. https://github.com/sindresorhus/is https://www.npmjs.com/package/@sindresorhus/is I’ll outline the process from beginning to end: the initial filing of the feature request, implementing the feature, collaborating on the pull request, and getting the feature released. Some of the open…

        Testing immutable js with sinon custom matchers

        Problems with unexpected assertion failures can arise while testing immutablejs with sinon. This post is a brief guide on how to create a custom matcher that will correctly calculate the equivalence between a mock/stub/spy call with an immutable parameter. The way I’ll be making the assertion is with calledWith from sinon-chai (a plugin for chai that helps with making should or expect assertions for sinon mocks). This github issue on sinonjs outlines the problem...

        How to Squash All Commits Related to a Single Issue into a Single Commit

        Updated Sep 3, 2020 This article outlines how to use the “squash” feature of an interactive . What does “squashing” do? It allows you to take changes that are spread amongst multiple commits and consolidate them into one. Why should one consider squashing commits? A clean history makes tracking changes to a large codebase across time much easier. Many commits are small and unimportant in the grand…

        Intro to JavaScript Frameworks Part 1: The Vanilla JavaScript Version of TodoMVC

        The goal of this blog-series is to explain what frameworks do, why they’re used, and demonstrate with examples across many different frameworks. The series is aimed at those familiar with JavaScript syntax, accessing the DOM, functions, and classes (object-oriented programming). Further reading can be found at the bottom of this post. What is a JavaScript Framework? A framework is an imported…

        \ No newline at end of file +

        Tech Posts

        (32)

        Introduction to Design Patterns: Why they're worth learning

        As developers, we’re constantly learning - and there’s a lot to learn in general because the tech industry is broad and fast-paced. We want to have all the main bases covered so that we can be ready for any situation. We often hear about design patterns and how they can enable us to write well-architected software using object-oriented programming. If you’re like me, you might file that away as a…

        Tech Talk - How I'd Improve My Capstone Project

        In February 2020, I returned to my bootcamp to give a tech talk on what I’d do to improve my Capstone project. (I also answer career and other questions from the audience at the end.) Download the slides here (PDF) I’m excited to share what I’ve learned so far from working on enterprise software for almost 2 years. The talk is a deep dive into the codebase that myself and three others worked on…

        Using question-prompter for study, self-reflection, and more

        I recently created a node command line app called question-prompter. It prompts you at your terminal to answer questions that you come up with. After you answer them, it saves them to a or file in a directory of your choosing. Background I find a lot of benefit from regularly checking in with myself. While many authors have written about this kind of reflection, Tim Ferriss comes to mind first…

        Contributing a New Feature to Open Source: @sindresorhus/is

        This post is a recount of my recent experience contributing to is, a JavaScript open source type checking library. https://github.com/sindresorhus/is https://www.npmjs.com/package/@sindresorhus/is I’ll outline the process from beginning to end: the initial filing of the feature request, implementing the feature, collaborating on the pull request, and getting the feature released. Some of the open…

        Testing immutable js with sinon custom matchers

        Problems with unexpected assertion failures can arise while testing immutablejs with sinon. This post is a brief guide on how to create a custom matcher that will correctly calculate the equivalence between a mock/stub/spy call with an immutable parameter. The way I’ll be making the assertion is with calledWith from sinon-chai (a plugin for chai that helps with making should or expect assertions for sinon mocks). This github issue on sinonjs outlines the problem...

        How to Squash All Commits Related to a Single Issue into a Single Commit

        Updated Sep 3, 2020 This article outlines how to use the “squash” feature of an interactive . What does “squashing” do? It allows you to take changes that are spread amongst multiple commits and consolidate them into one. Why should one consider squashing commits? A clean history makes tracking changes to a large codebase across time much easier. Many commits are small and unimportant in the grand…

        Intro to JavaScript Frameworks Part 1: The Vanilla JavaScript Version of TodoMVC

        The goal of this blog-series is to explain what frameworks do, why they’re used, and demonstrate with examples across many different frameworks. The series is aimed at those familiar with JavaScript syntax, accessing the DOM, functions, and classes (object-oriented programming). Further reading can be found at the bottom of this post. What is a JavaScript Framework? A framework is an imported…

        \ No newline at end of file diff --git a/tech/projects/index.html b/tech/projects/index.html index 0448ff7c..12233cb3 100644 --- a/tech/projects/index.html +++ b/tech/projects/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

        Tech Projects

        Random Music Generators

        Generate unlimited unique melodies with easily changed parameters including tonality, rhythm, and interval jumps. These melodies can be previewed in-browser and downloaded as MIDI.

        Technology: React, Redux, Express, PostgreSQL, Semantic UI, MIDIwriterJS, ToneJS

        Random Music Generators

        scraggo.com

        Technology: Gatsby, React, scss, markdown


        Tone Rhythm

        As a musician developing music applications, I wanted an API that would allow me to put rhythms along with a melody into Tone.Part. The example on Tone's docs shows how this is expected and it's far from ideal. With the help of this small library, the developer-musician can generate an array of Tone.Transport times given an array of musical rhythms in various formats that Tone.js understands.

        Technology: JavaScript (Mocha, Chai, Babel, Webpack, Tone.js)


        Comparing JavaScript Test Runners

        Article and companion app that compares AVA, Jest, Mocha, and mocha-parallel-tests testing frameworks.

        Technology: AVA, Jest, Mocha


        Design patterns

        TypeScript runner for all design patterns on refactoring.guru. Accompanying blog posts for students of design patterns.

        Technology: TypeScript, node, oclif, mocha


        Question Prompter

        CLI tool to prompt for user configured questions and notes

        Technology: node (commander, inquirer)


        ImmutableJS Tutorial

        Centralized ImmutableJS tutorial and sandbox

        Technology: React, ImmutableJS


        Vocode

        Vocode is a desktop application that allows users to perform a number of useful commands with their voice. The app can populate a user's clipboard with a snippet (a text template) which can be pasted into any text editor. Users can add other user snippets, create new snippets, and manage all this information in one central place. The app also provides a user the ability to display websites in the app with a voice command.

        Technology: Electron JS, WebAudio API, Google Cloud Speech Service, Ant, React, Redux, Express, PostgreSQL

        Vocode

        Bookmarks to Markdown Utilities

        Collection of command-line tools for Chrome bookmark management. (There is some functionality for OneTab, Evernote, and FireFox.) Designed for personal use and other users who may dislike managing a large bookmark collection inside of Chrome, use Chrome for both Desktop and Mobile bookmarking (and mainly use the "Mobile Bookmarks" folder), want to convert bookmarks into individual markdown files, want a way to visit a site and tag the bookmark with minimal mouse movement, and more.

        Technology: Python (pytest, pyperclip, argparse)


        Subnotes - Organize Your Notes

        Web adaptation of a productivity app originally written in Python. Users can input their notes in a certain format and can easily sort, filter, and copy the result to their clipboard.

        Technology: Python, Javascript, Bootstrap, clipboard.js, Gulp, Babel


        ScragMark: Markdown Notes/Bookmarks

        Chrome Extension that allows a user to write notes in markdown format and easily put current tab link in notes. User can display their notes rendered in a separate tab. Notes save persistently.

        Technology: Chrome API, Chrome local storage, Javascript, highlight.js, markdown-it.js


        GitHub User Search

        Web app that allows the user to retrieve data based on a search for a GitHub user name. For example, if you search for `scraggo` (my username) you can easily find my contribution activity (pull requests on others' repositories.)

        Technology: AureliaJS, Gulp, GitHub API


        Open Source Contributions

        \ No newline at end of file diff --git a/testing-immutable-js-with-sinon-custom-matchers/index.html b/testing-immutable-js-with-sinon-custom-matchers/index.html index 48816e35..0fbd0be6 100644 --- a/testing-immutable-js-with-sinon-custom-matchers/index.html +++ b/testing-immutable-js-with-sinon-custom-matchers/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

        Testing immutable js with sinon custom matchers

        Problems with unexpected assertion failures can arise while testing immutablejs with sinon. This post is a brief guide on how to create a custom matcher that will correctly calculate the equivalence between a mock/stub/spy call with an immutable parameter.

        +

        Testing immutable js with sinon custom matchers

        Problems with unexpected assertion failures can arise while testing immutablejs with sinon. This post is a brief guide on how to create a custom matcher that will correctly calculate the equivalence between a mock/stub/spy call with an immutable parameter.

        The way I’ll be making the assertion is with calledWith from sinon-chai (a plugin for chai that helps with making should or expect assertions for sinon mocks).

        This github issue on sinonjs outlines the problem. It’s a very easy one to run into. This post is one solution to it.

        @@ -466,4 +466,4 @@

        Read more

      • https://sinonjs.org/releases/v7.5.0/matchers/
      • https://changelog.com/posts/this-week-i-learned-about-sinon-matchers
      • https://stackoverflow.com/questions/41231496/how-to-match-an-array-of-objects-with-sinon-js
      • -
        \ No newline at end of file +
        \ No newline at end of file diff --git a/type-check-jsdocs-typescript/index.html b/type-check-jsdocs-typescript/index.html index 4153113d..a847caa6 100644 --- a/type-check-jsdocs-typescript/index.html +++ b/type-check-jsdocs-typescript/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

        TypeScript-lite: JSDoc for type-checking js files

        Overview

        +

        TypeScript-lite: JSDoc for type-checking js files

        Overview

        Did you know that you can use TypeScript features in JavaScript projects? When I discovered this and tried it out, I really enjoyed the results. Let’s go a bit into how it works.

        With a few simple ingredients:

        \ No newline at end of file +
        \ No newline at end of file diff --git a/using-question-prompter/index.html b/using-question-prompter/index.html index 70ddffe6..82cc53ae 100644 --- a/using-question-prompter/index.html +++ b/using-question-prompter/index.html @@ -368,7 +368,7 @@ domain: 'scraggo.com' }); woopra.track(); -

        Using question-prompter for study, self-reflection, and more

        I recently created a node command line app called question-prompter. It prompts you at your terminal to answer questions that you come up with. After you answer them, it saves them to a json or yaml file in a directory of your choosing.

        +

        Using question-prompter for study, self-reflection, and more

        I recently created a node command line app called question-prompter. It prompts you at your terminal to answer questions that you come up with. After you answer them, it saves them to a json or yaml file in a directory of your choosing.

        Architecture

        src/utils

        I find that wrapping utilities makes my life easier. When I call the wrappers inside business logic files (like io-handlers or inquirer), it clearly separates the file-system handling from the app-specific processing.

        Conclusion

        -

        Let me know if you found the app useful!

        \ No newline at end of file +

        Let me know if you found the app useful!

        \ No newline at end of file diff --git a/webpack-runtime-a80e0e5c3c6ab082d7ca.js b/webpack-runtime-e9f14361a30f5e19595e.js similarity index 90% rename from webpack-runtime-a80e0e5c3c6ab082d7ca.js rename to webpack-runtime-e9f14361a30f5e19595e.js index c1468216..c179538c 100644 --- a/webpack-runtime-a80e0e5c3c6ab082d7ca.js +++ b/webpack-runtime-e9f14361a30f5e19595e.js @@ -1,2 +1,2 @@ -!function(e){function n(n){for(var r,a,s=n[0],p=n[1],i=n[2],f=0,d=[];f

        Website Makeover: Moving from Jekyll to Gatsby

        Happy 2020! One of my new year’s resolutions is to redo my website with a lot of new things in mind. Here I’ll outline the changes I’m in the process of making. EDIT Jan 18, 2020: Gatsby makeover complete!

        +

        Website Makeover: Moving from Jekyll to Gatsby

        Happy 2020! One of my new year’s resolutions is to redo my website with a lot of new things in mind. Here I’ll outline the changes I’m in the process of making. EDIT Jan 18, 2020: Gatsby makeover complete!

        Now live: custom domain name scraggo.com

        An important step in the whole makeover was getting an official domain name - I’m now live at scraggo.com! I’m using namecheap as the provider. The site has been hosted with github pages since its inception and I’ll probably continue to host it here.

        New year, new static site generator

        @@ -416,4 +416,4 @@

        What’s remaining

        Signing off

        I’m really looking forward to the unveiling of my new site once all the updates are to complete.

        -

        I hope you’re having a great new year. Here’s to achieving your goals in 2020! 🥂

        \ No newline at end of file +

        I hope you’re having a great new year. Here’s to achieving your goals in 2020! 🥂

        \ No newline at end of file