.pub-year-heading {
  margin-top: 2.2rem;
  margin-bottom: 0.8rem;
  font-weight: 700;
}

.pub-item {
    margin-bottom: 1.1rem;
}

.pub-titleline {
    margin-top: 0.15rem;
}
.pub-venue {
    margin-top: 0.15rem;
}
.pub-links a {
    margin-right: 0.75rem;
}
.bibliography li {
    margin-bottom: 1.2rem
}

/* Works whether the class is on a wrapper (.bibliography) or on the <ol> itself (ol.bibliography) */
.bibliography ol,
ol.bibliography {
  list-style: none !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
  counter-reset: pubnum !important;
}

/* Base item layout */
.bibliography ol > li,
ol.bibliography > li {
  position: relative !important;
  margin: 0 0 1rem 0 !important;
  padding-left: 2.2rem !important;   /* space for number */
  line-height: 1.55 !important;
}

/* Increment only real publication items */
.bibliography ol > li:not(.pub-year-header),
ol.bibliography > li:not(.pub-year-header) {
  counter-increment: pubnum !important;
}

/* Draw the number ourselves */
.bibliography ol > li:not(.pub-year-header)::before,
ol.bibliography > li:not(.pub-year-header)::before {
  content: counter(pubnum) "." !important;
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  width: 1.8rem !important;
  text-align: right !important;
  opacity: 0.85 !important;
}

/* Year header: no number + header styling restored */
.bibliography ol > li.pub-year-header,
ol.bibliography > li.pub-year-header {
  padding-left: 0 !important;
  margin: 1.8rem 0 0.6rem 0 !important;
  font-weight: 700 !important;
  font-size: 1.25rem !important;
  border-bottom: 1px solid rgba(0,0,0,0.15) !important;
  padding-bottom: 0.25rem !important;
}

/* Ensure the year header never shows a number */
.bibliography ol > li.pub-year-header::before,
ol.bibliography > li.pub-year-header::before {
  content: "" !important;
}


.projects{
  margin-top: 1.25rem;
}
.projects-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(620px, 1fr));
  margin-top:20px;
  gap:12px;
  align-items:stretch;
}

.project-card{
  border:1px solid rgba(0,0,0,0.035);
  border-radius:18px;
  padding:18px;
  background:#fff;
  height:100%;
  display:flex;
  flex-direction:column;
  box-shadow:0 1px 0 rgba(0,0,0,.04);
}

.project-card__header{
  display:flex;
  gap:14px;
  align-items:flex-start;
  margin-bottom:10px;
}

.project-card__logo{
  width:55px;
  height:55px;
  border-radius:14px;
  background:rgba(0,0,0,.04);
  display:grid;
  place-items:center;
  overflow:hidden;
  flex:0 0 55px;
}

.project-card__logo img{
  width:100%;
  height:100%;
  object-fit:contain;
  padding:10px;
  display:block;
}

.project-card__title{
  margin:0 0 6px;
  font-size:1.05rem;
  line-height:1.25;
}

.project-card__meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.badge{
  font-size:.75rem;
  padding:4px 10px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.12);
  background:rgba(0,0,0,.04);
}

.project-card__desc{
  margin:0 0 12px;
  color:rgba(0,0,0,.72);
  line-height:1.5;

  display:-webkit-box;
  -webkit-line-clamp:8;     /* adjust: 4–8 usually */
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.project-card__tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:auto;          /* pushes tags/actions to the bottom */
  padding-top:6px;
}

.tag{
  font-size:.75rem;
  padding:4px 10px;
  border-radius:999px;
  background:rgba(0,0,0,.06);
}

.project-card__actions{
  margin-top:12px;
}

.project-link{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  text-decoration:none;
  padding:8px 10px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,.12);
  background:rgba(0,0,0,.02);
}

.project-link:hover{
  background:rgba(0,0,0,.06);
}

.project-card__title-row{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
}

.project-card__title{
  margin:0;
  font-weight:600;
  line-height:1.25;
}

.project-card__url{
  flex:0 0 auto;
  font-size:.75rem;
  text-decoration:none;
  color: inherit;
  opacity:.7;
  white-space:nowrap;
}

.project-card__url:hover{
  opacity:1;
  text-decoration:underline;
  text-underline-offset:3px;
}


h1,h2,h3,h4,h5,h6 {
  font-family: var(--header-font);
  font-weight: 520;
  line-height: 0.65;
}
h1 {
    font-size: 1.65rem;
    /* text-align: center; */
}
h2 {
    font-size: 1.175rem;
    /* text-align: center; */
}
h3 {
  font-size: 1.1rem;
}
h4 {
  font-size: 1.125rem;
}
h1, h2, h3, h4 {
  margin-top: 1.15rem;
}

ul {
    margin-top: 0px;
}

.intro-header .page-heading h1 {
  margin-top: 20px;
  font-size: 2.525rem;
}
.intro-header .post-heading h1 {
  margin-top: 0;
  font-size: 2.1875rem;
}

body {
  font-family: var(--body-font);
  font-size: 0.875rem;
  color: var(--text-col);
  position: relative;
  background-color: var(--page-col);
  {% if site.page-img %}
  background-image: url({{ site.page-img | relative_url }});
  background-attachment: fixed;
  {% endif %}
  overflow-wrap: break-word;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  line-height: 1.55;
}

.navbar-custom .navbar-brand,
.navbar-custom .navbar-nav .nav-link {
  font-weight: 600;
  color: var(--navbar-text-col);
  font-size: 0.9rem;
}

img#profileimage {
    margin: auto;
    display: block;
}


