:root {
  --HorrerFont: 400 normal 1rem / normal "Trade Winds", system-ui;

  --mainColor: rgb(0, 221, 255);
  --mainColorFaded: rgba(0, 221, 255, 0.5);

  --WhiteColor: rgba(255, 255, 255, 0.8);
  --blackColor: black;
  --lightGrayColor: rgb(26, 26, 26);

  --mainColorGradient: linear-gradient(
    to right bottom,
    var(--mainColor),
    var(--blackColor)
  );
  --mainGradient2: linear-gradient(
    to right,
    var(--mainColor),
    var(--mainColorFaded)
  );
  --whiteShadow: 2px 2px 25px rgba(147, 147, 147, 0.1),
    -2px -2px 25px rgba(147, 147, 147, 0.1);

  --minimumWidth: 300px;
  --ZindexingHighest: 20;

  --fontWeight1: 400;
  --fontWeight2: bold;
}

ul {
  list-style: none;
}

html,
body {
  height: fit-content;
  scroll-behavior: smooth;
  background-color: var(--blackColor);

  padding: 0;
  margin: 0;

  -webkit-tap-highlight-color: transparent;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
  display: flex;
  justify-content: center;
  flex-direction: column;

  font-family: "Nunito", sans-serif;
}

.HideRightElements {
  opacity: 0;
  transform: translateY(100px) scale(0.7);
  z-index: 1;
}

.HideLeftElements {
  z-index: 1;
  opacity: 0;
  transform: translateX(50%) scale(1);
}

.finalStage {
  opacity: 1;
  transform: translateX(0px) scale(1);
}

.animation {
  animation: slid-in 2s ease forwards;
}

/* ====================== Header ============================== */

header {
  min-width: var(--minimumWidth);
  width: 100%;
  height: 10vh;
  min-height: 70px;

  z-index: var(--ZindexingHighest);

  padding: 0 5%;
  box-sizing: border-box;

  display: flex;
  flex-direction: row-reverse;
  align-items: center;
  justify-content: space-between;

  position: fixed;
  top: 0;
  left: 0;

  background-color: rgba(0, 0, 0, 0.95);
}
.menuButton {
  background-color: transparent;
  border: none;

  font-size: 2rem;

  font-weight: var(--fontWeight2);
  color: var(--WhiteColor);

  cursor: pointer;
  user-select: none;
}

/* ====================== nav ============================== */

nav {
  position: absolute;
  top: 100%;
  left: 0;

  width: 0vw;
  height: 100vh;

  overflow: hidden;
  background-color: transparent;

  transition: width 0.5s ease;

  display: flex;
  flex-direction: column;
}

nav > ul {
  width: 100%;
  height: fit-content;

  padding: 0 0 1rem 0;
  box-sizing: border-box;

  display: flex;
  flex-direction: column;

  background-color: rgba(0, 0, 0, 0.95);

  border-bottom: 2px solid var(--mainColor);
  border-top: 0.5px solid var(--mainColor);

  overflow-x: hidden;
  overflow-y: scroll;

  scrollbar-width: none;
  -ms-overflow-style: none;
}

nav > ul::-webkit-scrollbar {
  display: none;
}

nav > ul > li {
  height: 5rem;
}

nav > ul > li > a {
  width: 100%;
  height: 100%;

  display: flex;
  align-items: center;

  text-decoration: none;
  color: var(--WhiteColor);
  font-size: clamp(18px, 1.8rem, 25px);

  padding: 0 0 0 10%;
  position: relative;

  transition: all 0.3s ease;
}

.opennav{
  width: 100vw;
}
/* ====================== main ============================== */

main {
  min-width: 100%;
  margin-bottom: 5rem;
  height: fit-content;

  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;

  background-color: transparent;
  z-index: 1;
}

main > section {
  width: clamp(320px, 100%, 100vw);
  height: fit-content;
  min-height: 100vh;
  box-sizing: border-box;
  background-color: var(--blackColor);
  scroll-margin: 10vh;
}

