/* OpenNN editorial composition. Shared colours, type and surfaces use UI 0.2.0. */
.aui .opennn-shared-reading { padding-block: 48px 64px; }
.aui .opennn-shared-prose { max-width: 760px; overflow-wrap: anywhere; }
.aui .opennn-shared-prose > :first-child { margin-top: 0; }
.aui .opennn-shared-prose > :last-child { margin-bottom: 0; }
.aui .opennn-shared-prose :is(h1, h2, h3, h4, h5, h6) {
  color: var(--aui-ink);
  font-family: var(--aui-font-family);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -.02em;
  text-align: left;
  scroll-margin-top: 96px;
}
.aui .opennn-shared-prose h1 { margin: 0 0 24px; font-size: 36px; }
.aui .opennn-shared-prose h2 { margin: 40px 0 16px; font-size: 30px; }
.aui .opennn-shared-prose h3 { margin: 32px 0 12px; font-size: 24px; }
.aui .opennn-shared-prose :is(h4, h5, h6) { margin: 28px 0 12px; font-size: 20px; }
.aui .opennn-shared-prose :is(p, li, dt, dd) {
  color: var(--aui-muted);
  font-family: var(--aui-font-family);
  font-size: 17px;
  font-weight: 400;
  line-height: 1.7;
}
.aui .opennn-shared-prose p { margin: 0 0 20px; }
.aui .opennn-shared-prose :is(ul, ol) { margin: 0 0 24px; padding-left: 24px; }
.aui .opennn-shared-prose li { margin-bottom: 8px; }
.aui .opennn-shared-prose :is(ul, ol) :is(ul, ol) { margin-top: 8px; margin-bottom: 0; }
.aui .opennn-shared-prose .lead { font-size: 20px; line-height: 1.6; }
/* Prose links are underlined, as links in running text should be. A post card's
   title is not running text: the shared package states how a card title carrying
   the destination reads, and grouping it here underlined it on this site alone. */
.aui .opennn-shared-prose a:not(.aui-button) { color: var(--aui-blue); text-decoration: underline; }
.aui .opennn-shared-prose a:not(.aui-button):hover { color: var(--aui-blue-hover); }
.aui .opennn-shared-prose :is(img, video, iframe) { max-width: 100%; }
.aui .opennn-shared-prose img { height: auto; }
.aui .opennn-shared-prose :is(.note, .warning, blockquote) {
  margin: 24px 0;
  padding: 20px 24px;
  color: var(--aui-ink);
  background: var(--aui-soft);
  border: 0;
  border-left: 3px solid var(--aui-blue);
  border-radius: 0 var(--aui-radius) var(--aui-radius) 0;
}
.aui .opennn-shared-prose :is(.note, .warning, blockquote) > :last-child { margin-bottom: 0; }
.aui .opennn-shared-prose code {
  padding: 2px 5px;
  color: var(--aui-ink);
  background: var(--aui-soft);
  border-radius: 3px;
  font-family: Consolas, Monaco, monospace;
  font-size: .9em;
  overflow-wrap: anywhere;
}
.aui .opennn-shared-prose pre {
  max-width: 100%;
  margin: 24px 0;
  padding: 20px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  color: var(--aui-ink);
  background: var(--aui-soft);
  border: 1px solid var(--aui-line);
  border-radius: var(--aui-radius);
  font-size: 15px;
  line-height: 1.6;
}
.aui .opennn-shared-prose pre code { padding: 0; font-size: inherit; white-space: pre; }
.aui .opennn-shared-prose .small { font-size: 14px; }
.aui .opennn-shared-table-scroll {
  max-width: 100%;
  margin: 24px 0 32px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  border: 1px solid var(--aui-line);
  border-radius: var(--aui-radius);
}
.aui .opennn-shared-table-scroll:focus-visible {
  outline: 3px solid var(--aui-blue);
  outline-offset: 4px;
}
.aui .opennn-shared-prose table {
  width: 100%;
  margin: 0;
  border: 0;
  border-collapse: collapse;
  color: var(--aui-ink);
  background: var(--aui-white);
  font-family: var(--aui-font-family);
  font-size: 15px;
  line-height: 1.5;
  overflow-wrap: normal;
}
.aui .opennn-shared-prose :is(th, td) {
  padding: 14px 16px;
  border: 0;
  border-bottom: 1px solid var(--aui-line);
  text-align: left;
  vertical-align: top;
}
.aui .opennn-shared-prose th {
  color: var(--aui-ink);
  background: var(--aui-soft);
  font-weight: 600;
}
.aui .opennn-shared-prose tr:last-child td { border-bottom: 0; }
.aui .opennn-shared-prose tr:nth-child(even) td { background: var(--aui-white); }
.aui .opennn-shared-prose :is(th, td) code { padding: 0; color: inherit; background: transparent; font-size: inherit; }
.aui .opennn-shared-legal-section { margin: 0 0 40px; }
.aui .opennn-shared-legal-section:last-child { margin-bottom: 0; }
.aui .opennn-shared-legal-section h2 { font-size: 24px; letter-spacing: 0; }

