@font-face {
  font-family: "Inter";
  src: url("/assets/fonts/inter-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
}
@font-face {
  font-family: "JetBrains Mono";
  src: url("/assets/fonts/jetbrains-mono-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
}

/* This stylesheet belongs only to the exhibition surface. The landing page
   and reveal.js's internal layout never share its resets or theme tokens. */
body.expo-app {
  --expo-bg: #0b1220;
  --expo-surface: #111e30;
  --expo-raised: #182a3e;
  --expo-text: #edf3fb;
  --expo-muted: #b5c6da;
  --expo-accent: #67d9ee;
  --expo-accent-soft: #173641;
  --expo-border: #354c66;
  --expo-success: #9fe0b1;
  --expo-warning: #f1c77a;
  --expo-danger: #ffb2ae;
  --expo-shadow: 0 18px 65px rgb(0 0 0 / 22%);
  --expo-body-font: "Inter", Arial, sans-serif;
  --expo-mono-font: "JetBrains Mono", Consolas, monospace;
  --expo-toolbar-height: 64px;
  --expo-navigation-height: 56px;
  --ambient-cyan: #62cfe3;
  --ambient-teal: #4ebdad;
  --ambient-copper: #d7a079;
  --ambient-grid: rgb(98 207 227 / 10%);
  --ambient-glow-cyan: rgb(98 207 227 / 11%);
  --ambient-glow-teal: rgb(78 189 173 / 9%);
  color-scheme: dark;
  margin: 0;
  background: var(--expo-bg);
  color: var(--expo-text);
  font: 400 17px/1.65 var(--expo-body-font);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body.expo-app[data-theme="light"] {
  --expo-bg: #f8fafc;
  --expo-surface: #ffffff;
  --expo-raised: #edf3f8;
  --expo-text: #132237;
  --expo-muted: #465e76;
  --expo-accent: #08677b;
  --expo-accent-soft: #e0f3f6;
  --expo-border: #afc1d1;
  --expo-success: #24623a;
  --expo-warning: #805410;
  --expo-danger: #a43231;
  --expo-shadow: 0 18px 65px rgb(34 59 84 / 8%);
  --ambient-cyan: #1b758c;
  --ambient-teal: #218874;
  --ambient-copper: #a9633d;
  --ambient-grid: rgb(27 117 140 / 11%);
  --ambient-glow-cyan: rgb(27 117 140 / 9%);
  --ambient-glow-teal: rgb(33 136 116 / 8%);
  color-scheme: light;
}
body.expo-app[data-subject="genetica"] { --expo-accent: #b7b0ff; --expo-accent-soft: #282442; }
body.expo-app[data-subject="genetica"][data-theme="light"] { --expo-accent: #5744a1; --expo-accent-soft: #eeeafa; }
body.expo-app *, body.expo-app *::before, body.expo-app *::after { box-sizing: border-box; }
body.expo-app [hidden] { display: none !important; }
body.expo-app :where(h1, h2, h3, h4, p, figure) { margin: 0; }
body.expo-app :where(h1, h2, h3, h4) { color: var(--expo-text); font-family: var(--expo-body-font); font-weight: 600; line-height: 1.12; letter-spacing: -.035em; text-wrap: balance; }
body.expo-app a { color: var(--expo-accent); text-underline-offset: .22em; }
body.expo-app :where(button, input, select, textarea) { font: inherit; color: inherit; }
body.expo-app :where(button, select, summary, label:has(input[type="radio"])) { cursor: pointer; }
body.expo-app :where(button, input, select, textarea) { max-width: 100%; }
body.expo-app :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 3px solid var(--expo-accent); outline-offset: 4px; }
body.expo-app button:disabled { opacity: .45; cursor: default; }
body.expo-app :where(img, svg) { max-width: 100%; }
body.expo-app img { display: block; height: auto; }
body.expo-app :where(.icon, .expo-icon) { width: 20px; height: 20px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
body.expo-app :where(.visually-hidden, .expo-visually-hidden) { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
body.expo-app :where(.skip-link, .expo-skip) { position: fixed; top: 12px; left: 16px; z-index: 200; padding: 10px 16px; background: var(--expo-text); color: var(--expo-bg); transform: translateY(-160%); }
body.expo-app :where(.skip-link, .expo-skip):focus { transform: translateY(0); }
body.expo-app .expo-wrap { width: min(1200px, calc(100% - 64px)); margin-inline: auto; }
body.expo-app .expo-site-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 80px; padding: 12px max(32px, calc((100% - 1200px) / 2)); border-bottom: 1px solid var(--expo-border); }
body.expo-app .expo-site-header > .expo-wrap { min-height: 80px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
body.expo-app :where(.expo-brand, .expo-site-header .brand) { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: var(--expo-text); font-weight: 600; }
body.expo-app :where(.expo-brand-mark, .brand__mark) { color: var(--expo-accent); font: 500 26px/1 var(--expo-mono-font); letter-spacing: -.08em; }
body.expo-app .expo-brand { font: 500 26px/1 var(--expo-mono-font); letter-spacing: -.08em; gap: 0; }
body.expo-app .expo-brand > span { color: var(--expo-accent); }
body.expo-app .expo-site-header nav { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 20px; font-size: 14px; }
body.expo-app .expo-site-header nav a { display: inline-flex; align-items: center; min-height: 44px; color: var(--expo-muted); text-decoration: none; }
body.expo-app .expo-site-header nav a:hover { color: var(--expo-accent); }
body.expo-app .expo-eyebrow { display: block; color: var(--expo-accent); font: 500 13px/1.5 var(--expo-mono-font); letter-spacing: .09em; text-transform: uppercase; margin-bottom: 15px; }
body.expo-app .expo-hero { padding-block: clamp(48px, 7vw, 88px) 42px; max-width: 960px; }
body.expo-app .expo-hero h1 { font-size: clamp(38px, 5.5vw, 68px); max-width: 20ch; }
body.expo-app .expo-hero p { color: var(--expo-muted); max-width: 68ch; margin-top: 22px; font-size: clamp(18px, 2vw, 21px); }
body.expo-app .expo-catalog-tools { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, .5fr); gap: 20px; padding: 24px 0 32px; border-top: 1px solid var(--expo-border); }
body.expo-app label { display: block; }
body.expo-app .expo-catalog-tools label { font-size: 14px; color: var(--expo-muted); }
body.expo-app :where(input[type="search"], input[type="number"], input[type="url"], input[type="text"], select, textarea) { width: 100%; min-height: 48px; border: 1px solid var(--expo-border); border-radius: 6px; background: var(--expo-surface); padding: 10px 13px; }
body.expo-app .expo-catalog-tools :where(input, select) { margin-top: 7px; }
body.expo-app .expo-catalog { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; padding-bottom: 48px; }
body.expo-app .expo-card { min-width: 0; background: var(--expo-surface); border: 1px solid var(--expo-border); border-radius: 12px; overflow: hidden; }
body.expo-app .expo-card figure { background: #eaf2f6; }
body.expo-app .expo-card figure img { width: 100%; aspect-ratio: 16 / 10; object-fit: contain; }
/* Original genetics figures inherit the selected theme, including in catalogues. */
body.expo-app .expo-card[data-subject="genetica"] figure { background: var(--expo-bg); padding: 16px; }
body.expo-app .gen-figure-svg { display: block; width: 100%; height: auto; background: transparent; }
body.expo-app .expo-card .gen-figure-svg { aspect-ratio: 16 / 10; }
body.expo-app .expo-card-copy { padding: 30px; }
body.expo-app .expo-card h2 { font-size: clamp(27px, 3vw, 38px); margin-bottom: 17px; }
body.expo-app .expo-card p { color: var(--expo-muted); margin-top: 14px; }
body.expo-app .expo-card :where(.expo-author, small) { color: var(--expo-muted); font-size: 13px; }
body.expo-app .expo-card:only-child { grid-column: 1 / -1; display: grid; grid-template-columns: 1.1fr 1fr; }
body.expo-app .expo-card:only-child figure { display: grid; align-items: center; }
body.expo-app .expo-card:only-child .expo-card-copy { padding: clamp(24px, 4vw, 48px); }
body.expo-app .expo-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 24px; }
body.expo-app .expo-button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 46px; padding: 10px 17px; border: 1px solid var(--expo-border); border-radius: 6px; background: var(--expo-surface); color: var(--expo-text); text-decoration: none; font-size: 14px; font-weight: 500; line-height: 1.4; }
body.expo-app .expo-button:hover { background: var(--expo-raised); border-color: var(--expo-accent); }
body.expo-app .expo-button-primary { background: var(--expo-accent); border-color: var(--expo-accent); color: var(--expo-bg); }
body.expo-app .expo-button-primary:hover { background: var(--expo-text); color: var(--expo-bg); }
body.expo-app .expo-subject-links { display: flex; gap: 16px; flex-wrap: wrap; padding-block: 28px 48px; border-top: 1px solid var(--expo-border); }
body.expo-app .expo-subject-links a { min-height: 44px; display: inline-flex; align-items: center; gap: 10px; }
body.expo-app .expo-empty { border-left: 3px solid var(--expo-accent); background: var(--expo-surface); padding: 24px 28px; margin-block: 20px 48px; }
body.expo-app .expo-empty p { color: var(--expo-muted); margin-top: 10px; }
body.expo-app .expo-catalog > .expo-empty { grid-column: 1 / -1; }
body.expo-app .expo-footer { border-top: 1px solid var(--expo-border); padding-block: 28px; color: var(--expo-muted); font-size: 13px; }
body.expo-app .expo-small { color: var(--expo-muted); font-size: 13px; line-height: 1.5; }
body.expo-app [data-catalog-count] { margin-bottom: 16px; }
body.expo-app .expo-author { font-size: 16px; line-height: 1.5; margin: 22px 0 18px; }
body.expo-app .expo-author > span { color: var(--expo-muted); }
body.expo-app .expo-caution { border-left: 2px solid var(--expo-warning); padding-left: 16px; margin-top: 20px; font-size: 14px; line-height: 1.5; color: var(--expo-muted); }

/* Controls remain at viewport scale while reveal.js scales its 1280×720 canvas. */
body.expo-app .expo-toolbar { position: sticky; top: 0; z-index: 30; display: flex; align-items: center; justify-content: space-between; gap: 8px 16px; min-height: 64px; padding: 8px 24px; border-bottom: 1px solid var(--expo-border); background: var(--expo-bg); }
body.expo-app .expo-toolbar :where(.expo-toolbar-actions, .expo-toolbar-group, .expo-toolbar-modes, .expo-mode-switch) { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
body.expo-app .expo-toolbar > .expo-actions { margin-top: 0; gap: 7px; justify-content: flex-end; }
body.expo-app .expo-toolbar .expo-present-only { display: inline-flex; align-items: center; gap: 7px; }
body.expo-app .expo-back { display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto; font-size: 14px; text-decoration: none; }
body.expo-app .expo-toolbar :where(a, button) { min-height: 44px; }
body.expo-app .expo-toolbar .expo-button { padding: 8px 12px; font-size: 13px; }
body.expo-app .expo-toolbar :where([aria-pressed="true"], [aria-current="true"], .is-active) { background: var(--expo-accent-soft); border-color: var(--expo-accent); color: var(--expo-accent); }
body.expo-app .expo-toolbar-title { color: var(--expo-muted); font: 400 12px/1.5 var(--expo-mono-font); }
body.expo-app .expo-navigation { display: flex; align-items: center; gap: 16px; justify-content: center; min-height: var(--expo-navigation-height); padding: 6px 24px; background: var(--expo-bg); border-top: 1px solid var(--expo-border); }
body.expo-app .expo-navigation .expo-button { min-height: 44px; padding: 8px 14px; }
body.expo-app :where(.expo-progress, #expo-progress) { width: min(240px, 25vw); height: 4px; accent-color: var(--expo-accent); background: var(--expo-border); }
body.expo-app :where(.expo-position, #expo-position) { color: var(--expo-muted); font: 400 12px/1.4 var(--expo-mono-font); }
body.expo-app [data-progress] { min-width: 68px; color: var(--expo-muted); font: 400 12px/1.4 var(--expo-mono-font); text-align: center; }
body.expo-app progress { appearance: none; border: 0; }
body.expo-app progress::-webkit-progress-bar { background: var(--expo-border); }
body.expo-app progress::-webkit-progress-value { background: var(--expo-accent); }
body.expo-app progress::-moz-progress-bar { background: var(--expo-accent); }

/* Content is readable HTML first; the presentation is an enhancement. */
body.expo-app #expo-deck { color: var(--expo-text); font: inherit; }
body.expo-app .expo-scene { text-align: left; scroll-margin-top: 90px; }
body.expo-app .expo-scene-heading { margin-bottom: 28px; }
body.expo-app .expo-scene-heading h2 { font-size: clamp(30px, 4vw, 44px); }
body.expo-app .expo-lead { color: var(--expo-muted); line-height: 1.45; margin-top: 16px; }
body.expo-app .expo-scene-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr); gap: 40px; align-items: start; }
body.expo-app .expo-scene-grid > * { min-width: 0; }
body.expo-app .expo-points { padding-left: 1.2em; margin: 0; }
body.expo-app .expo-points li { padding-left: .15em; margin-bottom: .7em; }
body.expo-app .expo-points li::marker { color: var(--expo-accent); }
body.expo-app .expo-scene-copy p + p { margin-top: 1em; }
body.expo-app .expo-figure { position: relative; min-width: 0; }
body.expo-app .expo-figure img { width: 100%; max-height: 460px; object-fit: contain; border: 1px solid var(--expo-border); border-radius: 10px; background: #f6f9fb; }
body.expo-app .expo-figure :where(figcaption, .expo-figure-caption) { font-size: 13px; line-height: 1.5; color: var(--expo-muted); margin-top: 10px; }
body.expo-app .expo-figure > button { position: absolute; top: 10px; right: 10px; min-width: 44px; min-height: 44px; padding: 9px; border: 1px solid var(--expo-border); border-radius: 5px; color: var(--expo-text); background: var(--expo-bg); }
body.expo-app .expo-comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
body.expo-app .expo-comparison article { border-top: 3px solid var(--expo-accent); padding: 24px 24px 26px; background: var(--expo-surface); }
body.expo-app .expo-comparison article + article { border-color: var(--expo-warning); }
body.expo-app .expo-comparison h3 { font-size: 25px; margin-bottom: 18px; }
body.expo-app .expo-comparison p + p { margin-top: 14px; }
body.expo-app .expo-process { counter-reset: expo-step; list-style: none; padding: 0; margin: 0; display: grid; gap: 18px; }
body.expo-app .expo-process li { counter-increment: expo-step; position: relative; padding-left: 60px; min-height: 44px; }
body.expo-app .expo-process li::before { content: counter(expo-step, decimal-leading-zero); position: absolute; left: 0; top: 1px; color: var(--expo-accent); font: 500 20px/1.5 var(--expo-mono-font); }
body.expo-app .expo-equation { padding: 20px 24px; margin-block: 22px; background: var(--expo-accent-soft); border-left: 3px solid var(--expo-accent); font-size: 24px; line-height: 1.5; overflow-wrap: anywhere; }
body.expo-app .expo-study-only { padding-top: 25px; margin-top: 30px; border-top: 1px solid var(--expo-border); color: var(--expo-muted); }
body.expo-app .expo-study-only :where(h3, h4) { margin-bottom: 14px; }
body.expo-app .expo-study-only p + p { margin-top: 14px; }
body.expo-app .expo-study-only summary { min-height: 44px; color: var(--expo-text); font-weight: 600; }
body.expo-app .expo-study-index { width: min(1200px, calc(100% - 64px)); margin: 24px auto 0; padding-top: 16px; }
body.expo-app .expo-study-index ol { padding-left: 1.5em; columns: 2; gap: 36px; }
body.expo-app .expo-study-index li { break-inside: avoid; }
body.expo-app .expo-study-index a { display: inline-flex; align-items: center; min-height: 44px; padding-block: 5px; }
body.expo-app .expo-sources { margin-top: 22px; color: var(--expo-muted); font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
body.expo-app aside.notes { display: none; }
body.expo-app .expo-references { padding-left: 1.4em; }
body.expo-app .expo-references li { padding-left: .2em; margin-bottom: 18px; font-size: 15px; overflow-wrap: anywhere; }
body.expo-app .expo-callout { border-left: 3px solid var(--expo-accent); padding: 16px 22px; margin-top: 22px; background: var(--expo-accent-soft); }

/* Exercises use the same components in both modes. */
body.expo-app .expo-simulator { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); gap: 40px; }
body.expo-app .expo-simulator :where(.expo-simulator-controls, .expo-controls, .expo-sim-controls) { display: grid; gap: 20px; }
body.expo-app .expo-sim-controls { grid-template-columns: minmax(0, 1fr) 130px; align-content: start; align-items: center; }
body.expo-app .expo-sim-controls :where(input[type="range"], #sim-error, .expo-actions) { grid-column: 1 / -1; }
body.expo-app .expo-sim-controls .expo-actions { margin-top: 0; gap: 8px; }
body.expo-app #sim-error:empty { display: none; }
body.expo-app .expo-simulator label { font-weight: 500; margin-bottom: 6px; }
body.expo-app .expo-simulator input[type="range"] { width: 100%; min-height: 44px; padding: 0; accent-color: var(--expo-accent); }
body.expo-app .expo-simulator input[type="number"] { max-width: 130px; font-family: var(--expo-mono-font); }
body.expo-app .expo-simulator :where(.expo-control-row, .expo-input-row) { display: flex; gap: 18px; align-items: center; }
body.expo-app .expo-simulator :where(.expo-simulator-result, .expo-simulator-output, .expo-output, .expo-sim-result) { display: flex; flex-direction: column; justify-content: center; padding: 26px; background: var(--expo-accent-soft); border-radius: 10px; }
body.expo-app #sim-ph { display: block; font: 500 clamp(56px, 8vw, 90px)/1.1 var(--expo-mono-font); letter-spacing: -.06em; color: var(--expo-accent); margin-block: 12px; }
body.expo-app .expo-simulator :where(.expo-model-note, small) { font-size: 13px; line-height: 1.55; color: var(--expo-muted); }
body.expo-app .expo-presets { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
body.expo-app :where(.expo-error, #sim-error) { color: var(--expo-danger); font-size: 14px; margin-top: 8px; }
body.expo-app [aria-invalid="true"] { border-color: var(--expo-danger); }
body.expo-app .expo-case-data { width: 100%; border-collapse: collapse; margin: 18px 0; font-size: 18px; }
body.expo-app .expo-case-data :where(th, td) { padding: 11px 14px; text-align: left; border-bottom: 1px solid var(--expo-border); }
body.expo-app .expo-case-data th { background: var(--expo-raised); font-weight: 600; }
body.expo-app .expo-case-data td { font-family: var(--expo-mono-font); }
body.expo-app .expo-case-data caption { color: var(--expo-muted); text-align: left; font: 400 13px/1.5 var(--expo-mono-font); margin-bottom: 9px; }
body.expo-app .expo-case fieldset { min-width: 0; border: 0; margin: 0; padding: 0; }
body.expo-app .expo-case legend { padding: 0; font-weight: 600; line-height: 1.3; }
body.expo-app .expo-case .expo-small { margin-top: 12px; }
body.expo-app [data-case-status] { width: 100%; color: var(--expo-muted); font-size: 14px; line-height: 1.4; }
body.expo-app [data-case-status]:empty { display: none; }
body.expo-app .expo-choices { display: grid; gap: 10px; margin: 18px 0; }
body.expo-app .expo-choices label { display: flex; align-items: start; gap: 12px; min-height: 48px; padding: 12px 15px; border: 1px solid var(--expo-border); border-radius: 6px; font-size: 17px; line-height: 1.5; background: var(--expo-surface); }
body.expo-app .expo-choices label:has(input:checked) { border-color: var(--expo-accent); background: var(--expo-accent-soft); }
body.expo-app .expo-choices input { flex: 0 0 auto; width: 20px; height: 20px; margin: 3px 0 0; accent-color: var(--expo-accent); }
body.expo-app .expo-feedback { border-left: 3px solid var(--expo-accent); background: var(--expo-accent-soft); padding: 15px 20px; margin-top: 18px; font-size: 16px; line-height: 1.55; }
body.expo-app .expo-feedback[data-correct="false"] { border-color: var(--expo-warning); }
body.expo-app .expo-case-steps { display: grid; gap: 18px; margin-top: 22px; }
body.expo-app .expo-case-steps article { padding-left: 22px; border-left: 2px solid var(--expo-accent); }
body.expo-app .expo-case-steps h3 { font-size: 20px; margin-bottom: 9px; }
body.expo-app .expo-case-steps p { color: var(--expo-muted); }
body.expo-app .expo-quiz fieldset { min-width: 0; padding: 24px 0; margin: 0; border: 0; border-bottom: 1px solid var(--expo-border); }
body.expo-app .expo-quiz legend { font-size: 21px; font-weight: 600; padding: 0; max-width: 100%; }
body.expo-app .expo-quiz-navigation { display: flex; gap: 15px; align-items: center; margin-top: 15px; }
body.expo-app [data-quiz-position] { color: var(--expo-muted); font: 400 14px/1.4 var(--expo-mono-font); }

/* Native dialogs keep browser focus trapping and Escape support. */
body.expo-app dialog.expo-dialog { width: min(720px, calc(100% - 32px)); max-height: calc(100dvh - 48px); padding: 28px; border: 1px solid var(--expo-border); border-radius: 12px; color: var(--expo-text); background: var(--expo-surface); box-shadow: var(--expo-shadow); overflow: auto; }
body.expo-app dialog.expo-dialog::backdrop { background: rgb(4 10 20 / 78%); }
body.expo-app .expo-dialog h2 { font-size: 27px; margin: 0 44px 22px 0; }
body.expo-app .expo-dialog :where(.expo-dialog-close, [data-dialog-close]) { float: right; min-width: 44px; min-height: 44px; margin: -8px -8px 8px 12px; }
body.expo-app .expo-dialog ol { padding-left: 1.5em; }
body.expo-app .expo-dialog li { margin: 3px 0; }
body.expo-app .expo-dialog li a { display: inline-flex; align-items: center; min-height: 44px; padding-block: 8px; }
body.expo-app .expo-dialog :where(canvas, #expo-qr) { display: block; width: min(240px, 100%); height: auto; padding: 14px; margin: 20px auto; background: white; }
body.expo-app :where(.expo-dialog[data-dialog="figure"], #expo-figure-dialog, .expo-dialog-figure) { width: min(1200px, calc(100% - 32px)); }
body.expo-app .expo-dialog img { width: 100%; max-height: calc(100dvh - 180px); object-fit: contain; background: #f6f9fb; border-radius: 6px; }
body.expo-app .expo-dialog figcaption { margin-top: 14px; font-size: 14px; color: var(--expo-muted); }

body.expo-app[data-mode="estudiar"] #expo-deck { display: block; width: min(1200px, calc(100% - 64px)); height: auto; margin-inline: auto; overflow: visible; }
body.expo-app[data-mode="estudiar"] #expo-deck > .slides { position: static; width: auto !important; height: auto !important; transform: none !important; perspective: none; text-align: left; }
body.expo-app[data-mode="estudiar"] #expo-deck .expo-scene { position: relative; display: block !important; width: auto; height: auto; min-height: 0; padding: 60px 0; border-bottom: 1px solid var(--expo-border); opacity: 1 !important; visibility: visible !important; transform: none !important; }
body.expo-app[data-mode="estudiar"] .expo-present-only { display: none !important; }
body.expo-app[data-mode="estudiar"] .expo-navigation { position: sticky; bottom: 0; z-index: 25; }
body.expo-app[data-mode="estudiar"] .fragment { opacity: 1 !important; visibility: visible !important; transform: none !important; }

body.expo-app[data-mode="presentar"] { height: 100dvh; overflow: hidden; }
body.expo-app[data-mode="presentar"] :where(.expo-site-header, .expo-footer, .expo-study-only) { display: none !important; }
body.expo-app[data-mode="presentar"] .expo-toolbar { position: fixed; inset: 0 0 auto; height: auto; }
body.expo-app[data-mode="presentar"] #expo-deck { position: fixed; left: 0; right: 0; top: var(--expo-toolbar-height); bottom: var(--expo-navigation-height); width: 100%; height: calc(100dvh - var(--expo-toolbar-height) - var(--expo-navigation-height)); font: 400 32px/1.35 var(--expo-body-font); }
body.expo-app[data-mode="presentar"] #expo-deck .expo-scene { height: 720px; padding: 36px 48px; background: var(--expo-bg); }
body.expo-app[data-mode="presentar"] .expo-scene-heading { margin-bottom: 24px; }
body.expo-app[data-mode="presentar"] .expo-scene-heading h2 { font-size: 52px; line-height: 1.1; }
body.expo-app[data-mode="presentar"] .expo-eyebrow { font-size: 16px; margin-bottom: 14px; }
body.expo-app[data-mode="presentar"] .expo-lead { font-size: 28px; line-height: 1.3; margin-top: 16px; }
body.expo-app[data-mode="presentar"] .expo-scene-grid { gap: 36px; }
body.expo-app[data-mode="presentar"] .expo-points li { margin-bottom: .65em; }
body.expo-app[data-mode="presentar"] .expo-figure img { max-height: 270px; }
body.expo-app[data-mode="presentar"] .expo-figure figcaption { font-size: 16px; line-height: 1.4; }
body.expo-app[data-mode="presentar"] .expo-sources { font-size: 16px; line-height: 1.4; margin-top: 18px; }
body.expo-app[data-mode="presentar"] .expo-comparison { gap: 30px; }
body.expo-app[data-mode="presentar"] .expo-comparison h3 { font-size: 34px; }
body.expo-app[data-mode="presentar"] .expo-comparison article { padding: 24px; }
body.expo-app[data-mode="presentar"] .expo-comparison p { font-size: 30px; }
body.expo-app[data-mode="presentar"] .expo-process { gap: 22px; }
body.expo-app[data-mode="presentar"] .expo-process li::before { font-size: 25px; }
body.expo-app[data-mode="presentar"] .expo-equation { font-size: 32px; padding: 18px 22px; margin-block: 18px; }
body.expo-app[data-mode="presentar"] .expo-button { font-size: 18px; min-height: 48px; }
body.expo-app[data-mode="presentar"] .expo-toolbar .expo-button, body.expo-app[data-mode="presentar"] .expo-navigation .expo-button { font-size: 13px; min-height: 44px; }
body.expo-app[data-mode="presentar"] #expo-deck .expo-scene[data-layout="cover"] { padding-block: 32px; }
body.expo-app[data-mode="presentar"] .expo-scene[data-layout="cover"] h2 { font-size: 64px; max-width: none; }
body.expo-app[data-mode="presentar"] .expo-scene[data-layout="cover"] .expo-lead { font-size: 28px; max-width: none; }
body.expo-app[data-mode="presentar"] .expo-scene[data-layout="cover"] .expo-scene-heading { margin-bottom: 20px; }
body.expo-app[data-mode="presentar"] .expo-scene[data-layout="cover"] .expo-scene-grid { align-items: center; }
body.expo-app[data-mode="presentar"] .expo-scene[data-layout="cover"] .expo-figure img { max-height: 220px; }
body.expo-app[data-mode="presentar"] .expo-scene[data-layout="cover"] .expo-figure figcaption { display: none; }
body.expo-app[data-mode="presentar"] .expo-scene[data-layout="cover"] .expo-author { font-size: 18px; line-height: 1.4; margin: 12px 0 10px; }
body.expo-app[data-mode="presentar"] .expo-scene[data-layout="cover"] .expo-author br { display: none; }
body.expo-app[data-mode="presentar"] .expo-scene[data-layout="cover"] .expo-author span::before { content: " · "; }
body.expo-app[data-mode="presentar"] .expo-simulator { gap: 36px; font-size: 27px; }
body.expo-app[data-mode="presentar"] .expo-simulator :where(.expo-simulator-controls, .expo-controls, .expo-sim-controls) { gap: 12px; }
body.expo-app[data-mode="presentar"] .expo-small { font-size: 17px; }
body.expo-app[data-mode="presentar"] .expo-caution { font-size: 17px; line-height: 1.4; margin-top: 16px; }
body.expo-app[data-mode="presentar"] .expo-sim-result .expo-equation { font-size: 26px; padding: 0; border: 0; }
body.expo-app[data-mode="presentar"] #sim-ph { font-size: 96px; }
body.expo-app[data-mode="presentar"] .expo-simulator :where(.expo-model-note, small) { font-size: 17px; }
body.expo-app[data-mode="presentar"] .expo-case-data { font-size: 26px; margin-block: 12px; }
body.expo-app[data-mode="presentar"] .expo-case-data :where(th, td) { padding: 9px 14px; }
body.expo-app[data-mode="presentar"] .expo-case-data caption { font-size: 16px; }
body.expo-app[data-mode="presentar"] .expo-case .expo-actions { gap: 8px; margin-top: 16px; }
body.expo-app[data-mode="presentar"] .expo-case [data-case-status] { font-size: 16px; }
body.expo-app[data-mode="presentar"] .expo-choices label { font-size: 27px; padding: 12px 16px; line-height: 1.3; }
body.expo-app[data-mode="presentar"] .expo-choices input { margin-top: 5px; width: 23px; height: 23px; }
body.expo-app[data-mode="presentar"] .expo-feedback { font-size: 23px; line-height: 1.35; }
body.expo-app[data-mode="presentar"] .expo-case-steps h3 { font-size: 28px; }
body.expo-app[data-mode="presentar"] .expo-case-steps p { font-size: 27px; }
/* Six-row cases keep their data, question and citations inside the slide. */
@media screen {
body.expo-app[data-mode="presentar"] #expo-deck .expo-scene[data-layout="case"] { padding-block: 32px; }
body.expo-app[data-mode="presentar"] .expo-scene[data-layout="case"] .expo-scene-heading { margin-bottom: 14px; }
body.expo-app[data-mode="presentar"] .expo-scene[data-layout="case"] .expo-eyebrow { margin-bottom: 10px; }
body.expo-app[data-mode="presentar"] .expo-scene[data-layout="case"] .expo-lead { margin-top: 10px; }
body.expo-app[data-mode="presentar"] .expo-scene[data-layout="case"] .expo-sources { margin-top: 8px; }
body.expo-app[data-mode="presentar"] .expo-case { font-size: 28px; line-height: 1.3; }
body.expo-app[data-mode="presentar"] .expo-case .expo-small { margin-top: 8px; line-height: 1.35; }
body.expo-app[data-mode="presentar"] .expo-case .expo-case-data { line-height: 1.3; margin-block: 8px; }
body.expo-app[data-mode="presentar"] .expo-case .expo-case-data :where(th, td) { padding: 6px 14px; }
body.expo-app[data-mode="presentar"] .expo-case .expo-case-data caption { margin-bottom: 6px; line-height: 1.3; }
body.expo-app[data-mode="presentar"] .expo-case .expo-choices { gap: 8px; margin-block: 12px; }
body.expo-app[data-mode="presentar"] .expo-case .expo-choices label { min-height: 44px; padding: 8px 12px; font-size: 28px; }
body.expo-app[data-mode="presentar"] .expo-case .expo-actions { gap: 6px; margin-top: 12px; }
body.expo-app[data-mode="presentar"] .expo-case .expo-button { min-height: 44px; padding: 8px 10px; font-size: 16px; }
body.expo-app[data-mode="presentar"] .expo-case .expo-feedback { padding: 10px 14px; margin-top: 10px; line-height: 1.3; }
body.expo-app[data-mode="presentar"] .expo-case [data-case-status] { padding: 8px 12px; margin-top: 4px; }
body.expo-app[data-mode="presentar"] .expo-case .expo-case-steps { gap: 12px; margin-top: 14px; }
body.expo-app[data-mode="presentar"] .expo-case .expo-case-steps article { padding-left: 18px; }
body.expo-app[data-mode="presentar"] .expo-case .expo-case-steps h3 { margin-bottom: 6px; line-height: 1.25; }
body.expo-app[data-mode="presentar"] .expo-case .expo-case-steps p { font-size: 28px; line-height: 1.3; }
}
body.expo-app[data-mode="presentar"] .expo-quiz legend { font-size: 30px; }
body.expo-app[data-mode="presentar"] .expo-quiz fieldset { padding: 8px 0 16px; }
body.expo-app[data-mode="presentar"] .expo-references { max-height: 420px; overflow-y: auto; padding-right: 16px; }
body.expo-app[data-mode="presentar"] .expo-references li { font-size: 21px; line-height: 1.4; }
body.expo-app[data-mode="presentar"] .expo-navigation { position: fixed; inset: auto 0 0; height: var(--expo-navigation-height); z-index: 30; }
body.expo-app[data-receiver="true"] :where(.expo-toolbar, .expo-navigation, .expo-site-header, .expo-skip, .expo-study-index) { display: none !important; }
body.expo-app[data-receiver="true"] #expo-deck { inset: 0; width: 100vw; height: 100dvh; }

@media (max-width: 900px) {
  body.expo-app .expo-wrap, body.expo-app[data-mode="estudiar"] #expo-deck, body.expo-app .expo-study-index { width: calc(100% - 40px); }
  body.expo-app .expo-site-header { min-height: 72px; padding-inline: 20px; }
  body.expo-app .expo-site-header > .expo-wrap { min-height: 72px; }
  body.expo-app .expo-site-header nav { gap: 4px 12px; font-size: 12px; }
  body.expo-app .expo-catalog { grid-template-columns: 1fr; }
  body.expo-app .expo-card:only-child { grid-template-columns: 1fr; }
  body.expo-app .expo-card:only-child figure img { max-height: 400px; }
  body.expo-app[data-mode="estudiar"] .expo-scene-grid { grid-template-columns: 1fr; gap: 28px; }
  body.expo-app .expo-toolbar { padding-inline: 12px; gap: 8px; }
  body.expo-app .expo-toolbar-title { display: none; }
  body.expo-app .expo-toolbar .expo-button { padding-inline: 9px; font-size: 12px; }
}
@media (max-width: 600px) {
  body.expo-app { font-size: 16px; --expo-toolbar-height: 112px; }
  body.expo-app .expo-site-header > .expo-wrap { padding-block: 12px; align-items: flex-start; gap: 15px; }
  body.expo-app .expo-site-header nav { justify-content: flex-end; }
  body.expo-app .expo-site-header { gap: 10px; }
  body.expo-app .expo-site-header nav { gap: 4px 10px; }
  body.expo-app .expo-site-header > .expo-button { font-size: 12px; padding-inline: 10px; }
  body.expo-app .expo-brand { font-size: 24px; }
  body.expo-app .expo-hero { padding-top: 40px; }
  body.expo-app .expo-hero h1 { font-size: 39px; }
  body.expo-app .expo-catalog-tools { grid-template-columns: 1fr; gap: 16px; }
  body.expo-app .expo-card-copy, body.expo-app .expo-card:only-child .expo-card-copy { padding: 24px; }
  body.expo-app .expo-actions { gap: 10px; }
  body.expo-app .expo-actions .expo-button { flex-grow: 1; }
  body.expo-app .expo-toolbar { flex-wrap: wrap; justify-content: center; align-content: center; min-height: 112px; }
  body.expo-app .expo-toolbar > :where(.expo-toolbar-actions, .expo-toolbar-group) { justify-content: center; }
  body.expo-app .expo-toolbar > .expo-actions { justify-content: center; }
  body.expo-app .expo-toolbar .expo-back { font-size: 12px; }
  body.expo-app .expo-toolbar .expo-present-only { flex-wrap: wrap; justify-content: center; }
  body.expo-app .expo-navigation { padding-inline: 10px; gap: 10px; }
  body.expo-app .expo-navigation .expo-button { padding-inline: 10px; }
  body.expo-app :where(.expo-progress, #expo-progress) { width: 50px; }
  body.expo-app[data-mode="estudiar"] .expo-scene { padding-block: 42px; scroll-margin-top: 130px; }
  body.expo-app[data-mode="estudiar"] :where(.expo-comparison, .expo-simulator) { grid-template-columns: 1fr; gap: 22px; }
  body.expo-app[data-mode="estudiar"] .expo-comparison article { padding: 22px; }
  body.expo-app .expo-study-index ol { columns: 1; }
  body.expo-app .expo-equation { font-size: 19px; padding: 15px; }
  body.expo-app .expo-case-data { font-size: 14px; }
  body.expo-app .expo-case-data :where(th, td) { padding: 9px 7px; }
  body.expo-app .expo-process li { padding-left: 42px; }
  body.expo-app dialog.expo-dialog { padding: 22px; max-height: calc(100dvh - 32px); }
  body.expo-app .expo-dialog h2 { font-size: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  body.expo-app *, body.expo-app *::before, body.expo-app *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
  body.expo-app, body.expo-app[data-mode="presentar"] { --expo-bg: #fff; --expo-surface: #fff; --expo-raised: #f0f3f5; --expo-text: #172330; --expo-muted: #394e60; --expo-accent: #08677b; --expo-accent-soft: #eef7f8; --expo-border: #b5c3cf; height: auto !important; overflow: visible !important; background: white !important; color: #172330 !important; font-size: 11pt; }
  body.expo-app[data-subject="genetica"], body.expo-app[data-subject="genetica"][data-theme] { --expo-bg: #fff; --expo-surface: #fff; --expo-text: #172330; --expo-muted: #394e60; --expo-accent: #65459f; --expo-accent-soft: #ede8f4; --expo-border: #a7a0b5; }
  body.expo-app :where(.expo-site-header, .expo-toolbar, .expo-navigation, .expo-footer, .skip-link, .expo-skip, .expo-present-only, dialog, button, .expo-figure > button, .expo-simulator input, .expo-simulator select, .expo-quiz-navigation) { display: none !important; }
  body.expo-app #expo-deck, body.expo-app[data-mode="presentar"] #expo-deck, body.expo-app[data-mode="estudiar"] #expo-deck { position: static !important; width: 100% !important; height: auto !important; margin: 0 !important; overflow: visible !important; font: 400 11pt/1.45 var(--expo-body-font) !important; }
  body.expo-app #expo-deck > .slides { position: static !important; width: 100% !important; height: auto !important; transform: none !important; perspective: none !important; text-align: left !important; }
  body.expo-app #expo-deck .expo-scene { position: static !important; display: block !important; width: 100% !important; height: auto !important; min-height: 0 !important; padding: 16pt 0 !important; opacity: 1 !important; visibility: visible !important; transform: none !important; break-before: page; border: none !important; }
  body.expo-app #expo-deck .expo-scene:first-child { break-before: auto; }
  body.expo-app #expo-deck .expo-scene h2 { font-size: 25pt !important; }
  body.expo-app #expo-deck .expo-scene h3 { font-size: 15pt !important; }
  body.expo-app #expo-deck .expo-eyebrow { font-size: 9pt; }
  body.expo-app #expo-deck :where(.expo-lead, .expo-comparison p, .expo-case-steps p, .expo-choices label, .expo-quiz legend, .expo-simulator, .expo-feedback) { font-size: 11pt !important; }
  body.expo-app #expo-deck :where(.expo-sources, .expo-figure figcaption, .expo-references li) { font-size: 9pt !important; }
  body.expo-app #expo-deck .expo-equation { font-size: 16pt !important; }
  body.expo-app #expo-deck .expo-scene-grid { gap: 24pt; }
  body.expo-app #expo-deck .expo-figure img { max-height: 250pt; }
  body.expo-app #expo-deck .expo-figure figcaption { display: block !important; }
  body.expo-app #expo-deck .expo-study-only { display: block !important; padding-top: 14pt; margin-top: 18pt; }
  body.expo-app #expo-deck .expo-references { max-height: none; overflow: visible; }
  body.expo-app #expo-deck .expo-case-data { font-size: 11pt; }
  body.expo-app #sim-ph { font-size: 44pt !important; }
  body.expo-app :where(.fragment, .expo-quiz fieldset, .expo-case-steps article, .expo-feedback) { opacity: 1 !important; visibility: visible !important; transform: none !important; }
  body.expo-app :where(figure, .expo-comparison article, fieldset, .expo-case-steps article) { break-inside: avoid; }
  body.expo-app a { color: #08677b; text-decoration: underline; }
}

/* Static study content remains readable when scripting is disabled. */
html:not(.expo-js) body.expo-app button,
html:not(.expo-js) body.expo-app [data-catalog-search],
html:not(.expo-js) body.expo-app .expo-toolbar { display: none; }

/* Visual chapter: original mechanisms, a quiet particle field and readable labs. */
html.expo-js[data-theme="dark"], html.expo-js[data-theme="dark"].reveal-viewport { background: #0b1220; }
html.expo-js[data-theme="light"], html.expo-js[data-theme="light"].reveal-viewport { background: #f8fafc; }
body.expo-app.reveal-viewport, body.expo-app #expo-deck.reveal { background: var(--expo-bg); }
body.expo-app { --hero-cyan: #79e0ee; --hero-copper: #e9ad82; --hero-wash: #102a3b; }
body.expo-app[data-theme="light"] { --hero-cyan: #086e83; --hero-copper: #a9572e; --hero-wash: #eaf5f6; }
body.expo-app .expo-mode-switch { display: inline-flex; padding: 3px; gap: 3px; border: 1px solid var(--expo-border); border-radius: 8px; background: var(--expo-surface); }
body.expo-app .expo-mode-switch .expo-button { border-color: transparent; background: transparent; min-height: 40px; }
body.expo-app .expo-mode-switch [aria-current="true"] { background: var(--expo-accent-soft); color: var(--expo-accent); border-color: var(--expo-accent); }
body.expo-app .expo-cover-layout { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.3fr); align-items: center; gap: 44px; }
body.expo-app .expo-cover-copy { min-width: 0; }
body.expo-app .expo-cover-copy .expo-points { padding: 0; list-style: none; }
body.expo-app .expo-cover-copy .expo-points li:first-child { font-size: clamp(25px, 2.4vw, 34px); font-weight: 500; letter-spacing: -.035em; line-height: 1.35; }
body.expo-app .expo-cover-copy .expo-points li + li { color: var(--expo-muted); font-size: 19px; line-height: 1.55; margin-top: 20px; }
body.expo-app .expo-hero-visual { --hero-tilt-x: 0deg; --hero-tilt-y: 0deg; min-width: 0; border: 1px solid var(--expo-border); border-radius: 16px; overflow: clip; position: relative; isolation: isolate; background: linear-gradient(145deg, var(--expo-surface), var(--hero-wash)); box-shadow: 0 24px 60px rgb(0 0 0 / 12%); }
body.expo-app .expo-hero-visual-top { display: flex; gap: 14px; align-items: center; justify-content: space-between; padding: 16px 20px 0; color: var(--expo-muted); font: 400 11px/1.4 var(--expo-mono-font); }
body.expo-app .expo-hero-live { color: var(--expo-accent); white-space: nowrap; font-size: 9px; letter-spacing: .09em; }
body.expo-app .expo-hero-stage { position: relative; width: 100%; aspect-ratio: 900 / 430; perspective: 1100px; transform-style: preserve-3d; }
body.expo-app .expo-hero-type { position: absolute; right: 11%; top: -16%; color: var(--hero-cyan); opacity: .055; font: 600 clamp(140px, 25vw, 280px)/1 var(--expo-body-font); letter-spacing: -.09em; pointer-events: none; user-select: none; }
body.expo-app .expo-hero-field, body.expo-app .expo-hero-svg { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotateX(var(--hero-tilt-x)) rotateY(var(--hero-tilt-y)); transform-origin: 50% 54%; transition: transform 200ms ease-out; }
body.expo-app .expo-hero-field { pointer-events: none; z-index: 2; opacity: .9; }
body.expo-app .expo-hero-svg { overflow: visible; z-index: 1; }
body.expo-app .expo-hero-orbits { fill: none; stroke: var(--hero-cyan); stroke-width: .8; opacity: .13; }
body.expo-app .expo-hero-orbits path { stroke-dasharray: 2 9; }
body.expo-app .expo-hero-layer { opacity: 0; transition: opacity 360ms ease; }
body.expo-app .expo-hero-visual[data-stage="0"] [data-hero-layer="0"], body.expo-app .expo-hero-visual[data-stage="1"] [data-hero-layer="1"], body.expo-app .expo-hero-visual[data-stage="2"] [data-hero-layer="2"] { opacity: 1; }
body.expo-app .hero-organism { fill: url(#hero-organism-fill); stroke: var(--hero-cyan); stroke-width: 1.8; }
body.expo-app .hero-kidney { fill: url(#hero-kidney-fill); stroke: var(--hero-copper); stroke-width: 1.8; }
body.expo-app .hero-connection { fill: none; stroke: var(--hero-cyan); stroke-width: 1.7; stroke-dasharray: 4 6; }
body.expo-app .hero-lung-branch, body.expo-app .hero-kidney-line { fill: none; stroke: var(--hero-cyan); stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; }
body.expo-app .hero-kidney-line { stroke: var(--hero-copper); stroke-width: 3; }
body.expo-app .hero-guide { fill: none; stroke: var(--expo-muted); stroke-width: 1.2; opacity: .6; }
body.expo-app .hero-node { fill: var(--expo-bg); stroke: var(--hero-cyan); stroke-width: 1.4; }
body.expo-app .hero-marker { fill: var(--hero-cyan); }
body.expo-app .hero-marker-copper { fill: var(--hero-copper); }
body.expo-app .hero-reservoir { fill: url(#hero-organism-fill); stroke: var(--hero-cyan); stroke-width: 1.5; }
body.expo-app .hero-reservoir-copper { fill: url(#hero-kidney-fill); stroke: var(--hero-copper); }
body.expo-app .hero-symbol { fill: var(--expo-text); font: 500 38px var(--expo-body-font); letter-spacing: -.04em; }
body.expo-app .hero-symbol-small { font-size: 29px; }
body.expo-app .hero-label { fill: var(--expo-text); font: 500 25px var(--expo-body-font); letter-spacing: -.02em; }
body.expo-app .hero-detail { fill: var(--expo-muted); font: 400 17px var(--expo-body-font); }
body.expo-app .hero-formula { fill: var(--hero-cyan); font: 500 42px var(--expo-body-font); letter-spacing: -.04em; }
body.expo-app .hero-formula-copper { fill: var(--hero-copper); }
body.expo-app .expo-hero-controls { display: flex; gap: 8px; align-items: center; padding: 0 18px; }
body.expo-app .expo-hero-tabs { display: flex; flex: 1; border: 1px solid var(--expo-border); border-radius: 8px; padding: 3px; gap: 3px; background: var(--expo-bg); }
body.expo-app .expo-hero-tabs button, body.expo-app .expo-hero-motion { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 8px 9px; font-size: 12px; border: 1px solid transparent; border-radius: 5px; background: transparent; color: var(--expo-muted); }
body.expo-app .expo-hero-tabs button > span { color: var(--expo-accent); font: 400 10px/1 var(--expo-mono-font); }
body.expo-app .expo-hero-tabs button[aria-pressed="true"] { background: var(--expo-accent-soft); color: var(--expo-text); border-color: var(--expo-accent); }
body.expo-app .expo-hero-motion { flex: 0 0 auto; padding-inline: 10px; border-color: var(--expo-border); }
body.expo-app .expo-hero-caption { color: var(--expo-text); font-size: 13px; line-height: 1.5; margin: 13px 20px 0; min-height: 3em; }
body.expo-app .expo-hero-disclaimer { color: var(--expo-muted); font-size: 10px; line-height: 1.4; margin: 6px 20px 16px; }
body.expo-app .expo-hero-visual[data-motion="paused"] .expo-hero-layer { transition: none; }

body.expo-app .expo-visual-lab { min-width: 0; padding: 26px; border: 1px solid var(--expo-border); border-radius: 14px; background: linear-gradient(135deg, var(--expo-surface), var(--expo-bg)); }
body.expo-app .expo-lab-stage { min-width: 0; display: flex; justify-content: center; align-items: center; }
body.expo-app .expo-lab-svg { display: block; width: 100%; height: auto; max-height: 340px; overflow: visible; }
body.expo-app .expo-lab-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 15px; padding: 0; margin: 0; border: 0; min-width: 0; }
body.expo-app .expo-lab-controls label { color: var(--expo-text); font-size: 15px; }
body.expo-app .expo-lab-controls > label:has(input[type="radio"]) { display: flex; gap: 8px; align-items: center; padding: 10px 14px; min-height: 44px; background: var(--expo-bg); border: 1px solid var(--expo-border); border-radius: 6px; }
body.expo-app .expo-lab-controls > label:has(input:checked) { background: var(--expo-accent-soft); border-color: var(--expo-accent); }
body.expo-app .expo-lab-controls input[type="radio"] { accent-color: var(--expo-accent); width: 17px; height: 17px; margin: 0; }
body.expo-app .expo-lab-controls input[type="range"] { min-width: 180px; flex: 1; width: 100%; height: 44px; accent-color: var(--expo-accent); }
body.expo-app .expo-lab-controls legend { font-size: 13px; line-height: 1.4; color: var(--expo-muted); margin-bottom: 12px; padding: 0; }
body.expo-app .expo-lab-controls output { margin-left: 8px; color: var(--expo-accent); font-family: var(--expo-mono-font); }
body.expo-app .expo-lab-controls.expo-actions { margin-top: 20px; }
body.expo-app .expo-lab-copy { color: var(--expo-muted); font-size: 18px; line-height: 1.5; }
body.expo-app .expo-lab-title { font-size: 24px; margin-bottom: 10px; }
body.expo-app .expo-lab-note, body.expo-app .expo-lab-legend { font-size: 13px; line-height: 1.5; color: var(--expo-muted); }
body.expo-app .expo-lab-note { margin-top: 14px; }
body.expo-app .expo-lab-readout { font-size: 17px; color: var(--expo-muted); }
body.expo-app .expo-lab-output { display: block; color: var(--expo-accent); font: 500 40px/1.2 var(--expo-mono-font); margin: 10px 0; letter-spacing: -.04em; }
body.expo-app .lab-surface { fill: var(--hero-wash); stroke: var(--expo-border); stroke-width: 1.5; }
body.expo-app .lab-line { fill: none; color: var(--expo-accent); stroke: currentColor; }
body.expo-app .lab-label { fill: var(--expo-text); font: 500 26px var(--expo-body-font); }
body.expo-app .lab-muted { fill: var(--expo-muted); font: 400 17px var(--expo-body-font); }
body.expo-app .lab-accent { fill: var(--expo-accent); opacity: .75; }
body.expo-app .lab-flow { color: var(--hero-copper); }
body.expo-app .lab-lung { transform-box: fill-box; transform-origin: 50% 10%; }
body.expo-app [data-visual-lab="pulmonary"][data-motion="running"] .lab-lung { animation: expo-breathe var(--breath-duration, 4s) ease-in-out infinite; }
@keyframes expo-breathe { 0%,100% { transform: scale(.97); } 50% { transform: scale(1.025); } }
body.expo-app [data-direction="right"] .lab-buffer-forward, body.expo-app [data-direction="left"] .lab-buffer-reverse { color: var(--hero-copper); stroke-width: 5; }
body.expo-app [data-direction="right"] .lab-buffer-reverse, body.expo-app [data-direction="left"] .lab-buffer-forward { opacity: .22; }
body.expo-app .lab-renal-path { opacity: .15; transition: opacity 200ms ease; }
body.expo-app [data-renal-state="0"] [data-renal-flow="0"], body.expo-app [data-renal-state="1"] [data-renal-flow="1"], body.expo-app [data-renal-state="2"] [data-renal-flow="2"] { opacity: 1; color: var(--hero-copper); }
body.expo-app [data-visual-lab="pulmonary"] { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); column-gap: 30px; }
body.expo-app [data-visual-lab="pulmonary"] > .expo-lab-controls:first-child { grid-column: 1 / -1; margin-bottom: 16px; }
body.expo-app [data-visual-lab="pulmonary"] > .expo-lab-stage { grid-column: 1; grid-row: 2 / span 4; }
body.expo-app [data-visual-lab="pulmonary"] > :where(.expo-lab-readout, .expo-lab-note, .expo-actions) { grid-column: 2; }
body.expo-app .expo-lab-context > .expo-scene-grid { margin-top: 20px; }
body.expo-app .expo-simulator-stage { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 24px; align-items: start; }
body.expo-app .expo-simulator-stage > .expo-simulator { grid-column: 1; grid-row: 1; gap: 20px; }
body.expo-app .expo-simulator-stage > .expo-phase-lab { grid-column: 2; grid-row: 1; }
body.expo-app .expo-simulator-stage > :where(.expo-caution, noscript) { grid-column: 1 / -1; }
body.expo-app .expo-phase-lab { padding: 20px 16px; }
body.expo-app .expo-phase-lab .expo-lab-readout { color: var(--expo-text); margin-top: 10px; }
body.expo-app .expo-phase-lab .expo-lab-legend { margin-top: 10px; }
body.expo-app .lab-grid { color: var(--expo-border); opacity: .4; stroke-width: .8; }
body.expo-app .lab-axis { color: var(--expo-muted); }
body.expo-app .lab-axis-label, body.expo-app .lab-axis-title { fill: var(--expo-muted); font: 400 19px var(--expo-body-font); }
body.expo-app .lab-axis-title { fill: var(--expo-text); font-size: 21px; }
body.expo-app .lab-isoph { color: var(--expo-accent); opacity: .64; }
body.expo-app .lab-isoph-0, body.expo-app .lab-isoph-1 { color: var(--hero-copper); }
body.expo-app .lab-isoph-3 { opacity: 1; }
body.expo-app .lab-isoph-3 path { stroke-width: 3; }
body.expo-app .lab-isoph-label { fill: currentColor; font: 500 19px var(--expo-mono-font); }
body.expo-app .lab-phase-guide { color: var(--expo-text); opacity: .7; }
body.expo-app .lab-phase-halo { fill: var(--expo-accent); opacity: .18; }
body.expo-app .lab-phase-marker { fill: var(--expo-text); stroke: var(--expo-bg); stroke-width: 2; }

body.expo-app[data-mode="presentar"] .expo-scene[data-layout="cover"] h2 { font-size: 56px; }
body.expo-app[data-mode="presentar"] .expo-cover-layout { grid-template-columns: minmax(0, .65fr) minmax(0, 1fr); gap: 36px; }
body.expo-app[data-mode="presentar"] .expo-cover-copy .expo-points li:first-child { font-size: 32px; }
body.expo-app[data-mode="presentar"] .expo-cover-copy .expo-points li + li { font-size: 28px; line-height: 1.35; margin-top: 18px; }
body.expo-app[data-mode="presentar"] .expo-cover-copy .expo-author { font-size: 18px; margin: 20px 0; }
body.expo-app[data-mode="presentar"] .expo-hero-stage { height: 240px; aspect-ratio: auto; }
body.expo-app[data-mode="presentar"] .expo-hero-visual-top { padding-top: 12px; font-size: 14px; }
body.expo-app[data-mode="presentar"] .expo-hero-live { font-size: 11px; }
body.expo-app[data-mode="presentar"] .expo-hero-tabs button { font-size: 16px; }
body.expo-app[data-mode="presentar"] .expo-hero-tabs button > span { font-size: 12px; }
body.expo-app[data-mode="presentar"] .expo-hero-motion { font-size: 14px; }
body.expo-app[data-mode="presentar"] .expo-hero-caption { font-size: 16px; min-height: 0; margin-top: 10px; }
body.expo-app[data-mode="presentar"] .expo-hero-disclaimer { font-size: 13px; margin-bottom: 12px; }
body.expo-app[data-mode="presentar"] .expo-visual-lab { padding: 16px 24px; }
body.expo-app[data-mode="presentar"] .expo-lab-svg { max-height: 232px; }
body.expo-app[data-mode="presentar"] .expo-lab-controls label { font-size: 21px; }
body.expo-app[data-mode="presentar"] .expo-lab-controls legend { font-size: 16px; margin-bottom: 8px; }
body.expo-app[data-mode="presentar"] .expo-lab-title { font-size: 28px; margin-bottom: 7px; }
body.expo-app[data-mode="presentar"] .expo-lab-copy { font-size: 27px; line-height: 1.32; }
body.expo-app[data-mode="presentar"] .expo-lab-note, body.expo-app[data-mode="presentar"] .expo-lab-legend { font-size: 16px; line-height: 1.4; }
body.expo-app[data-mode="presentar"] .expo-lab-readout { font-size: 24px; }
body.expo-app[data-mode="presentar"] .expo-lab-output { font-size: 46px; margin-block: 8px; }
body.expo-app[data-mode="presentar"] .expo-lab-controls.expo-actions { margin-top: 14px; }
body.expo-app[data-mode="presentar"] [data-visual-lab="buffer"] .expo-lab-svg { max-height: 180px; }
body.expo-app[data-mode="presentar"] [data-visual-lab="buffer"] .expo-lab-tabs legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; padding: 0; margin: 0; }
body.expo-app[data-mode="presentar"] [data-visual-lab="buffer"] .lab-muted { font-size: 21px; }
body.expo-app[data-mode="presentar"] [data-visual-lab="pulmonary"] .expo-lab-svg { max-height: 290px; }
body.expo-app[data-mode="presentar"] [data-visual-lab="renal"] { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); column-gap: 28px; }
body.expo-app[data-mode="presentar"] [data-visual-lab="renal"] > .expo-lab-tabs { grid-column: 1 / -1; margin-bottom: 14px; }
body.expo-app[data-mode="presentar"] [data-visual-lab="renal"] > .expo-lab-stage { grid-column: 1; grid-row: 2 / span 2; }
body.expo-app[data-mode="presentar"] [data-visual-lab="renal"] > [aria-live], body.expo-app[data-mode="presentar"] [data-visual-lab="renal"] > .expo-actions { grid-column: 2; }
body.expo-app[data-mode="presentar"] [data-visual-lab="renal"] .expo-lab-svg { max-height: 260px; }
body.expo-app[data-mode="presentar"] #expo-deck .expo-scene[data-layout="simulator"] { padding-block: 32px; }
body.expo-app[data-mode="presentar"] .expo-scene[data-layout="simulator"] .expo-scene-heading { margin-bottom: 14px; }
body.expo-app[data-mode="presentar"] .expo-scene[data-layout="simulator"] .expo-eyebrow { margin-bottom: 10px; }
body.expo-app[data-mode="presentar"] .expo-scene[data-layout="simulator"] .expo-lead { margin-top: 12px; }
body.expo-app[data-mode="presentar"] .expo-scene[data-layout="simulator"] .expo-sources { margin-top: 10px; }
body.expo-app[data-mode="presentar"] .expo-simulator-stage { grid-template-columns: minmax(0, .36fr) minmax(0, .2fr) minmax(0, .44fr); column-gap: 24px; row-gap: 8px; }
body.expo-app[data-mode="presentar"] .expo-simulator-stage > .expo-simulator { display: contents; }
body.expo-app[data-mode="presentar"] .expo-simulator-stage .expo-sim-controls { grid-column: 1; grid-row: 1 / span 2; grid-template-columns: minmax(0, 1fr) 110px; font-size: 28px; gap: 10px; padding: 14px; background: var(--expo-surface); border: 1px solid var(--expo-border); border-radius: 10px; }
body.expo-app[data-mode="presentar"] .expo-simulator-stage .expo-sim-controls .expo-actions .expo-button { font-size: 16px; padding: 8px 10px; min-height: 44px; }
body.expo-app[data-mode="presentar"] .expo-simulator-stage .expo-sim-result { display: contents; }
body.expo-app[data-mode="presentar"] .expo-simulator-stage .expo-sim-result > span { grid-column: 2; grid-row: 1; align-self: start; font-size: 17px; color: var(--expo-muted); }
body.expo-app[data-mode="presentar"] .expo-simulator-stage #sim-ph { grid-column: 2; grid-row: 1; align-self: start; padding-top: 24px; margin: 0; font-size: 68px; line-height: 1.1; }
body.expo-app[data-mode="presentar"] .expo-simulator-stage #sim-trend { grid-column: 3; grid-row: 1; align-self: center; color: var(--expo-text); font-size: 28px; line-height: 1.3; margin: 0; }
body.expo-app[data-mode="presentar"] .expo-simulator-stage > .expo-phase-lab { grid-column: 2 / 4; grid-row: 2; padding: 0; border: 0; background: none; }
body.expo-app[data-mode="presentar"] .expo-simulator-stage .expo-phase-lab .expo-lab-svg { max-height: 210px; }
body.expo-app[data-mode="presentar"] .expo-simulator-stage .expo-phase-lab .expo-lab-readout { font-size: 21px; line-height: 1.35; margin-top: 6px; text-align: center; }
body.expo-app[data-mode="presentar"] .expo-simulator-stage .expo-phase-lab .expo-lab-legend { display: none; }
body.expo-app[data-mode="presentar"] .expo-simulator-stage .expo-sim-result .expo-equation { grid-column: 1 / -1; grid-row: 3; font-size: 26px; line-height: 1.4; margin: 0; padding: 0; border: 0; background: none; }
body.expo-app[data-mode="presentar"] .expo-simulator-stage .expo-sim-result > .expo-small { grid-column: 1 / -1; grid-row: 4; font-size: 17px; line-height: 1.4; }
body.expo-app[data-mode="presentar"] .expo-simulator-stage > .expo-caution { grid-row: 5; margin-top: 0; }
body.expo-app[data-mode="presentar"] .expo-simulator-stage .lab-axis-label, body.expo-app[data-mode="presentar"] .expo-simulator-stage .lab-isoph-label { font-size: 29px; }
body.expo-app[data-mode="presentar"] .expo-simulator-stage .lab-axis-title { font-size: 28px; }

@media (max-width: 1100px) {
  body.expo-app[data-mode="estudiar"] .expo-cover-layout { grid-template-columns: minmax(0, .75fr) minmax(0, 1fr); gap: 28px; }
  body.expo-app[data-mode="estudiar"] .expo-simulator-stage { grid-template-columns: 1fr; }
  body.expo-app[data-mode="estudiar"] .expo-simulator-stage > .expo-phase-lab { grid-column: 1; grid-row: auto; }
  body.expo-app[data-mode="estudiar"] .expo-simulator-stage .expo-lab-svg { max-height: 370px; }
}
@media (max-width: 760px) {
  body.expo-app[data-mode="estudiar"] .expo-cover-layout { grid-template-columns: 1fr; }
  body.expo-app[data-mode="estudiar"] .expo-cover-copy .expo-points li:first-child { max-width: 26ch; }
  body.expo-app[data-mode="estudiar"] .expo-hero-visual { max-width: 640px; }
  body.expo-app[data-mode="estudiar"] .expo-hero-visual-top { font-size: 10px; padding-inline: 14px; }
  body.expo-app[data-mode="estudiar"] .expo-hero-controls { padding-inline: 10px; gap: 6px; }
  body.expo-app[data-mode="estudiar"] .expo-hero-tabs { gap: 1px; padding: 2px; }
  body.expo-app[data-mode="estudiar"] .expo-hero-tabs button { padding-inline: 5px; gap: 4px; font-size: 10px; }
  body.expo-app[data-mode="estudiar"] .expo-hero-tabs button > span { display: none; }
  body.expo-app[data-mode="estudiar"] .expo-hero-motion { font-size: 10px; padding-inline: 7px; }
  body.expo-app[data-mode="estudiar"] .expo-hero-caption { margin-inline: 14px; font-size: 12px; }
  body.expo-app[data-mode="estudiar"] .expo-hero-disclaimer { margin-inline: 14px; }
  body.expo-app[data-mode="estudiar"] .expo-visual-lab { padding: 18px 14px; }
  body.expo-app[data-mode="estudiar"] .expo-lab-controls { gap: 8px; }
  body.expo-app[data-mode="estudiar"] .expo-lab-controls label { font-size: 13px; }
  body.expo-app[data-mode="estudiar"] .expo-lab-controls > label:has(input[type="radio"]) { padding: 9px 10px; }
  body.expo-app[data-mode="estudiar"] [data-visual-lab="pulmonary"] { grid-template-columns: 1fr; }
  body.expo-app[data-mode="estudiar"] [data-visual-lab="pulmonary"] > :where(.expo-lab-stage, .expo-lab-readout, .expo-lab-note, .expo-actions) { grid-column: 1; grid-row: auto; }
  body.expo-app[data-mode="estudiar"] .expo-lab-copy { font-size: 17px; }
  body.expo-app[data-mode="estudiar"] .expo-lab-title { font-size: 22px; }
  body.expo-app[data-mode="estudiar"] .expo-lab-output { font-size: 37px; }
  body.expo-app .expo-mode-switch .expo-button { font-size: 12px; padding-inline: 9px; }
}
@media (prefers-reduced-motion: reduce) {
  body.expo-app .expo-hero-field { display: none; }
  body.expo-app .expo-hero-svg { transform: none !important; }
  body.expo-app .lab-lung { animation: none !important; transform: none !important; }
}
@media print {
  body.expo-app .expo-hero-field, body.expo-app .expo-hero-controls, body.expo-app .expo-hero-live { display: none !important; }
  body.expo-app .expo-hero-svg { transform: none !important; }
  body.expo-app .expo-hero-type { display: none; }
  body.expo-app .expo-hero-visual { --hero-cyan: #086e83; --hero-copper: #a9572e; --hero-wash: #eaf5f6; background: white; box-shadow: none; break-inside: avoid; }
  body.expo-app .expo-hero-stage { height: auto !important; aspect-ratio: 900 / 430; }
  body.expo-app .expo-hero-caption { font-size: 10pt !important; }
  body.expo-app .expo-hero-disclaimer { font-size: 8pt !important; }
  body.expo-app .expo-cover-layout { grid-template-columns: 1fr 1fr !important; gap: 20pt !important; }
  body.expo-app .expo-cover-copy .expo-points li { font-size: 12pt !important; }
  body.expo-app .expo-visual-lab { padding: 12pt !important; background: white !important; box-shadow: none; break-inside: avoid; }
  body.expo-app .expo-lab-controls { display: none; }
  body.expo-app .expo-lab-svg { max-height: 200pt !important; }
  body.expo-app .lab-lung { animation: none !important; transform: none !important; }
  body.expo-app .expo-lab-copy, body.expo-app .expo-lab-readout { font-size: 11pt !important; }
  body.expo-app .expo-lab-note, body.expo-app .expo-lab-legend { font-size: 9pt !important; }
  body.expo-app .expo-simulator-stage { display: block !important; }
  body.expo-app .expo-simulator-stage > .expo-simulator { display: grid !important; }
  body.expo-app .expo-simulator-stage .expo-phase-lab { margin-top: 18pt; }
  body.expo-app .expo-phase-lab .expo-lab-svg { max-height: 220pt !important; }
}

/* Physiology questions pair a complete case with one answer at a time. */
body.expo-app[data-subject="fisiopatologia"] .expo-quiz[data-quiz-cases] [data-question] { scroll-margin-top: calc(var(--expo-toolbar-height, 64px) + 20px); }
body.expo-app[data-subject="fisiopatologia"] .expo-quiz-case-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 28px; align-items: start; margin-top: 18px; }
body.expo-app[data-subject="fisiopatologia"] :where(.expo-quiz-case-context, .expo-quiz-answer) { min-width: 0; }
body.expo-app[data-subject="fisiopatologia"] .expo-quiz-case-context { display: flow-root; }
body.expo-app[data-subject="fisiopatologia"] .expo-quiz-case-history { line-height: 1.5; }
body.expo-app[data-subject="fisiopatologia"] .expo-quiz-case-context > .expo-small { margin-top: 8px; }
body.expo-app[data-subject="fisiopatologia"] .expo-quiz-case-context .expo-case-data { clear: both; margin-block: 14px 0; }
body.expo-app[data-subject="fisiopatologia"] .expo-quiz-case-media { float: right; width: 148px; margin: 0 0 12px 16px; }
body.expo-app[data-subject="fisiopatologia"] .expo-quiz-case-media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border: 1px solid var(--expo-border); border-radius: 8px; }
body.expo-app[data-subject="fisiopatologia"] .expo-quiz-case-media figcaption { margin-top: 5px; color: var(--expo-muted); font-size: 11px; line-height: 1.35; }
body.expo-app[data-subject="fisiopatologia"] .expo-quiz-answer > .expo-choices { margin-top: 0; }
body.expo-app[data-subject="fisiopatologia"] .expo-quiz-case-reasoning { margin-top: 18px; border-top: 1px solid var(--expo-border); padding-top: 12px; }
body.expo-app[data-subject="fisiopatologia"] .expo-quiz-case-reasoning :where(p, li) { margin-top: 10px; }
body.expo-app[data-subject="fisiopatologia"] [data-buffer-model-note] { margin: 0 0 14px; }

@media screen {
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] :is(#sistemas-reguladores, #ph-y-procesos) .expo-comparison { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] #expo-deck .expo-scene[data-layout="quiz"]:has([data-quiz-cases]) { padding-block: 18px; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] .expo-scene[data-layout="quiz"]:has([data-quiz-cases]) .expo-scene-heading { margin-bottom: 12px; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] .expo-scene[data-layout="quiz"]:has([data-quiz-cases]) .expo-eyebrow { margin-bottom: 6px; font-size: 14px; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] .expo-scene[data-layout="quiz"]:has([data-quiz-cases]) h2 { font-size: 40px; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] .expo-scene[data-layout="quiz"]:has([data-quiz-cases]) .expo-lead { margin-top: 8px; font-size: 22px; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] .expo-scene[data-layout="quiz"]:has([data-quiz-cases]) .expo-sources { margin-top: 8px; font-size: 14px; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] .expo-quiz[data-quiz-cases] { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 20px; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] .expo-quiz[data-quiz-cases] > fieldset { grid-column: 1 / -1; padding: 4px 0 12px; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] .expo-quiz[data-quiz-cases] legend { font-size: 27px; line-height: 1.25; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] .expo-quiz[data-quiz-cases] > .expo-actions { gap: 10px; margin-top: 12px; align-self: start; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] .expo-quiz[data-quiz-cases] > .expo-actions:last-child { justify-content: flex-end; max-width: 570px; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] .expo-quiz[data-quiz-cases] .expo-button { min-height: 44px; padding: 8px 11px; font-size: 16px; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] .expo-quiz[data-quiz-cases] [data-quiz-score] { max-width: 330px; color: var(--expo-muted); font-size: 14px; line-height: 1.35; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] .expo-quiz[data-quiz-cases] + .expo-small { margin-top: 8px; font-size: 14px; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] .expo-quiz-case-grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 28px; margin-top: 12px; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] .expo-quiz-case-history { font-size: 21px; line-height: 1.3; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] .expo-quiz-case-context > .expo-small { font-size: 16px; line-height: 1.35; margin-top: 6px; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] .expo-quiz-case-media { width: 136px; margin: 0 0 8px 14px; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] .expo-quiz-case-media img { aspect-ratio: 4 / 3; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] .expo-quiz-case-media figcaption { font-size: 12px; line-height: 1.25; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] [data-quiz-case] .expo-case-data { font-size: 22px; line-height: 1.25; margin-block: 10px 0; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] [data-quiz-case] .expo-case-data :where(th, td) { padding: 4px 10px; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] [data-quiz-case] .expo-case-data caption { margin-bottom: 4px; font-size: 14px; line-height: 1.3; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] .expo-quiz[data-quiz-cases] .expo-choices { gap: 8px; margin-block: 12px; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] .expo-quiz-answer > .expo-choices { margin-top: 0; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] .expo-quiz[data-quiz-cases] .expo-choices label { min-height: 44px; padding: 8px 12px; font-size: 26px; line-height: 1.25; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] .expo-quiz-answer > .expo-actions { gap: 8px; margin-top: 12px; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] .expo-quiz[data-quiz-cases] .expo-feedback { margin-top: 12px; padding: 12px 16px; font-size: 24px; line-height: 1.3; }
  body.expo-app[data-subject="fisiopatologia"][data-mode="presentar"] [data-buffer-model-note] { margin-bottom: 10px; font-size: 20px; line-height: 1.3; }
}
@media (max-width: 900px) {
  body.expo-app[data-subject="fisiopatologia"][data-mode="estudiar"] .expo-quiz-case-grid { grid-template-columns: 1fr; gap: 22px; }
}
@media (max-width: 600px) {
  body.expo-app[data-subject="fisiopatologia"][data-mode="estudiar"] .expo-quiz-case-media { width: 120px; margin-left: 12px; }
}
@media print {
  body.expo-app[data-subject="fisiopatologia"] #expo-deck .expo-quiz-case-grid { display: block; margin-top: 10pt; }
  body.expo-app[data-subject="fisiopatologia"] #expo-deck .expo-quiz[data-quiz-cases] [data-quiz-case] { break-inside: auto; }
  body.expo-app[data-subject="fisiopatologia"] #expo-deck .expo-quiz-case-media { width: 100pt; margin: 0 0 8pt 12pt; }
  body.expo-app[data-subject="fisiopatologia"] #expo-deck .expo-quiz-case-media figcaption { font-size: 8pt; }
  body.expo-app[data-subject="fisiopatologia"] #expo-deck .expo-quiz-case-context > .expo-study-only { margin-top: 0; padding-top: 0; }
  body.expo-app[data-subject="fisiopatologia"] #expo-deck .expo-quiz-case-context .expo-case-data { margin-block: 10pt; font-size: 11pt; }
  body.expo-app[data-subject="fisiopatologia"] #expo-deck .expo-quiz-case-context .expo-case-data :where(th, td) { padding: 5pt 8pt; }
  body.expo-app[data-subject="fisiopatologia"] #expo-deck .expo-quiz-case-context .expo-case-data tr { break-inside: avoid; }
  body.expo-app[data-subject="fisiopatologia"] #expo-deck .expo-quiz-case-history { font-size: 11pt; }
  body.expo-app[data-subject="fisiopatologia"] #expo-deck .expo-quiz-case-reasoning { margin-top: 12pt; padding-top: 8pt; }
}

/* A fixed decorative surface: body background, ambient field, then content. */
body.expo-app:has(> .expo-ambient) { isolation: isolate; }
body.expo-app .expo-ambient {
  --ambient-intensity: .72;
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  contain: paint;
  pointer-events: none;
  user-select: none;
  opacity: var(--ambient-intensity);
  -webkit-mask-image: radial-gradient(ellipse 44% 47% at 50% 43%, rgb(0 0 0 / 6%) 0%, rgb(0 0 0 / 10%) 35%, rgb(0 0 0 / 45%) 70%, #000 100%);
  mask-image: radial-gradient(ellipse 44% 47% at 50% 43%, rgb(0 0 0 / 6%) 0%, rgb(0 0 0 / 10%) 35%, rgb(0 0 0 / 45%) 70%, #000 100%);
}
body.expo-app .expo-ambient[data-emphasis="hero"] { --ambient-intensity: 1; }
body.expo-app .expo-ambient[data-emphasis="breathing"] { --ambient-intensity: .92; }
body.expo-app .expo-ambient::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    radial-gradient(ellipse at 4% 84%, var(--ambient-glow-cyan), transparent 48%),
    radial-gradient(ellipse at 96% 24%, var(--ambient-glow-teal), transparent 46%),
    linear-gradient(var(--ambient-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--ambient-grid) 1px, transparent 1px);
  background-size: 100% 100%, 100% 100%, 64px 64px, 64px 64px;
}
body.expo-app .expo-ambient-canvas { position: absolute; inset: 0; display: block; width: 100%; height: 100%; pointer-events: none; user-select: none; }
body.expo-app[data-receiver="true"] .expo-ambient { display: none !important; }
@media screen {
  body.expo-app:has(> .expo-ambient) #expo-deck.reveal,
  body.expo-app:has(> .expo-ambient) #expo-deck .expo-scene { background: transparent; }
  body.expo-app:has(> .expo-ambient) .expo-site-header { background: var(--expo-bg); }
}
@media (max-width: 760px), (pointer: coarse) {
  body.expo-app .expo-ambient { opacity: calc(var(--ambient-intensity) * .7); }
  body.expo-app .expo-ambient::before { background-size: 100% 100%, 100% 100%, 48px 48px, 48px 48px; }
}
@media (prefers-reduced-motion: reduce) {
  body.expo-app .expo-ambient { opacity: calc(var(--ambient-intensity) * .8); }
  body.expo-app .expo-ambient, body.expo-app .expo-ambient * { animation: none !important; transition: none !important; }
}
@media print {
  body.expo-app .expo-ambient { display: none !important; }
}

/* Published Mafe case: concise evidence within the existing lesson layout. */
body.expo-app[data-exposition="equilibrio-acido-base"] .expo-evidence-table td { font-family: var(--expo-body-font); }
body.expo-app[data-exposition="equilibrio-acido-base"] #mafe-anamnesis .expo-figure img { width: 153px; height: 272px; margin: 0 auto; object-fit: contain; }
body.expo-app[data-exposition="equilibrio-acido-base"] .expo-supplemental-labs details { margin-top: 24px; }
body.expo-app[data-exposition="equilibrio-acido-base"] .expo-supplemental-labs summary { cursor: pointer; font-weight: 600; }
body.expo-app[data-exposition="equilibrio-acido-base"] .expo-supplemental-labs .expo-lab { margin-top: 18px; }
body.expo-app[data-exposition="equilibrio-acido-base"][data-mode="presentar"] .expo-evidence-table { font-size: 25px; line-height: 1.25; }
body.expo-app[data-exposition="equilibrio-acido-base"][data-mode="presentar"] .expo-evidence-table :where(th, td) { padding: 8px 12px; }
