/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}

/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box;
  /* 1 */
  height: 1px;
  /* 1 */
  overflow: visible;
  /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/* Text-level semantics
   ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  text-decoration: underline dotted;
  /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none;
}

/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
  margin: 0;
  /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box;
  /* 1 */
  color: inherit;
  /* 2 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  white-space: normal;
  /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type=checkbox],
[type=radio] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type=search] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}

/* Interactive
   ========================================================================== */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/* Misc
   ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none;
}

/**
 * Set up a decent box model on the root element
 */
html {
  box-sizing: border-box;
}

/**
 * Make all elements from the DOM inherit from the parent box-sizing
 * Since `*` has a specificity of 0, it does not override the `html` value
 * making all elements inheriting from the root box-sizing value
 * See: https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
*,
*::before,
*::after {
  box-sizing: inherit;
}

/**
 * Make images responsive
 */
img {
  max-width: 100%;
  max-height: auto;
}

/**
 * Headings
 */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-weight: normal;
  text-transform: uppercase;
  margin: 0 0 1rem;
}

h1, .h1 {
  font-size: 2rem;
}

h2, .h2 {
  font-size: 1.8rem;
}

h3, .h3 {
  font-size: 1.4rem;
}

h4, .h4 {
  font-size: 1.2rem;
}

h5, .h5, h3 {
  font-size: 1rem;
}

h6, .h6 {
  font-size: 0.8rem;
}

h3 {
  font-weight: bold;
}

/**
 * Basic styles for links
 */
a {
  color: #2C7391;
  text-decoration: underline;
}
a:hover, a:active, a:focus {
  color: #222222;
  text-decoration: none;
}

/**
 * Horizontal rule
 */
hr {
  border-radius: 10px;
  background-color: black;
  width: 100%;
  border: 0;
  height: 1.5px;
  max-width: 300px;
}

/**
 * Lists
 */
ul.social-icons {
  font-size: 1.8rem;
}

/**
 * Basic typography style for copy text
 */
body {
  color: #222222;
  font: normal 100%/1.4 "Poppins", "Helvetica", "Arial", sans-serif;
}

/**
 * Clear inner floats
 */
.clearfix::after {
  clear: both;
  content: "";
  display: table;
}

/**
 * Main content containers
 * 1. Make the container full-width with a maximum width
 * 2. Center it in the viewport
 * 3. Leave some space on the edges, especially valuable on small screens
 */
.container {
  max-width: 1180px;
  /* 1 */
  margin-left: auto;
  /* 2 */
  margin-right: auto;
  /* 2 */
  padding-left: 20px;
  /* 3 */
  padding-right: 20px;
  /* 3 */
  width: 100%;
  /* 1 */
}

/**
 * Hide text while making it readable for screen readers
 * 1. Needed in WebKit-based browsers because of an implementation bug;
 *    See: https://code.google.com/p/chromium/issues/detail?id=457146
 */
.hide-text {
  overflow: hidden;
  padding: 0;
  /* 1 */
  text-indent: 101%;
  white-space: nowrap;
}

/**
 * Hide element while making it readable for screen readers
 * Shamelessly borrowed from HTML5Boilerplate:
 * https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L119-L133
 */
.visually-hidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

/**
 * Text align utilities
 */
.text-center, section.contact, section.portfolio ul.project-list, section.skills, section h2 {
  text-align: center;
}

.text-left {
  text-align: left;
}

.text-right {
  text-align: right;
}

/**
 * Include basic margin & padding styles
 */
.p-auto {
  padding: auto !important;
}

.p-0 {
  padding: 0 !important;
}

.p-1, section.portfolio ul.project-list li {
  padding: 0.25rem !important;
}

.p-2 {
  padding: 0.5rem !important;
}

.p-3, #header nav#menu ul {
  padding: 0.75rem !important;
}

.p-4, #header .heading {
  padding: 1rem !important;
}

.p-5 {
  padding: 1.25rem !important;
}

.p-6 {
  padding: 1.5rem !important;
}

.p-7 {
  padding: 1.75rem !important;
}

.p-8 {
  padding: 2rem !important;
}

.p-9 {
  padding: 2.25rem !important;
}

.p-10 {
  padding: 2.5rem !important;
}

.p-11 {
  padding: 2.75rem !important;
}

.p-12 {
  padding: 3rem !important;
}

.p-13 {
  padding: 3.25rem !important;
}

.p-14 {
  padding: 3.5rem !important;
}

.p-15 {
  padding: 3.75rem !important;
}

.p-16 {
  padding: 4rem !important;
}

.px-auto {
  padding-left: auto !important;
  padding-right: auto !important;
}

