:root {
  --bg: #f2f3f5;
  --panel: #ffffff;
  --text: #1f2328;
  --text-soft: #5c6470;
  --accent: #2759d8;
  --accent-hover: #1a47b4;
  --border: #d4d8de;
  --radius-s: 5px;
  --radius-m: 10px;
  --shadow: 0 4px 12px rgba(0,0,0,0.06);
  --max: 960px;
  --font: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}

* { box-sizing: border-box; }
html,body { margin:0; padding:0; font-family: var(--font); background: linear-gradient(#f2f3f5,#e5e6e8); color: var(--text); line-height:1.55; -webkit-font-smoothing: antialiased; }

a { color: var(--accent); text-decoration:none; }
a:hover, a:focus-visible { color: var(--accent-hover); text-decoration:underline; text-underline-offset:3px; }

.site-header {
  max-width: var(--max);
  margin: 0 auto;
  padding: 2rem 1.5rem 1.2rem;
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:2rem;
}

.brand { flex:1 1 auto; }
.site-title { margin:0 0 .35rem; font-size:clamp(1.9rem,3vw,2.4rem); letter-spacing:.5px; font-weight:600; }
.tagline { margin:0; font-size:.9rem; color: var(--text-soft); }

.main-nav ul { list-style:none; margin:0; padding:0; display:flex; gap:.75rem; flex-wrap:wrap; }
.main-nav a {
  display:block; padding:.55rem .95rem; font-size:.85rem; font-weight:500;
  background:rgba(255,255,255,.5); border:1px solid transparent; border-radius:var(--radius-s);
  backdrop-filter: blur(4px); transition:.15s;
  color: var(--text-soft);
}
.main-nav a:hover, .main-nav a:focus-visible { background:#fff; border-color: var(--border); color: var(--text); text-decoration:none; }
.main-nav a.active { background:#fff; border-color: var(--accent); color: var(--accent); font-weight:600; }

.content { max-width: var(--max); margin:0 auto 3rem; padding:0 1.5rem; }
.content.narrow { max-width: 820px; }

.profile {
  display:grid; gap:2.2rem;
  grid-template-columns: minmax(0,240px) 1fr;
  align-items:start;
}
@media (max-width:800px){ .profile { grid-template-columns:1fr; } }

.avatar-wrapper {
  width:240px; max-width:100%; aspect-ratio:1/1;
  border-radius:50%; overflow:hidden;
  background:#d9dce0; border:1px solid #c9ccd0; box-shadow: var(--shadow);
  position:relative;
}
.avatar { width:100%; height:100%; object-fit:cover; display:block; }
.lead { font-weight:500; font-size:1.05rem; }

.intro-text p { margin:0 0 1rem; max-width:62ch; }

.links-row { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1rem; }

.button, .icon-link {
  display:inline-flex; align-items:center; gap:.45rem;
  padding:.6rem 1rem; font-size:.8rem; font-weight:600;
  border:1px solid var(--accent); border-radius:var(--radius-s);
  background: var(--accent); color:#fff; text-decoration:none;
  box-shadow:0 2px 4px rgba(0,0,0,.07); transition:.15s;
}
.button:hover, .icon-link:hover { background: var(--accent-hover); color:#fff; text-decoration:none; }
.button.ghost { background:#fff; color: var(--text); border-color: var(--border); }
.button.ghost:hover { background:#f6f7f8; }

.icon-link { background:#fff; color: var(--text-soft); border-color: var(--border); font-weight:500; }
.icon-link:hover { color: var(--text); border-color: var(--accent); }

.pub-list { display:grid; gap:1.3rem; margin-top:1.5rem; }
.pub { background: var(--panel); padding:1rem 1.1rem; border:1px solid var(--border); border-radius:var(--radius-m); box-shadow: var(--shadow); }
.pub-title { margin:.1rem 0 .4rem; font-size:1rem; }
.pub-meta, .pub-venue { margin:0 0 .4rem; font-size:.8rem; color: var(--text-soft); }
.pub-links a { margin-right:.7rem; font-size:.7rem; text-transform:uppercase; letter-spacing:.5px; }

.list-grid { display:grid; gap:1.2rem; grid-template-columns: repeat(auto-fit,minmax(240px,1fr)); margin-top:1.2rem; }
.card { background: var(--panel); padding:1rem 1.1rem 1.05rem; border:1px solid var(--border); border-radius:var(--radius-m); box-shadow: var(--shadow); }
.card h3 { margin:.2rem 0 .6rem; font-size:1rem; }
.card ul { margin:0; padding-left:1.1rem; }
.card li { margin:.25rem 0; font-size:.85rem; }

.section-intro { margin:.2rem 0 1rem; color: var(--text-soft); }

.site-footer {
  border-top:1px solid #d8dce1;
  text-align:center;
  padding:1.6rem 1rem 2rem;
  font-size:.7rem;
  color: var(--text-soft);
  background:rgba(255,255,255,.6);
  backdrop-filter: blur(4px);
  margin-top:2rem;
}

::selection { background: var(--accent); color:#fff; }
@media (prefers-reduced-motion:reduce){ *{transition:none !important; animation:none !important;} }

.list-grid.horizontal {
  display: flex !important;
  flex-direction: row !important;
  gap: 1.2rem;
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
}
.list-grid.horizontal .card {
  flex: 1 1 0;
  min-width: 260px;
  max-width: 420px;
}
@media (max-width: 1100px) {
  .list-grid.horizontal {
    flex-direction: column !important;
  }
}