* {
  margin: 0;
  padding: 0;
  box-sizing: border-box; }

html {
  scroll-behavior: smooth; }

body {
  font-family: 'Montserrat', sans-serif; }

.heading-secondary {
  font-weight: bold;
  font-size: 1rem; }

.heading-tertiary {
  font-size: .8rem; }

.p-primary {
  font-weight: 600; }

.p-secondary {
  font-size: .9rem;
  font-style: italic; }

.p-tertiary {
  font-weight: 500; }

.main-header {
  position: fixed;
  width: 100%;
  height: 4rem;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: white;
  z-index: 10; }

@media (max-width: 40rem) {
  .main-header {
    height: 4rem; } }

.main-nav {
  font-size: .9rem;
  font-weight: 500; }
  .main-nav .nav-items {
    display: flex;
    list-style: none; }
    .main-nav .nav-items .nav-item {
      align-self: flex-end;
      margin: 0 .8rem; }
      .main-nav .nav-items .nav-item a {
        text-decoration: none;
        color: #0F0E0E;
        text-transform: uppercase;
        display: inline-block;
        position: relative;
        padding-bottom: .5rem; }
        .main-nav .nav-items .nav-item a .icon {
          text-align: center; }
        .main-nav .nav-items .nav-item a::before {
          content: "";
          position: absolute;
          left: 0;
          bottom: 0;
          width: 0;
          height: 2px;
          background-color: #0F0E0E;
          transition: width 0.50s ease-out; }
        .main-nav .nav-items .nav-item a:hover::before {
          width: 100%; }
        .main-nav .nav-items .nav-item a:active::before {
          width: 100%; }

@media (max-width: 40rem) {
  .main-nav {
    display: none; } }

.mobile-nav {
  display: none;
  align-self: flex-end; }
  .mobile-nav .mobile-items {
    list-style: none;
    display: flex; }
    .mobile-nav .mobile-items .mobile-item {
      margin: 0 2rem; }
    .mobile-nav .mobile-items a {
      text-decoration: none;
      color: #0F0E0E; }
      .mobile-nav .mobile-items a svg {
        height: 1.5rem;
        width: 1.5rem; }

@media (max-width: 40rem) {
  .mobile-nav {
    display: block; } }

.introduction {
  display: flex;
  flex-direction: column;
  height: 100vh;
  justify-content: center;
  align-items: center;
  background: #F7F7F7;
  clip-path: polygon(0 20%, 100% 10%, 100% 80%, 0% 100%);
  color: #0F0E0E;
  text-align: center; }
  .introduction h1 {
    font-size: 2rem;
    letter-spacing: 3px; }
  .introduction .intro-links {
    margin-top: 1rem; }
    .introduction .intro-links a {
      text-decoration: none; }
      .introduction .intro-links a .link-item {
        height: 2rem;
        width: 2rem;
        margin: 0 .3rem;
        color: #0F0E0E; }
      .introduction .intro-links a .link-item:hover {
        color: #464444; }

.about {
  display: flex;
  flex-direction: column;
  margin: 0 1.5rem;
  padding-top: 4rem; }
  .about h1 {
    font-size: 5rem; }
  .about-row:last-child {
    align-self: center;
    margin-top: 2rem;
    text-align: center; }
  .about-row {
    margin: .5rem 0; }
    .about-row .stack {
      padding: .3rem;
      background: #0F0E0E;
      color: #F7F7F7;
      font-size: 2rem;
      border-radius: 5px; }
    .about-row .tech-stack {
      margin-top: 1rem; }
      .about-row .tech-stack ul {
        list-style: none;
        display: flex;
        flex-wrap: wrap;
        justify-content: center; }
        .about-row .tech-stack ul li {
          border: 1px solid white;
          border-radius: 5px;
          margin: .5rem .5rem;
          background-color: #F7F7F7;
          box-shadow: 2px 5px 5px #888888;
          text-align: center; }
          .about-row .tech-stack ul li img {
            height: 5rem;
            width: 5rem;
            padding: 1rem; }

.resume {
  display: flex;
  flex-direction: column;
  margin: 2rem 1.5rem;
  padding-top: 5rem; }
  .resume .col-1 {
    background: #0F0E0E;
    color: #F7F7F7;
    padding: 2rem;
    line-height: 1.5rem;
    margin-bottom: 2rem;
    border-radius: 5px; }
    .resume .col-1 .col-1-main {
      border-bottom: 1px solid #F7F7F7;
      padding: 1rem 0; }
      .resume .col-1 .col-1-main .name {
        font-size: 2rem;
        font-weight: 800;
        padding: .5rem 0; }
    .resume .col-1 .contacts {
      border-bottom: 1px solid #F7F7F7;
      margin-bottom: 1.5rem;
      padding: 1rem 0; }
  .resume .col-2 {
    background: #F7F7F7;
    padding: 1rem;
    border-radius: 5px; }
