/* Root variables */
  :root {
    --color-bg: #fff;
    --color-box-shadow: LightGrey;
    --color-font: #000;
    --color-gradient-one: rgb(200, 194, 207);
    --color-gradient-two: rgb(241, 241, 241);
    --color-look: #662D14;
    --color-nav-link: #454545;
    --color-nav-link-hover: #000;
    --color-one: #000;
    --color-one-shadow: SlateGrey;
    --color-two: #000;
    --color-two-darker: #000;
    --color-two-shadow: SlateGrey;
    --color-three: #000;
    --color-three-darker: #000;
    --color-three-shadow: SlateGrey;
  }

  :root[theme="light"] {
    --color-bg: #fff;
    --color-box-shadow: LightGrey;
    --color-font: #000;
    --color-gradient-one: rgb(169, 100, 70);
    --color-gradient-two: rgb(193, 154, 96);
    --color-look: #662D14;
    --color-nav-link: #454545;
    --color-nav-link-hover: #000;
    --color-one: #a96446;
    --color-one-shadow: #A87A67;
    --color-two: #c19a60;
    --color-two-darker: #8F7247;
    --color-two-shadow: #C2AB88;
    --color-three: #4f5a50;
    --color-three-darker: #4f5a50;
    --color-three-shadow: #6C736C;
  }

  :root[theme="dark"] {
    --color-bg: #121212;
    --color-box-shadow: LightGrey;
    --color-font: #ddd;
    --color-gradient-one: rgb(105, 163, 163);
    --color-gradient-two: rgb(194, 235, 211);
    --color-look: #394D36;
    --color-nav-link: #ddd;
    --color-nav-link-hover: #fff;
    --color-one:  #69A3A3;
    --color-one-shadow: #6E8A8A;
    --color-two: #C2EBD3;
    --color-two-darker: #739E85;
    --color-two-shadow: #B8D1C2;
    --color-three: #A2CC9D;
    --color-three-darker: #7DB378;
    --color-three-shadow: #A0B39D;
  }
/* end */



/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */



/* HTML tags */
  a {
    color: var(--color-nav-link);
    font-size: 1.2rem;
    font-weight: bold;
    text-decoration: none;
  }

  body {
    background-color: var(--color-bg);
    color: var(--color-font);
    font-family: 'Montserrat', sans-serif;
    font-size: 16px;
    letter-spacing: .1rem;
    margin: 0;
    position: relative;
    text-align: center;
  }

  button {
    color: var(--color-nav-link);
    font-size: 1.2rem;
  }

  button:hover {
    color: var(--color-nav-link-hover);
    font-size: 1.4rem;
  }

  em {
    font-family: 'Noto Serif', serif;
    font-size: 3rem;
    font-style: normal;
    line-height: 2.5rem;
    padding: .5rem;
  }

  h1 {
    font-family: 'Handlee', cursive;
    font-size: 2rem;
    letter-spacing: .25rem;
  }

  header {
    display: flex;
    height: 8vh;
    justify-content: space-between;
    margin: 0;
    text-align: center;
    position: sticky;
    top: 0;
    z-index: 1;
  }

  main {
    display: flex;
    flex-flow: wrap row;
    grid-column: 2 / -1;
    grid-row: 2 / -1;
    justify-content: space-around;
    overflow: hidden;
    padding-bottom: 2rem;
  }

  nav {
    align-items: center;
    display: flex;
    flex-direction: column;
    grid-column: 1 / 2;
    grid-row: 2 / -1;
    height: 10vh;
    justify-content: flex-start;
    margin: 1rem auto 0;
    position: sticky;
    text-align: center;
    top: 10vh;
  }
/* end */



/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */



