:root {
  --pico-font-size: 100%;
}

.citation-tooltip {
  font-size: var(--pico-font-size);
  line-height: 1.4;
  max-width: 400px;
  white-space: pre-wrap;
  padding: 10px;
  background-color: var(--pico-dropdown-background-color);
  border: 2px solid var(--pico-dropdown-border-color);
  border-radius: 4px;
  box-shadow: var(--pico-box-shadow);
}

@media (max-width: 600px) {
  .citation-tooltip {
    max-width: 90vw;
  }
}

.MathJax {
  font-size: 1.1em;
}

.pswp-gallery {
  width: 100%;
  display: grid;
  grid-column-gap: 10px;
  grid-row-gap: var(--pico-grid-row-gap);
  grid-template-columns: 1fr;
  /* grid-auto-rows: minmax(100px, 300px); */
}

@media (min-width: 360px) {
  .pswp-gallery {
    grid-template-columns: repeat(2, 1fr);
  }
}


@media (min-width: 768px) {
  .pswp-gallery {
    grid-template-columns: repeat(4, 1fr);
  }
}

a.gallery-item {
  width: fit-content;
  text-decoration: none;
}


#generated-toc ol ol {
  padding-left: 0.5rem;
}

#generated-toc {
  padding: var(--pico-spacing);
  background: var(--pico-card-background-color);
  width: fit-content;
}

#generated-toc>ol .toc-1 {
  list-style-type: decimal;
}

#generated-toc ol.toc-1 ol {
  list-style-type: none;
}

#generated-toc ol {
  margin-bottom: 0;
}

#generated-toc ol>li {
  margin: 0.25rem 0;
  padding-left: 0.5rem;
  position: relative;
}

#generated-toc a {
  text-a
}

#generated-toc a:hover {
  text-decoration: underline;
}

h1 a.anchor-link,
h2 a.anchor-link,
h3 a.anchor-link,
h4 a.anchor-link,
h5 a.anchor-link,
h6 a.anchor-link {
  display: inline-block;
  color: var(--pico-muted-color);
  margin-left: 0.5rem;
  opacity: 0;
}

h1:hover a.anchor-link,
h2:hover a.anchor-link,
h3:hover a.anchor-link,
h4:hover a.anchor-link,
h5:hover a.anchor-link,
h6:hover a.anchor-link {
  opacity: 0.7;
}

h1:hover a.anchor-link:hover,
h2:hover a.anchor-link:hover,
h3:hover a.anchor-link:hover,
h4:hover a.anchor-link:hover,
h5:hover a.anchor-link:hover,
h6:hover a.anchor-link:hover {
  opacity: 1.0;
}

figure {
  --max-height: 50vh;
  --max-width: 100%;

  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: calc(1.2 * var(--pico-typography-spacing-vertical));
}

figure img {
  width: 100%;
  height: auto;
  max-height: var(--max-height);
  max-width: var(--max-width);
  object-fit: contain;
  display: block;
}

figure figcaption {
  max-width: var(--max-width);
}

:is(.callout, .callout-inline) {
  --icon-info: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 -960 960 960' width='24px' fill='%23e3e3e3' %3E%3Cpath d='M440-280h80v-240h-80v240Zm40-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z' /%3E%3C/svg%3E");
  --icon-note: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 -960 960 960' width='24px' fill='%23e3e3e3' %3E%3Cpath d='M200-200h57l391-391-57-57-391 391v57Zm-80 80v-170l528-527q12-11 26.5-17t30.5-6q16 0 31 6t26 18l55 56q12 11 17.5 26t5.5 30q0 16-5.5 30.5T817-647L290-120H120Zm640-584-56-56 56 56Zm-141 85-28-29 57 57-29-28Z' /%3E%3C/svg%3E");
  --icon-question: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 -960 960 960' width='24px' stroke='currentColor' fill='currentColor' %3E%3Cpath d='M424-320q0-81 14.5-116.5T500-514q41-36 62.5-62.5T584-637q0-41-27.5-68T480-732q-51 0-77.5 31T365-638l-103-44q21-64 77-111t141-47q105 0 161.5 58.5T698-641q0 50-21.5 85.5T609-475q-49 47-59.5 71.5T539-320H424Zm56 240q-33 0-56.5-23.5T400-160q0-33 23.5-56.5T480-240q33 0 56.5 23.5T560-160q0 33-23.5 56.5T480-80Z' /%3E%3C/svg%3E");
  --icon-warning: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 -960 960 960' width='24px' fill='%23e3e3e3' %3E%3Cpath d='m40-120 440-760 440 760H40Zm138-80h604L480-720 178-200Zm302-40q17 0 28.5-11.5T520-280q0-17-11.5-28.5T480-320q-17 0-28.5 11.5T440-280q0 17 11.5 28.5T480-240Zm-40-120h80v-200h-80v200Zm40-100Z' /%3E%3C/svg%3E");
}

.callout {
  margin-bottom: var(--pico-spacing);
  border-radius: var(--pico-border-radius);
  border: 1px solid rgba(var(--border-rgb), 0.5);
  border-inline-start: 0.4rem solid var(--border-color);

  --title-background-color: rgba(var(--border-rgb), 0.2);
  --border-color: rgb(var(--border-rgb));
  contain: content;
}

.callout .callout-title::before {
  display: block;
  mask-image: var(--icon);
  mask-size: cover;
  -webkit-mask-image: var(--icon);
  background-color: var(--border-color);
  content: "";
  height: 1.2em;
  width: 1.2em;
}

.callout .callout-title {
  display: flex;
  align-items: center;
  gap: .75em;
  font-weight: bold;

  min-height: 3rem;
  background-color: var(--title-background-color);
  padding-inline: 1em;
}

.callout .callout-body {
  padding: var(--pico-spacing);
}

.callout.question,
.callout-inline.question {
  --icon: var(--icon-question);
  --border-rgb: 0, 204, 153;
}

.callout.danger,
.callout-inline.danger {
  --icon: var(--icon-warning);
  --border-rgb: 183, 28, 28;
}

.callout.warning,
.callout-inline.warning {
  --icon: var(--icon-warning);
  --border-rgb: 153, 67, 0;
}

.callout.note,
.callout-inline.note {
  --icon: var(--icon-info);
  --border-rgb: 26, 178, 255;
}

.callout-inline {
  display: flex;
  align-items: flex-start;
  gap: 0.75em;

  border-radius: var(--pico-border-radius);
  border-inline-start: 0.4rem solid var(--border-color);
  --title-background-color: rgba(var(--border-rgb), 0.2);
  --border-color: rgb(var(--border-rgb));
  background-color: var(--title-background-color);
  padding: var(--pico-spacing);
  position: relative;
}

.callout-inline::before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 1.2em;
  height: 1.2em;
  margin-top: auto;
  margin-bottom: auto;

  background-color: var(--border-color);
  mask-image: var(--icon);
  -webkit-mask-image: var(--icon);
  mask-size: cover;
}


details.callout summary.callout-title {
  margin-bottom: 0;
}

details.callout summary.callout-title::after {
  margin-inline-start: auto;

}

table {
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
}

footer {
  display: flex;
  flex-direction: column;
  align-items: center;
}

main {
  min-height: 70vh;
}