.px-0 {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.px-1 {
  padding-left: 0.25rem !important;
  padding-right: 0.25rem !important;
}

.px-2 {
  padding-left: 0.5rem !important;
  padding-right: 0.5rem !important;
}

.px-3 {
  padding-left: 0.75rem !important;
  padding-right: 0.75rem !important;
}

.px-4 {
  padding-left: 1rem !important;
  padding-right: 1rem !important;
}

.px-5 {
  padding-left: 1.25rem !important;
  padding-right: 1.25rem !important;
}

.px-6 {
  padding-left: 1.5rem !important;
  padding-right: 1.5rem !important;
}

.px-7 {
  padding-left: 1.75rem !important;
  padding-right: 1.75rem !important;
}

.px-8 {
  padding-left: 2rem !important;
  padding-right: 2rem !important;
}

.px-9 {
  padding-left: 2.25rem !important;
  padding-right: 2.25rem !important;
}

.px-10 {
  padding-left: 2.5rem !important;
  padding-right: 2.5rem !important;
}

.px-11 {
  padding-left: 2.75rem !important;
  padding-right: 2.75rem !important;
}

.px-12 {
  padding-left: 3rem !important;
  padding-right: 3rem !important;
}

.px-13 {
  padding-left: 3.25rem !important;
  padding-right: 3.25rem !important;
}

.px-14 {
  padding-left: 3.5rem !important;
  padding-right: 3.5rem !important;
}

.px-15 {
  padding-left: 3.75rem !important;
  padding-right: 3.75rem !important;
}

.px-16 {
  padding-left: 4rem !important;
  padding-right: 4rem !important;
}

.py-auto {
  padding-top: auto !important;
  padding-bottom: auto !important;
}

.py-0 {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.py-1 {
  padding-top: 0.25rem !important;
  padding-bottom: 0.25rem !important;
}

.py-2 {
  padding-top: 0.5rem !important;
  padding-bottom: 0.5rem !important;
}

.py-3 {
  padding-top: 0.75rem !important;
  padding-bottom: 0.75rem !important;
}

.py-4 {
  padding-top: 1rem !important;
  padding-bottom: 1rem !important;
}

.py-5 {
  padding-top: 1.25rem !important;
  padding-bottom: 1.25rem !important;
}

.py-6 {
  padding-top: 1.5rem !important;
  padding-bottom: 1.5rem !important;
}

.py-7 {
  padding-top: 1.75rem !important;
  padding-bottom: 1.75rem !important;
}

.py-8 {
  padding-top: 2rem !important;
  padding-bottom: 2rem !important;
}

.py-9 {
  padding-top: 2.25rem !important;
  padding-bottom: 2.25rem !important;
}

.py-10, section {
  padding-top: 2.5rem !important;
  padding-bottom: 2.5rem !important;
}

.py-11 {
  padding-top: 2.75rem !important;
  padding-bottom: 2.75rem !important;
}

.py-12 {
  padding-top: 3rem !important;
  padding-bottom: 3rem !important;
}

.py-13 {
  padding-top: 3.25rem !important;
  padding-bottom: 3.25rem !important;
}

.py-14 {
  padding-top: 3.5rem !important;
  padding-bottom: 3.5rem !important;
}

.py-15 {
  padding-top: 3.75rem !important;
  padding-bottom: 3.75rem !important;
}

.py-16 {
  padding-top: 4rem !important;
  padding-bottom: 4rem !important;
}

.pt-auto {
  padding-top: auto !important;
}

.pt-0 {
  padding-top: 0 !important;
}

.pt-1 {
  padding-top: 0.25rem !important;
}

.pt-2 {
  padding-top: 0.5rem !important;
}

.pt-3 {
  padding-top: 0.75rem !important;
}

.pt-4 {
  padding-top: 1rem !important;
}

.pt-5 {
  padding-top: 1.25rem !important;
}

.pt-6 {
  padding-top: 1.5rem !important;
}

.pt-7 {
  padding-top: 1.75rem !important;
}

.pt-8 {
  padding-top: 2rem !important;
}

.pt-9 {
  padding-top: 2.25rem !important;
}

.pt-10 {
  padding-top: 2.5rem !important;
}

.pt-11 {
  padding-top: 2.75rem !important;
}

.pt-12 {
  padding-top: 3rem !important;
}

.pt-13 {
  padding-top: 3.25rem !important;
}

.pt-14 {
  padding-top: 3.5rem !important;
}

.pt-15 {
  padding-top: 3.75rem !important;
}

.pt-16 {
  padding-top: 4rem !important;
}

.pr-auto {
  padding-right: auto !important;
}

.pr-0 {
  padding-right: 0 !important;
}

.pr-1 {
  padding-right: 0.25rem !important;
}

.pr-2 {
  padding-right: 0.5rem !important;
}

.pr-3 {
  padding-right: 0.75rem !important;
}

.pr-4 {
  padding-right: 1rem !important;
}

.pr-5 {
  padding-right: 1.25rem !important;
}

.pr-6 {
  padding-right: 1.5rem !important;
}

.pr-7 {
  padding-right: 1.75rem !important;
}

.pr-8 {
  padding-right: 2rem !important;
}

.pr-9 {
  padding-right: 2.25rem !important;
}

.pr-10 {
  padding-right: 2.5rem !important;
}

.pr-11 {
  padding-right: 2.75rem !important;
}

.pr-12 {
  padding-right: 3rem !important;
}

.pr-13 {
  padding-right: 3.25rem !important;
}

.pr-14 {
  padding-right: 3.5rem !important;
}

.pr-15 {
  padding-right: 3.75rem !important;
}

.pr-16 {
  padding-right: 4rem !important;
}

.pb-auto {
  padding-bottom: auto !important;
}

.pb-0 {
  padding-bottom: 0 !important;
}

.pb-1 {
  padding-bottom: 0.25rem !important;
}

.pb-2 {
  padding-bottom: 0.5rem !important;
}

.pb-3 {
  padding-bottom: 0.75rem !important;
}

.pb-4 {
  padding-bottom: 1rem !important;
}

.pb-5 {
  padding-bottom: 1.25rem !important;
}

.pb-6 {
  padding-bottom: 1.5rem !important;
}

.pb-7 {
  padding-bottom: 1.75rem !important;
}

.pb-8 {
  padding-bottom: 2rem !important;
}

.pb-9 {
  padding-bottom: 2.25rem !important;
}

.pb-10 {
  padding-bottom: 2.5rem !important;
}

.pb-11 {
  padding-bottom: 2.75rem !important;
}

.pb-12 {
  padding-bottom: 3rem !important;
}

.pb-13 {
  padding-bottom: 3.25rem !important;
}

.pb-14 {
  padding-bottom: 3.5rem !important;
}

.pb-15 {
  padding-bottom: 3.75rem !important;
}

.pb-16 {
  padding-bottom: 4rem !important;
}

.pl-auto {
  padding-left: auto !important;
}

.pl-0 {
  padding-left: 0 !important;
}

.pl-1 {
  padding-left: 0.25rem !important;
}

.pl-2 {
  padding-left: 0.5rem !important;
}

.pl-3 {
  padding-left: 0.75rem !important;
}

.pl-4 {
  padding-left: 1rem !important;
}

.pl-5 {
  padding-left: 1.25rem !important;
}

.pl-6 {
  padding-left: 1.5rem !important;
}

.pl-7 {
  padding-left: 1.75rem !important;
}

.pl-8 {
  padding-left: 2rem !important;
}

.pl-9 {
  padding-left: 2.25rem !important;
}

.pl-10 {
  padding-left: 2.5rem !important;
}

.pl-11 {
  padding-left: 2.75rem !important;
}

.pl-12 {
  padding-left: 3rem !important;
}

.pl-13 {
  padding-left: 3.25rem !important;
}

.pl-14 {
  padding-left: 3.5rem !important;
}

.pl-15 {
  padding-left: 3.75rem !important;
}

.pl-16 {
  padding-left: 4rem !important;
}

.m-auto {
  margin: auto !important;
}

.m-0 {
  margin: 0 !important;
}

.m-1 {
  margin: 0.25rem !important;
}

.m-2 {
  margin: 0.5rem !important;
}

.m-3 {
  margin: 0.75rem !important;
}

.m-4 {
  margin: 1rem !important;
}

.m-5 {
  margin: 1.25rem !important;
}

.m-6 {
  margin: 1.5rem !important;
}

.m-7 {
  margin: 1.75rem !important;
}

.m-8 {
  margin: 2rem !important;
}

.m-9 {
  margin: 2.25rem !important;
}

.m-10 {
  margin: 2.5rem !important;
}

.m-11 {
  margin: 2.75rem !important;
}

.m-12 {
  margin: 3rem !important;
}

.m-13 {
  margin: 3.25rem !important;
}

.m-14 {
  margin: 3.5rem !important;
}

.m-15 {
  margin: 3.75rem !important;
}

.m-16 {
  margin: 4rem !important;
}

.mx-auto, section h2::after, hr {
  margin-left: auto !important;
  margin-right: auto !important;
}

.mx-0 {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.mx-1 {
  margin-left: 0.25rem !important;
  margin-right: 0.25rem !important;
}

.mx-2, #header nav#menu ul li, ul.inline-list li, section.portfolio ul.project-list li {
  margin-left: 0.5rem !important;
  margin-right: 0.5rem !important;
}

.mx-3 {
  margin-left: 0.75rem !important;
  margin-right: 0.75rem !important;
}

.mx-4 {
  margin-left: 1rem !important;
  margin-right: 1rem !important;
}

.mx-5 {
  margin-left: 1.25rem !important;
  margin-right: 1.25rem !important;
}

.mx-6 {
  margin-left: 1.5rem !important;
  margin-right: 1.5rem !important;
}

.mx-7 {
  margin-left: 1.75rem !important;
  margin-right: 1.75rem !important;
}

.mx-8 {
  margin-left: 2rem !important;
  margin-right: 2rem !important;
}

.mx-9 {
  margin-left: 2.25rem !important;
  margin-right: 2.25rem !important;
}

.mx-10 {
  margin-left: 2.5rem !important;
  margin-right: 2.5rem !important;
}

.mx-11 {
  margin-left: 2.75rem !important;
  margin-right: 2.75rem !important;
}

.mx-12 {
  margin-left: 3rem !important;
  margin-right: 3rem !important;
}

.mx-13 {
  margin-left: 3.25rem !important;
  margin-right: 3.25rem !important;
}

.mx-14 {
  margin-left: 3.5rem !important;
  margin-right: 3.5rem !important;
}

.mx-15 {
  margin-left: 3.75rem !important;
  margin-right: 3.75rem !important;
}

.mx-16 {
  margin-left: 4rem !important;
  margin-right: 4rem !important;
}

.my-auto {
  margin-top: auto !important;
  margin-bottom: auto !important;
}

.my-0 {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.my-1 {
  margin-top: 0.25rem !important;
  margin-bottom: 0.25rem !important;
}

.my-2, section h2::after, hr, ul.social-icons {
  margin-top: 0.5rem !important;
  margin-bottom: 0.5rem !important;
}

.my-3 {
  margin-top: 0.75rem !important;
  margin-bottom: 0.75rem !important;
}

.my-4 {
  margin-top: 1rem !important;
  margin-bottom: 1rem !important;
}

.my-5 {
  margin-top: 1.25rem !important;
  margin-bottom: 1.25rem !important;
}

.my-6 {
  margin-top: 1.5rem !important;
  margin-bottom: 1.5rem !important;
}

.my-7 {
  margin-top: 1.75rem !important;
  margin-bottom: 1.75rem !important;
}

.my-8 {
  margin-top: 2rem !important;
  margin-bottom: 2rem !important;
}

.my-9 {
  margin-top: 2.25rem !important;
  margin-bottom: 2.25rem !important;
}

.my-10 {
  margin-top: 2.5rem !important;
  margin-bottom: 2.5rem !important;
}

.my-11 {
  margin-top: 2.75rem !important;
  margin-bottom: 2.75rem !important;
}

.my-12 {
  margin-top: 3rem !important;
  margin-bottom: 3rem !important;
}

.my-13 {
  margin-top: 3.25rem !important;
  margin-bottom: 3.25rem !important;
}

.my-14 {
  margin-top: 3.5rem !important;
  margin-bottom: 3.5rem !important;
}

.my-15 {
  margin-top: 3.75rem !important;
  margin-bottom: 3.75rem !important;
}

.my-16 {
  margin-top: 4rem !important;
  margin-bottom: 4rem !important;
}

.mt-auto {
  margin-top: auto !important;
}

.mt-0 {
  margin-top: 0 !important;
}

.mt-1 {
  margin-top: 0.25rem !important;
}

.mt-2 {
  margin-top: 0.5rem !important;
}

.mt-3 {
  margin-top: 0.75rem !important;
}

.mt-4 {
  margin-top: 1rem !important;
}

.mt-5 {
  margin-top: 1.25rem !important;
}

.mt-6 {
  margin-top: 1.5rem !important;
}

.mt-7 {
  margin-top: 1.75rem !important;
}

.mt-8, section.skills ul.inline-list, section.skills section.portfolio ul.project-list, section.portfolio section.skills ul.project-list {
  margin-top: 2rem !important;
}

.mt-9 {
  margin-top: 2.25rem !important;
}

.mt-10 {
  margin-top: 2.5rem !important;
}

.mt-11 {
  margin-top: 2.75rem !important;
}

.mt-12 {
  margin-top: 3rem !important;
}

.mt-13 {
  margin-top: 3.25rem !important;
}

.mt-14 {
  margin-top: 3.5rem !important;
}

.mt-15 {
  margin-top: 3.75rem !important;
}

.mt-16 {
  margin-top: 4rem !important;
}

.mr-auto, section.skills ul.inline-list, section.skills section.portfolio ul.project-list, section.portfolio section.skills ul.project-list {
  margin-right: auto !important;
}

.mr-0, ul.inline-list li:last-child, section.portfolio ul.project-list li:last-child {
  margin-right: 0 !important;
}

.mr-1 {
  margin-right: 0.25rem !important;
}

.mr-2 {
  margin-right: 0.5rem !important;
}

.mr-3 {
  margin-right: 0.75rem !important;
}

.mr-4 {
  margin-right: 1rem !important;
}

.mr-5 {
  margin-right: 1.25rem !important;
}

.mr-6 {
  margin-right: 1.5rem !important;
}

.mr-7 {
  margin-right: 1.75rem !important;
}

.mr-8 {
  margin-right: 2rem !important;
}

.mr-9 {
  margin-right: 2.25rem !important;
}

.mr-10 {
  margin-right: 2.5rem !important;
}

.mr-11 {
  margin-right: 2.75rem !important;
}

.mr-12 {
  margin-right: 3rem !important;
}

.mr-13 {
  margin-right: 3.25rem !important;
}

.mr-14 {
  margin-right: 3.5rem !important;
}

.mr-15 {
  margin-right: 3.75rem !important;
}

.mr-16 {
  margin-right: 4rem !important;
}

.mb-auto {
  margin-bottom: auto !important;
}

.mb-0 {
  margin-bottom: 0 !important;
}

.mb-1 {
  margin-bottom: 0.25rem !important;
}

.mb-2 {
  margin-bottom: 0.5rem !important;
}

.mb-3 {
  margin-bottom: 0.75rem !important;
}

.mb-4 {
  margin-bottom: 1rem !important;
}

.mb-5, section h2 {
  margin-bottom: 1.25rem !important;
}

.mb-6 {
  margin-bottom: 1.5rem !important;
}

.mb-7 {
  margin-bottom: 1.75rem !important;
}

.mb-8 {
  margin-bottom: 2rem !important;
}

.mb-9 {
  margin-bottom: 2.25rem !important;
}

.mb-10 {
  margin-bottom: 2.5rem !important;
}

.mb-11 {
  margin-bottom: 2.75rem !important;
}

.mb-12 {
  margin-bottom: 3rem !important;
}

.mb-13 {
  margin-bottom: 3.25rem !important;
}

.mb-14 {
  margin-bottom: 3.5rem !important;
}

.mb-15 {
  margin-bottom: 3.75rem !important;
}

.mb-16 {
  margin-bottom: 4rem !important;
}

.ml-auto, section.skills ul.inline-list, section.skills section.portfolio ul.project-list, section.portfolio section.skills ul.project-list {
  margin-left: auto !important;
}

.ml-0, ul.inline-list li:first-child, section.portfolio ul.project-list li:first-child {
  margin-left: 0 !important;
}

.ml-1 {
  margin-left: 0.25rem !important;
}

.ml-2 {
  margin-left: 0.5rem !important;
}

.ml-3 {
  margin-left: 0.75rem !important;
}

.ml-4 {
  margin-left: 1rem !important;
}

.ml-5 {
  margin-left: 1.25rem !important;
}

.ml-6 {
  margin-left: 1.5rem !important;
}

.ml-7 {
  margin-left: 1.75rem !important;
}

.ml-8 {
  margin-left: 2rem !important;
}

.ml-9 {
  margin-left: 2.25rem !important;
}

.ml-10 {
  margin-left: 2.5rem !important;
}

.ml-11 {
  margin-left: 2.75rem !important;
}

.ml-12 {
  margin-left: 3rem !important;
}

.ml-13 {
  margin-left: 3.25rem !important;
}

.ml-14 {
  margin-left: 3.5rem !important;
}

.ml-15 {
  margin-left: 3.75rem !important;
}

.ml-16 {
  margin-left: 4rem !important;
}

/**
 * Include font size scaling
 */
.fs-xxs {
  font-size: xx-small;
}

@media only screen and (min-width: 320px) {
  .fs-xs-xxs {
    font-size: xx-small;
  }
}
@media only screen and (min-width: 425px) {
  .fs-sm-xxs {
    font-size: xx-small;
  }
}
@media only screen and (min-width: 768px) {
  .fs-md-xxs {
    font-size: xx-small;
  }
}
@media only screen and (min-width: 1024px) {
  .fs-lg-xxs {
    font-size: xx-small;
  }
}
.fs-xs {
  font-size: x-small;
}

@media only screen and (min-width: 320px) {
  .fs-xs-xs {
    font-size: x-small;
  }
}
@media only screen and (min-width: 425px) {
  .fs-sm-xs {
    font-size: x-small;
  }
}
@media only screen and (min-width: 768px) {
  .fs-md-xs {
    font-size: x-small;
  }
}
@media only screen and (min-width: 1024px) {
  .fs-lg-xs {
    font-size: x-small;
  }
}
.fs-s, section.portfolio ul.project-list {
  font-size: small;
}

@media only screen and (min-width: 320px) {
  .fs-xs-s {
    font-size: small;
  }
}
@media only screen and (min-width: 425px) {
  .fs-sm-s {
    font-size: small;
  }
}
@media only screen and (min-width: 768px) {
  .fs-md-s {
    font-size: small;
  }
}
@media only screen and (min-width: 1024px) {
  .fs-lg-s {
    font-size: small;
  }
}
.fs-m {
  font-size: medium;
}

@media only screen and (min-width: 320px) {
  .fs-xs-m {
    font-size: medium;
  }
}
@media only screen and (min-width: 425px) {
  .fs-sm-m {
    font-size: medium;
  }
}
@media only screen and (min-width: 768px) {
  .fs-md-m {
    font-size: medium;
  }
}
@media only screen and (min-width: 1024px) {
  .fs-lg-m {
    font-size: medium;
  }
}
.fs-l {
  font-size: large;
}

@media only screen and (min-width: 320px) {
  .fs-xs-l {
    font-size: large;
  }
}
@media only screen and (min-width: 425px) {
  .fs-sm-l {
    font-size: large;
  }
}
@media only screen and (min-width: 768px) {
  .fs-md-l {
    font-size: large;
  }
}
@media only screen and (min-width: 1024px) {
  .fs-lg-l {
    font-size: large;
  }
}
.fs-xl {
  font-size: x-large;
}

@media only screen and (min-width: 320px) {
  .fs-xs-xl {
    font-size: x-large;
  }
}
@media only screen and (min-width: 425px) {
  .fs-sm-xl, section.contact {
    font-size: x-large;
  }
}
@media only screen and (min-width: 768px) {
  .fs-md-xl {
    font-size: x-large;
  }
}
@media only screen and (min-width: 1024px) {
  .fs-lg-xl {
    font-size: x-large;
  }
}
.fs-xxl {
  font-size: xx-large;
}

@media only screen and (min-width: 320px) {
  .fs-xs-xxl {
    font-size: xx-large;
  }
}
@media only screen and (min-width: 425px) {
  .fs-sm-xxl {
    font-size: xx-large;
  }
}
@media only screen and (min-width: 768px) {
  .fs-md-xxl {
    font-size: xx-large;
  }
}
@media only screen and (min-width: 1024px) {
  .fs-lg-xxl {
    font-size: xx-large;
  }
}
.fs-xxxl {
  font-size: xxx-large;
}

@media only screen and (min-width: 320px) {
  .fs-xs-xxxl {
    font-size: xxx-large;
  }
}
@media only screen and (min-width: 425px) {
  .fs-sm-xxxl {
    font-size: xxx-large;
  }
}
@media only screen and (min-width: 768px) {
  .fs-md-xxxl {
    font-size: xxx-large;
  }
}
@media only screen and (min-width: 1024px) {
  .fs-lg-xxxl {
    font-size: xxx-large;
  }
}
/**
 * Include display values
 */
.d-none {
  display: none;
}

@media only screen and (min-width: 320px) {
  .d-xs-none {
    display: none;
  }
}
@media only screen and (min-width: 425px) {
  .d-sm-none {
    display: none;
  }
}
@media only screen and (min-width: 768px) {
  .d-md-none {
    display: none;
  }
}
@media only screen and (min-width: 1024px) {
  .d-lg-none {
    display: none;
  }
}
/**
 * Lists
 */
ul.inline-list, section.portfolio ul.project-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
}
.row {
  box-sizing: border-box;
  margin: 0 auto;
  width: 100%;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  flex: 0 1 auto;
  flex-direction: row;
  flex-wrap: wrap;
}

.row.reverse {
  flex-direction: row-reverse;
}

.row.natural-height {
  align-items: flex-start;
}

.row.flex-column {
  flex-direction: column;
}

.col {
  box-sizing: border-box;
  flex-grow: 1;
  flex-basis: 0;
  max-width: 100%;
  padding: 1rem;
}

.col.reverse {
  flex-direction: column-reverse;
}

.first {
  order: -1;
}

.last {
  order: 1;
}

.align-start {
  align-self: flex-start;
}

.align-end {
  align-self: flex-end;
}

.align-center {
  align-self: center;
}

.align-baseline {
  align-self: baseline;
}

.align-stretch {
  align-self: stretch;
}

.col-xs {
  box-sizing: border-box;
  flex-grow: 1;
  flex-basis: 0;
  max-width: 100%;
  padding: 1rem;
}

.col-xs-1 {
  box-sizing: border-box;
  flex-basis: 8.3333333333%;
  max-width: 8.3333333333%;
  padding: 1rem;
}

.col-xs-offset-1 {
  margin-left: 8.3333333333%;
}

.col-xs-2 {
  box-sizing: border-box;
  flex-basis: 16.6666666667%;
  max-width: 16.6666666667%;
  padding: 1rem;
}

.col-xs-offset-2 {
  margin-left: 16.6666666667%;
}

.col-xs-3 {
  box-sizing: border-box;
  flex-basis: 25%;
  max-width: 25%;
  padding: 1rem;
}

.col-xs-offset-3 {
  margin-left: 25%;
}

.col-xs-4 {
  box-sizing: border-box;
  flex-basis: 33.3333333333%;
  max-width: 33.3333333333%;
  padding: 1rem;
}

.col-xs-offset-4 {
  margin-left: 33.3333333333%;
}

.col-xs-5 {
  box-sizing: border-box;
  flex-basis: 41.6666666667%;
  max-width: 41.6666666667%;
  padding: 1rem;
}

.col-xs-offset-5 {
  margin-left: 41.6666666667%;
}

.col-xs-6 {
  box-sizing: border-box;
  flex-basis: 50%;
  max-width: 50%;
  padding: 1rem;
}

.col-xs-offset-6 {
  margin-left: 50%;
}

.col-xs-7 {
  box-sizing: border-box;
  flex-basis: 58.3333333333%;
  max-width: 58.3333333333%;
  padding: 1rem;
}

.col-xs-offset-7 {
  margin-left: 58.3333333333%;
}

.col-xs-8 {
  box-sizing: border-box;
  flex-basis: 66.6666666667%;
  max-width: 66.6666666667%;
  padding: 1rem;
}

.col-xs-offset-8 {
  margin-left: 66.6666666667%;
}

.col-xs-9 {
  box-sizing: border-box;
  flex-basis: 75%;
  max-width: 75%;
  padding: 1rem;
}

.col-xs-offset-9 {
  margin-left: 75%;
}

.col-xs-10 {
  box-sizing: border-box;
  flex-basis: 83.3333333333%;
  max-width: 83.3333333333%;
  padding: 1rem;
}

.col-xs-offset-10 {
  margin-left: 83.3333333333%;
}

.col-xs-11 {
  box-sizing: border-box;
  flex-basis: 91.6666666667%;
  max-width: 91.6666666667%;
  padding: 1rem;
}

.col-xs-offset-11 {
  margin-left: 91.6666666667%;
}

.col-xs-12 {
  box-sizing: border-box;
  flex-basis: 100%;
  max-width: 100%;
  padding: 1rem;
}

.col-xs-offset-12 {
  margin-left: 100%;
}

.row.start-xs {
  justify-content: flex-start;
}

.row.center-xs {
  justify-content: center;
}

.row.end-xs {
  justify-content: flex-end;
}

.row.top-xs {
  align-items: flex-start;
}

.row.middle-xs {
  align-items: center;
}

.row.bottom-xs {
  align-items: flex-end;
}

.row.around-xs {
  justify-content: space-around;
}

.row.between-xs {
  justify-content: space-between;
}

.first-xs {
  order: -1;
}

.last-xs {
  order: 1;
}

@media only screen and (min-width: 41rem) {
  .col-sm {
    box-sizing: border-box;
    flex-grow: 1;
    flex-basis: 0;
    max-width: 100%;
    padding: 1rem;
  }

  .col-sm-1 {
    box-sizing: border-box;
    flex-basis: 8.3333333333%;
    max-width: 8.3333333333%;
    padding: 1rem;
  }

  .col-sm-offset-1 {
    margin-left: 8.3333333333%;
  }

  .col-sm-2 {
    box-sizing: border-box;
    flex-basis: 16.6666666667%;
    max-width: 16.6666666667%;
    padding: 1rem;
  }

  .col-sm-offset-2 {
    margin-left: 16.6666666667%;
  }

  .col-sm-3 {
    box-sizing: border-box;
    flex-basis: 25%;
    max-width: 25%;
    padding: 1rem;
  }

  .col-sm-offset-3 {
    margin-left: 25%;
  }

  .col-sm-4 {
    box-sizing: border-box;
    flex-basis: 33.3333333333%;
    max-width: 33.3333333333%;
    padding: 1rem;
  }

  .col-sm-offset-4 {
    margin-left: 33.3333333333%;
  }

  .col-sm-5 {
    box-sizing: border-box;
    flex-basis: 41.6666666667%;
    max-width: 41.6666666667%;
    padding: 1rem;
  }

  .col-sm-offset-5 {
    margin-left: 41.6666666667%;
  }

  .col-sm-6 {
    box-sizing: border-box;
    flex-basis: 50%;
    max-width: 50%;
    padding: 1rem;
  }

  .col-sm-offset-6 {
    margin-left: 50%;
  }

  .col-sm-7 {
    box-sizing: border-box;
    flex-basis: 58.3333333333%;
    max-width: 58.3333333333%;
    padding: 1rem;
  }

  .col-sm-offset-7 {
    margin-left: 58.3333333333%;
  }

  .col-sm-8 {
    box-sizing: border-box;
    flex-basis: 66.6666666667%;
    max-width: 66.6666666667%;
    padding: 1rem;
  }

  .col-sm-offset-8 {
    margin-left: 66.6666666667%;
  }

  .col-sm-9 {
    box-sizing: border-box;
    flex-basis: 75%;
    max-width: 75%;
    padding: 1rem;
  }

  .col-sm-offset-9 {
    margin-left: 75%;
  }

  .col-sm-10 {
    box-sizing: border-box;
    flex-basis: 83.3333333333%;
    max-width: 83.3333333333%;
    padding: 1rem;
  }

  .col-sm-offset-10 {
    margin-left: 83.3333333333%;
  }

  .col-sm-11 {
    box-sizing: border-box;
    flex-basis: 91.6666666667%;
    max-width: 91.6666666667%;
    padding: 1rem;
  }

  .col-sm-offset-11 {
    margin-left: 91.6666666667%;
  }

  .col-sm-12 {
    box-sizing: border-box;
    flex-basis: 100%;
    max-width: 100%;
    padding: 1rem;
  }

  .col-sm-offset-12 {
    margin-left: 100%;
  }

  .row.start-sm {
    justify-content: flex-start;
  }

  .row.center-sm {
    justify-content: center;
  }

  .row.end-sm {
    justify-content: flex-end;
  }

  .row.top-sm {
    align-items: flex-start;
  }

  .row.middle-sm {
    align-items: center;
  }

  .row.bottom-sm {
    align-items: flex-end;
  }

  .row.around-sm {
    justify-content: space-around;
  }

  .row.between-sm {
    justify-content: space-between;
  }

  .first-sm {
    order: -1;
  }

  .last-sm {
    order: 1;
  }
}
@media only screen and (min-width: 65rem) {
  .col-md {
    box-sizing: border-box;
    flex-grow: 1;
    flex-basis: 0;
    max-width: 100%;
    padding: 1rem;
  }

  .col-md-1 {
    box-sizing: border-box;
    flex-basis: 8.3333333333%;
    max-width: 8.3333333333%;
    padding: 1rem;
  }

  .col-md-offset-1 {
    margin-left: 8.3333333333%;
  }

  .col-md-2 {
    box-sizing: border-box;
    flex-basis: 16.6666666667%;
    max-width: 16.6666666667%;
    padding: 1rem;
  }

  .col-md-offset-2 {
    margin-left: 16.6666666667%;
  }

  .col-md-3 {
    box-sizing: border-box;
    flex-basis: 25%;
    max-width: 25%;
    padding: 1rem;
  }

  .col-md-offset-3 {
    margin-left: 25%;
  }

  .col-md-4 {
    box-sizing: border-box;
    flex-basis: 33.3333333333%;
    max-width: 33.3333333333%;
    padding: 1rem;
  }

  .col-md-offset-4 {
    margin-left: 33.3333333333%;
  }

  .col-md-5 {
    box-sizing: border-box;
    flex-basis: 41.6666666667%;
    max-width: 41.6666666667%;
    padding: 1rem;
  }

  .col-md-offset-5 {
    margin-left: 41.6666666667%;
  }

  .col-md-6 {
    box-sizing: border-box;
    flex-basis: 50%;
    max-width: 50%;
    padding: 1rem;
  }

  .col-md-offset-6 {
    margin-left: 50%;
  }

  .col-md-7 {
    box-sizing: border-box;
    flex-basis: 58.3333333333%;
    max-width: 58.3333333333%;
    padding: 1rem;
  }

  .col-md-offset-7 {
    margin-left: 58.3333333333%;
  }

  .col-md-8 {
    box-sizing: border-box;
    flex-basis: 66.6666666667%;
    max-width: 66.6666666667%;
    padding: 1rem;
  }

  .col-md-offset-8 {
    margin-left: 66.6666666667%;
  }

  .col-md-9 {
    box-sizing: border-box;
    flex-basis: 75%;
    max-width: 75%;
    padding: 1rem;
  }

  .col-md-offset-9 {
    margin-left: 75%;
  }

  .col-md-10 {
    box-sizing: border-box;
    flex-basis: 83.3333333333%;
    max-width: 83.3333333333%;
    padding: 1rem;
  }

  .col-md-offset-10 {
    margin-left: 83.3333333333%;
  }

  .col-md-11 {
    box-sizing: border-box;
    flex-basis: 91.6666666667%;
    max-width: 91.6666666667%;
    padding: 1rem;
  }

  .col-md-offset-11 {
    margin-left: 91.6666666667%;
  }

  .col-md-12 {
    box-sizing: border-box;
    flex-basis: 100%;
    max-width: 100%;
    padding: 1rem;
  }

  .col-md-offset-12 {
    margin-left: 100%;
  }

  .row.start-md {
    justify-content: flex-start;
  }

  .row.center-md {
    justify-content: center;
  }

  .row.end-md {
    justify-content: flex-end;
  }

  .row.top-md {
    align-items: flex-start;
  }

  .row.middle-md {
    align-items: center;
  }

  .row.bottom-md {
    align-items: flex-end;
  }

  .row.around-md {
    justify-content: space-around;
  }

  .row.between-md {
    justify-content: space-between;
  }

  .first-md {
    order: -1;
  }

  .last-md {
    order: 1;
  }
}
@media only screen and (min-width: 91rem) {
  .col-lg {
    box-sizing: border-box;
    flex-grow: 1;
    flex-basis: 0;
    max-width: 100%;
    padding: 1rem;
  }

  .col-lg-1 {
    box-sizing: border-box;
    flex-basis: 8.3333333333%;
    max-width: 8.3333333333%;
    padding: 1rem;
  }

  .col-lg-offset-1 {
    margin-left: 8.3333333333%;
  }

  .col-lg-2 {
    box-sizing: border-box;
    flex-basis: 16.6666666667%;
    max-width: 16.6666666667%;
    padding: 1rem;
  }

  .col-lg-offset-2 {
    margin-left: 16.6666666667%;
  }

  .col-lg-3 {
    box-sizing: border-box;
    flex-basis: 25%;
    max-width: 25%;
    padding: 1rem;
  }

  .col-lg-offset-3 {
    margin-left: 25%;
  }

  .col-lg-4 {
    box-sizing: border-box;
    flex-basis: 33.3333333333%;
    max-width: 33.3333333333%;
    padding: 1rem;
  }

  .col-lg-offset-4 {
    margin-left: 33.3333333333%;
  }

  .col-lg-5 {
    box-sizing: border-box;
    flex-basis: 41.6666666667%;
    max-width: 41.6666666667%;
    padding: 1rem;
  }

  .col-lg-offset-5 {
    margin-left: 41.6666666667%;
  }

  .col-lg-6 {
    box-sizing: border-box;
    flex-basis: 50%;
    max-width: 50%;
    padding: 1rem;
  }

  .col-lg-offset-6 {
    margin-left: 50%;
  }

  .col-lg-7 {
    box-sizing: border-box;
    flex-basis: 58.3333333333%;
    max-width: 58.3333333333%;
    padding: 1rem;
  }

  .col-lg-offset-7 {
    margin-left: 58.3333333333%;
  }

  .col-lg-8 {
    box-sizing: border-box;
    flex-basis: 66.6666666667%;
    max-width: 66.6666666667%;
    padding: 1rem;
  }

  .col-lg-offset-8 {
    margin-left: 66.6666666667%;
  }

  .col-lg-9 {
    box-sizing: border-box;
    flex-basis: 75%;
    max-width: 75%;
    padding: 1rem;
  }

  .col-lg-offset-9 {
    margin-left: 75%;
  }

  .col-lg-10 {
    box-sizing: border-box;
    flex-basis: 83.3333333333%;
    max-width: 83.3333333333%;
    padding: 1rem;
  }

  .col-lg-offset-10 {
    margin-left: 83.3333333333%;
  }

  .col-lg-11 {
    box-sizing: border-box;
    flex-basis: 91.6666666667%;
    max-width: 91.6666666667%;
    padding: 1rem;
  }

  .col-lg-offset-11 {
    margin-left: 91.6666666667%;
  }

  .col-lg-12 {
    box-sizing: border-box;
    flex-basis: 100%;
    max-width: 100%;
    padding: 1rem;
  }

  .col-lg-offset-12 {
    margin-left: 100%;
  }

  .row.start-lg {
    justify-content: flex-start;
  }

  .row.center-lg {
    justify-content: center;
  }

  .row.end-lg {
    justify-content: flex-end;
  }

  .row.top-lg {
    align-items: flex-start;
  }

  .row.middle-lg {
    align-items: center;
  }

  .row.bottom-lg {
    align-items: flex-end;
  }

  .row.around-lg {
    justify-content: space-around;
  }

  .row.between-lg {
    justify-content: space-between;
  }

  .first-lg {
    order: -1;
  }

  .last-lg {
    order: 1;
  }
}
@media only screen and (min-width: 121rem) {
  .col-xl {
    box-sizing: border-box;
    flex-grow: 1;
    flex-basis: 0;
    max-width: 100%;
    padding: 1rem;
  }

  .col-xl-1 {
    box-sizing: border-box;
    flex-basis: 8.3333333333%;
    max-width: 8.3333333333%;
    padding: 1rem;
  }

  .col-xl-offset-1 {
    margin-left: 8.3333333333%;
  }

  .col-xl-2 {
    box-sizing: border-box;
    flex-basis: 16.6666666667%;
    max-width: 16.6666666667%;
    padding: 1rem;
  }

  .col-xl-offset-2 {
    margin-left: 16.6666666667%;
  }

  .col-xl-3 {
    box-sizing: border-box;
    flex-basis: 25%;
    max-width: 25%;
    padding: 1rem;
  }

  .col-xl-offset-3 {
    margin-left: 25%;
  }

  .col-xl-4 {
    box-sizing: border-box;
    flex-basis: 33.3333333333%;
    max-width: 33.3333333333%;
    padding: 1rem;
  }

  .col-xl-offset-4 {
    margin-left: 33.3333333333%;
  }

  .col-xl-5 {
    box-sizing: border-box;
    flex-basis: 41.6666666667%;
    max-width: 41.6666666667%;
    padding: 1rem;
  }

  .col-xl-offset-5 {
    margin-left: 41.6666666667%;
  }

  .col-xl-6 {
    box-sizing: border-box;
    flex-basis: 50%;
    max-width: 50%;
    padding: 1rem;
  }

  .col-xl-offset-6 {
    margin-left: 50%;
  }

  .col-xl-7 {
    box-sizing: border-box;
    flex-basis: 58.3333333333%;
    max-width: 58.3333333333%;
    padding: 1rem;
  }

  .col-xl-offset-7 {
    margin-left: 58.3333333333%;
  }

  .col-xl-8 {
    box-sizing: border-box;
    flex-basis: 66.6666666667%;
    max-width: 66.6666666667%;
    padding: 1rem;
  }

  .col-xl-offset-8 {
    margin-left: 66.6666666667%;
  }

  .col-xl-9 {
    box-sizing: border-box;
    flex-basis: 75%;
    max-width: 75%;
    padding: 1rem;
  }

  .col-xl-offset-9 {
    margin-left: 75%;
  }

  .col-xl-10 {
    box-sizing: border-box;
    flex-basis: 83.3333333333%;
    max-width: 83.3333333333%;
    padding: 1rem;
  }

  .col-xl-offset-10 {
    margin-left: 83.3333333333%;
  }

  .col-xl-11 {
    box-sizing: border-box;
    flex-basis: 91.6666666667%;
    max-width: 91.6666666667%;
    padding: 1rem;
  }

  .col-xl-offset-11 {
    margin-left: 91.6666666667%;
  }

  .col-xl-12 {
    box-sizing: border-box;
    flex-basis: 100%;
    max-width: 100%;
    padding: 1rem;
  }

  .col-xl-offset-12 {
    margin-left: 100%;
  }

  .row.start-xl {
    justify-content: flex-start;
  }

  .row.center-xl {
    justify-content: center;
  }

  .row.end-xl {
    justify-content: flex-end;
  }

  .row.top-xl {
    align-items: flex-start;
  }

  .row.middle-xl {
    align-items: center;
  }

  .row.bottom-xl {
    align-items: flex-end;
  }

  .row.around-xl {
    justify-content: space-around;
  }

  .row.between-xl {
    justify-content: space-between;
  }

  .first-xl {
    order: -1;
  }

  .last-xl {
    order: 1;
  }
}
.col-gutter-lr {
  padding: 0 1rem;
}

.col-no-gutter {
  padding: 0;
}

.show {
  display: block !important;
}

.row.show {
  display: -webkit-flex !important;
  display: -ms-flexbox !important;
  display: flex !important;
}

.hide {
  display: none !important;
}

.show-xs {
  display: block !important;
}

.row.show-xs {
  display: -webkit-flex !important;
  display: -ms-flexbox !important;
  display: flex !important;
}

.hide-xs {
  display: none !important;
}

@media only screen and (max-width: 40rem) {
  .show-xs-only {
    display: block !important;
  }

  .row.show-xs-only {
    display: -webkit-flex !important;
    display: -ms-flexbox !important;
    display: flex !important;
  }

  .hide-xs-only {
    display: none !important;
  }
}
@media only screen and (min-width: 41rem) {
  .show-sm {
    display: block !important;
  }

  .row.show-sm {
    display: -webkit-flex !important;
    display: -ms-flexbox !important;
    display: flex !important;
  }

  .hide-sm {
    display: none !important;
  }
}
@media only screen and (min-width: 41rem) and (max-width: 64rem) {
  .show-sm-only {
    display: block !important;
  }

  .row.show-sm-only {
    display: -webkit-flex !important;
    display: -ms-flexbox !important;
    display: flex !important;
  }

  .hide-sm-only {
    display: none !important;
  }
}
@media only screen and (min-width: 65rem) {
  .show-md {
    display: block !important;
  }

  .row.show-md {
    display: -webkit-flex !important;
    display: -ms-flexbox !important;
    display: flex !important;
  }

  .hide-md {
    display: none !important;
  }
}
@media only screen and (min-width: 65rem) and (max-width: 90rem) {
  .show-md-only {
    display: block !important;
  }

  .row.show-md-only {
    display: -webkit-flex !important;
    display: -ms-flexbox !important;
    display: flex !important;
  }

  .hide-md-only {
    display: none !important;
  }
}
@media only screen and (min-width: 91rem) {
  .show-lg {
    display: block !important;
  }

  .row.show-lg {
    display: -webkit-flex !important;
    display: -ms-flexbox !important;
    display: flex !important;
  }

  .hide-lg {
    display: none !important;
  }
}
@media only screen and (min-width: 91rem) and (max-width: 120rem) {
  .show-lg-only {
    display: block !important;
  }

  .row.show-lg-only {
    display: -webkit-flex !important;
    display: -ms-flexbox !important;
    display: flex !important;
  }

  .hide-lg-only {
    display: none !important;
  }
}
@media only screen and (min-width: 121rem) {
  .show-xl {
    display: block !important;
  }

  .row.show-xl {
    display: -webkit-flex !important;
    display: -ms-flexbox !important;
    display: flex !important;
  }

  .hide-xl {
    display: none !important;
  }
}
#header {
  height: 100vh;
  min-height: 600px;
  text-align: center;
  background: url("../../images/lake-of-the-clouds.jpg") center center no-repeat;
  background-size: cover;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}
#header:after {
  content: "";
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-color: rgba(33, 86, 109, 0.85);
}
#header h1, #header .h1 {
  margin: 0;
  font-weight: bold;
}
@media only screen and (min-width: 425px) {
  #header h1, #header .h1 {
    font-size: 3.2rem;
  }
}
#header h2 {
  text-transform: uppercase;
  font-weight: lighter;
  margin: 0;
}
#header hr {
  background-color: #2C7391;
}
#header .top-border {
  height: 6px;
  background: url("../../images/top-border.jpg") repeat-x left center;
  width: 100%;
  z-index: 2;
  position: fixed;
  top: 0;
}
#header .heading {
  margin: auto;
  color: rgba(255, 255, 255, 0.8);
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}
#header nav#menu {
  font-size: 1rem;
  z-index: 1;
  width: 100%;
  background-color: rgba(44, 115, 145, 0.6);
}
#header nav#menu.sticky {
  background-color: rgba(44, 115, 145, 0.92);
  top: 6px !important;
}
#header nav#menu.sticky a {
  color: rgba(255, 255, 255, 0.8);
}
#header nav#menu * {
  transition: all ease-in-out 200ms;
}
#header nav#menu ul {
  text-transform: uppercase;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
}
#header nav#menu ul li.active a:after {
  background-color: #DEB22C;
  width: 100%;
}
#header nav#menu ul li a {
  color: #78bad6;
  text-decoration: none;
}
#header nav#menu ul li a:hover, #header nav#menu ul li a:active, #header nav#menu ul li a:focus {
  text-decoration: none;
  color: rgba(255, 255, 255, 0.6);
}
#header nav#menu ul li a:after {
  content: "";
  display: block;
  position: static;
  transition: 200ms all ease-in-out;
  width: 0;
  height: 2px;
}

