:root {
  --navy: #1b2a4a;
  --gold: #b8963e;
  --cream: #f3edd8;
  --ink: #2a2418;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: Georgia, "Iowan Old Style", serif;
  background: var(--cream);
  color: var(--ink);
  line-height: 1.8;
}
h1, h2, h3 { font-family: Palatino, Georgia, serif; }
a { color: var(--navy); }
.ribbon { height: 5px; background: var(--gold); }
.badge {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 5vw;
  background: #faf6ea;
}
.badge img { width: 56px; height: 56px; }
.badge h1 { margin: 0; font-size: 16px; }
.badge h1 a { color: inherit; text-decoration: none; }
.badge p { margin: 3px 0 0; color: var(--gold); font-size: 12px; letter-spacing: .1em; }
.aisle {
  display: flex;
  flex-wrap: wrap;
  background: var(--navy);
}
.aisle a {
  color: var(--cream);
  text-decoration: none;
  padding: 11px 13px;
  font-size: 14px;
}
.aisle a:hover, .aisle a.on { background: var(--gold); color: var(--navy); }
.podium { width: min(880px, 92vw); margin: 28px auto 70px; }
.keynote h2 { font-size: clamp(26px, 4.2vw, 38px); margin: 0 0 14px; line-height: 1.28; }
.keynote img { width: 100%; margin: 12px 0 18px; }
.keynote p, .session p { margin: 0 0 1.05em; }
.lede { font-size: 1.07em; }
.session ul { margin: 0 0 1.1em; padding-left: 1.25em; }
.session h3 { font-size: 1.15em; margin: 1.3em 0 0.4em; color: var(--navy); }
.lanyard {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 20px;
}
.lanyard a {
  background: #faf6ea;
  border-top: 3px solid var(--gold);
  padding: 16px 18px;
  text-decoration: none;
  color: inherit;
}
.session {
  background: #faf6ea;
  border: 1px solid #ddd4bc;
  padding: 26px 28px;
}
.session h2 { margin-top: 0; color: var(--navy); }
.gala {
  background: #faf6ea;
  border-top: 3px solid var(--navy);
  padding: 22px 5vw 40px;
  font-size: 13px;
}
.gala a { margin-right: 12px; }
@media (max-width: 720px) {
  .lanyard { grid-template-columns: 1fr; }
}
