/* GLOBAL */
/* set css custom properties */
:root {
  --bg-body: hsl(0, 0%, 8%);
  --bg-contact: hsl(0, 0%, 14%);
  /* --accent: hsl(41, 78%, 51%);  */
  --accent: hsl(143.4, 78.3%, 51.2%);
  --accent-semi-transparent: hsla(143.4, 78.3%, 51.2%, 0.31);
  --text1: hsl(0, 0%, 100%);
  --text2: hsl(0, 0%, 85%);
  --invalid: rgb(255, 111, 92);
  --fs-18: 1.125rem;
  --fs-88: 5.5rem;
  --fs-72: 4.5rem;
  --fs-40: 2.5rem;
  --fs-48: 3rem;
  --fs-32: 2rem;
  --fs-24: 1.5rem;
  --fs-14: 0.875rem;
  --container: 69.375rem;
  --transition: 250ms ease-in-out;
}

html {
  box-sizing: border-box;
  font-size: 100%;
  scroll-behavior: smooth;
}

*,
*::before,
*::after {
  box-sizing: inherit;
}

body,
input,
textarea,
button {
  font-family: "Space Grotesk", sans-serif;
}

body {
  margin: 0;
  background-color: var(--bg-body);
  color: var(--text1);
  font-size: var(--fs-18);
  line-height: 1.56;
}

h1,
h2,
h3,
h4 {
  line-height: 1;
}

.header-xl {
  font-size: 2.5rem;
  font-size: clamp(2.5rem, 0.7rem + 7.68vw, 5.5rem);
  margin-bottom: 24px;
}

@media (min-width: 600px) {
  h1 {
    margin-bottom: 60px;
  }
}

@media (min-width: 600px) {
  h1 {
    margin-bottom: 43px;
  }
}

p,
li {
  font-size: 1rem;
  font-size: clamp(1rem, 0.79rem + 0.89vw, 1.125rem);
  line-height: 1.5;
  color: var(--text2);
  margin-bottom: 24px;
}

/* TRANSITIONS */
a,
button {
  transition: color var(--transition);
}

a.underline,
button {
  display: inline-block;
  font-size: 1rem;
  line-height: 1.625rem;
  letter-spacing: 2.29px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--text1);
  text-decoration: none;
  background-image: linear-gradient(to right, var(--accent) 75%, var(--accent) 75%);
  background-position: 0 2.1em;
  background-repeat: repeat-x;
  background-size: 8px 2px;
  padding-bottom: 10px;
}

a:hover,
button:hover {
  color: var(--accent);
}

.header_social svg {
  display: block;
}

.header_social>svg>path {
  transition: fill var(--transition);
}

.header_social:hover>svg>path {
  fill: var(--accent);
}

/* OTHER */
.wrapper {
  width: calc(100% - 2rem);
  max-width: var(--container);
  margin-inline: auto;
}

@media (min-width: 37.5em) {

  /* 600px for tablet */
  .wrapper {
    width: calc(100% - 3.75rem);
  }
}

/* UTILITY */
.bottom-border {
  border-bottom: 1px solid var(--text2);
}

/* HEADER */
.header {
  margin-top: 20px;
  position: relative;
  z-index: 1;
}

.header_nav {
  margin-top: 25px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  text-align: center;
  gap: 20px 25px;
}

.header_home {
  font-size: 1.5rem;
  font-size: clamp(1.5rem, 1.02rem + 2.04vw, 2rem);
  /* from fluid typography calculator */
  line-height: 1;
  color: var(--text1);
  text-decoration: none;
  flex: 1 0 100%;
}

@media (min-width: 37.5em) {
  .header_nav {
    justify-content: flex-start;
    align-items: center;
    text-align: left;
    gap: 32px;
    margin-bottom: 90px;
  }

  .header_home {
    flex: 1;
    margin-inline-end: auto;
  }
}

