/* ─── TALKS ─────────────────────────────────────────────── */
.talks-timeline { display: flex; flex-direction: column; gap: 3rem; margin-bottom: 4rem; }
.talk-group-label {
  font-family: var(--mono); font-size: 0.75rem;
  color: var(--text3); letter-spacing: 0.12em; text-transform: uppercase;
  margin-bottom: 1.5rem;
  display: flex; align-items: center; gap: 1rem;
}
.talk-group-label::after {
  content: ''; flex: 1; height: 1px; background: var(--border);
}
.talk-card {
  background: var(--bg3); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 1.75rem;
  margin-bottom: 1rem;
  transition: border-color var(--transition), box-shadow var(--transition);
}
.talk-card:hover { border-color: rgba(118,185,0,0.4); box-shadow: var(--glow); }
.talk-card.upcoming { border-left: 3px solid var(--accent); }
.talk-meta {
  display: flex; align-items: center; gap: 0.75rem;
  margin-bottom: 0.75rem;
}
.talk-type {
  font-family: var(--mono); font-size: 0.7rem; font-weight: 500;
  padding: 0.2rem 0.55rem; border-radius: 20px;
  letter-spacing: 0.06em; text-transform: uppercase;
}
.talk-type.workshop { background: rgba(118,185,0,0.1); color: var(--accent); border: 1px solid rgba(118,185,0,0.2); }
.talk-type.session { background: rgba(59,130,246,0.1); color: #60a5fa; border: 1px solid rgba(59,130,246,0.2); }
.talk-type.demo   { background: rgba(239,68,68,0.1);  color: #f87171; border: 1px solid rgba(239,68,68,0.2); }
.talk-type.judge  { background: rgba(234,179,8,0.1);  color: #fbbf24; border: 1px solid rgba(234,179,8,0.2); }
.talk-id { font-family: var(--mono); font-size: 0.72rem; color: var(--text3); margin-left: 0.4rem; }
.talk-type.talk { background: rgba(168,85,247,0.1); color: #c084fc; border: 1px solid rgba(168,85,247,0.2); }

/* ─── LIGHT MODE badge colour overrides ─────────────────── */
[data-theme="light"] .talk-type.session { color: #1d4ed8; background: rgba(29,78,216,0.08);  border-color: rgba(29,78,216,0.25); }
[data-theme="light"] .talk-type.demo    { color: #b91c1c; background: rgba(185,28,28,0.08);  border-color: rgba(185,28,28,0.25); }
[data-theme="light"] .talk-type.judge   { color: #92400e; background: rgba(146,64,14,0.08);  border-color: rgba(146,64,14,0.25); }
[data-theme="light"] .talk-type.talk    { color: #7c3aed; background: rgba(124,58,237,0.08); border-color: rgba(124,58,237,0.25); }
.talk-date {
  font-size: 0.8rem; color: var(--text3); font-family: var(--mono);
}
.talk-card h4 {
  font-size: 1.05rem; font-weight: 600;
  margin-bottom: 0.3rem; line-height: 1.4;
}
.talk-venue {
  font-size: 0.85rem; color: var(--accent); font-weight: 500;
  margin-bottom: 0.75rem;
}
.talk-desc {
  font-size: 0.9rem; color: var(--text2);
  margin-bottom: 1rem; line-height: 1.6;
}

/* ─── DLI INSTRUCTOR ───────────────────────────────────── */
.dli-section {
  background: linear-gradient(135deg, rgba(118,185,0,0.06), rgba(118,185,0,0.02));
  border: 1px solid rgba(118,185,0,0.2);
  border-radius: var(--radius);
  padding: 2.5rem;
}
.dli-badge {
  display: flex; align-items: center; gap: 0.75rem;
  font-size: 0.8rem; font-weight: 600; letter-spacing: 0.05em;
  color: var(--accent); text-transform: uppercase;
  margin-bottom: 1rem;
}
.dli-section h3 {
  font-size: 1.3rem; font-weight: 700; margin-bottom: 0.75rem;
}
.dli-section p { color: var(--text2); margin-bottom: 1rem; }
.dli-section ul {
  list-style: none; display: flex; flex-direction: column; gap: 0.6rem;
}
.dli-section ul li {
  display: flex; align-items: center; gap: 0.75rem;
  font-size: 0.95rem; color: var(--text2);
}
.dli-section ul li::before {
  content: '▸'; color: var(--accent); font-size: 0.8rem;
}
