/* Native text and tables keep the teaching examples sharp at every scale. */
.reveal .alignment-slide {font-size:29px;}
.reveal .alignment-slide .alignment-widget {font-size:23px;line-height:1.22;}
.reveal .alignment-slide .alignment-layout {display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:34px;align-items:start;}
.reveal .alignment-slide .alignment-axis {font-size:23px;margin:0 0 15px;}
.reveal .alignment-slide .dp-table {width:100%;table-layout:fixed;border-collapse:collapse;font-size:27px;margin:0;}
.reveal .alignment-slide .dp-table th,.reveal .alignment-slide .dp-table td {padding:0;text-align:center;border:1px solid #a9b8bb;height:55px;}
.reveal .alignment-slide .dp-table th {color:#226878;font-weight:650;background:#e2ecee;}
.reveal .alignment-slide .dp-table button {font:inherit;color:inherit;display:block;width:100%;height:55px;padding:2px;border:0;background:transparent;cursor:pointer;line-height:1;}
.reveal .alignment-slide .dp-table small {display:block;font-size:15px;min-height:15px;line-height:1;}
.reveal .alignment-slide .dp-table .boundary {background:#e8eaeb;}
.reveal .alignment-slide .dp-table .from-diag {background:#d9ecea;}
.reveal .alignment-slide .dp-table .from-up {background:#ede2f1;}
.reveal .alignment-slide .dp-table .from-left {background:#e0e8f7;}
.reveal .alignment-slide .dp-table .trace-path {background:#cce6df;box-shadow:inset 0 0 0 3px #007b68;}
.reveal .alignment-slide .dp-table .selected {background:#fbe0c0;box-shadow:inset 0 0 0 3px #b95800;}
.reveal .alignment-slide .dp-table .unfilled {color:#829196;}
.reveal .alignment-slide .alignment-legend {font-size:19px;margin:12px 0;}
.reveal .alignment-slide .alignment-detail h3 {font-size:26px;margin:0 0 12px;}
.reveal .alignment-slide .alignment-detail p {font-size:24px;line-height:1.3;margin:12px 0;}
.reveal .alignment-slide .candidate {font-size:22px;border-left:4px solid #a9b8bb;padding:5px 12px;margin:7px 0;}
.reveal .alignment-slide .candidate-diag {border-color:#277b70;}
.reveal .alignment-slide .candidate-up {border-color:#88519e;}
.reveal .alignment-slide .candidate-left {border-color:#486bb0;}
.reveal .alignment-slide .candidate.winner {background:#e0ece8;}
.reveal .alignment-slide .alignment-controls {display:flex;gap:10px;margin:15px 0 10px;}
.reveal .alignment-slide button,.reveal .alignment-slide input,.reveal .alignment-slide select {font:inherit;}
.reveal .alignment-slide .alignment-controls button,.reveal .alignment-slide form button {font-size:20px;padding:8px 12px;background:#f5f8f8;border:1px solid #46737b;border-radius:4px;color:#244f58;cursor:pointer;}
.reveal .alignment-slide button:disabled {opacity:.45;cursor:default;}
.reveal .alignment-slide button:focus-visible,.reveal .alignment-slide input:focus-visible,.reveal .alignment-slide select:focus-visible {outline:3px solid #b95800;outline-offset:2px;}
.reveal .alignment-slide .alignment-output {border-top:1px solid #bdc9cb;padding-top:10px;}
.reveal .alignment-slide .trace-reading,.reveal .alignment-slide .trace-score {font-size:20px;}
.reveal .alignment-slide .alignment-letters {font:27px/1.3 Menlo,Consolas,monospace;display:flex;flex-direction:column;gap:0;margin:8px 0;color:#226878;}
.reveal .alignment-slide .alignment-settings {display:flex;align-items:end;gap:12px;margin:0 0 15px;font-size:19px;}
.reveal .alignment-slide .alignment-settings label {display:flex;flex-direction:column;gap:4px;}
.reveal .alignment-slide input {width:155px;padding:5px;background:white;color:#23373b;border:1px solid #899b9f;}
.reveal .alignment-slide input[name=gap] {width:65px;}
.reveal .alignment-slide select {padding:5px;background:white;color:#23373b;}
.reveal .alignment-slide .alignment-error {color:#a02453;font-size:19px;}
.reveal .alignment-slide .alignment-widget[data-lab] .dp-table th,.reveal .alignment-slide .alignment-widget[data-lab] .dp-table td,.reveal .alignment-slide .alignment-widget[data-lab] .dp-table button {height:var(--dp-cell-height,35px);}
.reveal .alignment-slide .alignment-widget[data-lab] .dp-table {font-size:21px;}
.reveal .alignment-slide .alignment-widget[data-lab] .dp-table small {font-size:11px;min-height:11px;}
.reveal .alignment-slide .alignment-widget[data-lab] .alignment-axis {font-size:20px;}
.reveal .alignment-slide .alignment-widget[data-lab] .candidate {font-size:19px;margin:4px 0;padding:4px 10px;}
.reveal .alignment-slide .alignment-widget[data-lab] .alignment-detail p {font-size:21px;margin:8px 0;}
.reveal .alignment-slide .alignment-widget[data-lab] .alignment-detail h3 {font-size:23px;}
.reveal .alignment-slide .blosum-layout {display:grid;grid-template-columns:750px 1fr;gap:32px;}
.reveal .alignment-slide .blosum-table table {font:19px/1 Menlo,monospace;width:100%;table-layout:fixed;}
.reveal .alignment-slide .blosum-table th,.reveal .alignment-slide .blosum-table td {padding:0;text-align:center;height:23px;border:0;}
.reveal .alignment-slide .blosum-table button {font:inherit;width:100%;height:23px;border:0;background:transparent;color:inherit;cursor:pointer;padding:0;}
.reveal .alignment-slide .blosum-table .marked {background:#ddebed;}
.reveal .alignment-slide .blosum-table .chosen {background:#f7c695;color:#643300;font-weight:bold;outline:2px solid #b95800;}
.reveal .alignment-slide .blosum-lookup {font-size:23px;}
.reveal .alignment-slide .blosum-lookup label {display:block;margin-bottom:15px;}
.reveal .alignment-slide .blosum-result {font-size:32px;color:#a34c00;margin:25px 0;}
.reveal .alignment-slide .residue-score {font-size:34px;margin:45px 0;}
.reveal .alignment-slide .residue-score td {font-family:Menlo,monospace;text-align:center;}
.reveal .alignment-slide .gap {color:#a02453;}
.reveal .alignment-slide .alignment-takeaway {font-size:36px;color:#226878;}
.reveal .alignment-slide .sequence-pair {font:38px/1.4 Menlo,monospace;color:#226878;}
.reveal .alignment-slide .typeset-math.display {font-size:.90em;}
.reveal .typeset-math .katex {font-size:1.1em;}
.reveal .typeset-math.display {display:block;}
.reveal .sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
/* Avoid a wide image box around a tall figure. All images preserve intrinsic ratio. */
.reveal .slides .sequence-figure {display:block;margin:12px auto;object-fit:contain;}
.reveal .slides .tree-slide img {max-height:440px;}
.reveal .slides .tree-slide > p:last-of-type {font-size:22px;}
@media print {
 .reveal .alignment-slide .alignment-controls,.reveal .alignment-slide .alignment-settings {display:none!important;}
 .reveal .alignment-slide .fragment {visibility:visible!important;opacity:1!important;transform:none!important;}
 .reveal .alignment-slide .dp-table button,.reveal .alignment-slide .blosum-table button {color:inherit!important;}
}
@media(prefers-reduced-motion:reduce){.reveal .alignment-slide *{transition:none!important;animation:none!important;}}

.reveal .alignment-slide .alignment-widget[data-lab].compact-grid .dp-table {font-size:18px;}
.reveal .alignment-slide .alignment-widget[data-lab].compact-grid .dp-table button {padding:0;}
.reveal .alignment-slide .alignment-widget[data-lab].compact-grid .dp-table small {font-size:9px;min-height:9px;}

.reveal .alignment-slide .alignment-widget.compact-grid .alignment-legend {margin:6px 0;}

/* Size the image itself proportionally; do not clamp its height independently.
   --figure-width is calculated from the source ratio and slide/column height budget. */
.reveal .slides img.sequence-figure {
  width:min(100%, var(--figure-width)) !important;
  height:auto !important;
  max-width:100% !important;
  max-height:none !important;
  object-fit:contain;
}

/* Slide captions for figure rows: short interpretive line under an image. */
.reveal .slides .fig-caption {font-size: 20px; color: #33474b; margin-top: 6px;}
.reveal .slides .fig-caption em {font-style: italic;}

/* Hydrophobicity scales compared: two half-tables side by side (consolidated from four slides). */
.reveal .slides .hydro-tables {display: grid; grid-template-columns: 1fr 1fr; gap: 8px 40px; align-items: start;}
.reveal .slides .hydro-tables table {font-size: 17px; margin-bottom: 0;}
.reveal .slides .hydro-tables th, .reveal .slides .hydro-tables td {padding: 2px 6px; font-size: inherit;}

/* Four schematic dot-plot rearrangement panels in one 2x2 grid (consolidated from four slides). */
.reveal .slides .dotplot-patterns {display: grid; grid-template-columns: 1fr 1fr; gap: 2px 48px; justify-items: center; align-items: end;}
.reveal .slides .dotplot-patterns .dot-panel {text-align: center;}
.reveal .slides .dotplot-patterns .dot-panel p {font-size: 19px; margin: 2px 0 6px; line-height: 1.25;}

/* Native (vector) global-vs-local demonstration replacing a 240x102 blurred raster. */
.reveal .slides .local-global-demo {font-family: Menlo, Consolas, monospace; font-size: 22px; line-height: 1.55; color: #33474b; margin-top: 10px; text-align: left;}
.reveal .slides .local-global-demo .lgl-label {color: #226878; font-weight: 650; display: inline-block; width: 108px;}
.reveal .slides .local-global-demo .lgap {color: #a02453; font-weight: normal;}

/* Residue-indexed sample table for the probability-models notation slide. */
.reveal .slides .notation-table {border-collapse: collapse; font-family: Menlo, Consolas, monospace; font-size: 27px; color: #226878; margin: 14px 0 10px; table-layout: auto;}
.reveal .slides .notation-table th {color: #226878; font-weight: 650; background: #e2ecee;}
.reveal .slides .notation-table th, .reveal .slides .notation-table td {border: 1px solid #a9b8bb; padding: 4px 13px; text-align: center; height: 44px;}
.reveal .slides .notation-table thead th {border: 0; background: transparent; color: #6c7f83; font-size: 18px; font-weight: 500;}
.reveal .slides .notation-table .hi {background: #fde6c8; box-shadow: inset 0 0 0 2px #b95800;}
.reveal .slides .notation-lead {font-size: 19px; color: #33474b;}

/* Affine-gap DNA example restored from the legacy deck (TIV-048): one long gap vs several openings. */
.reveal .slides .gap-demo-cols {display: grid; grid-template-columns: 1fr 1fr; gap: 0 40px; margin-top: 4px;}
.reveal .slides .gap-demo {font-family: Menlo, Consolas, monospace; font-size: 20px; line-height: 1.5; color: #33474b; text-align: left; white-space: pre-wrap;}
.reveal .slides .gap-demo p {margin: 3px 0;}
.reveal .slides .affine-slide table th, .reveal .slides .affine-slide table td {padding: 2px 10px; height: auto;}
.reveal .slides .gap-demo .demo-label {font-family: var(--body-font-family, "Open Sans"), sans-serif; font-size: 17px; line-height: 1.35; color: #33474b; margin-bottom: 4px;}
.reveal .slides .gap-demo .demo-label strong, .reveal .slides .gap-demo .demo-label b {color: #226878;}
.reveal .slides .typeset-math.display {
  display: block;
  width: 100%;
  text-align: center;
}
.reveal .slides .typeset-math.display .katex-display {
  display: block;
  width: 100%;
  text-align: center;
}
.reveal .slides .typeset-math.display .katex-display > .katex {
  display: inline-block;
  text-align: center;
  max-width: 100%;
}