/* HERO */
.hero_wrapper {
  padding-bottom: 80px;
}

.hero_text {
  text-align: center;
  margin-top: 20, 9375rem;
  position: relative;
}

.hero_headline>br {
  display: none;
}

h1>span {
  color: var(--accent);
}

@media (min-width: 37.5em) {
  .header {
    margin-top: 30px;
  }

  .hero_text {
    width: 85vw;
    margin-top: 0;
    text-align: left;
  }

  .hero_headline>br {
    display: inline-block;
  }
}

@media (min-width: 62.5em) {
  .break_1 {
    display: none;
  }
}

/* FOR SCREEN READERS */
.visually_hidden {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* TABS */
.tabs_wrapper {
  padding-left: 0;
  display: flex;
  gap: 6px;
  justify-content: center;
}

.tab {
  font-size: 1rem;
  line-height: 1.625rem;
  letter-spacing: 2.29px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--text1);
  text-decoration: none;
  border: 1px solid var(--text1);
  padding: 10px;
}

.tab_left {
  border-top-left-radius: 10px;
  border-bottom-left-radius: 10px;
}

.tab_right {
  border-top-right-radius: 10px;
  border-bottom-right-radius: 10px;
}

.tab:hover {
  transition: border-color var(--transition);
  border-color: var(--accent);
}

@media (min-width: 37.5em) {
  .tabs_wrapper {
    justify-content: left;
  }
}

/* CODE SKILLS */
.skills {
  position: relative;
}

.skills_wrapper {
  display: grid;
  grid-template-columns: 1fr;
  padding-top: 20px;
  padding-bottom: 63px;
}

.skills_item {
  text-align: center;
}

.skills_title {
  font-size: 2rem;
  font-size: clamp(2rem, 0.33rem + 7.11vw, 3rem);
  line-height: 1.17;
  margin-bottom: 2px;
  margin-top: 25px;
}

.skills_description {
  margin-top: 0;
}

@media (min-width: 37.5em) {
  .skills_wrapper {
    grid-template-columns: repeat(2, 1fr);
    gap: 32px 24px;
  }

  .skills_item {
    text-align: left;
  }
}

.skills_container {
  width: 40%;
  border: 2px solid var(--accent);
  display: inline-block;
  border-radius: 5px;
  box-shadow: 0 0 10px var(--accent);
}

.skill_bar {
  padding-top: 4px;
  padding-bottom: 4px;
  background: var(--accent);
}

.python {
  width: 90%;
}

.sql {
  width: 60%;
}

.html {
  width: 60%;
}

.css {
  width: 45%;
}

.git {
  width: 55%;
}

@media (min-width: 37.5em) {
  .skills_container {
    width: 11rem;
  }
}

/* TECH SKILLS */
.pro_skills {
  position: relative;
}

.pro_skills_wrapper {
  display: grid;
  grid-template-columns: 1fr;
  padding-top: 20px;
  padding-bottom: 85px;
}

.pro_skills_title,
.pro_skills_percentage {
  line-height: 1.17;
  margin-bottom: 2px;
  margin-top: 35px;
  text-align: center;
}

.pro_skills_title_desktop,
.pro_skills_percentage_desktop {
  display: none;
}

.pro_skills_container {
  display: flex;
  gap: 13px;
  justify-content: center;
  margin-top: 15px;
}

.skill_circle {
  padding-block: 6px;
  padding-inline: 6px;
  border: 2px solid var(--accent-semi-transparent);
  border-radius: 10px;
}

.web_scraping>.circle_0_1,
.circle_0_2,
.circle_0_3,
.circle_0_4,
.circle_0_5,
.circle_0_6,
.circle_0_7 {
  background-color: var(--accent);
  box-shadow: 0 0 10px var(--accent);
}

.data_transformation>.circle_1_1,
.circle_1_2,
.circle_1_3,
.circle_1_4,
.circle_1_5,
.circle_1_6,
.circle_1_7 {
  background-color: var(--accent);
  box-shadow: 0 0 10px var(--accent);
}

