/* Timeline slides (generated by scripts/timeline.py) */
.reveal section.timeline h2 {
  font-size: 1.15em;
  margin-bottom: .3em;
}
.reveal .tl-frame {
  width: 100%;
  aspect-ratio: 2.5;
  overflow: hidden;
}
.reveal .tl-notes {
  list-style: none;
  margin: .3em 0 0;
  padding: 0;
  font-size: .42em;
  line-height: 1.35;
  text-align: left;
}
.reveal .tl-notes li {
  margin: .25em 0;
  padding-left: 1.4em;
  text-indent: -1.4em;
}
.reveal .tl-ico {
  display: inline-block;
  width: 1.4em;
  text-indent: 0;
}
.reveal .tl-date {
  font-variant-numeric: tabular-nums;
  color: #6b6f6b;
}
.reveal .tl-notes code {
  font-size: .9em;
}

/* Two-column "what we tried / how it was beaten" tables */
.reveal table.versus {
  font-size: .42em;
  width: 100%;
  border-collapse: collapse;
}
.reveal table.versus th {
  text-align: left;
  border-bottom: 2px solid #383D3D;
}
.reveal table.versus td {
  vertical-align: top;
  padding: .35em .5em;
  border-bottom: 1px solid #d6d3c8;
}
.reveal table.versus td:first-child {
  width: 34%;
  font-weight: bold;
}
.reveal table.versus td:last-child {
  color: #8a2a24;
}

/* Smaller headings for dense slides */
.reveal section.compact h2 {
  font-size: 1.15em;
  margin-bottom: .4em;
}
.reveal section.compact ul {
  font-size: .72em;
}
.reveal section.compact li {
  margin: .35em 0;
}

/* Three-column tooling table */
.reveal table.versus.three td:first-child { width: 28%; }
.reveal table.versus.three td:nth-child(2) { width: 30%; color: inherit; font-weight: normal; }
.reveal table.versus.three td:last-child { color: inherit; }

/* Problem / solution tables (Part II) */
.reveal table.versus.solves td:first-child { width: 38%; }
.reveal table.versus.solves td:last-child { color: inherit; }
.reveal table.versus.four td { width: 25%; font-weight: normal; color: inherit; }
.reveal table.versus.four td:first-child { font-weight: bold; }
.reveal table.versus.missing td { width: 50%; font-weight: normal; }
.reveal table.versus.missing td:first-child { color: #8a2a24; }
.reveal table.versus.missing td:last-child { color: #8a5a10; }

/* Two independent lists side by side */
.reveal .two-lists { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5em; text-align: left; font-size: .62em; }
.reveal .two-lists h4 { font-size: 1.1em; margin: 0 0 .5em; border-bottom: 2px solid #383D3D; padding-bottom: .2em; }
.reveal .two-lists ul { margin: 0; padding-left: 1.1em; }
.reveal .two-lists li { margin: .45em 0; }
.reveal .two-lists .upstream li { color: #8a2a24; }
.reveal .two-lists .ours li { color: #8a5a10; }

/* "So what do I have today?" */
.reveal table.data { font-size: .4em; width: 100%; border-collapse: collapse; text-align: left; }
.reveal table.data th { border-bottom: 2px solid #383D3D; text-align: left; }
.reveal table.data td { padding: .3em .5em; border-bottom: 1px solid #d6d3c8; vertical-align: top; }
.reveal table.data td:first-child { font-weight: bold; }
.reveal .tl-foot { font-size: .42em; color: #6b6f6b; text-align: left; margin: .5em 0 0; }
.reveal .split { text-align: left; }
.reveal .split .bar { display: flex; min-height: 2.8em; font-size: .5em; color: #fff; border-radius: 4px; overflow: hidden; }
.reveal .split .seg { display: flex; flex-direction: column; justify-content: center; padding: .45em .6em; line-height: 1.25; }
.reveal .split .seg.uni { background: #6b6f6b; }
.reveal .split .seg.conv { background: #2f62c9; }
.reveal .split .conv-list { font-size: .5em; list-style: none; padding: 0; margin: .6em 0 0; columns: 2; }
.reveal .split .conv-list li { margin: .3em 0; break-inside: avoid; display: grid; grid-template-columns: 5.2em 1fr; column-gap: .4em; }
.reveal .split .conv-list b { color: #2f62c9; font-variant-numeric: tabular-nums; }
.reveal .two-lists .ours-ok li { color: #2f6a3f; }

/* Stacked PR screenshots */
.reveal .pr-stack { display: flex; flex-direction: column; align-items: center; gap: .35em; }
.reveal .pr-stack img { max-height: 5.2em; margin: 0; border-radius: 6px; box-shadow: 0 2px 8px rgba(0,0,0,.25); }

/* Subtitle under a slide title, punchline, big quote slide */
.reveal .slide-sub { font-size: .5em; color: #6b6f6b; margin: 0 0 .5em; }
.reveal .slide-punch { font-size: .6em; font-weight: bold; margin-top: .6em; }
.reveal .big-quote { font-size: 1.3em; line-height: 1.3; font-style: italic; width: 85%; margin: 0 auto; border: none; box-shadow: none; background: none; }
.reveal .big-quote footer { font-size: .45em; font-style: normal; color: #6b6f6b; margin-top: 1em; text-align: right; }

/* links on the closing slide */
.reveal ul.links { list-style: none; margin: 0.6em auto 0; font-size: 0.62em; text-align: left; display: inline-block; }
.reveal ul.links li { margin: 0.35em 0; }

/* looping video clip, scaled up from 500×372 */
.reveal video.loop-clip { width: 750px; max-height: 600px; height: auto; display: block; margin: 0 auto; }
