/* ── Reset & Base ─────────────────────────────────────────────────────────── */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --bg: #fafafa;
  --text: #1a1a1a;
  --text-muted: #666;
  --accent: #2563eb;
  --accent-light: #dbeafe;
  --border: #e5e7eb;
  --code-bg: #1e1e1e;
  --code-text: #d4d4d4;
  --output-bg: #f0fdf4;
  --output-border: #86efac;
  --error-bg: #fef2f2;
  --error-border: #fca5a5;
  --header-bg: #ffffff;
  --shadow: 0 1px 3px rgba(0,0,0,0.1);
  --shadow-lg: 0 4px 12px rgba(0,0,0,0.08);
}

.dark-mode {
  --bg: #0b0f19;
  --text: #e6e8f0;
  --text-muted: #8b92a8;
  --accent: #60a5fa;
  --accent-light: #1e293b;
  --border: #1e293b;
  --code-bg: #111827;
  --code-text: #e5e7eb;
  --output-bg: #0f172a;
  --output-border: #1e3a5f;
  --error-bg: #1a0f0f;
  --error-border: #4a1919;
  --header-bg: #111827;
  --shadow: 0 1px 3px rgba(0,0,0,0.4);
  --shadow-lg: 0 4px 12px rgba(0,0,0,0.5);
}

.dark-mode .chapter {
  background: rgba(17, 24, 39, 0.6);
  border-color: rgba(30, 41, 59, 0.8);
}

.dark-mode .toc,
.dark-mode .chapter-summary {
  background: rgba(17, 24, 39, 0.9);
  border-color: var(--border);
}

.dark-mode .chapter-summary li.is-active {
  background: rgba(30, 58, 95, 0.4);
  border-left-color: var(--accent);
}

.dark-mode .chapter-summary li.is-active a {
  color: var(--accent);
}

.dark-mode .callout {
  background: var(--output-bg);
  border-color: var(--border);
}

