*,
*::before,
*::after {
  box-sizing: inherit; }

html {
  box-sizing: border-box;
  font: 12px Raleway, sans-serif; }
  @media only screen and (min-width: 768px) {
    html {
      font-size: 16px; } }
  @media only screen and (min-width: 1200px) {
    html {
      font-size: 18px; } }

body {
  background-image: url("../img/pattern.png");
  background-color: #576a7c;
  margin: 0;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.34);
  color: #fff; }

h1 {
  color: #abcc85;
  font: 4rem Satisfy, cursive;
  line-height: 5rem;
  margin: 0;
  width: 100%; }

h2 {
  color: #abcc85;
  font: 2.5rem Satisfy, cursive;
  height: 3.5rem;
  line-height: 3.5rem;
  overflow: hidden; }

h3, h4 {
  font-size: 1.5rem;
  line-height: 2rem;
  margin: 8px;
  width: 100%; }

h4 {
  color: #abcc85;
  font-family: Satisfy, cursive;
  font-size: 1.5rem; }

main {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: column nowrap;
      flex-flow: column nowrap;
  max-width: 1280px;
  margin: 0 auto;
  border-left: 1px solid #576a7c;
  border-right: 1px solid #576a7c; }

section {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
  min-height: 100vh;
  padding: 0 0 40px;
  overflow: hidden; }
  section:last-child {
    padding: 0; }

a {
  text-decoration: none; }

p a {
  color: inherit;
  border-bottom: 1px dashed; }
  p a:hover {
    color: #a0bad8; }

.home {
  background-color: #3e494d;
  position: relative; }

.skills {
  background-color: #6c86a2; }

.portfolio {
  background-color: #cbd0c6; }

.contact {
  background-color: #c56666;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: column wrap;
      flex-flow: column wrap; }
  .contact .row, .contact .skills-row {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto; }

nav {
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.22), 0 14px 56px rgba(0, 0, 0, 0.25);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background-color: #576a7c;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row nowrap;
      flex-flow: row nowrap;
  height: 80px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-bottom: 40px;
  position: relative;
  z-index: 2; }
  nav a {
    color: #abcc85;
    font-weight: bold;
    text-decoration: none; }
    nav a:hover {
      border-bottom: 1px dotted; }

.nav-title {
  display: none;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  margin-left: 64px; }
  @media only screen and (min-width: 768px) {
    .nav-title {
      display: block; } }

ul {
  padding: 0; }

.nav-menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 2;
      -ms-flex: 2 1 auto;
          flex: 2 1 auto;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  list-style: none; }
  @media only screen and (min-width: 768px) {
    .nav-menu {
      -webkit-box-pack: end;
          -ms-flex-pack: end;
              justify-content: flex-end;
      margin-right: 64px; } }
  .nav-menu li {
    padding: 1rem; }
    .nav-menu li:first-child {
      padding-left: 0; }
    .nav-menu li:last-child {
      padding-right: 0; }
    .nav-menu li a {
      color: #fff;
      font-size: 1.5rem; }
    .nav-menu li .active {
      border-bottom: 1px dotted;
      color: #abcc85; }

.row, .skills-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin: 0 auto;
  max-width: 960px; }
  .row .column, .skills-row .column {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    padding: 0 8px;
    text-align: center; }
    @media only screen and (min-width: 768px) {
      .row .column, .skills-row .column {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1; } }
    .row .column p, .skills-row .column p {
      line-height: 1.25rem;
      margin: 1.25rem 0; }
  .row .two-thirds, .skills-row .two-thirds {
    -webkit-box-flex: 2;
        -ms-flex: 2;
            flex: 2; }

.skills-row {
  -ms-flex-line-pack: distribute;
      align-content: space-around;
  -ms-flex-pack: distribute;
      justify-content: space-around; }
  .skills-row .column {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto; }

.portfolio-square {
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.23), 0 10px 40px rgba(0, 0, 0, 0.19);
  background-color: #3e494d;
  -ms-flex-preferred-size: auto;
      flex-basis: auto;
  margin: 8px;
  height: 216px;
  width: 216px;
  text-align: justify;
  position: relative;
  overflow: hidden; }
  .portfolio-square .overlay {
    position: absolute;
    top: calc(216px - (2rem + 16px));
    background-color: rgba(62, 73, 77, 0.5);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -ms-flex-flow: row wrap;
        flex-flow: row wrap;
    padding: 0 8px;
    height: 216px;
    width: 216px;
    -webkit-transition: all 1s ease-in-out;
    transition: all 1s ease-in-out; }
    .portfolio-square .overlay:hover, .portfolio-square .overlay:focus {
      background-color: rgba(62, 73, 77, 0.75);
      top: 0;
      padding: 8px; }
  .portfolio-square h4 {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis; }
  .portfolio-square p {
    font-size: 12px;
    padding: 0;
    margin: 0; }
  .portfolio-square span {
    color: #a0bad8;
    -ms-flex-item-align: end;
        align-self: flex-end;
    width: 100%;
    font-size: 16px; }
  .portfolio-square .button {
    -ms-flex-item-align: end;
        align-self: flex-end;
    cursor: pointer; }

.hidden {
  display: none; }

.modal {
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.23), 0 10px 40px rgba(0, 0, 0, 0.19);
  background-color: rgba(62, 73, 77, 0.95);
  font-size: 1rem;
  line-height: 2rem;
  z-index: 5;
  padding: 8px;
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  overflow: hidden; }
  @media only screen and (min-width: 768px) {
    .modal {
      height: 90vh;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
              transform: translate(-50%, -50%);
      min-width: 80vw;
      max-width: 960px;
      font-size: 1rem; } }
  .modal h1 {
    font-size: 2.5rem;
    line-height: 3rem; }
  .modal .close-btn {
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.23), 0 3px 12px rgba(0, 0, 0, 0.16);
    position: absolute;
    font-size: 1.5rem;
    width: 2.5rem;
    height: 2.5rem;
    background-color: #576a7c;
    border-radius: 50%;
    text-align: center;
    top: 24px;
    right: 24px;
    line-height: 2.5rem;
    cursor: pointer; }
  .modal .modal-inner {
    border: 3px dashed #abcc85;
    padding: 24px;
    height: 100%;
    text-align: justify;
    overflow-y: auto; }
    .modal .modal-inner .button {
      margin: 0 auto;
      position: absolute;
      bottom: 0;
      left: 50%;
      -webkit-transform: translate(-50%, 0);
              transform: translate(-50%, 0); }

