@import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,400;8..60,500;8..60,600;8..60,700&family=Inter:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root{
  --paper:#EEF1EF;
  --paper-raised:#F8FAF8;
  --ink:#1F3A5F;
  --ink-soft:#3C5773;
  --teal:#3E7C6B;
  --amber:#C98A3E;
  --plum:#8E6FA1;
  --grey:#8B93A0;
  --line:#D6DCD8;
  --text:#25302E;
  --text-dim:#5B6560;
  --row-hover:rgba(31,58,95,0.06);
}

*{box-sizing:border-box;}

body{
  margin:0;
  background:var(--paper);
  color:var(--text);
  font-family:'Source Serif 4', Georgia, serif;
  line-height:1.6;
}

.wrap{
  max-width:960px;
  margin:0 auto;
  padding:0 28px 80px;
}

/* ---------- Hero ---------- */
header.hero{
    padding:72px 0 40px;
    text-align: center; /* helps if svg is inline/inline-block */
    border-bottom:1px solid var(--line);
}
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--teal);
  margin-bottom:18px;
}
h1{
  font-family:'Inter', sans-serif;
  font-weight:600;
  font-size:clamp(34px, 5vw, 52px);
  line-height:1.08;
  letter-spacing:-0.01em;
  margin:0 0 18px;
  color:var(--ink);
}
.dek{
  font-size:18px;
  max-width:620px;
  color:var(--text-dim);
  margin:0 0 40px;
}

/* timeline dot-plot signature */
.signature{
    display: block;
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    overflow:visible;
}
.sig-caption{
  font-family:'IBM Plex Mono', monospace;
  font-size:11.5px;
  color:var(--text-dim);
  display:flex;
  gap:20px;
  margin-top:14px;
  flex-wrap:wrap;
}
.sig-caption span{display:inline-flex; align-items:center; gap:6px;}
.swatch{width:9px; height:9px; border-radius:50%; display:inline-block;}
.sig-note{
  font-family:'IBM Plex Mono', monospace;
  font-size:11px;
  color:var(--grey);
  margin-top:8px;
  font-style:italic;
}

/* ---------- Body sections ---------- */
section{padding:52px 0;border-bottom:1px solid var(--line);}
section:last-of-type{border-bottom:none;}

h2{
  font-family:'Inter', sans-serif;
  font-weight:600;
  font-size:26px;
  color:var(--ink);
  margin:0 0 6px;
}
.section-note{
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  color:var(--grey);
  margin:0 0 26px;
  letter-spacing:.03em;
}
p{margin:0 0 16px; max-width:700px;}
p:last-child{margin-bottom:0;}

/* Organizers */
.org-grid{
  display:grid;
  grid-template-columns:150px 1fr;
  gap:6px 24px;
  margin-top:28px;
  max-width:760px;
}
.org-grid dt{
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  color:var(--teal);
  padding-top:3px;
}
.org-grid dd{
  margin:0 0 20px;
  font-size:16.5px;
}
.org-grid dd b{color:var(--ink); font-weight:600;}

/* Scientific committee */
.committee-grid{
  display:grid;
  grid-template-columns:110px 1fr;
  gap:6px 24px;
  margin-top:28px;
  max-width:760px;
}
.committee-grid dt{
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  color:var(--plum);
  padding-top:3px;
}
.committee-grid dd{
  margin:0 0 20px;
  font-size:15.5px;
  color:var(--text);
}

/* ---------- Table / ledger ---------- */
.ledger{
  width:100%;
  border-collapse:collapse;
  margin-top:10px;
  font-size:15px;
}
.ledger thead th{
  font-family:'IBM Plex Mono', monospace;
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--text-dim);
  text-align:left;
  padding:0 14px 10px 0;
  border-bottom:1px solid var(--ink);
  font-weight:500;
}
.ledger td{
  padding:16px 14px 16px 0;
  border-bottom:1px solid var(--line);
  vertical-align:top;
}
.ledger tr:last-child td{border-bottom:1px solid var(--ink);}

.ledger tbody tr{transition:background-color .15s ease;}
.ledger tbody tr[data-href]{cursor:pointer;}
.ledger tbody tr[data-href]:hover{background-color:var(--row-hover);}
.ledger tbody tr[data-href]:hover .yr,
.ledger tbody tr[data-href]:hover .site a{color:var(--teal);}
.ledger tbody tr:not([data-href]){cursor:default;}

.yr{
  font-family:'IBM Plex Mono', monospace;
  font-weight:500;
  font-size:17px;
  color:var(--ink);
  white-space:nowrap;
  transition:color .15s ease;
}
.yr .n{
  display:block;
  font-size:10.5px;
  color:var(--grey);
  font-weight:400;
  margin-top:2px;
}
.loc{white-space:nowrap;}
.loc .city{font-weight:600; color:var(--text);}
.loc .venue{display:block; font-size:12.5px; color:var(--text-dim); font-family:'Inter',sans-serif;}
.speakers .main{margin:0 0 4px; font-family:'Inter', sans-serif; font-size:14.5px;}
.speakers .main b{color:var(--text);}
.speakers .mini{
  margin:0;
  font-family:'Inter', sans-serif;
  font-size:12.5px;
  color:var(--text-dim);
}
.speakers .unknown{
  font-family:'Inter', sans-serif;
  font-size:13px;
  color:var(--grey);
  font-style:italic;
}
.site a{
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  color:var(--teal);
  text-decoration:none;
  border-bottom:1px solid rgba(62,124,107,.35);
  transition:color .15s ease;
}
.site a:hover{border-bottom-color:var(--teal);}
.site .na{
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  color:var(--grey);
}
.oops-row td{background:var(--paper-raised);}
.oops-row .city{color:var(--grey);}

footer{
  padding:36px 0 0;
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  color:var(--grey);
  line-height:1.7;
}
footer a{color:var(--teal);}

@media (max-width:640px){
  .org-grid, .committee-grid{grid-template-columns:1fr;}
  .org-grid dt, .committee-grid dt{padding-top:12px;}
  .ledger, .ledger thead, .ledger tbody, .ledger tr, .ledger td{display:block;}
  .ledger thead{display:none;}
  .ledger tbody tr{border-bottom:1px solid var(--ink); padding:16px 0;}
  .ledger td{border-bottom:none; padding:4px 0;}
  .ledger tbody tr:last-child{border-bottom:1px solid var(--ink);}
}