section h2::after {
  content: "";
  display: block;
  position: absolute;
  border-radius: 10px;
  background-color: black;
  width: 100%;
  border: 0;
  height: 1.5px;
  max-width: 300px;
  position: relative;
  background-color: #2C7391;
}
section h2:after {
  background-color: #DE7959;
}
section.alt {
  background-color: #eeeeee;
  border-top: 2px solid #dadada;
  border-bottom: 2px solid #dadada;
}
section.full-screen {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  min-height: calc(100vh - 45px);
}
section.skills ul.inline-list, section.skills section.portfolio ul.project-list, section.portfolio section.skills ul.project-list {
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 900px;
  font-weight: bold;
  text-transform: uppercase;
}
section.portfolio ul.project-list {
  justify-content: center;
}
section.portfolio ul.project-list li {
  border-radius: 100%;
  flex-basis: 44%;
}
@media only screen and (min-width: 425px) {
  section.portfolio ul.project-list li {
    flex-basis: 30%;
  }
}
@media only screen and (min-width: 768px) {
  section.portfolio ul.project-list li {
    flex-basis: 18%;
  }
}
section.portfolio ul.project-list li a {
  color: inherit;
  text-decoration: none;
}
section.portfolio ul.project-list li a img {
  transition: all 200ms ease-in-out;
  border: 3px solid white;
}
section.portfolio ul.project-list li a:hover p {
  color: #2C7391;
}
section.portfolio ul.project-list li a:hover img {
  border-color: rgba(44, 115, 145, 0.7);
}
section.portfolio ul.project-list li img {
  border-radius: 100%;
  box-shadow: 0 0 5px #cdcdcd;
}
section.contact {
  background-image: url("../../images/miska-silhouette-with-paws.png");
  background-repeat: no-repeat;
  background-position: 95% 100%;
  background-size: contain;
}
section.contact a {
  text-decoration: none;
}

/*# sourceMappingURL=main.css.map */
