
:root{
  --ink:#111827;
  --muted:#6b7280;
  --line:#e5e7eb;
  --card:#ffffff;
  --bg:#ffffff;
  --shadow: 0 10px 30px rgba(0,0,0,.08);
}
html, body{background:var(--bg); color:var(--ink);}
a{color:#2563eb;}
a:hover{color:#1d4ed8;}
.hero.is-white{background: linear-gradient(180deg, #ffffff 0%, #fafafa 100%);}
.publication-title{letter-spacing:-.02em;}
.publication-authors{color:var(--muted);}
.publication-links .button{border-radius:999px; box-shadow:none;}
.section{padding:3rem 1.5rem;}
.cardish{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:var(--shadow);
  overflow:hidden;
}
.cardish .cardish-body{padding:1.25rem 1.25rem 1.5rem 1.25rem;}
.figure-caption{color:var(--muted); font-size:.95rem; margin-top:.6rem;}
.kicker{color:var(--muted); text-transform:uppercase; letter-spacing:.12em; font-size:.78rem;}
hr.soft{border:none; border-top:1px solid var(--line); margin:1.75rem 0;}
.badge{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.35rem .75rem; border-radius:999px;
  border:1px solid var(--line); color:var(--muted);
  font-size:.85rem;
}
.codebox{
  border:1px solid var(--line);
  border-radius:14px;
  padding:1rem;
  overflow:auto;
  background:#0b1020;
  color:#e5e7eb;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size:.9rem;
}
.footer{
  padding:2rem 1.5rem;
  border-top:1px solid var(--line);
  background:#fafafa;
}
