@import url("https://fonts.cdnfonts.com/css/inter");

* {
  margin: 0;
  box-sizing: border-box;
  font-family: "Inter", sans-serif;
  /* text-transform: lowercase; */
}

@media (prefers-color-scheme: dark) {
  :root {
    --main-bg: #060606;
    --main-text: #f3f3f3;
    --secondary-bg: #101010;
    --secondary-text: #f1f1f1;
    --accent: #cad5a6;
  }
}

body {
  height: 100vh;
  width: 100vw;
  background: var(--main-bg);
  color: var(--main-text);
  display: flex;
  align-items: center;
  justify-content: center;
}

ul,
ol {
  padding: 0;
  margin: 0;
  list-style: none;
}

.names h1 {
  font-size: 6rem;
  cursor: pointer;
  font-weight: bolder;
  position: relative;
}

.names h1:hover::after {
  content: "achubila";
  position: absolute;
  left: 100%;
  top: 0;
  opacity: 0;
  transform: translateX(-20px);
  animation: slideInFromLeft 0.3s ease-out forwards;
}

@keyframes slideInFromLeft {
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

main {
  width: clamp(300px, 800px, 90%);
  min-height: 80%;
  padding: 1rem;
  border-radius: 12px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* Hide radio inputs */
/* Visually hide while keeping focusability & semantics */
input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem;
  border-bottom: 1px solid var(--secondary-bg);
}

.names {
  padding: 0.5rem;
}

.names .location {
  font-size: 1rem;
  text-shadow: none;
}

.names p {
  color: var(--accent);
  font-size: 1.4rem;
}

.links {
  display: flex;
  padding: 1rem;
  gap: 0.5rem;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.links > a {
  font-size: 1.2rem;
  font-weight: 600;
  text-align: start;
  display: block;
  min-width: 9rem;
  padding: 0.4rem;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  color: var(--accent);
}

.links > a::before {
  content: ": ";
}

.links > a:hover {
  background-color: var(--secondary-bg);
}

.content {
  margin: 0 auto;
  display: flex;
  height: clamp(30px, 400px, 600px);
  width: 100%;
}

.categories {
  padding: 1rem 0;
  width: 25%;
  list-style: none;
  border-right: 1px solid #27272546;
  display: grid;
  gap: 0.4rem;
  place-content: center;
}

.categories label:focus-visible {
  outline: 2px solid var(--accent);
  background: linear-gradient(to right, var(--secondary-bg), #27272546);
}

.categories label {
  cursor: pointer;
  padding: 0.4rem 1rem;
  font-size: 1.2rem;
  display: block;
}

.categories label:hover {
  background: linear-gradient(to right, var(--secondary-bg), #27272546);
}

/* Active label styling - Updated selectors to work with new html structure */
#projects:checked ~ .content .categories label[for="projects"],
#programmingLanguages:checked
  ~ .content
  .categories
  label[for="programmingLanguages"],
#about:checked ~ .content .categories label[for="about"],
#education:checked ~ .content .categories label[for="education"],
#interests:checked ~ .content .categories label[for="interests"],
#contact:checked ~ .content .categories label[for="contact"] {
  color: var(--accent);
  font-weight: bold;
  background: linear-gradient(to right, var(--secondary-bg), #0808087b);
}

.content-body {
  width: 75%;
  height: 100%;
  padding: 0.5rem 1rem;
}

.programming,
.projects {
  list-style: none;
}

.programming > li,
.projects > li {
  margin: 0 auto;
}

.programming > li:hover,
.projects > li:hover {
  cursor: pointer;
  background: linear-gradient(to right, var(--secondary-bg), #27272546);
}

.programming > li > a,
.projects > li > a {
  font-size: 1.5rem;
  display: block;
  margin: 0.4rem auto;
  text-decoration: none;
}

.programming > li > a::before,
.projects > li > a::before {
  content: "- ";
}

.programming > li > a:hover,
.projects > li > a:hover {
  color: var(--secondary-text);
}

.programming > li > span,
.projects > li > span {
  font-size: 1rem;
  margin-top: 0.2rem;
  color: var(--main-text);
  opacity: 0.8;
  transition: color 0.3s ease;
}

.programming > li:hover > span,
.projects > li:hover > span {
  color: var(--secondary-text);
}

.about {
  font-size: 1.2rem;
}

.education {
  padding: 1rem 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.education > div {
  border-left: 2px solid var(--accent);
  padding-left: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.education h3 {
  color: var(--accent);
}

.date {
  font-size: 1.2rem;
  color: var(--secondary-text);
}

.college > a {
  color: var(--main-text);
  text-decoration: none;
}

.interests {
  display: flex;
  padding: 0.4rem;
  flex-wrap: wrap;
  gap: 1rem;
}

.interests > span {
  background: #27272546;
  font-size: 1.2rem;
  color: var(--accent);
  padding: 1rem;
  border-radius: 5px;
}

.contact {
  padding: 20px;
  border-radius: 8px;
  margin: auto;
}

.contact form {
  display: flex;
  flex-direction: column;
}

.contact div {
  margin-bottom: 10px;
}

.contact label {
  color: var(--main-text);
  margin-bottom: 5px;
  font-weight: bold;
  font-size: 1.2rem;
}

.contact input[type="text"],
.contact input[type="tel"],
.contact input[type="email"],
.contact textarea {
  width: 100%;
  padding: 10px;
  border: 1px solid #27272546;
  border-radius: 4px;
  background-color: var(--main-bg);
  color: var(--main-text);
  font-size: 1rem;
}

.contact input[type="submit"] {
  background-color: var(--accent);
  color: var(--main-bg);
  border: none;
  padding: 10px;
  border-radius: 4px;
  cursor: pointer;
  font-size: 1rem;
  transition: background-color 0.3s ease;
}

.contact input[type="submit"]:hover {
  background-color: #27272546;
}

/* Hide all content sections by default */
.projects,
.programming,
.about,
.education,
.interests,
.contact {
  display: none;
}

/* Show specific content based on which radio is checked - Updated selectors */
#projects:checked ~ .content .content-body .projects {
  display: block;
}

#programmingLanguages:checked ~ .content .content-body .programming {
  display: block;
}

#about:checked ~ .content .content-body .about {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

#education:checked ~ .content .content-body .education {
  display: flex;
}

#interests:checked ~ .content .content-body .interests {
  display: flex;
}

#contact:checked ~ .content .content-body .contact {
  display: block;
}

/* Add smooth transitions */
.content-body > * {
  animation: fadeIn 0.3s ease-in-out;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
