* {
  letter-spacing: 0.05em;
}

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}
body {
}
ol,
ul {
  list-style: none;
}
blockquote,
q {
  quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
  content: '';
  content: none;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: 'Raleway', sans-serif;
  color: #f5f3f4;
  background-color: #161a1d;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}

section {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-content: center;
  align-items: center;
  height: 100vh;
}

section:not(#header) {
  scroll-margin-top: 5em;
  padding: 4.5em 15em 5em 15em;
  height: 100%;
  min-height: 65vh;
}

h1 {
  font-size: 2.5em;
  text-align: center;
  font-weight: 300;
  line-height: 1em;
  text-shadow: 0px 0px 10px #131416;
}

.primary {
  color: #00adff;
}

.secondary {
  color: #f72585;
}

.primary-block {
  background-color: #00adff;
}

.secondary-block {
  background-color: #f72585;
}

h2 {
  font-weight: 400;
  font-size: 2.5em;
  margin-bottom: 1em;
}

h2 span.sign {
  display: none;
  font-weight: 600;
  transition: transform 0.8s;
}

h5 {
  font-weight: 500;
  font-size: 1.2em;
  margin-bottom: 0.15em;
}

p {
  line-height: 1.4em;
  font-weight: 400;
  margin-top: 0.7em;
  margin-bottom: 0.7em;
  font-size: 1em;
}

p:last-of-type {
  margin-bottom: 3em;
}

nav {
  display: flex;
  box-sizing: border-box;
  border-bottom: #00adff solid 2px;
  background-color: #131416;
  justify-content: space-between;
  width: 100%;
  position: sticky;
  top: 0;
  z-index: 5;
  overflow: hidden;
}

nav div {
  display: flex;
  align-items: center;
}

.nav-icon img {
  border-radius: 10px;
  border: 2px #f72585 solid;
  background-color: #f72585;
  width: 3em;
  height: 3em;
  margin-left: 2em;
}

.nav-icon img:hover,
.nav-icon img:active {
  background-color: #00adff;
  border: 2px #00adff solid;
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 1em;
  margin-right: 3em;
}

.hamburger-menu {
  display: none;
}

.hamburger-menu-open,
.hamburger-menu-close {
  display: none;
  color: #f5f3f4;
  width: 2em;
  transition: 0.5s ease;
  margin: 0;
  margin-right: 1em;
  cursor: pointer;
}

.hamburger-menu {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 3em;
  transition: 0.5s ease;
  margin: 0;
  margin-right: 1em;
  cursor: pointer;
  position: relative;
}

.hamburger-icon {
  position: absolute;
  margin: 0;
  width: 60%;
  border-radius: 10px;
  height: 2px;
  min-height: 2px;
  background-color: #f5f3f4;
  animation: fade-in 1s ease-in-out;
  transition: 0.5s ease;
}

.hamburger-menu:hover .hamburger-icon {
  background-color: #f72585;
}

.line-1 {
  transform: translateY(-10px);
}
.line-3 {
  transform: translateY(10px);
}

.close-line-1 {
  transform: translateY(0) rotate(-45deg);
}

.close-line-2 {
  opacity: 0;
}

.close-line-3 {
  transform: translateY(0) rotate(45deg);
}

nav div > * {
  text-decoration: none;
  color: #f5f3f4;
  font-size: 1.5em;
  font-weight: 400;
  transition: 0.5s ease;
}

nav div a:nth-child(5) {
  color: #f72585;
  transition: 0.5s ease;
}

nav div a:nth-child(5):hover,
nav div a:nth-child(5):active {
  color: #00adff;
}

nav div a:hover,
nav div a:active {
  color: #f72585;
}

@keyframes nav-links-move {
  0% {
    bottom: 200%;
  }
  100% {
    bottom: 0;
  }
}

.nav-links {
  animation: fade-in 1s ease-in-out;
}

@keyframes fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

section#about {
  flex-direction: row;
  gap: 3em;
}

.about-text-pic {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 40em;
  width: 100%;
}

.about-text-wall {
  text-align: justify;
  width: 100%;
}

.pic-summary {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  border: 3px #00adff solid;
  border-radius: 10px;
  background-color: #00adff;
  width: 20em;
  height: 20em;
  transition: 1s ease;
}

.pic-summary img {
  box-sizing: border-box;
  object-fit: cover;
  border-radius: 10px;
  transition: 1s ease;
  width: 100%;
  height: 100%;
}

.about-padding {
  padding: 0 3em 0 3em;
}

.skills-range {
  display: none;
  flex-direction: column;
  justify-content: space-around;
  width: 100%;
}

.skills-range div {
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  width: 100%;
  background-color: #f5f3f4;
  margin-bottom: 0.5em;
}