.dark-mode .callout-theorem { --callout-color:#a78bfa; --callout-bg:#1e1b4b; }
.dark-mode .callout-definition { --callout-color:#60a5fa; --callout-bg:#0f172a; }
.dark-mode .callout-proof { --callout-color:#94a3b8; --callout-bg:#111827; }
.dark-mode .callout-example { --callout-color:#34d399; --callout-bg:#064e3b; }
.dark-mode .callout-important { --callout-color:#fbbf24; --callout-bg:#451a03; }
.dark-mode .callout-note { --callout-color:#2dd4bf; --callout-bg:#0f302f; }
.dark-mode .callout-result { --callout-color:#fb7185; --callout-bg:#2a0f15; }

.dark-mode blockquote {
  background: var(--accent-light);
  border-color: var(--accent);
}

.dark-mode .chapter th {
  background: #1e293b;
}

.dark-mode .code-block pre {
  background: var(--code-bg);
}

.dark-mode .page-nav {
  background: var(--header-bg);
  border-color: var(--border);
}

.dark-mode .page-nav-home {
  background: #1e293b;
  border-color: #334155;
  color: var(--accent);
}

.dark-mode .page-nav-home:hover {
  background: var(--accent);
  color: white;
}

html { scroll-behavior: smooth; scroll-padding-top: 2em; }

/* Skip to content for keyboard nav */
.skip-link {
  position: absolute;
  top: -40px;
  left: 0;
  background: var(--accent);
  color: white;
  padding: 8px 16px;
  z-index: 100;
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
  border-radius: 0 0 4px 0;
  transition: top 0.2s;
}
.skip-link:focus {
  top: 0;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  font-size: 16px;
  line-height: 1.7;
  color: var(--text);
  background: var(--bg);
  max-width: 860px;
  margin: 0 auto;
  padding: 2rem 1.5rem;
}
body::before {
  content:''; position:fixed; inset:0 0 auto; z-index:40; height:3px;
  background:linear-gradient(90deg,var(--accent),#06b6d4);
  transform:scaleX(var(--reading-progress,0)); transform-origin:left;
}

/* Header */
.header {
  text-align: center;
  padding: 3rem 0 2rem;
  border-bottom: 3px solid var(--accent);
  margin-bottom: 3rem;
}
.header::before {
  content:'APOSTILA DIGITAL'; display:block; margin-bottom:.8rem; color:var(--accent);
  font-size:.72rem; font-weight:800; letter-spacing:.18em;
}
.header h1 {
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 0.5rem;
  letter-spacing: -0.02em;
}
.header .subtitle {
  font-size: 1.2rem;
  color: var(--text-muted);
  font-weight: 400;
}

/* TOC */
.toc {
  background: var(--header-bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 1.5rem 2rem;
  margin-bottom: 3rem;
  box-shadow: var(--shadow);
}
.toc h2 {
  font-size: 1.4rem;
  margin-bottom: 1rem;
  color: var(--text);
}
.toc ol {
  list-style: none;
  counter-reset: toc;
}
.toc li {
  counter-increment: toc;
  padding: 0.4rem 0;
  border-bottom: 1px dotted var(--border);
}
.toc li:last-child { border-bottom: none; }
.toc li::before {
  content: counter(toc, decimal-leading-zero) ".";
  font-weight: 600;
  color: var(--accent);
  margin-right: 0.75em;
  font-size: 0.95em;
}
.toc a {
  color: var(--text);
  text-decoration: none;
  transition: color 0.15s;
}
.toc a:hover { color: var(--accent); }
.toc li.toc-level-3 { padding-left: 1.25rem; font-size: 0.92em; }
.toc li.toc-level-4 { padding-left: 2.25rem; font-size: 0.88em; }
.toc li.toc-home { margin-bottom: 0.55rem; border-bottom: 1px solid var(--border); }
.toc li.toc-home::before { content: "⌂"; }

.page-nav {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
  align-items: center;
  gap: .85rem;
  margin: 1rem 0 2.75rem;
  padding: .65rem;
  background: var(--header-bg);
  border: 1px solid var(--border);
  border-radius: 14px;
  box-shadow: 0 5px 18px rgba(15,23,42,.06);
}
.page-nav-link, .page-nav .disabled {
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  align-items: center;
  gap: .7rem;
  min-height: 58px;
  padding: .55rem .7rem;
  border-radius: 9px;
  text-decoration: none;
}
.page-nav-next { grid-template-columns: minmax(0,1fr) auto; text-align: right; }
.page-nav-link:hover { background: var(--accent-light); }
.page-nav-arrow {
  display: grid; place-items: center; width: 32px; height: 32px;
  border-radius: 50%; color: white; background: var(--accent);
  font-size: 1.15rem; transition: transform .16s ease;
}
.page-nav-prev:hover .page-nav-arrow { transform: translateX(-3px); }
.page-nav-next:hover .page-nav-arrow { transform: translateX(3px); }
.page-nav-copy { min-width: 0; }
.page-nav-label { display:block; color:var(--text-muted); font-size:.67rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.page-nav-title { display:block; overflow:hidden; color:#1e3a5f; font-size:.82rem; font-weight:650; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.page-nav-home {
  display:grid; place-items:center; min-width:82px; min-height:48px; padding:.45rem .75rem;
  border-radius:999px; color:var(--accent); background:#eff6ff; border:1px solid #bfdbfe;
  font-size:.78rem; font-weight:750; text-decoration:none;
}
.page-nav-home:hover { color:white; background:var(--accent); border-color:var(--accent); }
.page-nav .disabled { opacity:.38; }
.page-nav .disabled .page-nav-arrow { background:#94a3b8; }

.print-button {
  position: fixed;
  z-index: 30;
  right: 5.5rem;
  bottom: 1.25rem;
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  padding: .78rem 1rem;
  border: 0;
  border-radius: 999px;
  color: white;
  background: #172033;
  box-shadow: 0 8px 24px rgba(15,23,42,.22);
  font: inherit;
  font-size: .82rem;
  font-weight: 750;
  cursor: pointer;
}
.print-button:hover { background: var(--accent); transform: translateY(-2px); }
.print-button:focus-visible { outline: 3px solid #93c5fd; outline-offset: 3px; }

.theme-toggle {
  position: fixed;
  z-index: 30;
  right: 1.25rem;
  bottom: 1.25rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 999px;
  color: white;
  background: #334155;
  box-shadow: 0 8px 24px rgba(15,23,42,.22);
  font-size: 1.2rem;
  cursor: pointer;
  transition: background .2s, transform .2s;
}
.theme-toggle:hover { background: var(--accent); transform: translateY(-2px); }
.theme-toggle:focus-visible { outline: 3px solid #93c5fd; outline-offset: 3px; }
.print-title-page { display: none; }
.book-cover {
  position: relative;
  display: grid;
  min-height: min(860px, 92vh);
  place-items: center;
  overflow: hidden;
  margin-bottom: 3rem;
  padding: 4rem 2rem;
  color: white;
  text-align: center;
  background: #071426 center/cover no-repeat;
  border-radius: 16px;
}
.book-cover::before { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(3,12,25,.9),rgba(3,12,25,.45)); }
.book-cover-content { position:relative; z-index:1; max-width:700px; }
.book-cover-kicker { color:#54d7ff; font-weight:750; letter-spacing:.2em; text-transform:uppercase; }
.book-cover h1 { margin:.7rem 0 1rem; font-size:clamp(2.8rem,7vw,5.5rem); line-height:1; }
.book-cover p { color:#d8ebff; font-size:1.2rem; }
.book-cover-author { margin-top:2.5rem; color:#b9d8f2; }
.book-mode .print-title-page, .book-mode > .header, .book-mode .chapter-summary { display:none; }
.book-mode .chapter { page-break-before:always; }

/* The summary authored in each Markdown becomes a floating book sidebar. */
.chapter-summary {
  position: fixed;
  z-index: 10;
  top: 1.5rem;
  left: max(1rem, calc(50vw - 690px));
  width: 255px;
  max-height: calc(100vh - 3rem);
  overflow-y: auto;
  padding: 1rem 1rem .8rem;
  background: rgba(255,255,255,.96);
  border: 1px solid var(--border);
  border-top: 4px solid var(--accent);
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(15,23,42,.10);
  backdrop-filter: blur(10px);
  scrollbar-width: thin;
  scrollbar-color: #bfdbfe transparent;
}
.chapter-summary h2 {
  margin: 0 0 .65rem;
  padding: 0 0 .55rem;
  border-bottom: 1px solid var(--border);
  color: #1e3a5f;
  font-size: 1rem;
  letter-spacing: .02em;
}
.chapter-summary ol {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: chapter-summary;
}
.chapter-summary li {
  counter-increment: chapter-summary;
  display: grid;
  grid-template-columns: 1.65rem 1fr;
  gap: .2rem;
  margin: 0;
  padding: .38rem 0;
  border-bottom: 1px dotted #e2e8f0;
  font-size: .79rem;
  line-height: 1.3;
}
.chapter-summary li:last-child { border-bottom: 0; }
.chapter-summary li::before {
  content: counter(chapter-summary, decimal-leading-zero);
  color: var(--accent);
  font-size: .72rem;
  font-weight: 750;
  padding-top: .08rem;
}
.chapter-summary a { color: #334155; text-decoration: none; }
.chapter-summary a:hover { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.chapter-summary li.is-active {
  margin-left: -.55rem;
  padding-left: .45rem;
  border-left: 3px solid var(--accent);
  border-bottom-color: transparent;
  border-radius: 4px;
  background: var(--accent-light);
}
.chapter-summary li.is-active a { color: #1d4ed8; font-weight: 750; }
.chapter-summary li.is-active::before { font-weight: 850; }

/* Chapters */
.chapter {
  margin-bottom: 4rem;
  page-break-before: always;
  padding: clamp(1.25rem,3vw,2.4rem);
  background:rgba(255,255,255,.72);
  border:1px solid rgba(226,232,240,.82);
  border-radius:18px;
  box-shadow:0 18px 50px rgba(15,23,42,.055);
}
.chapter:first-of-type { page-break-before: auto; }

.chapter h1 {
  font-size: 2rem;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 1.5rem;
  padding-bottom: 0.75rem;
  border-bottom: 2px solid var(--accent);
  scroll-margin-top: 2em;
}
.chapter h2 {
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--text);
  margin: 2rem 0 1rem;
  scroll-margin-top: 2em;
  clear: both;
  padding-left:.8rem;
  border-left:4px solid var(--accent);
}
.chapter h3 {
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--text);
  margin: 1.5rem 0 0.75rem;
  scroll-margin-top: 2em;
  clear: both;
}

/* Keep display equations and the following section on distinct lines. */
.math-display {
  display: block;
  width: 100%;
  overflow-x: auto;
  margin: 1.25rem 0;
  clear: both;
}
.math-display + h1,
.math-display + h2,
.math-display + h3 { margin-top: 2rem; }

/* Paragraphs & Lists */
.chapter p {
  margin-bottom: 1em;
  text-align: justify;
}
.chapter > p:first-of-type::first-letter {
  float:left; margin:.09em .11em 0 0; color:var(--accent); font-family:Georgia,serif;
  font-size:3.25em; font-weight:700; line-height:.78;
}
.chapter ul, .chapter ol {
  margin: 1em 0;
  padding-left: 2em;
}
.chapter li {
  margin-bottom: 0.5em;
}
.chapter blockquote {
  border-left: 4px solid var(--accent);
  padding: 0.75rem 1.25rem;
  margin: 1.5em 0;
  background: var(--accent-light);
  border-radius: 0 8px 8px 0;
  color: var(--text);
}

/* Semantic blocks generated from bold labels in the Markdown. */
.callout {
  --callout-color: #2563eb;
  --callout-bg: #eff6ff;
  margin: 1.45rem 0;
  padding: 1rem 1.15rem 1rem 1.3rem;
  border: 1px solid color-mix(in srgb, var(--callout-color) 28%, white);
  border-left: 5px solid var(--callout-color);
  border-radius: 0 10px 10px 0;
  background: var(--callout-bg);
  box-shadow: 0 3px 12px rgba(15, 23, 42, .05);
}
.callout p { margin: 0; text-align: left; }
.callout strong:first-child { color: var(--callout-color); }
/* Ensure callouts have ARIA roles for screen readers */
.callout[role="note"], .callout[role="alert"], .callout[role="status"] {
  position: relative;
}
.callout-theorem { --callout-color:#6d28d9; --callout-bg:#f5f3ff; }
.callout-definition { --callout-color:#0369a1; --callout-bg:#f0f9ff; }
.callout-proof { --callout-color:#475569; --callout-bg:#f8fafc; }
.callout-example { --callout-color:#047857; --callout-bg:#ecfdf5; }
.callout-important { --callout-color:#b45309; --callout-bg:#fffbeb; }
.callout-note { --callout-color:#0f766e; --callout-bg:#f0fdfa; }
.callout-result { --callout-color:#be123c; --callout-bg:#fff1f2; }

/* Horizontal rule */
.chapter hr {
  border: none;
  height: 2px;
  background: var(--border);
  margin: 2.5rem 0;
}

/* Tables */
.chapter table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.5em 0;
  font-size: 0.95em;
}
.chapter th, .chapter td {
  border: 1px solid var(--border);
  padding: 0.6rem 0.8rem;
  text-align: left;
}
.chapter th {
  background: #f3f4f6;
  font-weight: 600;
}

/* Images */
.chapter img {
  max-width: 90%;
  display: block;
  margin: 1.5em auto;
  border-radius: 6px;
  box-shadow: var(--shadow-lg);
}

/* Code blocks */
.code-block {
  margin: 1.5em 0;
  border: 1px solid #333;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: var(--shadow);
}
.code-header {
  background: #333;
  color: #aaa;
  padding: 0.4rem 1rem;
  font-size: 0.8rem;
  font-family: monospace;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.lang-tag {
  background: var(--accent);
  color: white;
  padding: 0.15em 0.6em;
  border-radius: 4px;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
}
.code-block pre {
  margin: 0;
  padding: 1em;
  overflow-x: auto;
  font-size: 0.78rem;
  line-height: 1.45;
  tab-size: 4;
}
.code-block pre, .code-block code {
  font-family: 'JetBrains Mono', 'Fira Code', 'Cascadia Code', 'SFMono-Regular',
    'SF Mono', Menlo, Monaco, Consolas, 'Liberation Mono', monospace;
  font-variant-ligatures: contextual;
  font-feature-settings: "liga" 1, "calt" 1;
  letter-spacing: -0.01em;
}

/* Output */
.output {
  margin: 0;
  border-top: 1px solid #333;
  background: var(--code-bg);
}
.output.stdout {
  background: var(--output-bg);
  border-top-color: var(--output-border);
  padding: 1em;
}
.output.stdout strong {
  color: #166534;
}
.spice-output .output-preview {
  margin: .5em 0;
  max-height: 25rem;
  overflow: auto;
}
.spice-plot {
  margin: 1em 0;
  padding: 1em;
  background: var(--output-bg);
  border-top-color: var(--output-border);
  border-radius: 8px;
}
.spice-plot #plot-container {
  width: 100%;
  min-height: 300px;
  max-height: 500px;
}
.output-more {
  margin-top: .5rem;
  border-top: 1px solid var(--output-border);
}
.output-more summary {
  display: inline-block;
  margin-top: .65rem;
  padding: .4rem .8rem;
  border: 1px solid var(--output-border);
  border-radius: 6px;
  color: var(--accent);
  background: var(--surface);
  font-weight: 700;
  cursor: pointer;
  user-select: none;
}
.output-more summary:hover,
.output-more summary:focus-visible {
  filter: brightness(.97);
  outline: 2px solid color-mix(in srgb, var(--accent) 35%, transparent);
  outline-offset: 2px;
}
.output-more[open] summary {
  margin-bottom: .5rem;
}
.output-more pre {
  margin: 0;
  padding: .75rem 0 0;
  border-top: 1px dashed var(--output-border);
}
.output.error {
  background: var(--error-bg);
  border-top-color: var(--error-border);
  padding: 1em;
  color: #991b1b;
}
.output.error strong {
  color: #dc2626;
}
.output.figure {
  padding: 1em;
  background: var(--code-bg);
  border-top-color: #333;
}

/* MathJax */
mjx-container {
  margin: 1em 0 !important;
}

/* Responsive */
@media (max-width: 640px) {
  body { padding: 1rem; font-size: 15px; }
  .header h1 { font-size: 1.8rem; }
  .chapter h1 { font-size: 1.5rem; }
  .chapter h2 { font-size: 1.2rem; }
  .toc { padding: 1rem; }
  .page-nav { grid-template-columns:1fr auto 1fr; gap:.35rem; padding:.4rem; }
  .page-nav-link, .page-nav .disabled { min-height:50px; padding:.35rem; gap:.35rem; }
  .page-nav-arrow { width:28px; height:28px; }
  .page-nav-title { display:none; }
  .page-nav-label { font-size:.6rem; }
  .page-nav-home { min-width:64px; min-height:40px; font-size:.7rem; }
  .print-button-label { display:none; }
  .print-button { width:48px; height:48px; justify-content:center; padding:0; font-size:1.1rem; }
  .chapter { padding:1rem; border-radius:12px; }
}
@media (max-width: 1240px) {
  .chapter-summary {
    position: static;
    width: 100%;
    max-height: none;
    margin: 0 0 2rem;
    background: white;
    backdrop-filter: none;
  }
  .chapter-summary ol { columns: 2; column-gap: 1.5rem; }
  .chapter-summary li { break-inside: avoid; }
}
@media (max-width: 640px) {
  .chapter-summary ol { columns: 1; }
}

/* Browser print / Save as PDF: typeset each chapter as an A4 book section. */
@page {
  size: A4 portrait;
  margin: 20mm 17mm 22mm 22mm;
}
@page :left { margin-left: 17mm; margin-right: 22mm; }
@page :right { margin-left: 22mm; margin-right: 17mm; }
@media print {
  :root { --text:#111; --text-muted:#444; --accent:#183b63; --border:#cbd5e1; }
  html { font-size: 10.5pt; scroll-behavior:auto; }
  body {
    max-width:none;
    margin:0;
    padding:0;
    color:#111;
    background:white;
    font-family: Georgia, 'Times New Roman', serif;
    font-size:10.5pt;
    line-height:1.48;
  }
  .header, .page-nav, .chapter-summary, .print-button, .theme-toggle { display:none !important; }
  .book-mode .print-title-page { display:none !important; }
  .book-cover {
    display:flex;
    min-height:257mm;
    margin:0;
    padding:25mm;
    border-radius:0;
    break-after:page;
    page-break-after:always;
    background-size:cover !important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .book-cover h1 { font-size:34pt; }
  .book-cover p { font-size:14pt; }
  .book-mode .chapter { break-before:recto; page-break-before:right; }
  .print-title-page {
    display:flex;
    min-height:245mm;
    flex-direction:column;
    justify-content:center;
    text-align:center;
    break-after:page;
    page-break-after:always;
  }
  .print-title-page::before {
    content:'';
    width:26mm;
    margin:0 auto 14mm;
    border-top:1.5mm solid #183b63;
  }
  .print-kicker { margin-bottom:5mm; color:#475569; font:700 9pt Arial,sans-serif; letter-spacing:.18em; text-transform:uppercase; }
  .print-title-page h1 { margin:0 auto 7mm; max-width:155mm; font-size:26pt; line-height:1.12; font-weight:600; }
  .print-book-title { color:#334155; font-size:13pt; }
  .print-imprint { margin-top:auto; color:#64748b; font:9pt Arial,sans-serif; }
  .chapter { margin:0; page-break-before:auto; }
  .chapter { padding:0; background:white; border:0; border-radius:0; box-shadow:none; }
  .chapter > p:first-of-type::first-letter { float:none; margin:0; color:inherit; font:inherit; }
  .chapter > h1 { margin:0 0 12mm; padding:0 0 5mm; font-size:22pt; line-height:1.15; break-after:avoid; page-break-after:avoid; }
  .chapter h2, .chapter h3, .chapter h4 { break-after:avoid; page-break-after:avoid; }
  .chapter h2 { margin:8mm 0 3.5mm; font-size:15pt; }
  .chapter h3 { margin:6mm 0 2.5mm; font-size:12pt; }
  .chapter p { margin-bottom:3.2mm; orphans:3; widows:3; hyphens:auto; }
  .chapter a { color:inherit; text-decoration:none; }
  .chapter a[href^='http']::after { content:' (' attr(href) ')'; font:8pt Arial,sans-serif; overflow-wrap:anywhere; }
  .chapter img { max-width:100%; max-height:205mm; margin:5mm auto; border-radius:0; box-shadow:none; break-inside:avoid; page-break-inside:avoid; }
  .chapter table { font-size:9pt; break-inside:avoid; page-break-inside:avoid; }
  .chapter thead { display:table-header-group; }
  .chapter tr, .callout, blockquote, .math-display, .output.figure { break-inside:avoid; page-break-inside:avoid; }
  .callout { margin:5mm 0; box-shadow:none; break-inside:avoid; page-break-inside:avoid; }
  .code-block { margin:5mm 0; border-color:#94a3b8; border-radius:0; box-shadow:none; break-inside:avoid; page-break-inside:avoid; }
  .code-block pre { break-inside:avoid; page-break-inside:avoid; }
  .output { break-inside:avoid; page-break-inside:avoid; }
  .code-block pre { white-space:pre-wrap; overflow-wrap:anywhere; font-size:7.5pt; }
  mjx-container { overflow:visible !important; }
  .math-display, .math-display + h2, .math-display + h3 {
    break-inside: avoid; page-break-inside: avoid;
  }
  mjx-container { break-inside: avoid; page-break-inside: avoid; }
  .math-display { break-inside: avoid; page-break-inside: avoid; }
  .math-display + h2, .math-display + h3 { margin-top:8mm; }
}