/* Classes */
  .avatar {
    margin: 1rem auto;
    height: 10rem;
    width: auto;
  }

  .card {
    background-position: center top;
    background-repeat: none;
    background-size: cover;
    border: 1rem var(--color-font) solid;
    box-sizing: border-box;
    cursor: pointer;
    margin: 1rem;
    height: 40vh;
    width: 40vh;
    text-align: center;
    transition: background-position 2s;
  }

  /* Card background images */
    .splurty {
      background-image: url(images/screencapture-splurty.png);
    }
    .nomster {
      background-image: url(images/screencapture-nomster.png);
    }
    .flixter {
      background-image: url(images/screencapture-flixter.png)
    }
    .global-music {
      background-image: url(images/screencapture-global-music.png);
    }
    .grammable {
      background-image: url(images/screencapture-grammable.png);
    }
    .to-dos {
      background-image: url(images/screencapture-lineup.png);
    }
  /* end */

  /* Scroll effect for long background images */
    .nomster:hover {
      background-position: center bottom;
      transition: background-position 2s;
    }

    .grammable:hover {
      background-position: center bottom;
      transition: background-position 5.5s;
    }
  /* end */

  .color-one {
    border: 2px var(--color-one) solid;
  }

  .color-one:hover {
    box-shadow: 5px 5px 3px var(--color-one-shadow);
  }

  .color-two {
    border: 2px var(--color-two) solid;
  }

  .color-two:hover {
    box-shadow: 5px 5px 3px var(--color-two-shadow);
  }

  .color-three {
    border: 2px var(--color-three) solid;
  }

  .color-three:hover {
    box-shadow: 5px 5px 3px var(--color-three-shadow);
  }

  .container-intro {
    height: 30vh;
    padding: 0 10rem 25rem;
  }

  .container-portfolio {
    display: grid;
    grid-template-columns: 1fr 4fr;
    grid-template-rows: repeat(2, auto);
    grid-row-gap: 2rem;
  }

  .email-button {
    border: solid 2px var(--color-one);
    padding: 1rem 2rem;
    position: relative;
    top: 3.5rem;
  }

  .email-button:hover {
    box-shadow: 5px 5px 3px SlateGrey;
    color: var(--color-nav-link-hover);
    font-size: 1.3rem;
  }

  .inner-text {
    visibility: hidden;
  }

  .nav-head {
    font-size: 1.6rem;
    margin-bottom: 2rem;
    text-decoration: underline;
  }

  .nav-item {
    margin-bottom: 1rem;
  }

  .nav-item:hover {
    color: var(--color-nav-link-hover);
    font-size: 1.4rem;
  }

  .nav-item::before {
    content: attr(title);
    font-size: 1.4rem;
    width: 0;
    overflow: hidden;
    visibility: hidden;
  }

  .nav-items {
    display: flex;
    flex-flow: nowrap column;
    margin-top: 16rem;
  }

  .portfolio-header {
    align-items: center;
    background-color: var(--color-bg);
    border-bottom:  2px var(--color-three);
    border-bottom-style: solid;
    display: flex;
    font-size: 2rem;
    grid-column: 1 / -1;
    grid-row: 1 / 2;
    height: 8vh;
    justify-content: center;
    position: sticky;
    top: 0;
  }

  .self-description {
    margin: .5rem;
  }

  .social-icons {
    margin: auto 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  .social-icon {
    font-size: 1.3rem;
    margin: 2rem;
  }

  .social-icon:hover {
    font-size: 1.5rem;
    margin: 1.9rem;
  }

  .toggle-icon {
    cursor: pointer;
    margin: .5rem 1rem 0 0;
    max-height: 3.5rem;
    max-width: auto;
  }

  .toggle-icon:hover {
    margin: .45rem .95rem 0 0;
    max-height: 3.6rem;
    max-width: auto;
  }
/* end */



/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */



/* Majority of Zoom CSS */
  /* Background images for zooms */
    .splurty-z {
      background-image: url(images/blur-splurty-darker.png);
    }

    .nomster-z {
      background-image: url(images/blur-nomster.png);
    }

    .flixter-z {
      background-image: url(images/blur-flixter.png)
    }

    .global-music-z {
      background-image: url(images/blur-global-music.png);
    }

    .grammable-z {
      background-image: url(images/blur-grammable-cropped.png);
    }

    .to-dos-z {
      background-image: url(images/blur-to-dos.png);
    }
  /* end */

  .break {
    height: 2rem;
  }

  .color-one-l:hover {
    background-color: var(--color-one);
    box-shadow: 2px 5px 4px var(--color-one-shadow);
  }

  .color-two-l:hover {
    background-color: var(--color-two-darker);
    box-shadow: 2px 5px 4px var(--color-two-shadow);
  }

  .color-three-l:hover {
    background-color: var(--color-three);
    box-shadow: 2px 5px 4px var(--color-three-shadow);
  }

  .description {
    align-items: center;
    display: flex;
    flex-direction: column;
    grid-row: 2 / 3;
    justify-content: center;
    margin: 0 5%;
  }

  .description, .icon, .look {
    font-size: 1.5rem;
    line-height: 2.25rem;
    padding: 2rem;
  }

  .icon {
    align-items: flex-end;
    display: flex;
    grid-row: 1 / 2;
    justify-content: center;
  }

  .look {
    border: 2px white solid;
    color: white;
    font-size: 1.75rem;
    grid-row: 3 / 4;
    height: 3rem;
    margin-left: auto;
    margin-right: auto;
    padding: 1rem;
    padding-bottom: 0.5rem;
    width: 12rem;
  }

  .look:hover {
    height: 3.2rem;
    width: 12.2rem;
  }

  .x-out {
    cursor: pointer;
    height: 2rem;
    position: absolute;
    top: 11.6px;
    right: 11.6px;
    width: 2rem;
  }

  .x-out:hover {
    height: 2.2rem;
    position: absolute;
    top: 10px;
    right: 10px;
    width: 2.2rem;
  }

  .zoom {
    background-color: var(--color-font);
    background-position: center top;
    background-repeat: none;
    background-size: cover;
    box-sizing: border-box;
    height: 80%;
    opacity: 1;
    position: fixed;
    top: 10%;
    transition: opacity 0.25s;
    right: 10%;
    width: 80%;
    z-index: 2;
  }

  #zoom-border {
    height: 100%;
    opacity: 0;
    position: fixed;
    top: 0;
    right: 0;
    width: 100%;
  }

  .zoom-text {
    background-color: black;
    color: white;
    display: grid;
    grid-template-rows: 15% 65% 20%;
    height: 100%;
    opacity: .75;
    /* padding-top: 2rem; */
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
  }

  /* .hidden must be lower than all the .zoom classes on this css sheet so that it takes precedence */
  .hidden {
    opacity: 0;
    transition: opacity 0.25s;
    z-index: -1;
  }