.db_management>.circle_2_1,
.circle_2_2,
.circle_2_3,
.circle_2_4,
.circle_2_5 {
  background-color: var(--accent);
  box-shadow: 0 0 10px var(--accent);
}

.data_modeling>.circle_3_1,
.circle_3_2,
.circle_3_3,
.circle_3_4,
.circle_3_5,
.circle_3_6 {
  background-color: var(--accent);
  box-shadow: 0 0 10px var(--accent);
}

.data_pipelines>.circle_4_1,
.circle_4_2,
.circle_4_3,
.circle_4_4,
.circle_4_5 {
  background-color: var(--accent);
  box-shadow: 0 0 10px var(--accent);
}

.nlp>.circle_5_1,
.circle_5_2,
.circle_5_3,
.circle_5_4,
.circle_5_5,
.circle_5_6,
.circle_5_7,
.circle_5_8 {
  background-color: var(--accent);
  box-shadow: 0 0 10px var(--accent);
}

.frontend>.circle_6_1,
.circle_6_2,
.circle_6_3 {
  background-color: var(--accent);
  box-shadow: 0 0 10px var(--accent);
}


@media (min-width: 62.5em) {
  .pro_skills_wrapper {
    grid-template-columns: repeat(2, 1fr);
    column-gap: 24px;
  }

  .pro_skills_item {
    text-align: left;
  }
}

@media (min-width: 37.5em) {
  .skill_circle {
    padding-block: 8px;
    padding-inline: 8px;
  }

  .pro_skills_title {
    text-align: left;
  }

  .pro_skills_container {
    gap: 15px;
    justify-content: left;
  }

  .pro_skills_title_mobile {
    display: none;
  }

  .pro_skills_title_desktop,
  .pro_skills_percentage_desktop {
    display: block;
  }

  .pro_skills_title_container {
    display: flex;
  }

  .title_container_web_scraping {
    gap: 151px;
  }

  .title_container_data_transformation {
    gap: 84px;
  }

  .title_container_db_management {
    gap: 56px;
  }

  .title_container_data_modeling {
    gap: 143px;
  }

  .title_container_data_pipelines {
    gap: 146px;
  }

  .title_container_nlp {
    gap: 84px;
  }

  .title_container_frontend {
    gap: 50px;
  }
}

/* EXPERIENCE */
.experience {
  margin-bottom: 63px;
}

.experience_headline {
  margin-block: 0 65px;
  text-align: center;
}

.experience_item {
  display: grid;
  grid-template-columns: 20% 80%;
  justify-content: center;
}

.experience_item_top {
  margin-bottom: 35px;
}

.experience_item_bottom {
  margin-bottom: 0;
}

.experience_description {
  margin-bottom: 0;
}

.experience_item>div>h3,
h4,
h5 {
  margin-block: 0 7px;
}

.experience_item>div>h4,
h5 {
  margin-block: 0 7px;
  line-height: 1.5;
}

.last_list_item {
  margin-bottom: 0;
}

.experience_date_outer {
  line-height: 1;
}

.experience_date_inner {
  color: var(--text2);
}

.experience_column_one {
  display: none;
}

.experience_column_two {
  padding-right: 4.7px;
  margin-right: 35px;
  text-align: right;
  position: relative;
}

.experience_circle {
  position: absolute;
  display: inline-block;
  padding-block: 9px;
  padding-inline: 9px;
  border-radius: 15px;
  border: 2px solid var(--accent);
  background-color: var(--accent);
  box-shadow: 0 0 10px var(--accent);
}

.experience_timeline {
  position: absolute;
  display: inline-block;
  background-color: var(--accent);
  box-shadow: 0 0 10px var(--accent);
  height: 99%;
  width: 4px;
  translate: 215%;
}

