/* ========== Global Reset ========== */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  font-family: "Comic Sans MS", "Arial Rounded MT Bold", Arial, sans-serif; /* Consistent font-family */
}

/* ========== Theme Variables (extracted from your provided CSS) ========== */
:root {
  --theme-dark-purple: #1a0b2e;
  --theme-indigo-purple: #2d1b4e;
  --theme-medium-purple: #5b21b6;
  --theme-light-purple: #7c3aed;
  --theme-gold-yellow: #fde047;
  --theme-gold-orange: #fbbf24;
  --theme-dark-gold-orange: #f59e0b;
  --theme-text-light: #e5e7eb; /* General light text */
  --theme-text-light-purple: #e9d5ff; /* Lighter purple text */
  --theme-text-medium-purple: #c4b5fd; /* Medium purple text */
  --theme-text-dark: #000; /* For text on gold buttons */
  --theme-option-bg-light: #e9d5ff; /* Lightest purple for options */
  --theme-option-bg-lighter: #ddd6fe;
  --theme-option-strong-purple: #7c3aed;
  --theme-correct-green: #10b981;
  --theme-correct-green-dark: #059669;
  --theme-wrong-red: #ef4444;
  --theme-wrong-red-dark: #dc2626;
  --theme-progress-bg: #3d2b5f; /* Darker purple for progress bar track */
}

/* ========== Body ========== */
body {
  margin: 0;
  background: linear-gradient(180deg, var(--theme-dark-purple), var(--theme-indigo-purple)); /* 🎨 Deep purple to indigo */
  color: var(--theme-text-light); /* Light text color */
  min-height: 100vh;
  display: flex; /* Flexbox for centering content */
  justify-content: center;
  align-items: center;
}

/* ========== Start Screen Layout ========== */
#start-screen {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 40px 20px; /* Adjusted padding */
  gap: 20px;
  text-align: center;
  max-width: 960px; /* Slightly wider for more cards */
  width: 95%;
  background: linear-gradient(135deg, var(--theme-medium-purple) 0%, var(--theme-light-purple) 100%); /* 🎨 Purple gradient */
  border-radius: 20px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
  border: 2px solid rgba(var(--theme-gold-yellow), 0.3); /* Gold accent border */
  z-index: 1; /* Ensure content is above stars */
  position: relative; /* For z-index to work */
}

/* ========== Title & Intro ========== */
.title {
  font-size: 36px;
  letter-spacing: 1px;
  color: var(--theme-gold-yellow); /* 🎨 Gold yellow */
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
  margin-bottom: 10px;
}

.intro {
  font-size: 18px;
  line-height: 1.6;
  color: var(--theme-text-light); /* Light text */
  opacity: 0.9;
  max-width: 600px;
  margin-bottom: 20px;
}

/* ========== New Info Card Style ========== */
.info-card {
  background: linear-gradient(135deg, var(--theme-indigo-purple) 0%, var(--theme-dark-purple) 100%); /* Darker purple gradient */
  border-radius: 12px;
  padding: 20px 25px;
  margin-bottom: 25px; /* Space from course list */
  max-width: 700px; /* Max width for readability */
  width: 100%;
  text-align: left;
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2);
  border: 1px solid rgba(var(--theme-text-light-purple), 0.3);
}

.info-card .info-text {
  font-size: 16px;
  line-height: 1.7;
  color: var(--theme-text-light-purple);
  margin-bottom: 10px;
}

.info-card .info-text:last-child {
  margin-bottom: 0;
}

.info-card .info-text strong {
  color: var(--theme-gold-yellow); /* Highlight key phrases */
  font-weight: bold;
}

/* ========== Course Grid ========== */
.course-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); /* Adjusted minmax for more cards */
  gap: 24px;
  width: 100%;
  max-width: 900px; /* Max width for the grid */
  /* margin-top: 20px; Removed as info-card handles spacing */
}

/* ========== Course Card ========== */
.course-card {
  background: linear-gradient(135deg, var(--theme-indigo-purple) 0%, var(--theme-dark-purple) 100%); /* Darker purple gradient */
  color: var(--theme-text-light); /* Light text */
  padding: 28px 20px;
  border-radius: 18px;
  cursor: pointer;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  border: 1px solid rgba(var(--theme-text-light-purple), 0.2); /* Subtle purple border */
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    background 0.25s ease,
    border-color 0.25s ease,
    color 0.25s ease; /* Add color to transition for smooth text color change */
}