/* Chart measurements and series colours remain in the original inline data. */
.aui .opennn-shared-prose .opennn-benchmark-chart {
  width: 100%;
  margin: 24px 0 32px;
  padding: 28px;
  background: var(--aui-white);
  border: 1px solid var(--aui-line);
  border-radius: var(--aui-radius);
  box-shadow: none;
}
.aui .opennn-benchmark-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.aui .opennn-benchmark-chart figcaption { color: var(--aui-ink); font-size: 20px; font-weight: 600; line-height: 1.35; }
.aui .opennn-benchmark-kicker { flex: none; padding: 4px 8px; color: var(--aui-blue); background: var(--aui-soft); border-radius: var(--aui-radius); font-size: 12px; font-weight: 600; line-height: 1.5; }
.aui .opennn-benchmark-subtitle { margin: 8px 0 20px; color: var(--aui-muted); font-size: 14px; line-height: 1.5; }
.aui .opennn-benchmark-body { margin-top: 20px; }
.aui .opennn-benchmark-group { margin: 24px 0 12px; color: var(--aui-ink); font-size: 16px; font-weight: 600; }
.aui .opennn-benchmark-group:first-child { margin-top: 0; }
.aui .opennn-benchmark-row { display: grid; grid-template-columns: 140px minmax(0, 1fr) 132px; gap: 14px; align-items: center; margin: 14px 0; }
.aui .opennn-benchmark-label { color: var(--aui-ink); font-size: 15px; font-weight: 500; line-height: 1.4; }
.aui .opennn-benchmark-track { height: 22px; overflow: hidden; background: var(--aui-soft); border-radius: 4px; }
.aui .opennn-benchmark-bar { height: 100%; min-width: 2px; border-radius: 4px; }
.aui .opennn-benchmark-value { color: var(--aui-ink); font-size: 15px; font-weight: 600; line-height: 1.4; text-align: right; }
.aui .opennn-benchmark-footnote { margin-top: 20px; color: var(--aui-muted); font-size: 13px; line-height: 1.6; }

.aui .opennn-shared-listing { padding-block: 48px 64px; }
.aui .opennn-shared-archive-description { margin-bottom: 32px; }
.aui .opennn-shared-post-card { overflow: hidden; }
.aui .opennn-shared-post-media { display: block; width: 100%; margin-bottom: 24px; }
.aui .opennn-shared-post-media img { display: block; width: 100%; height: 180px; object-fit: cover; border-radius: var(--aui-radius); }
.aui .opennn-shared-post-body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; width: 100%; }
.aui .opennn-shared-post-card .opennn-shared-post-type { margin-bottom: 12px; color: var(--aui-muted); font-size: 14px; font-weight: 500; }
.aui .opennn-shared-post-card .aui-card-link { margin-top: auto; }
.aui .opennn-shared-pagination { margin-top: 40px; }
.aui .opennn-shared-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; margin: 0; padding: 8px 12px; color: var(--aui-blue); background: var(--aui-white); border: 1px solid var(--aui-line); border-radius: var(--aui-radius); font-size: 16px; line-height: 1.5; text-decoration: none; }
.aui .opennn-shared-pagination :is(ul.page-numbers, .nav-links) { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 8px; padding: 0; border: 0; list-style: none; }
.aui .opennn-shared-pagination li { margin: 0; }
.aui .opennn-shared-pagination .page-numbers.current { color: var(--aui-white); background: var(--aui-blue); border-color: var(--aui-blue); }
.aui .opennn-shared-pagination a.page-numbers:hover { color: var(--aui-blue-hover); border-color: var(--aui-blue); }
.aui .opennn-shared-pagination .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 48rem) {
  .aui .opennn-shared-reading,
  .aui .opennn-shared-listing { padding-block: 32px 48px; }
  .aui .opennn-shared-prose h2 { margin-top: 32px; font-size: 28px; }
  .aui .opennn-shared-prose h3 { font-size: 22px; }
  .aui .opennn-shared-prose .opennn-benchmark-chart { padding: 24px; }
  .aui .opennn-benchmark-header { flex-direction: column; gap: 8px; }
  .aui .opennn-benchmark-row { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 12px; margin: 20px 0; }
  .aui .opennn-benchmark-track { grid-column: 1 / -1; grid-row: 2; }
  .aui .opennn-benchmark-value { grid-column: 2; grid-row: 1; }
  .aui .opennn-shared-prose table { min-width: 560px; }
  .aui .opennn-shared-prose :is(th, td) { padding: 12px; }
  .aui .opennn-shared-legal-section h2 { font-size: 22px; }
}