.position {
  color: var(--accent);
}

ul {
  padding-left: 1rem;
  list-style-type: square;
}

@media (min-width: 37.5em) {
  .experience_headline {
    text-align: left;
  }

  .experience_item {
    grid-template-columns: 35% 10% 55%;
  }

  .experience_column_one {
    display: block;
  }

  .experience_date_inner {
    display: none;
  }
}

@media (min-width: 62.5em) {
  .experience_item {
    grid-template-columns: 25% 5% 70%;
  }
}

/* EDUCATION */
.education_subsection {
  margin-bottom: 18px;
}

.course {
  margin-block: 0;
}

.thesis {
  margin-bottom: 0;
}

/* CONTACT */
.contact {
  background-color: var(--bg-contact);
}

.contact_wrapper {
  padding-block: 65px;
}

.contact_headline {
  margin-top: 0;
}

.contact_control {
  position: relative;
}

.contact_control input,
.contact_control textarea {
  width: 100%;
  padding-block: 16px;
  padding-inline: 24px;
  border: none;
  border-bottom: 1px solid var(--text1);
  background: transparent;
  font-size: 1rem;
  line-height: 1.625;
  color: var(--text1)
}

.contact_control>*::placeholder {
  color: var(--text1);
  opacity: 0.5;
  text-transform: uppercase;
  font-size: 1rem;
  line-height: 1;
}

.contact_control input {
  margin-block-end: 16px;
}

.contact_control textarea {
  margin-block-end: 32px;
}

.contact_control.align-right {
  display: flex;
  justify-content: flex-end;
}

.contact_control button {
  background-color: transparent;
  border: none;
}

/* input validation */
textarea,
input {
  outline: none;
}

.contact_control input:focus-visible,
.contact_control textarea:focus-visible {
  border-bottom-color: var(--accent);
}

.contact_control input:focus-visible:invalid,
.contact_control textarea:focus-visible:invalid {
  border-bottom-color: var(--invalid);
}

form:invalid button {
  opacity: 0.3;
  pointer-events: none;
}

.contact_invalid-icon {
  display: none;
  position: absolute;
  width: 1.5rem;
  height: 1.5rem;
  top: 22%;
  right: 0;
}

.contact_invalid_message {
  display: none;
  position: absolute;
  color: var(--invalid);
  font-size: var(--fs-14);
  letter-spacing: 0.4px;
  margin-inline: 0;
  top: 65%;
  right: 0;
}

.contact_control input:focus-visible:invalid~.contact_invalid-icon {
  display: inline-block;
}

.contact_control input:focus-visible:invalid~.contact_invalid_message {
  display: inline-block;
}

@media (min-width: 62.5em) {
  .contact_wrapper {
    display: grid;
    grid-template-columns: repeat(2, 27.8rem);
    justify-content: space-between;
  }

  .contact_headline {
    margin-top: 0;
  }

  .contact_description {
    margin-top: 36px;
  }

}

/* 999.98px */
@media (max-width: 62.49875em) {
  .contact_wrapper {
    max-width: 27.8rem;
  }

  .contact_text {
    text-align: center;
  }

  .contact_headline {
    margin-bottom: 20px;
  }
}

/* FOOTER */
footer {
  background-color: var(--bg-contact);
  padding-bottom: 10px;
}

@media (max-width: 37.5em) {
  footer {
    padding-bottom: 10px
  }
}

@media (max-width: 62.5em) {
  footer {
    padding-bottom: 10px;
  }
}

.developed_by {
  color: var(--accent);
}

/* FOOTER */
.footer_wrapper {
  text-align: center;
  border-top: 1px solid var(--text2);
}

.footer_wrapper>.header_nav {
  margin-bottom: 0px;
}

@media (min-width: 37.5em) {
  .footer_wrapper>.developed_by {
    text-align: left;
  }

  .footer_wrapper>.developed_by>br {
    display: none;
  }
}