:root {
  --color-darklight: #121212;
  --color-bg: #130f40;
  --color-primary: #87cefa;
  --color-btn: #87cefac7;
  --color-secondary: #f3f3f3;
  --color-tertiary: #b0b0b0;
  --color-gradient: linear-gradient(315deg, #130f40 0%, #000000 74%); }

[data-theme='light'] {
  --color-darklight: #e0e0e0;
  --color-bg: #f5f5f5;
  --color-primary: #4a90e2;
  --color-btn: #4a90e2c7;
  --color-secondary: #2c3e50;
  --color-tertiary: #6c7878;
  --color-gradient: linear-gradient(315deg, #d3d3d3 0%, #f5f5f5 74%); }

*,
*::after,
*::before {
  margin: 0;
  padding: 0;
  list-style: none;
  box-sizing: border-box;
  font-family: "Poppins", sans-serif; }

html {
  font-size: 62.5%;
  overflow-x: hidden;
  box-sizing: border-box;
  scroll-behavior: smooth; }
  @media screen and (max-width: 600px) {
    html {
      font-size: 57.5%; } }

body {
  background-color: var(--color-bg);
  background-image: var(--color-gradient);
  min-height: 100vh; }

*::-webkit-scrollbar {
  height: 1.2rem;
  width: 1.2rem; }

*::-webkit-scrollbar-track {
  border-radius: 1rem;
  background-color: #dfe9eb; }
  *::-webkit-scrollbar-track:hover {
    background-color: #b8c0c2; }
  *::-webkit-scrollbar-track:active {
    background-color: #b8c0c2; }

*::-webkit-scrollbar-thumb {
  background-color: #130f40; }
  *::-webkit-scrollbar-thumb:hover {
    background-color: #130f40f9; }
  *::-webkit-scrollbar-thumb:active {
    background-color: #130f40; }

a {
  text-decoration: none !important;
  font-size: 1.6rem !important;
  letter-spacing: 0.18rem; }

img {
  max-width: 100%; }

h1,
h2 {
  color: var(--color-secondary) !important;
  font-size: 4.8rem !important;
  font-weight: 600 !important; }

h3 {
  font-size: 3.2rem !important; }

h3,
h4 {
  color: var(--color-secondary) !important;
  font-weight: 500 !important; }

h4 {
  font-size: 2.4rem !important; }

p {
  font-size: 1.6rem !important;
  color: var(--color-tertiary) !important;
  font-weight: 400 !important; }

.tooltip {
  font-size: 1.3rem !important;
  --bs-tooltip-bg: #130f40 !important; }

.hero {
  padding-top: 25rem;
  min-height: 100vh; }
  @media screen and (min-width: 1921px) {
    .hero {
      min-height: auto;
      padding-bottom: 12rem; } }
  @media screen and (max-width: 1200px) {
    .hero {
      padding-top: 18rem; } }
  .hero-wrapper {
    display: block;
    width: 100%;
    position: relative; }
    .hero-wrapper span {
      display: inline-block;
      position: absolute;
      opacity: 0;
      color: var(--color-primary);
      font-weight: 600;
      font-size: 3.2rem;
      overflow: hidden;
      animation: changeText 4s infinite 0s; }
      .hero-wrapper span:nth-child(1) {
        animation-delay: 1s; }
      .hero-wrapper span:nth-child(2) {
        animation-delay: 3s; }
  .hero-text {
    line-height: 1.6;
    letter-spacing: 0.1rem; }
  .hero-img {
    opacity: 0.76;
    border-radius: 30% 10%;
    margin-top: -28rem;
    margin-left: 10rem;
    width: 70%;
    filter: contrast(1.1);
    transition: transform 0.5s ease; }
    .hero-img:hover {
      transform: translateY(-1rem);
      opacity: 1; }
    @media screen and (max-width: 1200px) {
      .hero-img {
        margin-top: -15rem; } }
    @media screen and (max-width: 992px) {
      .hero-img {
        width: 50vw;
        margin-left: 0; } }
    @media screen and (max-width: 767px) {
      .hero-img {
        margin-top: 5rem; } }

.about-tabContainer {
  border: none !important;
  border-width: 0 !important;
  --bs-nav-tabs-link-active-bg: none !important;
  --bs-nav-link-padding-x: 0 !important;
  --bs-nav-tabs-border-width: 0 !important;
  gap: 2.5rem; }
  @media screen and (max-width: 550px) {
    .about-tabContainer {
      gap: 1.5rem; } }

.about-left-img {
  clip-path: polygon(25% 0%, 100% 0%, 75% 100%, 0% 100%);
  opacity: 0.85; }
  .about-left-img:hover {
    opacity: 1; }

.about-tab-link {
  color: var(--color-secondary) !important;
  text-decoration: none;
  position: relative;
  font-size: 1.8rem !important; }
  .about-tab-link:after {
    content: '';
    width: 0;
    height: 0.3rem;
    background: var(--color-primary);
    position: absolute;
    left: 0;
    bottom: 0;
    transition: 0.5s; }
  .about-tab-link.active::after {
    width: 50%; }

.about-img {
  max-width: 8rem !important;
  transition: transform 0.5s; }
  .about-img:hover {
    transform: translateY(-0.2rem);
    filter: contrast(160%); }

.about-hr {
  border: 2px solid var(--color-primary); }

.about-education-article span {
  font-size: 1.6rem;
  color: var(--color-primary) !important; }

.about-education-profession {
  color: var(--color-secondary) !important;
  font-weight: 600 !important; }

.about-languages-img {
  max-width: 7rem !important; }

@media screen and (min-width: 992px) {
  .services-title {
    margin-left: -2.6rem; } }

.services-box {
  background-color: var(--color-bg);
  padding: 4rem;
  color: var(--color-primary);
  border-radius: 1rem;
  transition: all 0.5s !important; }
  .services-box:hover {
    transform: translateY(-1rem);
    background-image: var(--color-gradient); }
  @media screen and (max-width: 1200px) {
    .services-box {
      background-color: none;
      background-image: var(--color-gradient); } }
  .services-box-icon {
    font-size: 5rem; }
  .services-box-title {
    padding: 1rem 0; }
  .services-box-text {
    letter-spacing: 0.15rem; }
  .services-box-link {
    color: var(--color-secondary);
    background: transparent;
    border: none;
    letter-spacing: 0.15rem;
    margin-top: 2rem; }

.project {
  padding: 4.5rem 2.5rem;
  margin: 6rem 0;
  background-color: var(--color-bg);
  box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
  transition: all 0.5s !important; }
  .project:hover {
    background-image: var(--color-gradient); }
  @media screen and (min-width: 992px) {
    .project-left {
      align-self: start; } }
  @media screen and (min-width: 1200px) {
    .project-left {
      align-self: center; } }
  .project-img {
    transition: all 0.5s ease-in-out !important; }
    .project-img:hover {
      transform: scale(1.1);
      filter: brightness(1.2); }
  .project-right-title {
    font-weight: 600 !important; }
  .project-right-link-btn:hover {
    color: var(--color-primary); }

.contact {
  background-image: var(--color-gradient);
  position: relative;
  padding: 5rem 0;
  z-index: 2 !important; }
  .contact-text {
    color: var(--color-tertiary) !important;
    line-height: 1.5;
    margin: 0 auto; }
    @media screen and (min-width: 1000px) {
      .contact-text {
        max-width: 50%; } }
  .contact-copy {
    font-size: 1.2rem !important; }
  .contact-icon {
    font-size: 4.5rem !important;
    z-index: 3 !important;
    position: relative; }
  .contact-mailSpan {
    color: var(--color-primary);
    z-index: 3;
    letter-spacing: 0.25rem;
    font-size: 1.8rem;
    position: relative; }

.particles-js-canvas-el {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1 !important; }

/* BUTTON */
.mainBtn {
  display: inline-block;
  padding: 0.9rem 1.8rem;
  font-size: 1.6rem;
  font-weight: 400;
  color: var(--color-secondary);
  border: 0.2rem solid var(--color-btn);
  cursor: pointer;
  position: relative;
  background-color: transparent;
  text-decoration: none;
  overflow: hidden;
  z-index: 1;
  font-family: inherit; }
  .mainBtn::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: var(--color-btn);
    transform: translateX(-100%);
    transition: all 0.3s;
    z-index: -1; }
  .mainBtn:hover::before {
    transform: translateX(0); }

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

@keyframes tilt {
  0% {
    transform: rotate(0deg); }
  25% {
    transform: rotate(-10deg); }
  75% {
    transform: rotate(10deg); }
  100% {
    transform: rotate(0deg); } }

@keyframes changeText {
  0% {
    opacity: 0; }
  25% {
    opacity: 1; }
  50% {
    opacity: 0; }
  75% {
    opacity: 0; }
  100% {
    opacity: 0; } }

@keyframes fadeIn {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

.fade-in {
  opacity: 0;
  transition: opacity 2s ease-in-out; }

.fade-in.visible {
  opacity: 1;
  animation: fadeIn 2s ease-in-out forwards; }

/* FADE IN LEFT */
@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translateX(-100px); }
  to {
    opacity: 1;
    transform: translateX(0); } }

.fade-in-left {
  opacity: 0;
  transform: translateX(-100px);
  transition: opacity 2s ease-in-out, transform 2s ease-in-out; }

.fade-in-left.visible {
  opacity: 1;
  transform: translateX(0);
  animation: fadeInLeft 2s ease-in-out forwards; }

/* FADE IN RIGHT */
@keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translateX(100px); }
  to {
    opacity: 1;
    transform: translateX(0); } }

.fade-in-right {
  opacity: 0;
  transform: translateX(100px);
  transition: opacity 2s ease-in-out, transform 2s ease-in-out; }

.fade-in-right.visible {
  opacity: 1;
  transform: translateX(0);
  animation: fadeInRight 2s ease-in-out forwards; }

.switch {
  font-size: 1.7rem;
  position: relative;
  display: inline-block;
  margin-left: auto;
  margin-right: 2rem;
  width: 6.4rem;
  height: 3.4rem; }
  .switch input {
    opacity: 0;
    width: 0;
    height: 0; }
  .switch .slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #3fb0f6;
    transition: 0.4s;
    border-radius: 3rem; }
    .switch .slider:before {
      position: absolute;
      content: '';
      height: 3rem;
      width: 3rem;
      border-radius: 2rem;
      left: 0.2rem;
      bottom: 0.2rem;
      z-index: 2;
      background-color: #e8e8e8;
      transition: 0.4s; }
  .switch .sun svg {
    position: absolute;
    top: 0.6rem;
    left: 3.6rem;
    z-index: 1;
    width: 2.4rem;
    height: 2.4rem; }
    .switch .sun svg:hover {
      animation: rotate 15s linear infinite; }
  .switch .moon svg {
    fill: #73c0fc;
    position: absolute;
    top: 0.5rem;
    left: 0.5rem;
    z-index: 1;
    width: 2.4rem;
    height: 2.4rem; }
    .switch .moon svg:hover {
      animation: tilt 5s linear infinite; }
  .switch input:checked + .slider {
    background-color: #183153; }
    .switch input:checked + .slider:before {
      transform: translateX(3rem); }
  .switch input:focus + .slider {
    box-shadow: 0 0 0.1rem #183153; }

.progress-bar {
  width: 0%;
  background-color: var(--color-primary); }

.navBackground {
  background-color: var(--color-bg); }

@media screen and (min-width: 992px) {
  .navbar {
    --bs-navbar-padding-y: 0 !important; } }

.navMain-container {
  transition: background-color 0.2s ease-in; }

.navMain-logo {
  color: var(--color-secondary);
  letter-spacing: 0.25rem;
  font-size: 4.3rem !important;
  font-weight: 600; }
  .navMain-logo::first-letter {
    color: var(--color-primary); }
  .navMain-logo-img {
    filter: invert(1) sepia(1) saturate(5) hue-rotate(500deg); }
    .navMain-logo-img:hover {
      transform: scale(1.06);
      transition: transform 0.2s ease-in; }

.navMain-link {
  font-size: 3rem !important;
  letter-spacing: 0.6rem;
  color: var(--color-tertiary) !important;
  transition: none !important; }
  .navMain-link:hover {
    color: var(--color-secondary) !important; }

.navMain-langSwitcher {
  display: flex;
  gap: 2rem;
  opacity: 0.8; }
  .navMain-langSwitcher-img {
    max-width: 3.6rem;
    cursor: pointer;
    transition: all 0.16s ease; }
    .navMain-langSwitcher-img:hover {
      opacity: 1;
      filter: contrast(180%);
      transform: scale(1.05); }

.navMain-social-icon {
  font-size: 2.5rem;
  color: var(--color-secondary); }
  .navMain-social-icon:hover {
    color: var(--color-primary); }

.menuToggler {
  border: 2px solid var(--color-primary) !important; }
  .menuToggler:focus {
    box-shadow: none !important; }
  .menuToggler-open {
    color: var(--color-primary) !important;
    background-image: none !important;
    font-size: 2rem;
    margin-top: 1rem; }
  .menuToggler-close {
    font-size: 2rem; }

#offcanvasNavbarDark {
  background-color: var(--color-bg) !important; }

.btn-close-white,
.btn-close {
  color: var(--color-primary) !important;
  filter: invert(0.5) !important; }

.portfolio {
  margin-top: 10rem !important; }
  .portfolio-mainTitle {
    font-size: 10rem !important; }
    @media screen and (max-width: 500px) {
      .portfolio-mainTitle {
        font-size: 7.2rem !important; } }
  .portfolio-tab-link.active::after {
    width: 100%; }

.graphic-img {
  filter: brightness(0.65) contrast(120%);
  aspect-ratio: 1/1;
  object-fit: cover;
  transition: all 0.5 ease; }
  .graphic-img-auto {
    filter: contrast(150%) brightness(0.85); }
  .graphic-img:hover {
    filter: brightness(0.9) contrast(130%); }
