:root {
  --beige-100: #f8f0e5;
  --beige-200: #eadbc8;
  --beige-300: #dac0a3;
  --navy: #0f2c59;
}

@keyframes floating {
  from {
    transform: translate(0, 0px);
  }
  65% {
    transform: translate(0, 10px);
  }
  to {
    transform: translate(0, -0px);
  }
  /* animation-name: floating;
  animation-duration: 1.5s;
  animation-iteration-count: infinite;
  animation-timing-function: ease-in-out; */
}

* {
  font-family: "Poppins", sans-serif;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
  width: 100vw;
}

body {
  background-color: var(--beige-100);
  overflow-x: hidden;
  width: 100vw;
}

footer.footer {
  margin-top: 6em;
}

div.main-content {
  max-width: 1300px;
  width: 100%;

  margin: 0 auto;
  margin-top: 2em;
  padding: 1em;
}

/* Scroll Progress */
div.scroll-progress {
  width: 100vw;
  height: 1vh;
  background-color: var(--beige-200);

  position: fixed;
  top: 0;
  z-index: 100;
  backdrop-filter: blur(5px);
}

div.scroll-progress div.inner-progress {
  background-color: var(--beige-300);
  height: 100%;
  width: 0%;
}

/* Navbar */
nav.navbar {
  display: flex;
  align-items: center;
  justify-content: center;

  color: var(--navy);

  width: 100%;
  padding: 0em 1em 0em 1em;

  margin-top: 1vh;
}

nav.navbar.moved-bottom {
  background-color: var(--beige-100);
  position: fixed;
  bottom: 0;
  z-index: 100;
}

nav.navbar div.logo {
  display: none;
  font-weight: 500;
}

nav.navbar ul.navigation {
  display: flex;
  justify-content: space-around;

  flex-basis: 100%;
  list-style-type: none;
}

nav.navbar ul.navigation li a {
  color: #0f2c59;

  display: block;
  padding: 0.5em;
  line-height: 0;

  transition: all 0.3s;
}

nav.navbar ul.navigation li a:hover {
  color: whitesmoke;
  background-color: var(--navy);
}

nav.navbar ul.navigation li a span {
  font-size: 2em;
}

/* Header */
div.main-content header.header {
  position: relative;

  color: var(--navy);
}

div.main-content header.header h1.header-intro {
  font-size: 1.2em;
  font-weight: 200;
}

div.main-content header.header h1.header-name {
  line-height: 100%;
  font-weight: 500;
}

div.main-content header.header div.header-all-social-media {
  display: flex;
  gap: 1em;
  flex-wrap: wrap;
}

div.main-content
  header.header
  div.header-all-social-media
  a.header-social-media-button {
  display: block;
  margin-top: 1em;
  padding: 0.8em;
  width: max-content;
  transform-origin: 0%;

  border: 1px solid var(--navy);
  border-radius: 0.3em;

  font-size: 0.8em;
  color: var(--navy);
  text-decoration: none;
  line-height: 0;

  transition: all 0.3s;
}

div.main-content
  header.header
  div.header-all-social-media
  a.header-social-media-button:hover {
  transform: scale(1.2);
  color: whitesmoke;
  background-color: var(--navy);
}

div.main-content header.header div.background-deco {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -100;

  opacity: 0.1;

  font-weight: 700;

  /* -webkit-text-fill-color: transparent;
  -webkit-text-stroke-width: 0.01em;
  -webkit-text-stroke-color: black; */

  transform: rotate(-15deg);

  font-size: 5em;

  animation-name: floating;
  animation-duration: 1.5s;
  animation-iteration-count: infinite;
  animation-timing-function: ease-in-out;
}

/* About Me */
div.main-content section.about-me {
  margin-top: 5em;
}

div.main-content section.about-me div.layout-about-me {
  margin-top: 2em;
}

div.main-content section.about-me h2.title-about-me {
  position: relative;

  text-align: center;

  font-size: 2em;
  color: var(--navy);
}

div.main-content section.about-me h2.title-about-me::before {
  content: "About Me";

  position: absolute;
  z-index: -100;
  transform: scale(2);

  opacity: 0.08;
}

div.main-content section.about-me div.image-about-me {
  position: relative;
  line-height: 0;
}

div.main-content section.about-me div.image-about-me::before {
  content: "";
  position: absolute;
  z-index: -100;
  width: 100%;
  height: 100%;
  border: 4px solid var(--navy);
  border-radius: 1%;
  top: 4%;
  left: 6%;

  animation-name: floating;
  animation-duration: 1.5s;
  animation-iteration-count: infinite;
  animation-timing-function: ease-in-out;
}