.course-card:hover {
  transform: translateY(-5px) scale(1.02);
  /* Make all cards golden on hover */
  box-shadow: 0 8px 20px rgba(var(--theme-gold-yellow), 0.5); /* Golden glow */
  background: linear-gradient(135deg, var(--theme-gold-orange) 0%, var(--theme-dark-gold-orange) 100%); /* Golden gradient */
  border-color: rgba(var(--theme-gold-yellow), 0.6); /* Golden border */
  color: var(--theme-text-dark); /* Dark text on golden background */
}

/* ========== Primary Course Highlight ========== */
.course-card.primary {
  background: linear-gradient(135deg, var(--theme-gold-orange), var(--theme-dark-gold-orange)); /* Gold gradient */
  color: var(--theme-text-dark); /* Dark text for contrast */
  border: 1px solid var(--theme-gold-yellow);
}

.course-card.primary:hover {
  box-shadow: 0 8px 20px rgba(var(--theme-gold-yellow), 0.8); /* Stronger gold glow */
  transform: translateY(-5px) scale(1.02);
  /* Keep background and border the same as initial primary state, just enhance shadow/transform */
  border-color: var(--theme-gold-yellow); /* Explicitly keep it golden */
  color: var(--theme-text-dark); /* Ensure text remains dark */
}

/* Ensure text colors within cards are handled correctly on hover */
.course-title {
  color: var(--theme-text-light); /* Default light text */
}

.course-card:hover .course-title {
  color: var(--theme-text-dark); /* Dark text on hover for all cards */
}

.course-desc {
  color: var(--theme-text-medium-purple); /* Medium purple text */
}

.course-card:hover .course-desc {
  color: rgba(var(--theme-text-dark), 0.7); /* Slightly lighter dark text on hover for all cards */
}


/* ========== Locked Course ========== */
.course-card.locked {
  background: rgba(var(--theme-dark-purple), 0.5); /* Semi-transparent dark purple */
  color: var(--theme-text-medium-purple);
  cursor: not-allowed;
  box-shadow: none;
  border: 1px dashed rgba(var(--theme-text-medium-purple), 0.3);
}

.course-card.locked:hover {
  transform: none;
  box-shadow: none;
  background: rgba(var(--theme-dark-purple), 0.5); /* Stays dark and transparent */
  border-color: rgba(var(--theme-text-medium-purple), 0.3);
  color: var(--theme-text-medium-purple); /* Stays medium purple */
}

/* ========== Footer ========== */
.footer {
  margin-top: 40px;
  font-size: 14px;
  color: var(--theme-text-medium-purple); /* Medium purple text */
  opacity: 0.8;
}

/* ========== Background Stars Animation (from your provided CSS) ========== */
.stars-background {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0; /* Behind the content */
}

.stars, .stars2, .stars3 {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: transparent;
}

