:root {
    --ufla-green: #008B45;
    --ufla-blue: #003366;
    --ufla-light-green: #e6f3eb;
    --text-color: #333333;
    --bg-color: #ffffff;
    --light-gray: #f5f5f5;
    --border-color: #e0e0e0;
}

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

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    line-height: 1.6;
    color: var(--text-color);
    background-color: var(--light-gray);
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* Header */
header {
    background-color: var(--bg-color);
    border-bottom: 4px solid var(--ufla-green);
    padding: 20px 0;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.header-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.logo {
    max-height: 60px;
}

.site-title {
    color: var(--ufla-blue);
    font-size: 24px;
    font-weight: bold;
}

.site-subtitle {
    color: var(--ufla-green);
    font-size: 16px;
}

/* Navigation */
nav {
    background-color: var(--ufla-blue);
    color: white;
    padding: 10px 0;
}

nav ul {
    list-style: none;
    display: flex;
    gap: 20px;
}

nav a {
    color: white;
    text-decoration: none;
    font-weight: 500;
    padding: 5px 10px;
    border-radius: 4px;
    transition: background-color 0.3s;
}

nav a:hover {
    background-color: var(--ufla-green);
}

/* Main Content */
main {
    background-color: var(--bg-color);
    padding: 40px 20px;
    margin-top: 20px;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}

h1, h2, h3 {
    color: var(--ufla-blue);
    margin-bottom: 15px;
}

h1 {
    border-bottom: 2px solid var(--ufla-green);
    padding-bottom: 10px;
    margin-bottom: 30px;
}

.blocks-container {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px;
    margin-top: 40px;
}

.block-card {
    background-color: var(--light-gray);
    border-top: 4px solid var(--ufla-green);
    border-radius: 8px;
    padding: 20px;
    transition: transform 0.3s, box-shadow 0.3s;
}

.block-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}

.block-title {
    color: var(--ufla-green);
    font-size: 20px;
    margin-bottom: 15px;
}

.lecture-list {
    list-style-type: none;
}

.lecture-list li {
    margin-bottom: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border-color);
}

.lecture-list a {
    color: var(--text-color);
    text-decoration: none;
    display: flex;
    justify-content: space-between;
}

.lecture-list a:hover {
    color: var(--ufla-green);
}

/* Presentation Link */
.presentation-link {
    display: block;
    background-color: var(--ufla-light-green);
    border: 1px solid var(--ufla-green);
    color: var(--ufla-green);
    padding: 15px 20px;
    border-radius: 8px;
    text-align: center;
    font-size: 18px;
    font-weight: bold;
    text-decoration: none;
    margin-bottom: 30px;
    transition: all 0.3s;
}

.presentation-link:hover {
    background-color: var(--ufla-green);
    color: white;
}

/* CP-1 Complementary */
.complementary-section {
    margin-top: 50px;
    padding-top: 30px;
    border-top: 2px dashed var(--border-color);
}

.cp1-link {
    display: inline-block;
    background-color: var(--ufla-blue);
    color: white;
    padding: 10px 20px;
    border-radius: 4px;
    text-decoration: none;
    margin-top: 15px;
}

.cp1-link:hover {
    background-color: #002244;
}

/* Footer */
footer {
    text-align: center;
    padding: 30px 0;
    margin-top: 40px;
    color: #666;
    border-top: 1px solid var(--border-color);
}


/* ==========================================================
   Apresentações HTML — padrão compartilhado das aulas IAlg
   ========================================================== */
