/* --------- Reset --------- */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html, body {
  height: 100%;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
}

/* --------- Background --------- */
body {
  min-height: 100vh;
  background-color: #000;  /* fallback while image loads */
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
  background-attachment: fixed;  
  padding: 2rem 0;
}

/* --------- Page Backgrounds --------- */

.home-page {
  background-image: url("/assets/images/background.jpg");
}

.research-page {
  background-image: url("/assets/images/research.png");
}

.teaching-page {
  background-image: url("/assets/images/teaching.png");
}

.open-source-research-page {
  background-image: url("/assets/images/open-source-research.png");
}

.software-page {
  background-image: url("/assets/images/software.png");
}

/* --------- Content Card --------- */

.content-card {
  background-color: rgba(0, 0, 0, 0.9);
  color: #fff;

  flex: 1;
  max-width: 900px;
  min-height: 80vh;

  padding: 2rem;
  border-radius: 8px;

  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

/* --------- Sidebar Card --------- */

.sidebar-card {
  background-color: rgba(0, 0, 0, 0.9);
  color: #fff;

  width: 240px;
  padding: 1.5rem;
  border-radius: 8px;

  display: flex;
  flex-direction: column;
  gap: 1rem;

  position: sticky;
  top: 2rem;

  height: fit-content;
}

.sidebar-card a {
  color: #fff;
}

.sidebar-card a:hover {
  color: #82c4ff;
}

.sidebar-card a.active {
  font-weight: 600;
}

/* --------- Typography Spacing --------- */

.content-card h1,
.content-card h2,
.content-card h3 {
  margin-top: 1.0rem;
  margin-bottom: 0.5rem;
  line-height: 1.2;
}

.content-card p {
  margin-bottom: 0.6rem;
  line-height: 1.5;
}

.content-card ul {
  margin-bottom: 0.6rem;
  padding-left: 1.2rem;
}

.content-card li {
  margin-bottom: 0.25rem;
}

/* --------- Profile Image --------- */

.profile-image {
  display: flex;
  justify-content: center;
}

.profile-image img {
  width: 200px;
  height: 300px;
  object-fit: cover;
}

/* --------- About Section --------- */

.about h1 {
  font-size: 1.6rem;
  margin-bottom: 0.5rem;
}

.about p {
  font-size: 1rem;
  line-height: 1.5;
  opacity: 0.9;
}

/* --------- Tables --------- */

table {
  border-collapse: collapse;
  width: 100%;
  font-size: 0.95rem;
}

th, td {
  border-bottom: 1px solid #333; /* subtle separators */
  padding: 6px 10px;
  text-align: left;
}

th {
  color: #ddd;              /* slightly dimmed white */
  font-weight: 600;
  border-bottom: 1px solid #555; /* stronger divider under header */
}

tr {
  background-color: transparent; /* no striping */
}

/* --------- Links Section --------- */

.primary-links {
  display: flex;
  gap: 1rem;
  justify-content: center;
}

/* --------- Links --------- */

a {
  color: #4da3ff;
  text-decoration: none;
}

a:visited {
  color: #4da3ff;
}

a:hover {
  color: #82c4ff;
  text-decoration: underline;
}

/* --------- Link Cards --------- */

.link-card {
  text-decoration: none;
  color: #fff;

  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;

  width: 120px;
}

.link-card img {
  width: 100%;
  height: 80px;
  object-fit: cover;
  border-radius: 4px;
}

/* --------- Hover States --------- */

.link-card:hover img {
  opacity: 0.85;
}

.link-card:hover span {
  text-decoration: underline;
}

/* --------- Layout --------- */

.layout {
  display: flex;
  align-items: flex-start;
  gap: 2rem;
  padding-left: 2rem;
  padding-right: 2rem;
}