.button {
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.24), 0 1px 6px rgba(0, 0, 0, 0.12);
  -ms-flex-line-pack: center;
      align-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background-color: #abcc85;
  border: 1px solid #3e494d;
  border-radius: 2px;
  color: #3e494d;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  font-weight: bold;
  height: 2em;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  line-height: 1rem;
  margin: 4px;
  width: 6.5em; }

form {
  margin: 0 auto; }
  form label {
    display: block;
    margin-top: 16px;
    margin-bottom: -24px;
    font: 2.5rem Satisfy, cursive;
    line-height: 3.5rem;
    color: #abcc85;
    z-index: 2;
    position: relative;
    pointer-events: none; }
  form .text {
    position: relative;
    z-index: 1;
    background-color: #576a7c;
    border: none;
    width: 304px;
    color: #fff;
    padding: 0 8px; }
  form input.text {
    height: 32px; }
  form textarea.text {
    height: 160px;
    display: block;
    margin-bottom: 20px; }
  form .button {
    display: inline; }
  form .buttons {
    margin: 0 auto;
    text-align: center; }

.success, .error {
  border: 1px dashed;
  border-radius: 2px;
  padding: 8px; }

.success {
  color: #abcc85; }

.error {
  color: #a0bad8; }

.social-bar {
  -ms-flex-preferred-size: 100%;
      flex-basis: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  list-style: none;
  -ms-flex-item-align: end;
      align-self: flex-end; }

.social-btn {
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.23), 0 3px 12px rgba(0, 0, 0, 0.16);
  width: 48px;
  height: 48px;
  background-color: #fff;
  border: 2px solid #6c86a2;
  border-radius: 50%;
  margin: 8px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-size: 1.75rem;
  color: #6c86a2; }

.header-content {
  position: absolute;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: column nowrap;
      flex-flow: column nowrap;
  height: 100%;
  width: 100%;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -ms-flex-line-pack: stretch;
      align-content: stretch;
  top: 0;
  left: 0;
  z-index: 1; }

.header-social {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-preferred-size: auto;
      flex-basis: auto;
  -ms-flex-item-align: center;
      align-self: center; }

.header-intro {
  margin: 96px auto 8px;
  padding: 8px;
  max-width: 450px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: column nowrap;
      flex-flow: column nowrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  text-shadow: -1px -1px 0 #3e494d, 1px -1px 0 #3e494d, -1px 1px 0 #3e494d, 1px 1px 0 #3e494d; }
  @media only screen and (min-width: 768px) {
    .header-intro {
      margin: 160px auto; } }
  .header-intro p {
    margin: 16px;
    padding: 8px 0; }
  .header-intro p:last-child {
    -ms-flex-item-align: end;
        align-self: flex-end;
    color: #c56666;
    font-weight: bold; }

.svg-portrait {
  display: none;
  width: 25%;
  position: absolute;
  bottom: 16px;
  margin: 16px; }
  @media only screen and (orientation: portrait) {
    .svg-portrait {
      display: inline; } }

.svg-landscape {
  display: inline; }
  @media only screen and (orientation: portrait) {
    .svg-landscape {
      display: none; } }

#bubble1,
#bubble2 {
  opacity: 0; }

.water-lines {
  opacity: 1; }
