:where(.table) {
  caption-side: bottom;
  font-size: var(--text-sm);
  inline-size: var(--size-full);

  caption {
    color: var(--color-text-subtle);
    margin-block-start: var(--size-4);
  }

  thead {
    color: var(--color-text-subtle);
  }

  tbody tr {
    border-block-start-width: var(--border);
  }

  tr:hover {
    background-color: rgb(from var(--color-border-light) r g b / .5);
  }

  /* Clickable row styles */
  tr.clickable {
    cursor: pointer;
    transition: all 0.2s ease;
  }

  tr.clickable:hover {
    background-color: rgb(from var(--color-primary) r g b / 0.05);
    /* Remove transform and box-shadow from row */
    z-index: 1;
    position: relative;
  }

  /* Lift the contents of each cell on hover */
  tr.clickable:hover td > * {
    transform: translateY(-1.5px);
    box-shadow: 0 2px 8px rgb(from var(--color-border) r g b / 0.10);
    transition: transform 0.2s cubic-bezier(.4,2,.6,1), box-shadow 0.2s cubic-bezier(.4,2,.6,1);
    background: inherit;
    /* border-radius: 0.25em; */
  }

  /* Subtle indicator for clickable rows (arrow) */
  .project-row-arrow {
    color: var(--color-text-subtle);
    opacity: 0;
    transition: opacity 0.2s ease;
    margin-inline-end: var(--size-2);
    font-size: 1.2em;
    vertical-align: middle;
    display: inline-block;
  }
  tr.clickable:hover .project-row-arrow {
    opacity: 1;
  }

  th {
    font-weight: var(--font-medium);
    text-align: start;
  }

  th, td {
    padding: var(--size-2);
  }

  tfoot {
    background-color: rgb(from var(--color-border-light) r g b / .5);
    border-block-start-width: var(--border);
    font-weight: var(--font-medium);
  }
}
