* {
  margin: 0;
  padding: 0;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  text-decoration: none;
  list-style: none;
  font-family: "Roboto", sans-serif;
  font-weight: 400;
  font-size: 1rem;
}

@media (max-width: 768px) {
  html {
    font-size: 87.5%;
  }
}

img {
  max-width: 100%;
  display: block;
}

button {
  cursor: pointer;
  background: transparent;
  border: 0;
}

body {
  position: relative;
  overflow-x: hidden;
  background-color: #171717;
  color: #FFFFFF;
  -webkit-font-smoothing: antialiased;
}

.container {
  width: 100%;
  max-width: 100rem;
  padding: 0 1rem;
  margin: 0 auto;
}

section {
  height: 100vh;
}

@-webkit-keyframes logoAnimate {
  0% {
    opacity: 0.5;
    -webkit-transform: rotate(0deg) scale(1, 1);
    transform: rotate(0deg) scale(1, 1);
    -webkit-animation-timing-function: cubic-bezier(0.59, -0.03, 0.41, 1.02);
    animation-timing-function: cubic-bezier(0.59, -0.03, 0.41, 1.02);
  }
  50% {
    -webkit-transform: scale(0.8, 0.8);
    transform: scale(0.8, 0.8);
    -webkit-animation-timing-function: cubic-bezier(0.59, -0.03, 0.41, 1.02);
    animation-timing-function: cubic-bezier(0.59, -0.03, 0.41, 1.02);
  }
  100% {
    opacity: 1;
    -webkit-transform: rotate(90deg) scale(1, 1);
    transform: rotate(90deg) scale(1, 1);
  }
}

@keyframes logoAnimate {
  0% {
    opacity: 0.5;
    -webkit-transform: rotate(0deg) scale(1, 1);
    transform: rotate(0deg) scale(1, 1);
    -webkit-animation-timing-function: cubic-bezier(0.59, -0.03, 0.41, 1.02);
    animation-timing-function: cubic-bezier(0.59, -0.03, 0.41, 1.02);
  }
  50% {
    -webkit-transform: scale(0.8, 0.8);
    transform: scale(0.8, 0.8);
    -webkit-animation-timing-function: cubic-bezier(0.59, -0.03, 0.41, 1.02);
    animation-timing-function: cubic-bezier(0.59, -0.03, 0.41, 1.02);
  }
  100% {
    opacity: 1;
    -webkit-transform: rotate(90deg) scale(1, 1);
    transform: rotate(90deg) scale(1, 1);
  }
}
@-webkit-keyframes contactAnimate {
  from {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes contactAnimate {
  from {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@-webkit-keyframes bounce {
  from, 20%, 53%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  40%, 43% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -30px, 0) scaleY(1.1);
    transform: translate3d(0, -30px, 0) scaleY(1.1);
  }
  70% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -15px, 0) scaleY(1.05);
    transform: translate3d(0, -15px, 0) scaleY(1.05);
  }
  80% {
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transform: translate3d(0, 0, 0) scaleY(0.95);
    transform: translate3d(0, 0, 0) scaleY(0.95);
  }
  90% {
    -webkit-transform: translate3d(0, -4px, 0) scaleY(1.02);
    transform: translate3d(0, -4px, 0) scaleY(1.02);
  }
}
@keyframes bounce {
  from, 20%, 53%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  40%, 43% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -30px, 0) scaleY(1.1);
    transform: translate3d(0, -30px, 0) scaleY(1.1);
  }
  70% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -15px, 0) scaleY(1.05);
    transform: translate3d(0, -15px, 0) scaleY(1.05);
  }
  80% {
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transform: translate3d(0, 0, 0) scaleY(0.95);
    transform: translate3d(0, 0, 0) scaleY(0.95);
  }
  90% {
    -webkit-transform: translate3d(0, -4px, 0) scaleY(1.02);
    transform: translate3d(0, -4px, 0) scaleY(1.02);
  }
}
@-webkit-keyframes pulse {
  0% {
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  50% {
    -webkit-transform: translate(0, 10px);
    transform: translate(0, 10px);
  }
  100% {
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0);
  }
}
@keyframes pulse {
  0% {
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  50% {
    -webkit-transform: translate(0, 10px);
    transform: translate(0, 10px);
  }
  100% {
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0);
  }
}
.s-hero {
  width: 100%;
  background-image: url("../assets/background-hero.png");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  position: relative;
}
@media (max-width: 720px) {
  .s-hero {
    background-position: center top;
  }
}
.s-hero .container {
  height: 100%;
}
.s-hero .content {
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 1.5rem;
}
.s-hero .content .presentation,
.s-hero .content .resume {
  width: 100%;
  max-width: 31rem;
}
.s-hero .content .presentation span {
  font-family: "Lora", serif;
  font-size: 1.5rem;
}
.s-hero .content .presentation h1 {
  font-weight: 700;
  font-size: 4.5rem;
  color: #78FFD6;
  margin-bottom: 2rem;
}
@media (max-width: 1280px) {
  .s-hero .content .presentation h1 {
    font-size: 4rem;
  }
}
.s-hero .content .presentation small {
  font-family: "Lora", serif;
}
@media (max-width: 720px) {
  .s-hero .content .presentation span, .s-hero .content .presentation h1, .s-hero .content .presentation small {
    display: block;
    text-align: center;
  }
}
.s-hero .content .resume p {
  font-family: "Lora", serif;
  font-size: 1.25rem;
  text-align: right;
}
@media (max-width: 720px) {
  .s-hero .content .resume p {
    text-align: center;
  }
}
.s-hero .content .logo {
  width: 100%;
  max-width: 25rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}