.skills-range div:last-of-type {
  margin-bottom: 0;
}

.skills-range div p {
  font-weight: 600;
  background-color: #f72585;
  text-align: center;
  margin: 0;
  padding: 0.3em;
  transition: transform 0.8s;
}

.skills-range div p:nth-of-type(1) {
  width: 20%;
  min-width: 20%;
}

.skills-range .skill-confidence {
  background-color: #00adff;
  width: 100%;
  transition: transform 1s;
  animation: skills-range-grow 2.5s ease-in-out;
}

@keyframes skills-range-grow {
  0% {
    width: 0%;
  }
  100% {
    width: 100%;
  }
}

.skills-range div p:nth-of-type(2) {
  color: #161a1d;
  background-color: #f5f3f4;
  text-align: end;
  padding: 0.3em;
  margin-left: auto;
}

.skills-range div.HTML p:nth-of-type(2),
.skills-range div.CSS p:nth-of-type(2) {
  width: 8%;
}

.skills-range div.JavaScript p:nth-of-type(2) {
  width: 16%;
}

.skills-range div.python p:nth-of-type(2),
.skills-range div.Bootstrap p:nth-of-type(2) {
  width: 24%;
}

.skills-range div.QML p:nth-of-type(2),
.skills-range div.MySQL p:nth-of-type(2) {
  width: 32%;
}

.skills-range div.Git p:nth-of-type(2) {
  width: 40%;
}

.skills-range div.Inkscape p:nth-of-type(2) {
  width: 48%;
}

.skills-range div.Jira p:nth-of-type(2) {
  width: 56%;
}

section#portfolio {
  flex-direction: column;
  justify-content: center;
  background-color: #131416;
  height: auto;
}

.portfolio-text-wall {
  text-align: justify;
  width: 100%;
}

.portfolio-projects {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-around;
  width: 100%;
  gap: 2.5em;
}

.portfolio-projects .project-thumbnail {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border: 3px #00adff solid;
  border-radius: 5%;
  background-color: #131416;
  text-align: center;
  width: 15em;
  height: 15em;
  font-weight: 500;
  text-decoration: none;
  color: #f5f3f4;
  margin: 0;
  padding: 0;
  cursor: pointer;
  transition: 1s ease;
  overflow: hidden;
  position: relative;
}

.portfolio-projects p {
  font-size: 1.1em;
  font-weight: 400;
  width: 100%;
  color: #f72585;
  margin: 0;
  margin-bottom: 1em;
  transition: 1s ease;
}

.portfolio-projects .project-thumbnail:hover,
.portfolio-projects .project-thumbnail:active {
  border: 3px #f72585 solid;
}

.portfolio-projects .project-thumbnail:hover p,
.portfolio-projects .project-thumbnail:active p {
  color: #00adff;
}

.portfolio-projects .img-border {
  max-width: 15em;
  height: 15em;
  max-height: 15em;
  /* display: flex;
  justify-content: center; */
  box-sizing: border-box;
  border: #161a1d solid 0.7em;
  overflow: hidden;
  width: 100%;
}

.portfolio-projects .border-light {
  background-color: #f5f3f4;
  height: 30em;
  width: 15em;
  position: absolute;
  opacity: 0.1;
  top: -65%;
  left: -81%;
  transform: rotate(45deg);
  z-index: 1;
  transition: 1s linear;
}

.projects-light-anim {
  animation: light-turn 2s ease-in-out;
}

.portfolio-projects .project-thumbnail:hover .border-light {
  animation: light-turn 2s ease-in-out;
}

@keyframes light-turn {
  0%,
  100% {
    opacity: 0.1;
    transform: translateX(0) rotate(45deg);
  }
  50% {
    opacity: 0;
    transform: translateX(-200%) rotate(45deg);
  }
  51% {
    opacity: 0;
    transform: translateX(200%) rotate(45deg);
  }
  52% {
    opacity: 0.1;
    transform: translateX(200%) rotate(45deg);
  }
}

.portfolio-projects img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  z-index: 2;
  position: relative;
}

.portfolio-projects .qml img {
  filter: contrast(120%);
}

.portfolio-projects .thumbnail-body {
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  gap: 0.5em;
  padding: 0.7em;
  background-color: #131416;
  z-index: 2;
}

.portfolio-projects .thumbnail-body h5 {
  margin: 0;
}

.portfolio-projects .thumbnail-body p {
  margin: 0;
}

section#contact {
  flex-direction: column;
}

.contact-text-wall {
  text-align: justify;
  width: 100%;
}

.contact-text-wall a {
  text-decoration: none;
  color: #f5f3f4;
  font-weight: 400;
}