.sectionHeading {
  width: 100%;
  height: fit-content;
  font-size: 2rem;
  color: var(--WhiteColor);
  z-index: 1;
}

.buttonsclass {
  background-color: transparent;
  box-shadow: 1px 1px 5px rgba(0, 221, 255, 0.5),
    -1px -1px 10px rgba(0, 221, 255, 0.5);

  color: rgb(255, 255, 255);
  font-size: clamp(1.1rem, 2vh, 1.3rem);
  font-weight: bold;
  text-decoration: none;

  padding: 5px 10px;

  border-radius: 25px;

  cursor: pointer;
  user-select: none;
  border: 2px solid var(--mainColor);
  position: relative;
  overflow: hidden;
  z-index: 1;
}
.buttonsclass::before {
  content: "";

  position: absolute;
  bottom: -10px;
  left: 50%;
  transform: translateX(-50%);

  background-color: var(--mainColor);

  width: 0%;
  height: 0%;
  border: 2px solid var(--mainColor);
  border-radius: 25px;
  z-index: -2;

  transition: all 0.3s ease;
}

/* ====================== Home page ============================== */
#HomePage {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  width: 100%;

  position: relative;
}
#HomePage img {
  position: absolute;
  top: 0;
  left: 0;

  filter: blur(5px) brightness(30%);

  width: 100%;
  height: 100%;
  z-index: 0;
}
.NameText,
.titleText {
  z-index: 1;
  display: flex;
}
.NameText span {
  color: var(--mainColor);
  font-size: clamp(2.7rem, 10vw, 6rem);
  font-weight: 600;
  opacity: 0;
}
.NameText span.animation {
  animation: NameTextAnimation 3s linear forwards;
}

.titleText > span {
  color: var(--mainColor);
  font-size: clamp(1rem, 5vw, 2rem);
  font-weight: 400;
  opacity: 0;
}
.titleText > span.animation {
  animation: titleTextAnimation 4s linear infinite;
}

/* ====================== About page ============================== */
#AboutPage {
  display: flex;
  flex-direction: column;
  gap: 4rem;
  padding: 0 5% 0 5%;
  overflow: hidden;
}
.imgandaboutText {
  display: flex;
  flex-direction: column;
  gap: 4rem;
}
.AboutImageContainer {
  width: 100%;
  height: fit-content;

  display: flex;
  align-items: center;
  justify-content: center;
}
.AboutImageContainer > img {
  width: 100%;
  height: auto;
  aspect-ratio: 1/1;
  border-radius: 10px;
  transform-origin: center center;
}

/* ====================== About text ============================== */

.AboutData {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  box-sizing: border-box;
}
.AboutData #aboutheading {
  color: transparent;
  -webkit-text-stroke-width: 0.5px;
  -webkit-text-stroke-color: var(--mainColor);
  font-size: clamp(25px, 4vw, 25px);
}
.aboutme-text {
  width: 100%;

  display: flex;
  flex-direction: column;
  place-items: center;
  gap: 2rem;
}

#AboutPage #tagline {
  font-size: clamp(2rem, 7vw, 2.4rem);
  color: var(--WhiteColor);
}
.aboutme-text > p {
  font-size: clamp(0.8rem, 3vw, 1.3rem);
  color: var(--WhiteColor);
  width: fit-content;

  line-height: 1.2;
  box-sizing: border-box;
  overflow-wrap: break-word;
}
.aboutme-text a {
  margin: 0 auto 0 0;
  padding: 8px 10px;

  
}

.aboutme-text a.HideLeftElements {
  z-index: 1;
  opacity: 0;
  transform: translateX(200%) scale(1);
}
/* ====================== About skills ============================== */