/* end */



/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */



/* Media Queries */
  @media only screen and (max-width: 375px) {
    a {
      font-size: 1rem;
    }

    em {
      font-size: 1.4rem;
      line-height: 1.5rem;
      padding: .5rem;
    }

    h1 {
      font-size: 24px;
      margin: 3rem auto 1rem;
    }

    nav {
      margin: 1rem auto 0 1rem;
    }

    .avatar {
      display: none;
    }

    .container-intro {
      font-size: 12px;
      padding: 0 4.2rem 25rem;
    }

    .card {
      height: 30vh;
      width: 30vh;
    }

    .description {
      font-size: 1.2rem;
      line-height: 2.25rem;
      padding: 0.5rem;
    }

    .email-button {
      border: solid 2px var(--color-one);
      padding: 1rem 2rem;
      position: relative;
      top: .5rem;
    }

    .email-button:hover {
      box-shadow: 5px 5px 3px SlateGrey;
      color: var(--color-nav-link-hover);
      font-size: 1.3rem;
    }

    .icon {
      font-size: 1.2rem;
    }

    .look {
      border: 2px white solid;
      color: white;
      font-size: 1.75rem;
      grid-row: 3 / 4;
      height: 3rem;
      margin-left: auto;
      margin-right: auto;
      padding: 1rem;
      padding-bottom: 0.5rem;
      width: 12rem;
    }

    .look:hover {
      height: 3.2rem;
      width: 12.2rem;
    }

    .nav-item {
      margin-bottom: .8rem;
    }

    .nav-item:hover {
      color: var(--color-nav-link-hover);
      font-size: 1.1rem;
    }

    .self-description {
      margin-bottom: 3rem;
      margin-top: 2rem;
    }

    .small-zoom-hide {
      display: none;
    }

    .social-icon {
      font-size: 1rem;
      margin: .7rem;
    }

    .social-icon:hover {
      font-size: 1.2rem;
      margin: .6rem;
    }
  }

  @media only screen and (min-width: 376px) and (max-width: 409px) {
    a {
      font-size: 1rem;
    }

    em {
      font-size: 1.4rem;
      line-height: 1.5rem;
      padding: .5rem;
    }

    h1 {
      margin: 3rem auto;
    }

    nav {
      margin: 1rem auto 0 1rem;
    }

    .avatar {
      display: none;
    }

    .card {
      height: 30vh;
      width: 30vh;
    }

    .container-intro {
      font-size: 14px;
      padding: 0 5rem 25rem;
    }

    .description {
      font-size: 1.2rem;
      line-height: 2.25rem;
      padding: 0.5rem;
    }

    .email-button {
      border: solid 2px var(--color-one);
      padding: 1rem 2rem;
      position: relative;
      top: .5rem;
    }

    .email-button:hover {
      box-shadow: 5px 5px 3px SlateGrey;
      color: var(--color-nav-link-hover);
      font-size: 1.3rem;
    }

    .icon {
      font-size: 1.2rem;
    }

    .look {
      border: 2px white solid;
      color: white;
      font-size: 1.75rem;
      grid-row: 3 / 4;
      height: 3rem;
      margin-left: auto;
      margin-right: auto;
      padding: 1rem;
      padding-bottom: 0.5rem;
      width: 12rem;
    }

    .look:hover {
      height: 3.2rem;
      width: 12.2rem;
    }

    .nav-item {
      margin-bottom: .8rem;
    }

    .nav-item:hover {
      color: var(--color-nav-link-hover);
      font-size: 1.1rem;
    }

    .self-description {
      margin-bottom: 1rem;
      margin-top: 2rem;
    }

    .small-zoom-hide {
      display: none;
    }

    .social-icon {
      font-size: 1rem;
      margin: 1rem;
    }

    .social-icon:hover {
      font-size: 1.2rem;
      margin: .9rem;
    }
  }

  @media only screen and (min-width: 410px) and (max-width: 475px) {
    a {
      font-size: 1rem;
    }

    em {
      font-size: 1.4rem;
      line-height: 1.5rem;
      padding: .5rem;
    }

    h1 {
      margin: 2rem auto;
    }

    nav {
      margin: 1rem auto 0 1rem;
    }

    .avatar {
      display: none;
    }

    .card {
      height: 30vh;
      width: 30vh;
    }

    .container-intro {
      padding: 0 5rem 25rem;
    }

    .description {
      font-size: 1.2rem;
      line-height: 2.25rem;
      padding: 0.5rem;
    }

    .email-button {
      border: solid 2px var(--color-one);
      padding: 1rem 2rem;
      position: relative;
      top: .5rem;
    }

    .email-button:hover {
      box-shadow: 5px 5px 3px SlateGrey;
      color: var(--color-nav-link-hover);
      font-size: 1.3rem;
    }

    .icon {
      font-size: 1.2rem;
    }

    .look {
      border: 2px white solid;
      color: white;
      font-size: 1.75rem;
      grid-row: 3 / 4;
      height: 3rem;
      margin-left: auto;
      margin-right: auto;
      padding: 1rem;
      padding-bottom: 0.5rem;
      width: 12rem;
    }

    .look:hover {
      height: 3.2rem;
      width: 12.2rem;
    }

    .nav-item {
      margin-bottom: .8rem;
    }

    .nav-item:hover {
      color: var(--color-nav-link-hover);
      font-size: 1.1rem;
    }

    .self-description {
      margin-bottom: 2.5rem;
      margin-top: 2rem;
    }

    .small-zoom-hide {
      display: none;
    }

    .social-icon {
      font-size: 1rem;
      margin: 1rem;
    }

    .social-icon:hover {
      font-size: 1.2rem;
      margin: .9rem;
    }
  }

  @media only screen and (min-width: 476px) and (max-width: 600px) {
    a {
      font-size: 1rem;
    }

    em {
      font-size: 2.5rem;
      line-height: 1.5rem;
      padding: .5rem;
    }

    nav {
      margin: 1rem auto 0 1rem;
    }

    .avatar {
      margin: .2rem auto;
      height: 5rem;
      width: auto;
    }

    .container-intro {
      padding: 0 5rem 25rem;
    }

    .description {
      font-size: 1.2rem;
      line-height: 2.25rem;
      padding: 2rem;
    }

    .email-button {
      border: solid 2px var(--color-one);
      padding: 1rem 2rem;
      position: relative;
      top: .5rem;
    }

    .email-button:hover {
      box-shadow: 5px 5px 3px SlateGrey;
      color: var(--color-nav-link-hover);
      font-size: 1.3rem;
    }

    .look {
      border: 2px white solid;
      color: white;
      font-size: 1.75rem;
      grid-row: 3 / 4;
      height: 3rem;
      margin-left: auto;
      margin-right: auto;
      padding: 1rem;
      padding-bottom: 0.5rem;
      width: 12rem;
    }

    .look:hover {
      height: 3.2rem;
      width: 12.2rem;
    }

    .nav-item {
      margin-bottom: .8rem;
    }

    .nav-item:hover {
      color: var(--color-nav-link-hover);
      font-size: 1.1rem;
    }

    .self-description {
      margin-bottom: 2.5rem;
      margin-top: 2rem;
    }

    .social-icon {
      font-size: 1rem;
      margin: 1rem;
    }

    .social-icon:hover {
      font-size: 1.2rem;
      margin: .9rem;
    }
  }

  @media only screen and (min-width: 601px) and (max-width: 700px) {
    a {
      font-size: 1rem;
    }

    em {
      font-size: 2.5rem;
      line-height: 1.5rem;
      padding: .5rem;
    }

    nav {
      margin: 1rem auto 0 1rem;
    }

    .avatar {
      margin: .5rem auto;
      height: 6.5rem;
      width: auto;
    }

    .container-intro {
      padding: 0 5rem 25rem;
    }

    .description {
      font-size: 1.2rem;
      line-height: 2.25rem;
      padding: 2rem;
    }

    .look {
      border: 2px white solid;
      color: white;
      font-size: 1.75rem;
      grid-row: 3 / 4;
      height: 3rem;
      margin-left: auto;
      margin-right: auto;
      padding: 1rem;
      padding-bottom: 0.5rem;
      width: 12rem;
    }

    .look:hover {
      height: 3.2rem;
      width: 12.2rem;
    }

    .nav-item {
      margin-bottom: .8rem;
    }

    .nav-item:hover {
      color: var(--color-nav-link-hover);
      font-size: 1.1rem;
    }

    .social-icon {
      font-size: 1rem;
      margin: .8rem;
    }

    .social-icon:hover {
      font-size: 1.2rem;
      margin: .7rem;
    }
  }

  @media only screen and (min-width: 701px) and (max-width: 950px) {
    em {
      font-size: 2.5rem;
      line-height: 1.5rem;
      padding: .5rem;
    }

    nav {
      margin: 1rem auto 0 1rem;
    }

    .avatar {
      margin: .5rem auto;
      height: 8rem;
      width: auto;
    }

    .container-intro {
      padding: 0 5rem 25rem;
    }

    .description {
      font-size: 1.2rem;
      line-height: 2.25rem;
      padding: 2rem;
    }

    .look {
      border: 2px white solid;
      color: white;
      font-size: 1.75rem;
      grid-row: 3 / 4;
      height: 3rem;
      margin-left: auto;
      margin-right: auto;
      padding: 1rem;
      padding-bottom: 0.5rem;
      width: 12rem;
    }

    .look:hover {
      height: 3.2rem;
      width: 12.2rem;
    }

    .social-icon {
      font-size: 1rem;
      margin: .8rem;
    }

    .social-icon:hover {
      font-size: 1.2rem;
      margin: .7rem;
    }
  }
/* end */