div.main-content section.about-me div.image-about-me img {
  width: 100%;
  aspect-ratio: 1/1;
  object-fit: cover;

  filter: drop-shadow(0 20px 13px rgb(0 0 0 / 0.03))
    drop-shadow(0 8px 5px rgb(0 0 0 / 0.08));

  animation-name: floating;
  animation-delay: 0.5s;
  animation-duration: 1.5s;
  animation-iteration-count: infinite;
  animation-timing-function: ease-in-out;
}

div.main-content section.about-me h4.sub-title-about-me {
  color: var(--navy);
}

div.main-content section.about-me h4.sub-title-about-me span {
  color: var(--navy);
}

div.main-content section.about-me div.layout-about-me div.content-about-me {
  margin-top: 4em;
}

div.main-content section.about-me div.content-about-me p {
  color: var(--navy);
}

/* Skills */
div.main-content section.skills {
  margin-top: 5em;
}

div.main-content section.skills h2.title-skills {
  position: relative;

  text-align: center;

  font-size: 2em;
  color: var(--navy);
}

div.main-content section.skills h2.title-skills::before {
  content: "Skills";

  position: absolute;
  z-index: -100;
  transform: scale(2);

  opacity: 0.08;
}

div.main-content section.skills div.all-skills {
  display: flex;
  flex-flow: column wrap;
  justify-content: center;
  gap: 1em;

  margin-top: 2em;
}

div.main-content section.skills div.all-skills div.skill {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-basis: 100%;

  position: relative;

  background-color: var(--beige-100);
  color: var(--navy);

  border-radius: 0.5em;
  padding: 1em;

  user-select: none;

  filter: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07))
    drop-shadow(0 2px 2px rgb(0 0 0 / 0.06));

  transition: all 0.3s;
}

div.main-content section.skills div.all-skills div.skill:hover {
  background-color: var(--navy);
  color: whitesmoke;

  animation-name: floating;
  animation-duration: 1.5s;
  animation-iteration-count: infinite;
  animation-timing-function: ease-in-out;
}

div.main-content section.skills div.all-skills div.skill * {
  position: relative;
  z-index: 100;
}

div.main-content section.skills div.all-skills div.skill div.skill-icon {
  line-height: 0;
}

div.main-content section.skills div.all-skills div.skill div.skill-icon span {
  font-size: 2em;
}

/* Web Portfolio */
div.main-content section.portfolio-web {
  margin-top: 5em;
}

div.main-content section.portfolio-web h2.title-portfolio-web {
  position: relative;

  text-align: center;

  font-size: 2em;
  color: var(--navy);
}

div.main-content section.portfolio-web h2.title-portfolio-web::before {
  content: "Web Portfolio";

  position: absolute;
  z-index: -100;
  transform: scale(2);

  opacity: 0.08;
}

div.main-content section.portfolio-web div.all-webs {
  display: flex;
  justify-content: center;
  flex-flow: column wrap;
  gap: 1em;

  margin-top: 2em;
}

div.main-content section.portfolio-web div.all-webs div.web {
  filter: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07))
    drop-shadow(0 2px 2px rgb(0 0 0 / 0.06));

  padding: 1em;
  border-radius: 0.5em;

  background-color: var(--beige-100);
  overflow: hidden;

  transition: all 0.3s;
}

div.main-content section.portfolio-web div.all-webs div.web div.web-image img {
  width: 100%;

  filter: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07))
    drop-shadow(0 2px 2px rgb(0 0 0 / 0.06));
}

div.main-content section.portfolio-web div.all-webs div.web:hover {
  animation-name: floating;
  animation-delay: 0.5s;
  animation-duration: 1.5s;
  animation-iteration-count: infinite;
  animation-timing-function: ease-in-out;
}

div.main-content section.portfolio-web div.all-webs div.web::before {
  transition: all 0.5s ease-in-out 0.5s;

  content: "";
  width: 100%;
  height: 0;
  background-color: var(--beige-200);
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}

div.main-content section.portfolio-web div.all-webs div.web::after {
  transition: all 0.5s ease-in-out;

  content: "";
  width: 100%;
  height: 0;
  background-color: var(--beige-300);
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -2;
}

div.main-content section.portfolio-web div.all-webs div.web:hover::before {
  height: 100%;
}

div.main-content section.portfolio-web div.all-webs div.web:hover::after {
  height: 100%;
}