.SkillsAndServices {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6rem;
}
.skillsContainer {
  width: 100%;
  height: fit-content;

  display: flex;
  flex-direction: column;
  gap: 2rem;

  box-sizing: border-box;
}
.skillsContainer p {
  color: var(--WhiteColor);
  font-size: clamp(0.8rem, 3vw, 1.1rem);
  line-height: 1.3;
  font-weight: 200;
}
.skillsCard {
  color: var(--WhiteColor);
  width: 100%;

  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: space-between;
  gap: 0.5rem;
}

.skillsCard div {
  font-size: small;

  width: 100%;
  display: flex;
  justify-content: space-between;

  color: var(--WhiteColor);
}
.rangeBorder {
  width: 100%;
  height: 0.3rem;
  border-radius: 3px;

  background-color: rgba(0, 221, 255, 0.279);

  position: relative;
}
.skillLine {
  content: "";
  position: absolute;
  left: 0;
  top: 0;

  height: 0.3rem;
  width: 0;
  border-radius: 3px;
  background: var(--mainGradient2);
}
.skillLine.animation {
  animation: skillsRange 3s ease forwards;
}
/* ====================== About Services ============================== */

.ServicesPage {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;

  width: 100%;
  height: fit-content;
}
.serviceCards {
  padding: 1rem 0 0 0;
  box-sizing: border-box;

  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 0.1rem;

  border-radius: 10px;

  white-space: nowrap;
}
.statCounts {
  color: var(--WhiteColor);
  font-size: clamp(2rem, 8vw, 3rem);
  font-weight: bold;
}
.serviceCards span {
  color: rgba(255, 255, 255, 0.451);
}
/* ====================== projects page ============================== */
.ProjectPage {
  display: flex;
  flex-direction: column;
  gap: 3rem;
  scroll-margin: 10vh;
  padding: 4rem 0;
}
.ProjectPage h3 {
  text-align: center;
}
.ProjectPage > section {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(255px, 1fr));
  place-items: center;

  gap: 4rem;
  padding: 0rem 2rem;
  box-sizing: border-box;
}
.projectCards {
  border-radius: 10px;
  box-shadow: var(--whiteShadow);
  background-color: rgb(30, 30, 30);
  padding: 1rem;
}
.projectCards > img {
  width: 100%;
  aspect-ratio: 1/0.6;
  border-radius: 10px;
}
.projectDetails {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;

  background-color: var(--lightGrayColor);

  padding: 1rem;
  box-sizing: border-box;
  border-radius: 10px;
}
.projectDetails > h4 {
  font-size: 1.5rem;
  font-weight: bold;
  color: transparent;
  background: var(--mainGradient2);
  background-clip: text;
}
.projectDetails > p {
  font-size: small;
  line-height: 1.3;
  color: rgba(255, 255, 255, 0.7);

  display: -webkit-box;
  line-clamp: 3;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.projectButtons {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 1rem;
}
.projectButtons > a {
  font-size: clamp(0.5rem, 2vh, 0.9rem);
  width: 100%;
  text-align: center;
  padding: 10px 0px;
  margin-bottom: 10px;
}
.watchlive {
  color: rgba(255, 255, 255, 0.9);
  text-decoration: none;
  border-radius: 25px;
  border: 0.5px solid transparent;
}

/* ====================== footer ============================== */

footer {
  width: 100vw;
  min-width: var(--minimumWidth);

  margin-top: auto;

  padding: 2rem 0 3rem 0;
  box-sizing: border-box;

  background-color: var(--lightGrayColor);

  display: flex;
  flex-direction: column;
  place-items: center;
  gap: 1rem;
}
.socialMedia li a i {
  color: var(--WhiteColor);
  transition: all 0.3s ease;
}

footer > h2 {
  font-size: medium;

  color: var(--mainColor);

  background: var(--mainGradient2);
  background-clip: text;
  color: transparent;
}
footer > .socialMedia {
  list-style: none;

  width: 100%;

  display: flex;
  flex-direction: row;
  justify-content: center;
  gap: 1rem;

  font-size: clamp(1rem, 10vw, 2rem);
}