.slides-page { background: #ffffff; overflow: hidden; }
.slides-page .reveal { width: 100% !important; height: 100% !important; }
.slides-page .reveal .slides { width: 100%; height: 100%; }
.slides-page .reveal section { width: 100%; height: 100%; padding: 40px !important; display: flex !important; flex-direction: column; justify-content: center; align-items: center; overflow: auto; }
.slides-page .reveal .slide-background { background: #ffffff; }
.slides-page .reveal h1,
.slides-page .reveal h2,
.slides-page .reveal h3,
.slides-page .reveal h4 { color: var(--ufla-blue); text-transform: none; font-weight: 800; width: 100%; }
.slides-page .reveal h1 { font-size: clamp(1.5em, 5vw, 2.5em); }
.slides-page .reveal h2 { font-size: clamp(1.15em, 4vw, 1.8em); border-bottom: 3px solid var(--ufla-green); padding-bottom: 10px; margin-bottom: 22px; }
.slides-page .reveal h3 { font-size: clamp(.9em, 3vw, 1.2em); }
.slides-page .reveal p,
.slides-page .reveal li { color: var(--text-color); font-size: clamp(.64em, 1.85vw, .88em); line-height: 1.4; }
.slides-page .reveal ul,
.slides-page .reveal ol { width: 100%; text-align: left; display: inline-block; }
.slides-page .reveal li { margin: 6px 0; text-align: left; }
.slides-page .logo-container { position: absolute; top: 18px; right: 22px; z-index: 10; }
.slides-page .logo-container img { height: clamp(35px, 8vw, 58px); width: auto; object-fit: contain; }
.slides-page .title-slide .subtitle { color: var(--ufla-green); font-size: clamp(.9em, 3vw, 1.2em); margin-top: 16px; }
.slides-page .title-slide .author { margin-top: 42px; font-size: clamp(.62em, 1.8vw, .8em); color: #555; }
.slides-page .box,
.slides-page .info-box,
.slides-page .warning-box,
.slides-page .success-box { width: 90%; max-width: 950px; margin: 12px auto; padding: 13px 17px; text-align: left; border-radius: 4px; }
.slides-page .box { background: #f5f5f5; border-left: 5px solid var(--ufla-green); }
.slides-page .info-box { background: #edf4fb; border-left: 5px solid var(--ufla-blue); }
.slides-page .warning-box { background: #fff4ed; border-left: 5px solid #d85c42; }
.slides-page .success-box { background: var(--ufla-light-green); border-left: 5px solid var(--ufla-green); }
.slides-page .code-box { width: 90%; max-width: 950px; background: #f1f2f1; border-top: 5px solid var(--ufla-blue); padding: 14px 19px; margin: 12px auto; text-align: left; font-family: 'Courier New', monospace; font-size: clamp(.54em, 1.65vw, .75em); line-height: 1.4; white-space: pre-wrap; color: #172630; }
.slides-page .two-column,
.slides-page .three-column { width: 90%; margin: 12px auto; display: flex; flex-wrap: wrap; gap: 13px; justify-content: center; }
.slides-page .two-column > div { flex: 1; min-width: 260px; padding: 13px; background: #edf4fb; border-top: 5px solid var(--ufla-blue); }
.slides-page .three-column > div { flex: 1; min-width: 180px; padding: 12px; background: var(--ufla-light-green); border-top: 5px solid var(--ufla-green); }
.slides-page .three-column > div:nth-child(2) { background: #edf4fb; border-top-color: var(--ufla-blue); }
.slides-page .two-column h4,
.slides-page .three-column h4 { margin: 0 0 7px; color: var(--ufla-blue); font-size: clamp(.78em, 2vw, 1em); }
.slides-page .step-list { width: 90%; max-width: 940px; margin: 8px auto; }
.slides-page .step-list li { position: relative; padding-left: 26px; }
.slides-page .step-list li::before { content: '→'; color: var(--ufla-green); font-weight: 800; position: absolute; left: 0; }
.slides-page table { width: 90%; max-width: 1000px; margin: 8px auto; border-collapse: collapse; font-size: clamp(.55em, 1.5vw, .75em); color: var(--text-color); }
.slides-page th { background: var(--ufla-blue); color: #fff; text-align: left; padding: 7px; }
.slides-page td { padding: 7px; border-bottom: 1px solid #d8e4dc; text-align: left; }
.slides-page tr:nth-child(even) { background: #f4faf6; }
.slides-page .sequence-flow { display: grid; grid-template-columns: 1fr 1fr 1fr; width: 90%; max-width: 950px; gap: 14px; margin: 12px auto; text-align: center; }
.slides-page .sequence-flow > div { padding: 12px; background: var(--ufla-light-green); border-top: 5px solid var(--ufla-green); }
.slides-page .sequence-flow > div:nth-child(2) { background: #edf4fb; border-top-color: var(--ufla-blue); }
.slides-page .sequence-flow h3 { margin: 0 0 7px; }
.slides-page .highlight { color: var(--ufla-green); font-weight: 800; }
.slides-page
.slides-page .references-slide a { color: var(--ufla-blue); }
.slides-page .next-slide .next-label { color: var(--ufla-green); font-weight: 800; letter-spacing: .03em; }
@media (max-width: 768px) {
    .slides-page .reveal section { padding: 18px !important; }
    .slides-page .two-column > div,
    .slides-page .three-column > div { min-width: 100%; }
    .slides-page .sequence-flow { grid-template-columns: 1fr; }
    .slides-page table { font-size: clamp(.44em, 1.55vw, .68em); }
    .slides-page th,
    .slides-page td { padding: 5px; }
    .slides-page .code-box { font-size: clamp(.46em, 1.5vw, .66em); }
}


/* ==========================================================
   Template oficial das aulas — espelhado da Aula 02
   ========================================================== */
body.slides-page { width: 100%; height: 100%; overflow: hidden; background: #ffffff; }
body.slides-page .reveal { width: 100% !important; height: 100% !important; }
body.slides-page .reveal .slides { width: 100%; height: 100%; }
body.slides-page .reveal section { width: 100%; height: 100%; padding: 40px !important; display: flex !important; flex-direction: column; justify-content: center; align-items: center; overflow: hidden; }
body.slides-page .reveal .slide-background { background-color: #ffffff; }
body.slides-page .reveal h1,
body.slides-page .reveal h2,
body.slides-page .reveal h3,
body.slides-page .reveal h4 { color: var(--ufla-blue); text-transform: none; font-weight: bold; width: 100%; }
body.slides-page .reveal h1 { font-size: clamp(1.5em, 5vw, 2.5em); }
body.slides-page .reveal h2 { font-size: clamp(1.2em, 4vw, 1.8em); border-bottom: 3px solid var(--ufla-green); padding-bottom: 10px; margin-bottom: 30px; }
body.slides-page .reveal h3 { font-size: clamp(1em, 3vw, 1.4em); }
body.slides-page .reveal p,
body.slides-page .reveal li { color: #333333; font-size: clamp(0.7em, 2vw, 0.9em); line-height: 1.6; }
body.slides-page .reveal ul,
body.slides-page .reveal ol { width: 100%; text-align: left; display: inline-block; }
body.slides-page .reveal li { text-align: left; margin: 8px 0; }
body.slides-page .reveal .box,
body.slides-page .reveal .warning-box,
body.slides-page .reveal .success-box,
body.slides-page .reveal .info-box { padding: 15px; margin: 20px auto; text-align: left; border-radius: 5px; max-width: 90%; width: 100%; }
body.slides-page .reveal .box { background-color: #f5f5f5; border-left: 5px solid var(--ufla-green); }
body.slides-page .reveal .warning-box { background-color: #fff3cd; border-left: 5px solid #ff9900; }
body.slides-page .reveal .success-box { background-color: #d4edda; border-left: 5px solid var(--ufla-green); }
body.slides-page .reveal .info-box { background-color: #e7f3ff; border-left: 5px solid var(--ufla-blue); }
body.slides-page .reveal .code-box { background-color: #f0f0f0; border: 1px solid #ccc; padding: 15px; margin: 15px auto; text-align: left; border-radius: 5px; font-family: 'Courier New', monospace; font-size: clamp(0.6em, 1.8vw, 0.75em); max-width: 90%; width: 100%; white-space: pre-wrap; }
body.slides-page .logo-container { position: absolute; top: 20px; right: 20px; z-index: 1000; }
body.slides-page .logo-container img { height: clamp(40px, 10vw, 60px); width: auto; object-fit: contain; }
body.slides-page .title-slide .subtitle { color: var(--ufla-green); font-size: clamp(0.9em, 3vw, 1.2em); margin-top: 20px; }
body.slides-page .title-slide .author { margin-top: 50px; font-size: clamp(0.6em, 1.5vw, 0.8em); color: #666; }
body.slides-page .three-column,
body.slides-page .two-column { display: flex; justify-content: space-between; gap: 10px; margin-top: 20px; flex-wrap: wrap; width: 100%; max-width: 90%; margin-left: auto; margin-right: auto; }
body.slides-page .three-column > div { flex: 1; min-width: 150px; background: #f0f8ff; padding: 12px; border-top: 4px solid var(--ufla-blue); border-radius: 5px; font-size: clamp(0.6em, 1.5vw, 0.7em); }
body.slides-page .two-column > div { flex: 1; min-width: 200px; background: #f0f8ff; padding: 15px; border-top: 4px solid var(--ufla-blue); border-radius: 5px; font-size: clamp(0.65em, 1.8vw, 0.8em); }
body.slides-page .step-list { text-align: left; margin: 20px auto; max-width: 90%; width: 100%; }
body.slides-page .step-list li { margin: 10px 0; padding-left: 30px; position: relative; font-size: clamp(0.7em, 1.8vw, 0.8em); }
body.slides-page .step-list li::before { content: '→'; position: absolute; left: 0; color: var(--ufla-green); font-weight: bold; }
body.slides-page table { font-size: clamp(0.6em, 1.5vw, 0.75em); margin: 20px auto; max-width: 90%; width: 100%; border-collapse: collapse; }
body.slides-page table th { background-color: var(--ufla-blue); color: white; padding: 8px; text-align: left; }
body.slides-page table td { padding: 8px; border-bottom: 1px solid #ddd; text-align: left; }
body.slides-page table tr:nth-child(even) { background-color: #f9f9f9; }
/* Código extenso rola internamente e não reduz o canvas do slide. */
body.slides-page .code-box { max-height: 56vh; overflow: auto; scrollbar-width: thin; white-space: pre; }
body.slides-page .code-box::-webkit-scrollbar { width: 8px; height: 8px; }
body.slides-page .code-box::-webkit-scrollbar-thumb { background: #9bb9a7; border-radius: 4px; }
@media (max-width: 768px) {
  body.slides-page .reveal section { padding: 20px !important; }
  body.slides-page .three-column > div,
  body.slides-page .two-column > div { min-width: 100%; }
  body.slides-page .code-box { max-height: 54vh; }
}
/* Override final: mesmo aproveitamento visual da Aula 03 */
body.slides-page .reveal section {
    width: 100% !important;
    height: 100% !important;
    padding: 40px !important;
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}
body.slides-page .reveal h1,
body.slides-page .reveal h2,
body.slides-page .reveal h3,
body.slides-page .reveal h4 {
    color: var(--ufla-blue);
    text-transform: none;
    font-weight: 800;
    width: 100%;
}
body.slides-page .reveal h1 { font-size: clamp(1.5em, 5vw, 2.5em); }
body.slides-page .reveal h2 {
    font-size: clamp(1.18em, 4vw, 1.8em);
    border-bottom: 3px solid var(--ufla-green);
    padding-bottom: 10px;
    margin-bottom: 25px;
}
body.slides-page .reveal h3 { font-size: clamp(.9em, 3vw, 1.25em); }
body.slides-page .reveal p,
body.slides-page .reveal li {
    color: #333333;
    font-size: clamp(.65em, 1.9vw, .88em);
    line-height: 1.45;
}
body.slides-page .reveal li { margin: 7px 0; }
body.slides-page .logo-container { top: 18px; right: 22px; z-index: 10; }
body.slides-page .logo-container img { height: clamp(35px, 8vw, 58px); width: auto; object-fit: contain; }
body.slides-page .title-slide .subtitle { margin-top: 18px; font-size: clamp(.9em, 3vw, 1.2em); }
body.slides-page .title-slide .author { margin-top: 48px; font-size: clamp(.62em, 1.8vw, .8em); color: #555; }
body.slides-page .box,
body.slides-page .info-box,
body.slides-page .warning-box,
body.slides-page .success-box {
    width: 90%;
    max-width: 950px;
    margin: 14px auto;
    padding: 14px 18px;
    text-align: left;
    border-radius: 4px;
}
body.slides-page .code-box {
    width: 90%;
    max-width: 950px;
    background: #f1f2f1;
    border-top: 5px solid var(--ufla-blue);
    padding: 15px 20px;
    margin: 14px auto;
    text-align: left;
    font-family: 'Courier New', monospace;
    font-size: clamp(.57em, 1.75vw, .75em);
    line-height: 1.4;
    color: #172630;
    white-space: pre-wrap;
    max-height: 56vh;
    overflow: auto;
    scrollbar-width: thin;
}
body.slides-page .code-box::-webkit-scrollbar { width: 8px; height: 8px; }
body.slides-page .code-box::-webkit-scrollbar-thumb { background: #9bb9a7; border-radius: 4px; }
body.slides-page .three-column,
body.slides-page .two-column { width: 90%; max-width: 950px; margin: 14px auto; gap: 14px; }
body.slides-page .three-column > div { min-width: 180px; padding: 12px; }
body.slides-page .two-column > div { min-width: 260px; padding: 14px; }
body.slides-page .step-list { width: 90%; max-width: 940px; margin: 10px auto; }
body.slides-page table { width: 90%; max-width: 1000px; margin: 10px auto; font-size: clamp(.58em, 1.55vw, .75em); }
body.slides-page table th { padding: 8px; }
body.slides-page table td { padding: 8px; }
body.slides-page .sequence-flow { width: 90%; max-width: 950px; gap: 16px; margin: 16px auto; }
body.slides-page .sequence-flow > div { padding: 14px; }
@media (max-width: 768px) {
    body.slides-page .reveal section { padding: 18px !important; }
    body.slides-page .three-column > div,
    body.slides-page .two-column > div { min-width: 100%; }
    body.slides-page .sequence-flow { grid-template-columns: 1fr; }
    body.slides-page table { font-size: clamp(.46em, 1.6vw, .68em); }
    body.slides-page table th,
    body.slides-page table td { padding: 5px; }
    body.slides-page .code-box { font-size: clamp(.48em, 1.55vw, .68em); max-height: 54vh; }
}

/* Visualizações didáticas interativas IAlg */
.ialg-visualizer { width:90%; margin:16px auto 0; padding:14px 18px 12px; background:#f7fbff; border:2px solid var(--ufla-blue); border-radius:12px; box-sizing:border-box; color:#123; font-size:.72em; }
.ialg-anim-header { display:flex; justify-content:space-between; align-items:center; gap:12px; color:var(--ufla-blue); margin-bottom:10px; }
.ialg-anim-counter { color:var(--ufla-green); font-size:.82em; white-space:nowrap; }
.ialg-anim-main { display:flex; align-items:center; gap:18px; min-height:104px; }
.ialg-anim-track { flex:1; display:grid; grid-template-columns:repeat(auto-fit,minmax(52px,1fr)); gap:8px; align-items:stretch; }
.ialg-anim-cell { position:relative; min-height:58px; display:flex; flex-direction:column; justify-content:center; align-items:center; border:2px solid #b8cbe0; border-radius:8px; background:#fff; color:var(--ufla-blue); box-sizing:border-box; }
.ialg-anim-cell strong { font-size:1.2em; }
.ialg-anim-index { position:absolute; left:5px; top:3px; font-size:.68em; color:#5d6b7a; }
.ialg-anim-cell.active { background:#fff2b8; border-color:#d99000; transform:translateY(-3px); }
.ialg-anim-cell.sorted { background:#dff4e7; border-color:var(--ufla-green); }
.ialg-anim-cell.checked { background:#e9eef4; color:#657386; }
.ialg-anim-cell.discarded { opacity:.35; }
.ialg-anim-cell.pivot { background:#e7ddff; border-color:#6b35a8; }
.ialg-anim-cell.diagonal { background:#ccebd9; border-color:var(--ufla-green); }
.ialg-anim-cell.empty { background:repeating-linear-gradient(135deg,#f7f9fb,#f7f9fb 6px,#e7edf3 6px,#e7edf3 12px); color:#8a98a6; }
.ialg-anim-caption { min-height:1.4em; margin:10px 0 8px; text-align:center; color:#303c48; }
.ialg-anim-controls { display:flex; flex-wrap:wrap; justify-content:center; gap:7px; }
.ialg-anim-controls button { border:1px solid var(--ufla-blue); border-radius:6px; padding:5px 9px; background:#fff; color:var(--ufla-blue); cursor:pointer; font:inherit; }
.ialg-anim-controls button:hover { background:#eaf3fb; }
.ialg-anim-side { min-width:130px; }
.ialg-stack { display:flex; flex-direction:column; gap:4px; }
.ialg-stack-frame { padding:5px 8px; border-left:4px solid var(--ufla-green); background:#e8f5ed; color:var(--ufla-blue); text-align:center; }
.ialg-visualizer a { color:var(--ufla-blue); }
@media (max-width:768px) { .ialg-visualizer { width:96%; font-size:.68em; } .ialg-anim-main { flex-direction:column; } .ialg-anim-track { width:100%; } .ialg-anim-side { width:100%; min-width:0; } }

.ialg-record-grid { width:90%; display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:12px auto; }
.ialg-record-card { background:#edf4fb; border-top:5px solid var(--ufla-blue); padding:12px; border-radius:8px; text-align:left; }
.ialg-record-card:nth-child(2) { background:#e8f5ed; border-top-color:var(--ufla-green); }
.ialg-record-card h4 { color:var(--ufla-blue); margin:0 0 6px; }
.ialg-record-card p { margin:3px 0; font-size:.72em; }
.ialg-reference-panel { width:90%; padding:12px 16px; background:#f7fbff; border-left:5px solid var(--ufla-green); text-align:left; }
.ialg-reference-panel a { color:var(--ufla-blue); }
@media (max-width:768px) { .ialg-record-grid { grid-template-columns:1fr; } }

/* Override responsivo final: escala estável em telas wide e não wide */
body.slides-page .reveal section { position: relative; box-sizing: border-box; overflow: hidden !important; }
body.slides-page .reveal section.scrollable { overflow-y: auto !important; overflow-x: hidden !important; }
body.slides-page .reveal h1 { font-size: 52px !important; line-height: 1.12 !important; }
body.slides-page .reveal h2 { font-size: 34px !important; line-height: 1.16 !important; margin-bottom: 24px !important; }
body.slides-page .reveal h3 { font-size: 25px !important; line-height: 1.2 !important; }
body.slides-page .reveal h4 { font-size: 20px !important; line-height: 1.2 !important; }
body.slides-page .reveal p,
body.slides-page .reveal li { font-size: 20px !important; line-height: 1.42 !important; }
body.slides-page .reveal li { margin: 6px 0 !important; }
body.slides-page .reveal .code-box { font-size: 16px !important; line-height: 1.38 !important; max-height: 390px !important; overflow: auto !important; white-space: pre !important; }
body.slides-page .reveal .box,
body.slides-page .reveal .info-box,
body.slides-page .reveal .warning-box,
body.slides-page .reveal .success-box { font-size: 20px !important; line-height: 1.4 !important; }
body.slides-page .logo-container img { height: 56px !important; width: auto !important; }
body.slides-page .reveal section::after { content: 'Prof. Paulo Rettore'; position: absolute; left: 50%; bottom: 10px; transform: translateX(-50%); color: #666; font-family: 'Segoe UI', Arial, sans-serif; font-size: 13px; line-height: 1; font-weight: 400; pointer-events: none; z-index: 20; white-space: nowrap; }
body.slides-page .ialg-visualizer { font-size: 16px !important; max-width: 920px !important; }
body.slides-page .ialg-anim-cell strong { font-size: 19px !important; }
@media (max-width: 768px) {
  body.slides-page .reveal section { padding: 24px !important; }
  body.slides-page .reveal h1 { font-size: 38px !important; }
  body.slides-page .reveal h2 { font-size: 29px !important; }
  body.slides-page .reveal h3 { font-size: 22px !important; }
  body.slides-page .reveal h4 { font-size: 18px !important; }
  body.slides-page .reveal p,
  body.slides-page .reveal li,
  body.slides-page .reveal .box,
  body.slides-page .reveal .info-box,
  body.slides-page .reveal .warning-box,
  body.slides-page .reveal .success-box { font-size: 18px !important; }
  body.slides-page .reveal .code-box { font-size: 14px !important; max-height: 340px !important; }
  body.slides-page .reveal section::after { font-size: 11px; bottom: 7px; }
}

body.slides-page .reveal pre { max-height:390px !important; overflow:auto !important; white-space:pre !important; font-size:16px !important; line-height:1.38 !important; }
@media (max-width:768px) { body.slides-page .reveal pre { max-height:340px !important; font-size:14px !important; } }

/* Correção crítica: o Reveal.js posiciona cada seção sobre o mesmo canvas. */
body.slides-page .reveal .slides > section,
body.slides-page .reveal .slides > section.present,
body.slides-page .reveal .slides > section.past,
body.slides-page .reveal .slides > section.future { position:absolute !important; top:0 !important; left:0 !important; }