div.main-content
  section.portfolio-web
  div.all-webs
  div.web:hover
  div.web-image
  img {
  animation-name: floating;
  animation-duration: 1.5s;
  animation-iteration-count: infinite;
  animation-timing-function: ease-in-out;
}

div.main-content section.portfolio-web div.all-webs div.web h2.web-name {
  color: var(--navy);
  text-align: center;
  font-size: 1.2em;
  font-weight: 500;

  margin-top: 0.5em;

  transition: all 0.3s;
}

div.main-content section.portfolio-web div.all-webs div.web a.visit-page {
  color: maroon;
  text-align: center;
  text-decoration: none;

  display: block;
  width: max-content;
  margin: 0 auto;

  transition: all 0.3s;
}

div.main-content section.portfolio-web div.all-webs div.web:hover a.visit-page {
  text-decoration: underline;
}

/* Photo/Design Portfolio */
div.main-content section.portfolio-layout-img {
  margin-top: 5em;
}

div.main-content section.portfolio-layout-img h2.title-portfolio-layout-img {
  position: relative;

  text-align: center;

  font-size: 2em;
  color: var(--navy);
}

div.main-content
  section.portfolio-layout-img.portfolio-photo
  h2.title-portfolio-layout-img::before {
  content: "Photos Portfolio";

  position: absolute;
  z-index: -100;
  transform: scale(2);

  opacity: 0.08;
}

div.main-content
  section.portfolio-layout-img.portfolio-design
  h2.title-portfolio-layout-img::before {
  content: "Design Portfolio";

  position: absolute;
  z-index: -100;
  transform: scale(2);

  opacity: 0.08;
}

div.main-content section.portfolio-layout-img p.more-items {
  text-align: center;
  color: var(--navy);
}

div.main-content section.portfolio-layout-img p.more-items a {
  color: maroon;
  text-decoration: none;
}

div.main-content section.portfolio-layout-img div.layout-img-portfolio {
  display: flex;
  justify-content: center;
  flex-direction: column;
  gap: 1em;

  margin-top: 2em;

  position: relative;
}

div.main-content section.portfolio-layout-img div.layout-img-portfolio::before {
  content: "";
  position: absolute;
  z-index: -100;
  width: 100%;
  height: 100%;
  border: 4px dashed var(--navy);
  background-color: var(--beige-200);
  top: 2%;
  left: -5%;

  animation-name: floating;
  animation-duration: 1.5s;
  animation-iteration-count: infinite;
  animation-timing-function: ease-in-out;
}

div.main-content
  section.portfolio-layout-img
  div.layout-img-portfolio
  div.layout-img-col {
  display: flex;
  flex-direction: column;
  gap: 1em;
}

div.main-content
  section.portfolio-layout-img
  div.layout-img-portfolio
  div.layout-img-col
  div.each-layout-img {
  line-height: 0;
}

div.main-content
  section.portfolio-layout-img
  div.layout-img-portfolio
  div.layout-img-col
  div.each-layout-img
  img {
  width: 100%;
  filter: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07))
    drop-shadow(0 2px 2px rgb(0 0 0 / 0.06));
}

/* Video Portfolio */
div.main-content section.portfolio-video {
  margin-top: 5em;
}

div.main-content section.portfolio-video h2.title-portfolio-video {
  position: relative;

  text-align: center;

  font-size: 2em;
  color: var(--navy);
}

div.main-content section.portfolio-video h2.title-portfolio-video::before {
  content: "Video Portfolio";

  position: absolute;
  z-index: -100;
  transform: scale(2);

  opacity: 0.08;
}

div.main-content section.portfolio-video p.more-videos {
  text-align: center;
  color: var(--navy);
}

div.main-content section.portfolio-video p.more-videos a {
  color: maroon;
  text-decoration: none;
}

div.main-content section.portfolio-video div.videos-portfolio {
  display: flex;
  justify-content: center;
  flex-direction: column;
  gap: 1em;

  margin-top: 2em;

  position: relative;
}

div.main-content
  section.portfolio-video
  div.videos-portfolio
  div.each-video
  iframe {
  width: 100%;
  aspect-ratio: 16/9;
}

div.circle-follow-cursor {
  width: 5vh;
  height: 5vh;
  display: none;
  border-radius: 50%;
  background-color: var(--navy);
  position: absolute;
  z-index: 1000;

  transition: transform 0.5s ease;
}