.s-hero .content .logo img {
  -webkit-animation: logoAnimate 3000ms linear 1 normal forwards;
  animation: logoAnimate 3000ms linear 1 normal forwards;
}
@media (max-width: 1366px) {
  .s-hero .content .logo {
    max-width: 10rem;
  }
}
@media (max-width: 720px) {
  .s-hero .content {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
  }
}
.s-hero .scroll-down {
  position: absolute;
  bottom: 2rem;
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 1rem;
}
.s-hero .scroll-down i {
  font-size: 1.5rem;
  -webkit-animation: pulse 2s infinite;
  animation: pulse 2s infinite;
}

.s-works {
  width: 100%;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  overflow-x: hidden;
}
.s-works .container {
  height: 100%;
}
.s-works .content {
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  gap: 3.6rem;
}
.s-works .content h2 {
  font-weight: 700;
  font-size: 4rem;
  color: #78FFD6;
}
@media (max-width: 1280px) {
  .s-works .content h2 {
    font-size: 3rem;
  }
}
.s-works .content .slide-works .swiper-wrapper .swiper-slide {
  width: 45rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  gap: 1.5rem;
  background: rgba(255, 255, 255, 0.1);
  -webkit-box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  padding: 5rem 3.5rem;
}
.s-works .content .slide-works .swiper-wrapper .swiper-slide .image {
  max-width: 100%;
}
.s-works .content .slide-works .swiper-wrapper .swiper-slide .image img {
  -o-object-fit: cover;
  object-fit: cover;
}
.s-works .content .slide-works .swiper-wrapper .swiper-slide a {
  font-family: "Lora", serif;
  font-weight: 500;
  color: #FFFFFF;
}
@media (max-width: 720px) {
  .s-works .content .slide-works .swiper-wrapper .swiper-slide {
    padding: 2rem 1rem;
  }
}

.s-about {
  width: 100%;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  background-image: url("../assets/background-about.png");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}
@media (max-width: 720px) {
  .s-about {
    background-position: center bottom;
  }
}
.s-about .container {
  height: 100%;
}
.s-about .content {
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  gap: 3.6rem;
}
.s-about .content h2 {
  font-weight: 700;
  font-size: 4rem;
  color: #78FFD6;
}
@media (max-width: 1280px) {
  .s-about .content h2 {
    font-size: 3rem;
  }
}
.s-about .content .info {
  max-width: 38.75rem;
}
.s-about .content .info p {
  font-family: "Lora", serif;
  font-size: 1.5rem;
}
@media (max-width: 1280px) {
  .s-about .content .info p {
    font-size: 1.25rem;
  }
}
.s-about .content .info p + p {
  margin-top: 1rem;
}
.s-about .content .info ul {
  margin-top: 2.5rem;
}
.s-about .content .info ul li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 1rem;
}
.s-about .content .info ul li + li {
  margin-top: 1rem;
}
.s-about .content .info ul li span {
  font-weight: 700;
}
.s-about .content .info ul li .check-icon {
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  background: -webkit-gradient(linear, left top, left bottom, from(#007991), to(#78FFD6));
  background: linear-gradient(180deg, #007991 0%, #78FFD6 100%);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.s-contact {
  width: 100%;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}
.s-contact .container {
  height: 100%;
}
.s-contact .content {
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 3.6rem;
}
.s-contact .content h2 {
  font-weight: 700;
  font-size: 4rem;
  color: #78FFD6;
  margin-bottom: 3.6rem;
}
@media (max-width: 1280px) {
  .s-contact .content h2 {
    font-size: 3rem;
  }
}
.s-contact .content .contacts .links {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  gap: 1rem;
}
.s-contact .content .contacts .links a {
  font-family: "Lora", serif;
  font-weight: 500;
  font-size: 1.25rem;
  color: #FFFFFF;
}
.s-contact .content .images {
  position: relative;
  max-width: 40.625rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}
.s-contact .content .images .small-image {
  position: absolute;
  opacity: 0.2;
  animation: contactAnimate 15s 2s infinite reverse linear;
}
@media (max-width: 1366px) {
  .s-contact .content .images .small-image {
    max-width: 75%;
  }
}
@media (max-width: 1366px) and (max-width: 720px) {
  .s-contact .content .images .small-image {
    max-width: 50%;
  }
}
.s-contact .content .images .big-image {
  -webkit-animation: contactAnimate 10s 1s infinite normal linear;
  animation: contactAnimate 10s 1s infinite normal linear;
}
@media (max-width: 1366px) {
  .s-contact .content .images .big-image {
    max-width: 100%;
  }
}
@media (max-width: 720px) {
  .s-contact .content .images .big-image {
    max-width: 75%;
  }
}
@media (max-width: 1366px) {
  .s-contact .content .images {
    max-width: 30rem;
  }
}
@media (max-width: 720px) {
  .s-contact .content .images {
    max-width: 100%;
  }
}
@media (max-width: 720px) {
  .s-contact .content {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
  }
}

.s-skills {
  height: auto;
  width: 100%;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}
.s-skills .skills-bar {
  padding: 2rem 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  gap: 1.5rem;
}
.s-skills .skills-bar .bar-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 1rem;
  cursor: pointer;
}
@media (max-width: 1280px) {
  .s-skills .skills-bar .bar-item img {
    max-width: 2.5rem;
  }
  .s-skills .skills-bar .bar-item span {
    font-size: 0.825rem;
  }
}
.s-skills .skills-bar .bar-item:hover img {
  -webkit-animation: bounce 2000ms linear 300ms infinite normal;
  animation: bounce 2000ms linear 300ms infinite normal;
  -webkit-transform-origin: center bottom;
  transform-origin: center bottom;
}
@media (max-width: 720px) {
  .s-skills .skills-bar {
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
  }
}