:root {
  --dark: #202020;
  --light-dark: #555555;
  --gray: #7b7b7b;
  --light-blue: #DFF3F9;
  --white: #f2f2f2;
  --xl: 1400px;
  --l: 900px;
  --m: 640px;
  --s: 400px;
  --xs: 320px;
}

@keyframes rotate {
  100% {
    transform: rotate(360deg);
  }
}

* {
  box-sizing: border-box;
  font-family: 'Roboto', Arial, Helvetica, sans-serif;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}

body {
  height: 100%;
  min-height: 100vh;
  color: var(--dark);
}

a {
  transition: all 400ms ease;
  text-decoration: none;
  color: var(--dark);
  fill: var(--dark);
}
a:hover {
  color: var(--light-dark);
  fill: var(--light-dark);
} 
a:active {
  color: var(--gray);
  fill: var(--gray);
}

h1 {
  color: var(--dark);
}

.container {
  position: relative;
  width: 100%;
  max-width: var(--xl);
  margin: 0 auto;
  padding: 0 20px;
}

.normal-weight {
  font-weight: 400;
}
.anim-point {
  cursor: pointer;
  transition: all 400ms ease;
}
.anim-point:hover {
  color: var(--light-dark);
}

.arrow {
  position: fixed;
  bottom: 5vh;
  right: 3vw;
  z-index: 10;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background-color: var(--light-blue);
  box-shadow: 0px 2px 8px 0px rgba(0,0,0,0.2);
  display: flex;
  justify-content: center;
  align-items: center;
}
.arrow svg {
  height: 42px;
}

/* HEADER */
header {
  background-color: var(--light-blue);
  position: fixed;
  padding: 12px 0;
  width: 100%;
  box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.1);
  z-index: 5;
}

header > div {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

header nav ul {
  list-style: none;
  font-size: 1.2em;
  display: flex;
  gap: 1.2em;
}

nav a:hover {
  color: #1569d7;
}
nav a:active {
  color: #5299f6;
}

.main-content {
  display: flex;
  position: relative;
}

/* ASIDE */
aside {
  width: 30vw;
  max-width: 460px;
  height: 100vh;
  padding: 5em 2em 4em;
  position: fixed;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
}

aside > img {
  margin: 0.5em 0 1em;
  border-radius: 50%;
  width: 80%;
}
aside > div {
  line-height: 2em;
}
aside ul {
  line-height: 1.8em;
}
aside ul li {
  margin-left: 1.5em;
  list-style-type: none;
}

/* MAIN */
main {
  margin-left: 34%;
  max-width: 900px;
  width: 70vw;
  padding: 0 2em;
}

section {
  padding-top: 4em;
}

#about {
  padding-top: 5em;
}
main h2, main p {
  line-height: 1.5em;
}
main p, main ul {
  margin-left: 1em;
}
#skills ul {
  list-style: none;
  line-height: 2.4em;
}

main ul li {
  display: flex;
  align-items: center;
  font-size: 18px;
}

#skills ul li::before {
  content: '';
  display: inline-block;
  width: 32px;
  height: 32px;
  background-size: 32px;
  margin-right: 0.5em;
  background-repeat: no-repeat;
	background-position: left center;
}

.html::before {
  background-image: url('../icons/html5.svg');
}
.css::before {
  background-image: url('../icons/css3.svg');
}
.sass::before {
  background-image: url('../icons/sass.svg');
}
.bootstrap::before {
  background-image: url('../icons/bootstrap.svg');
}
.tailwind::before {
  background-image: url('../icons/tailwind-css.svg');
}
.js::before {
  background-image: url('../icons/javascript.svg');
}
.react::before {
  background-image: url('../icons/react.svg');
}
.graph::before {
  background-image: url('../icons/graphql.svg');
}
.figma::before {
  background-image: url('../icons/figma.svg');
}
.git::before {
  background-image: url('../icons/git.svg');
}
.github-icon::before {
  background-image: url('../icons/github.svg');
}

.cards-list {
  padding: 24px;
  width: 100%;
  display: flex;
  justify-content: center;
  gap: 2em;
  flex-wrap: wrap;
}

.card {
  background-color: #f6f6f6;
  border-radius: 12px;
  width: 46%;
  min-width: 300px;
  position: relative;
  box-shadow: 0px 4px 8px 0px rgba(0,0,0,0.2);
}
.card img {
  position: relative;
  width: 100%;
  border-radius: 12px;
  margin-bottom: 2em;
}
.card div {
  position: absolute;
  bottom: 0;
  height: 60px;
  border-radius: 0 0 12px 12px;
  padding: 12px 16px;
  width: 100%;
  color: #f2f2f2;
  background-color: #202020;
}

.card div h4 {
  font-size: 24px;
}

#experience p {
  font-size: 20px;
}

#education h4, #education ul {
  font-size: 20px;
  line-height: 1.5em;
}
ul ul {
  list-style: circle;
}

#languages {
  margin-bottom: 4em;
}
.languages-list {
  margin: 1em;
  display: flex;
  justify-content: space-between;
}
.language h4 {
  font-size: 20px;
}
.language p {
  font-size: 16px;
  margin-left: 0;
}

/* FOOTER */
footer .rsschool {
  width: 96px;
}
footer .github {
  width: 20px;
  text-align: center;
  vertical-align: text-top;
}
footer a:hover .github {
  animation: rotate 0.8s ease-in-out;
}
footer {
  position: relative;
  z-index: 5;
  background-color: var(--light-blue);
  color: var(--dark);
  font-size: 18px;
  width: 100%;
  padding-top: 12px;
  padding-bottom: 12px;
}
footer > div {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4em; 
}

/* TABLET */
@media screen and (max-width: 1200px) {
  header > div {
    flex-wrap: wrap;
  }
}

/* MOBILE */
@media screen and (max-width: 767px) {
  .container {
    max-width: var(--s);
    width: 100vw;
  }

  /* HEADER */
  header {
    padding: 8px 0;
  }
  header h1 {
    font-size: 1.6rem;
  }
  header > div {
    flex-direction: column;
  }
  header nav {
    margin-top: 8px;
  }
  header nav ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-content: center;
    gap: 10px;
  }

  /* MAIN CONTENT */
  .main-content {
    flex-direction: column;
  }
  aside {
    margin-top: 8em;
    padding: 0;
    width: 100%;
    height: auto;
    position: relative;
    z-index: 0;
  }
  main {
    margin: 0;
    padding: 0;
    width: 100%;
  }
  #skills ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  #skills ul li {
    width: 40%;
  }

  /* FOOTER */
  footer > p:nth-child(1) {
    line-height: 1.6em;
  }
}