/* ===========================================================
   Learn@Deploy — CoRL 2026 Workshop
   Custom styles layered on top of Bulma
   =========================================================== */

:root {
  --ld-primary: #1b2a6b;      /* deep indigo */
  --ld-accent:  #15b8a6;      /* teal */
  --ld-accent-dark: #0e8c7e;
  --ld-ink:     #1f2733;
  --ld-muted:   #5a6472;
  --ld-bg-soft: #f6f8fb;
}

html { scroll-behavior: smooth; scroll-padding-top: 4rem; }

body {
  color: var(--ld-ink);
  font-family: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

/* ---------- Navbar ---------- */
.navbar.is-fixed-top { box-shadow: 0 1px 0 rgba(0,0,0,.06); }
.navbar-brand .brand-tag {
  font-weight: 800;
  color: var(--ld-primary);
  letter-spacing: -.02em;
}
.navbar-item.is-active,
.navbar-item:hover { color: var(--ld-accent-dark) !important; }

/* ---------- Hero ---------- */
.ld-hero {
  background:
    /* dark overlay so white text stays readable over the photo */
    linear-gradient(160deg, rgba(15,26,68,.82) 0%, rgba(27,42,107,.74) 55%, rgba(36,58,143,.70) 100%),
    /* banner photo (drop a file at static/images/banner.jpg) */
    url('../images/banner.jpg') center 30% / cover no-repeat,
    /* fallback gradient if no banner image is present */
    linear-gradient(160deg, #0f1a44 0%, #1b2a6b 55%, #243a8f 100%);
  color: #fff;
  padding: 7rem 1.5rem 6rem;
}
.ld-hero .title,
.ld-hero .subtitle { color: #fff; }
.ld-hero .title {
  font-weight: 800;
  letter-spacing: -.03em;
  line-height: 1.05;
}
.ld-hero .ld-shorttitle {
  display: inline-block;
  font-family: "SFMono-Regular", Menlo, Consolas, monospace;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.25);
  padding: .15em .55em;
  border-radius: 6px;
  font-size: .55em;
  vertical-align: middle;
  margin-left: .5rem;
}
.ld-hero .ld-venue {
  font-weight: 600;
  color: #d7e1ff;
}
.ld-hero .ld-venue .tag {
  background: rgba(255,255,255,.14);
  color: #fff;
  border: 1px solid rgba(255,255,255,.25);
}

/* ---------- Sections ---------- */
.section-anchor { scroll-margin-top: 4rem; }
.ld-section-title {
  font-weight: 800;
  letter-spacing: -.02em;
  color: var(--ld-primary);
  margin-bottom: 1.5rem !important;
  position: relative;
  display: inline-block;
}
.ld-section-title::after {
  content: "";
  position: absolute;
  left: 0; bottom: -.4rem;
  width: 2.4rem; height: 4px;
  background: var(--ld-accent);
  border-radius: 4px;
}
.ld-soft { background: var(--ld-bg-soft); }
.content p { line-height: 1.7; }

/* ---------- Challenges ---------- */
.challenge-card {
  background: #fff;
  border: 1px solid #e7ecf3;
  border-radius: 14px;
  padding: 1.25rem 1.35rem;
  height: 100%;
  transition: transform .15s ease, box-shadow .15s ease;
}
.challenge-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(27,42,107,.10);
}
.challenge-card .num {
  font-family: "SFMono-Regular", Menlo, monospace;
  font-weight: 700;
  color: var(--ld-accent-dark);
  font-size: .85rem;
}
.challenge-card h4 {
  font-weight: 700;
  color: var(--ld-primary);
  margin: .25rem 0 .5rem;
}
.challenge-card p { color: var(--ld-muted); font-size: .95rem; line-height: 1.55; }

/* ---------- People grids ---------- */
.person {
  text-align: center;
  margin-bottom: 1.5rem;
}
.person img {
  width: 140px; height: 140px;
  object-fit: cover;
  border-radius: 50%;
  border: 3px solid #fff;
  box-shadow: 0 6px 18px rgba(27,42,107,.18);
  background: #e7ecf3;
}
.person .name { font-weight: 700; margin-top: .65rem; color: var(--ld-ink); }
.person .role { color: var(--ld-ink); font-size: .85rem; font-weight: 600; }
.person .affil { color: var(--ld-muted); font-size: .9rem; }
.person .links a { color: var(--ld-primary); margin: 0 .3rem; }
.person .links a:hover { color: var(--ld-accent-dark); }

/* ---------- Dates / CFP ---------- */
.date-table td { vertical-align: middle; }
.date-table .when {
  font-weight: 700;
  color: var(--ld-primary);
  white-space: nowrap;
}
.cfp-topics li { margin-bottom: .35rem; }

/* ---------- Schedule ---------- */
.schedule-tba {
  border: 2px dashed #c7d0de;
  border-radius: 14px;
  padding: 3rem 1.5rem;
  text-align: center;
  color: var(--ld-muted);
  background: #fff;
}
.schedule-table { background: transparent; }
.schedule-table td { vertical-align: middle; padding: .85rem 1rem; }
.schedule-table .when { width: 9.5rem; }
.schedule-table tr.is-break td { background: var(--ld-bg-soft); font-style: italic; color: var(--ld-muted); }
.schedule-table tr.is-break td.when { color: var(--ld-muted); }
.schedule-table tr.is-end td { font-weight: 700; color: var(--ld-primary); border-top: 2px solid #e7ecf3; }

/* ---------- Footer ---------- */
.footer.ld-footer {
  background: #0f1a44;
  color: #cdd6ee;
}
.footer.ld-footer a { color: #9fd9d1; }

/* ---------- Buttons ---------- */
.button.is-ld {
  background: var(--ld-accent);
  border-color: transparent;
  color: #04201c;
  font-weight: 600;
}
.button.is-ld:hover { background: var(--ld-accent-dark); color: #fff; }
.button.is-ld-outline {
  background: transparent;
  border: 1.5px solid rgba(255,255,255,.6);
  color: #fff;
  font-weight: 600;
}
.button.is-ld-outline:hover { background: rgba(255,255,255,.12); color: #fff; }