.stars {
  background-image: 
    radial-gradient(2px 2px at 20px 30px, #eee, rgba(0,0,0,0)),
    radial-gradient(2px 2px at 60px 70px, #fff, rgba(0,0,0,0)),
    radial-gradient(1px 1px at 50px 50px, #ddd, rgba(0,0,0,0)),
    radial-gradient(1px 1px at 130px 80px, #fff, rgba(0,0,0,0)),
    radial-gradient(2px 2px at 90px 10px, #eee, rgba(0,0,0,0));
  background-repeat: repeat;
  background-size: 200px 200px;
  animation: twinkle 5s ease-in-out infinite;
  opacity: 0.3;
}

.stars2 {
  background-image: 
    radial-gradient(1px 1px at 100px 120px, #fff, rgba(0,0,0,0)),
    radial-gradient(1px 1px at 150px 60px, #eee, rgba(0,0,0,0));
  background-repeat: repeat;
  background-size: 300px 300px;
  animation: twinkle 7s ease-in-out infinite;
  opacity: 0.2;
}

.stars3 {
  background-image: 
    radial-gradient(1px 1px at 75px 125px, #ddd, rgba(0,0,0,0)),
    radial-gradient(2px 2px at 180px 25px, #fff, rgba(0,0,0,0));
  background-repeat: repeat;
  background-size: 250px 250px;
  animation: twinkle 9s ease-in-out infinite;
  opacity: 0.25;
}

@keyframes twinkle {
  0%, 100% { opacity: 0.3; }
  50% { opacity: 0.6; }
}

/* ========== Responsive Adjustments ========== */
@media (max-width: 768px) {
  .title {
    font-size: 30px;
  }
  .intro {
    font-size: 16px;
  }
  .info-card {
    padding: 15px 20px;
    margin-bottom: 20px;
  }
  .info-card .info-text {
    font-size: 14px;
  }
  .course-list {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 16px;
  }
  .course-card {
    padding: 20px 15px;
  }
  .emoji {
    font-size: 36px;
  }
  .course-title {
    font-size: 18px;
  }
  .course-desc {
    font-size: 13px;
  }
}

@media (max-width: 480px) {
  #start-screen {
    padding: 30px 15px;
  }
  .title {
    font-size: 26px;
  }
  .intro {
    font-size: 14px;
  }
  .course-list {
    grid-template-columns: 1fr; /* Single column on very small screens */
  }
}



.homework-section h2, .project-section h2, .course-section h2 {
  color: #fde047; /* Golden Yellow */
  font-size: 24px;
  margin-bottom: 12px;
  text-shadow: 0 0 10px rgba(253, 224, 71, 0.3);
}


/* ========== Shared Styles for Course, Homework, and Project Cards ========== */
.course-card, .homework-card, .project-card {
  background: linear-gradient(135deg, var(--theme-indigo-purple) 0%, var(--theme-dark-purple) 100%);
  color: var(--theme-text-light);
  padding: 28px 20px; /* Consistent padding */
  border-radius: 18px;
  cursor: pointer;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  border: 1px solid rgba(var(--theme-text-light-purple), 0.2);
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    background 0.25s ease,
    border-color 0.25s ease,
    color 0.25s ease;
}

.course-card:hover, .homework-card:hover, .project-card:hover {
  transform: translateY(-5px) scale(1.02);
  box-shadow: 0 8px 20px rgba(var(--theme-gold-yellow), 0.5);
  background: linear-gradient(135deg, var(--theme-gold-orange) 0%, var(--theme-dark-gold-orange) 100%);
  border-color: rgba(var(--theme-gold-yellow), 0.6);
  color: var(--theme-text-dark);
}

.course-title, .homework-title, .project-title {
  color: var(--theme-text-light);
  font-size: 18px; /* Consistent font size */
  margin-bottom: 8px;
}

.course-card:hover .course-title, .homework-card:hover .homework-title, .project-card:hover .project-title {
  color: var(--theme-text-dark);
}

.course-desc, .homework-desc, .project-desc {
  color: var(--theme-text-medium-purple);
  font-size: 14px; /* Consistent description font size */
}

.course-card:hover .course-desc, .homework-card:hover .homework-desc, .project-card:hover .project-desc {
  color: rgba(var(--theme-text-dark), 0.7);
}

/* ========== Shared Grid Layout for Lists ========== */
.homework-list, .project-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); /* Consistent grid layout */
  gap: 24px;
  width: 100%;
  max-width: 900px; /* Max width for the grid */
}

.course-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
  width: 100%;
  max-width: 900px;
}

@media (max-width: 900px) {
  .course-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 480px) {
  .course-list {
    grid-template-columns: 1fr;
  }
}

/* "NEW" badge for recently-added courses & projects */
.new-badge {
  display: inline-block;
  background: linear-gradient(135deg, #ffc94a, #f5a623);
  color: #1a0e3d;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 1.2px;
  padding: 2px 8px;
  border-radius: 999px;
  margin-left: 6px;
  box-shadow: 0 0 12px rgba(255, 201, 74, 0.55);
  vertical-align: middle;
  animation: new-pulse 2.2s ease-in-out infinite;
  text-shadow: none;
}
@keyframes new-pulse {
  0%, 100% { box-shadow: 0 0 10px rgba(255, 201, 74, 0.5); transform: scale(1); }
  50%      { box-shadow: 0 0 22px rgba(255, 201, 74, 0.95); transform: scale(1.06); }
}
/* Highlight ring for cards marked "featured" / new */
.course-card.is-new, .project-card.is-new {
  border: 2px solid rgba(255, 201, 74, 0.7);
  box-shadow: 0 0 14px rgba(255, 201, 74, 0.35);
}

/* "SOON" badge for upcoming/locked content */
.soon-badge {
  display: inline-block;
  background: linear-gradient(135deg, #6a5acd, #4ee3ff);
  color: #fff;
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 1.2px;
  padding: 2px 8px;
  border-radius: 999px;
  margin-left: 6px;
  vertical-align: middle;
  text-shadow: none;
  box-shadow: 0 0 8px rgba(78, 227, 255, 0.4);
}
.course-card.locked .soon-badge {
  opacity: 0.85;
}

/* Small descriptive subtitle below a track section header */
.track-sub {
  margin: -8px 0 14px;
  text-align: center;
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.85rem;
  font-style: italic;
  letter-spacing: 0.3px;
}