@media all and (min-width: 360px) {
  div.main-content {
    padding: 1.5em;
  }

  /* Header */
  div.main-content header.header h1.header-intro {
    font-size: 1.6em;
  }

  div.main-content header.header h1.header-name {
    font-size: 2.5em;
  }

  div.main-content header.header div.background-deco {
    font-size: 8em;
  }

  /* About Me */
  div.main-content section.about-me div.layout-about-me {
    margin-top: 4em;
  }

  div.main-content section.about-me h4.sub-title-about-me {
    font-size: 1.5em;
  }
}

@media all and (min-width: 540px) {
  /* Header */
  div.main-content header.header h1.header-intro {
    font-size: 2em;
  }

  div.main-content header.header h1.header-name {
    font-size: 3.5em;
  }

  div.main-content
    header.header
    div.header-all-social-media
    a.header-social-media-button {
    padding: 1em;
  }

  div.main-content
    header.header
    div.header-all-social-media
    a.header-social-media-button
    svg {
    width: 1.5em;
    height: 1.5em;
  }

  /* About Me */
  div.main-content section.about-me h2.title-about-me {
    font-size: 4em;
  }

  div.main-content section.about-me div.image-about-me img {
    width: 100%;
  }
  /* Skills */
  div.main-content section.skills h2.title-skills {
    font-size: 4em;
  }

  /* Web Portfolio */
  div.main-content section.portfolio-web h2.title-portfolio-web {
    font-size: 4em;
  }

  /* Photo/Design Portfolio */
  div.main-content section.portfolio-layout-img h2.title-portfolio-layout-img {
    font-size: 4em;
  }

  /* Video Portfolio */
  div.main-content section.portfolio-video h2.title-portfolio-video {
    font-size: 4em;
  }
}

@media all and (min-width: 768px) {
  div.main-content {
    margin-top: 6em;
  }

  /* Navbar */
  nav.navbar {
    justify-content: space-around;
  }

  nav.navbar div.logo {
    display: block;
    font-size: 2em;
  }

  nav.navbar ul.navigation {
    justify-content: flex-start;
    flex-basis: 0;
  }
  nav.navbar ul.navigation li a span {
    font-size: 2.5em;
  }

  /* About Me */
  div.main-content section.about-me div.layout-about-me {
    display: flex;
    align-items: center;
    gap: 2.5em;
  }

  div.main-content section.about-me div.layout-about-me div.content-about-me {
    flex: 1 1 0%;
  }

  div.main-content section.about-me div.layout-about-me div.image-about-me {
    flex-basis: 40%;
  }

  div.main-content section.about-me div.layout-about-me div.content-about-me {
    margin-top: 0;
  }

  /* Skills */
  div.main-content section.skills div.all-skills {
    flex-flow: row wrap;
  }

  div.main-content section.skills div.all-skills div.skill {
    flex-basis: 45%;
  }

  /* Photo/Design Portfolio */
  div.main-content section.portfolio-layout-img div.layout-img-portfolio {
    flex-flow: row wrap;
  }

  div.main-content
    section.portfolio-layout-img
    div.layout-img-portfolio::before {
    top: 50%;
    left: 50%;
    translate: -50% -50%;

    width: 80%;
    height: 80%;
  }

  div.main-content
    section.portfolio-layout-img
    div.layout-img-portfolio
    div.layout-img-col {
    display: flex;
    flex-direction: column;
    gap: 1em;

    flex-basis: 45%;
  }

  /* Video Portfolio */
  div.main-content section.portfolio-video div.videos-portfolio {
    flex-flow: row wrap;
  }

  div.main-content section.portfolio-video div.videos-portfolio {
    flex-flow: row wrap;
  }

  div.main-content section.portfolio-video div.videos-portfolio div.each-video {
    flex-basis: 45%;
  }
}

@media all and (min-width: 1024px) {
  /* Header */
  div.main-content header.header h1.header-intro {
    font-size: 3em;
  }

  div.main-content header.header h1.header-name {
    font-size: 4.5em;
  }

  div.main-content header.header div.background-deco {
    font-size: 11em;
  }

  div.main-content
    header.header
    div.header-all-social-media
    a.header-social-media-button
    svg {
    width: 1.7em;
    height: 1.7em;
  }

  /* Web Portfolio */
  div.main-content section.portfolio-web div.all-webs {
    flex-flow: row wrap;
    gap: 2em;
  }

  div.main-content section.portfolio-web div.all-webs div.web {
    flex-basis: 45%;
  }
}

@media all and (min-width: 1280px) {
  /* About Me */
  div.main-content section.about-me div.layout-about-me {
    gap: 4em;
  }
}