.contact-text-wall a.resume-link {
  font-weight: 600;
}

.contact-icons {
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  gap: 1em;
}

.contact-icons > a {
  display: flex;
  flex-direction: row;
  align-items: center;
  width: 2em;
  height: 2em;
  padding: 1em;
  background-color: #f72585;
  border-radius: 10px;
  transition: 0.5s ease;
  overflow: hidden;
}

.contact-icons > a > div {
  display: flex;
  flex-direction: row;
  align-items: center;
}

.contact-icons > a:active,
.contact-icons > a:hover {
  background-color: #00adff;
}

.contact-icons svg {
  width: 2em;
  height: 2em;
  transition: 0.5s ease;
}

.contact-icons-anim {
  animation: icons-turn 1s ease-in-out;
}

.contact-icons a:active svg,
.contact-icons a:hover svg {
  animation: icons-turn 1s ease-in-out;
}

svg.bi-github {
  animation-delay: 0.2s;
}

svg.bi-linkedin {
  animation-delay: 0.4s;
}

@keyframes icons-turn {
  0%,
  100% {
    opacity: 1;
    transform: translateX(0) rotate(0deg);
  }
  30% {
    opacity: 0;
    transform: translateX(200%);
    filter: blur(0.5px);
  }
  31% {
    opacity: 0;
    transform: translateX(200%);
  }
  32% {
    opacity: 0;
    transform: translateX(-200%);
  }
  60% {
    opacity: 1;
    transform: translateX(60%) rotate(15deg);
    filter: blur(0.5px);
  }
  75% {
    opacity: 1;
    transform: translateX(60%) rotate(6deg);
    filter: blur(0.5px);
  }
  90% {
    opacity: 1;
    transform: translateX(0) rotate(0deg);
  }
}

.contact-icons label {
  display: none;
  margin-right: 0.8em;
  font-weight: 400;
  cursor: pointer;
  transition: 0.5s ease;
}

footer {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #131416;
  height: 2.5em;
}

footer a {
  text-decoration: none;
  color: #f5f3f4;
  font-weight: 300;
  transition: 0.5s ease;
  font-family: 'Noto Sans', sans-serif;
}

footer a:hover,
footer a:active {
  color: #f72585;
}

/*  responsive layout  */
@media (max-width: 1300px) {
  section:not(#header) {
    padding: 5em 5em 5em 5em;
  }
}

@media (max-width: 1025px) {
  section:not(#header) {
    padding: 4.5em 5em 5em 5em;
  }

  .nav-icon img {
    width: 2.5em;
    height: 2.5em;
  }

  nav a {
    font-size: 1.2em;
  }

  section#about {
    flex-direction: column;
  }

  .pic-summary {
    width: 20em;
  }
}

@media (max-width: 768px) {
  .nav-icon img {
    width: 2em;
    height: 2em;
    margin-left: 1em;
  }

  .nav-links {
    margin-right: 1.5em;
  }

  nav a {
    font-size: 1em;
  }

  p {
    font-size: 0.8em;
  }

  .portfolio-projects {
    flex-direction: column;
    margin-top: 0;
  }

  .portfolio-projects a:nth-of-type(2) {
    margin-top: 3em;
  }

  .portfolio-projects p {
    font-size: 1.1em;
  }
}

@media (max-width: 500px) {
  section:not(#header) {
    padding: 2.6em 2em 3em 2em;
    min-height: 80vh;
  }

  nav {
    flex-direction: row;
    flex-wrap: wrap;
  }

  .nav-icon img {
    margin-left: 1em;
  }

  nav div {
    align-items: flex-end;
  }

  .nav-links {
    /* hamburger menu */
    display: none;
    background-color: #101113;
    flex-direction: column;
    align-items: flex-end;
    width: 100%;
    margin-right: 0em;
    gap: 0em;
  }

  .hamburger-menu {
    display: flex;
  }

  .hamburger-menu-open {
    display: flex;
    color: #f5f3f4;
    margin-right: 0.6em;
    transition: 0.5s ease;
  }

  nav div > a {
    font-size: 1.2em;
    font-weight: 300;
    margin-right: 1em;
    margin-bottom: 0.5em;
  }

  nav div > a:nth-of-type(1) {
    margin-top: 0.5em;
  }

  h1 {
    font-size: 2em;
  }

  p {
    font-size: 0.8em;
  }

  .skills-range p {
    font-size: 0.7em;
  }

  .portfolio-projects a:nth-of-type(2) {
    margin-top: 3em;
  }

  .portfolio-projects p {
    font-size: 1em;
  }
}

@media (max-width: 360px) {
  h1 {
    font-size: 1.5em;
  }
  .pic-summary {
    height: 15em;
    width: 15em;
  }
}
