/*
 * Give the mdBook reading column a little more room for figures, tables,
 * and displayed equations without changing the mobile layout.
 */
.content main {
  max-width: 860px;
}

figure {
  margin: 1.25rem auto;
  text-align: center;
}

figure img {
  max-width: 100%;
  height: auto;
}

.book-frontpage {
  min-height: 72vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.35rem;
  padding: 1.5rem 0 2rem;
}

.book-frontpage h1 {
  margin: 0;
  font-size: clamp(2.2rem, 6vw, 4.2rem);
  line-height: 1.05;
  letter-spacing: 0;
  color: var(--fg);
}

.book-frontpage-meta {
  margin: 0.1rem 0;
  color: var(--fg);
  opacity: 0.78;
  font-size: 1.5rem;
}

.book-frontpage .book-wordcloud {
  margin-top: 1.8rem;
}

.book-frontpage .book-wordcloud img {
  display: block;
  width: 100%;
  background: white;
}

.content main figure.figure-compact {
  max-width: 72%;
}

.content main figure.figure-compact img {
  width: 100%;
  max-width: 100%;
}

.content main figure.figure-slightly-compact {
  max-width: 88%;
}

.content main figure.figure-slightly-compact img {
  width: 100%;
  max-width: 100%;
}

.content main figure.figure-large {
  max-width: 83%;
}

.content main figure.figure-large img {
  width: 100%;
  max-width: 100%;
}

.content main figure.figure-extra-large {
  max-width: 90%;
}

.content main figure.figure-extra-large img {
  width: 100%;
  max-width: 100%;
}

.content main figure.figure-full {
  max-width: 100%;
}

.content main figure.figure-full img {
  width: 100%;
  max-width: 100%;
}

.content main .logic-gate-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  align-items: center;
}

.content main .logic-gate-grid img {
  display: block;
  width: 100%;
  min-width: 0;
  margin: 0;
}

.content main img.classification-table-image {
  display: block;
  width: 1400px;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}

.content main table:has(img.classification-table-image),
.content main table:has(img.classification-table-image) thead,
.content main table:has(img.classification-table-image) tbody,
.content main table:has(img.classification-table-image) tr,
.content main table:has(img.classification-table-image) th,
.content main table:has(img.classification-table-image) td {
  background: white;
}

.content main figure.figure-definition-wide {
  max-width: 67%;
}

.content main figure.figure-definition-wide img {
  width: 100%;
  max-width: 100%;
}

.content main figure.figure-medium {
  max-width: 52%;
}

.content main figure.figure-medium img {
  width: 100%;
  max-width: 100%;
}

.content main figure.figure-small {
  max-width: 46%;
}

.content main figure.figure-small img {
  width: 100%;
  max-width: 100%;
}

@media (max-width: 700px) {
  .content main figure.figure-compact,
  .content main figure.figure-slightly-compact,
  .content main figure.figure-large,
  .content main figure.figure-extra-large,
  .content main figure.figure-full,
  .content main figure.figure-definition-wide,
  .content main figure.figure-medium,
  .content main figure.figure-small {
    max-width: 100%;
  }

  .content main .logic-gate-grid {
    grid-template-columns: 1fr;
    gap: 0.5rem;
    max-width: 72%;
    margin: 0 auto;
  }
}

figcaption,
caption,
.table-caption {
  font-size: 0.9em;
  font-style: italic;
  line-height: 1.4;
  text-align: center;
  color: var(--fg);
  opacity: 0.85;
}

figcaption {
  max-width: 72ch;
  margin: 0.35rem auto 0;
}

.table-caption {
  max-width: 72ch;
  margin: 1.25rem auto 0.35rem;
}

figcaption em,
caption em,
.table-caption em {
  font-style: inherit;
}
