@font-face{font-family:Inter;src:url(fonts/inter-variable.woff2);font-weight:100 900;font-display:swap}
@font-face{font-family:Montserrat;src:url(fonts/montserrat-variable.woff2);font-weight:600 700;font-display:swap}
@font-face{font-family:Fira;src:url(fonts/fira-code-variable.woff2);font-weight:100 900;font-display:swap}
:root{--ink:#202426;--muted:#505b5c;--teal:#006f69;--teal-soft:#e9f5f3;--paper:#fff;--page:#f5f6f5;--line:#d5dddd;--code:#182123;--code-text:#f4f8f7;--font-body:Inter,Arial,sans-serif;--font-title:Montserrat,Arial,sans-serif;--font-code:Fira,Consolas,monospace;--space:1rem;--content:60rem;--wide:75rem;--radius:.35rem}
*{box-sizing:border-box}html{scroll-padding-top:1rem}body{margin:0;background:var(--page);color:var(--ink);font:1.0625rem/1.68 var(--font-body);overflow-wrap:break-word}a{color:var(--teal);text-underline-offset:.16em}a:hover{text-decoration-thickness:.14em}a:focus-visible,summary:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:3px solid #006f69;outline-offset:3px}h1,h2,h3,h4,h5,h6{font-family:var(--font-title);line-height:1.3;overflow-wrap:anywhere}img{max-width:100%;height:auto}.skip-link{position:absolute;z-index:100;top:-10rem;left:1rem;background:#fff;padding:.7rem}.skip-link:focus{top:.5rem}.site-header{background:var(--paper);border-bottom:2px solid var(--teal)}.header-inner{max-width:var(--wide);margin:auto;padding:.55rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.brand{display:flex;align-items:center;gap:1rem;color:var(--ink);text-decoration:none;min-width:0}.brand img{width:10rem;height:auto;max-height:3rem;object-fit:contain}.brand span{display:flex;flex-direction:column;border-left:1px solid var(--line);padding-left:1rem;line-height:1.35}.brand strong{font:700 1rem var(--font-title)}.brand small{font-size:.7rem;color:var(--muted)}.site-header nav{display:flex;align-items:center;gap:.2rem;flex-wrap:wrap}.site-header nav a,.current-unit{display:inline-flex;align-items:center;min-height:2.75rem;padding:.4rem .65rem;font-size:.9rem}.current-unit{color:var(--muted)}
.container{max-width:var(--wide);margin:auto;padding-inline:1.5rem}.hero{background:var(--paper);border-bottom:1px solid var(--line);padding:3rem 0}.hero h1{font-size:clamp(2rem,4vw,2.7rem);margin:.3rem 0 .75rem}.eyebrow{font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--teal);margin:0 0 .6rem}.lead{font-size:1.1rem;color:var(--muted);max-width:43rem;margin:0 0 1.4rem}.button{display:inline-flex;align-items:center;min-height:2.75rem;border:1px solid var(--teal);border-radius:var(--radius);padding:.5rem .9rem;color:var(--teal);font-weight:700;text-decoration:none}.button:hover{background:var(--teal-soft)}.unit-section{padding-block:2.5rem 4rem}.unit-section h2{margin:0;font-size:1.65rem}.intro{color:var(--muted);margin:.6rem 0 1.5rem}.units{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 2rem}.unit-card{display:block;padding:1.2rem 0;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}.unit-card:hover h3{text-decoration:underline;text-decoration-color:var(--teal)}.unit-number{font-size:.72rem;letter-spacing:.06em;font-weight:700;color:var(--teal)}.unit-card h3{font-size:1.06rem;margin:.3rem 0}.unit-card p{font-size:.9rem;color:var(--muted);margin:.3rem 0}.card-link{color:var(--teal);font-size:.85rem;font-weight:700;text-decoration:underline}
.lesson{max-width:var(--content);margin:auto;padding:1.5rem 1.5rem 4rem}.back{display:inline-block;font-size:.9rem;font-weight:600;margin-bottom:1rem}.contents{border-block:1px solid var(--line);margin:0 0 1.8rem;padding:.2rem 0}.contents summary{cursor:pointer;min-height:2.75rem;display:list-item;padding:.5rem .3rem;font-weight:700;color:var(--teal)}.contents ol{padding-left:1.8rem;margin:.5rem 0 1rem}.contents li{padding:.15rem 0}.contents a{display:inline-block;padding:.18rem 0}.prose{background:var(--paper);padding:clamp(1.1rem,3.5vw,2.5rem);border:1px solid var(--line)}.prose h1{font-size:clamp(1.65rem,3vw,2.3rem);margin:0 0 1.2rem}.prose h1:not(:first-child){font-size:clamp(1.45rem,2.5vw,1.8rem);margin:2.8rem 0 1rem;border-top:1px solid var(--line);padding-top:1.5rem}.prose h2{font-size:1.35rem;margin:2.2rem 0 .75rem}.prose h3{font-size:1.12rem;margin:1.6rem 0 .6rem}.prose h4,.prose h5,.prose h6{font-size:1rem;margin:1.3rem 0 .5rem}.prose p{margin:0 0 1rem}.prose li{margin:.3rem 0}.prose blockquote{border-left:3px solid var(--teal);margin:1.3rem 0;padding:.1rem 1rem}.prose hr{border:0;border-top:1px solid var(--line);margin:2rem 0}.prose :is(h1,h2,h3,h4,h5,h6){scroll-margin-top:1rem}.legacy-anchor{display:block;position:relative;top:-1rem;visibility:hidden}.prose code{font-family:var(--font-code);font-size:.9em;background:#eef2f1;border-radius:3px;padding:.08em .2em;overflow-wrap:anywhere}.prose pre{background:var(--code);color:var(--code-text);border-radius:var(--radius);padding:1rem;overflow-x:auto;max-width:100%;line-height:1.55;margin:1.2rem 0;tab-size:4}.prose pre code{display:block;padding:0;background:none;color:inherit;font-size:.875rem;white-space:pre;overflow-wrap:normal}.table-scroll{max-width:100%;overflow-x:auto;margin:1.2rem 0}.table-scroll:focus-visible{outline-offset:1px}.table-scroll table{border-collapse:collapse;width:100%;font-size:.9rem}.table-scroll th,.table-scroll td{border:1px solid var(--line);padding:.6rem;text-align:left;vertical-align:top}.table-scroll th{background:#edf3f2;font-weight:700}.recurso-imagen{margin:1.5rem 0}.recurso-imagen img{display:block}.recurso-pendiente{border-left:3px solid var(--teal);background:#f1f7f6;padding:.7rem 1rem;margin:1.2rem 0}.recurso-pendiente p{margin:0;color:#344b49;font-size:.9rem}.lesson-bottom{display:flex;justify-content:space-between;gap:1.5rem;border-top:1px solid var(--line);padding-top:1.2rem;margin-top:2rem}.lesson-bottom a,.return-top a{display:inline-block;padding:.5rem 0;font-size:.9rem;font-weight:600}.return-top{text-align:right}footer{background:var(--paper);border-top:1px solid var(--line)}.footer-inner{max-width:var(--wide);margin:auto;padding:1.5rem;display:flex;gap:1rem;align-items:center;font-size:.8rem;color:var(--muted)}.footer-inner img{width:2.5rem}
@media(max-width:760px){.header-inner{align-items:flex-start;flex-wrap:wrap;gap:.4rem}.site-header nav{width:100%}.lesson{padding:1rem 1rem 3rem}.container{padding-inline:1rem}.hero{padding:2rem 0}.units{grid-template-columns:1fr}.prose{padding:1rem}.lesson-bottom{flex-direction:column;gap:.3rem}}
@media(max-width:420px){.brand{gap:.55rem}.brand img{width:7rem}.brand span{padding-left:.55rem}.brand small{font-size:.65rem}.prose pre code{font-size:.82rem}}
.prose pre[data-etiqueta]::before{content:attr(data-etiqueta);display:block;color:#c6e4df;font:600 .7rem/1.4 var(--font-body);letter-spacing:.04em;margin-bottom:.65rem;white-space:normal}.prose pre[data-etiqueta="Salida esperada"]{border-left:4px solid #70c9bd}.prose pre[data-etiqueta="Pseudocódigo"]{border-left:4px solid #bdc9c7}.prose pre[data-etiqueta="Java · ejemplo incorrecto"]{border-left:4px solid #e6a18d}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media print{@page{size:A4;margin:16mm}body{background:#fff;color:#000;font-size:10.5pt;line-height:1.45}.site-header,.skip-link,.back,.contents,.lesson-bottom,.return-top,footer{display:none!important}.lesson{max-width:none;margin:0;padding:0}.prose{padding:0;border:0}.prose h1,.prose h2,.prose h3,.prose h4{break-after:avoid;page-break-after:avoid}.prose h1:not(:first-child){margin-top:1.2em;padding-top:.5em}.prose pre{color:#000;background:#fff;border:1px solid #999;overflow:visible;white-space:pre-wrap;overflow-wrap:anywhere;break-inside:auto}.prose pre code{font-size:8.5pt;white-space:pre-wrap;overflow-wrap:anywhere}.table-scroll{overflow:visible;break-inside:auto}.table-scroll table{font-size:9pt;table-layout:auto}.table-scroll th,.table-scroll td{overflow-wrap:anywhere}.table-scroll tr,.recurso-imagen{break-inside:avoid}.recurso-pendiente{background:#fff;color:#000;border-color:#444}.recurso-pendiente p{color:#000}a{color:#000;text-decoration:underline}}
@media print{.prose pre[data-etiqueta]::before{color:#000}}

/* Lectura centrada y espacio adicional para ejemplos, tablas y recursos. */
:root{--content:82rem;--reading:90ch}
.prose{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,var(--reading)) minmax(0,1fr)}
.prose>*{grid-column:2;min-width:0}
.prose>pre,.prose>.table-scroll,.prose>div[data-recurso]{grid-column:1 / -1}
.respuesta{border-left:3px solid var(--teal);padding:.25rem 1rem;margin:0 0 1rem}
.respuesta summary{cursor:pointer;color:var(--teal);font-weight:600;min-height:2.75rem;padding:.5rem 0}
.respuesta p{margin-bottom:.75rem}
.respuesta-impresa{display:none}
@media print{.prose{display:block}.respuesta{display:none}.respuesta-impresa{display:block;break-inside:avoid}}

/* Recursos: controles sencillos y alternativa disponible sin JavaScript. */
.pm-interactivo,.recurso-alternativo{border-left:3px solid var(--teal);background:#f1f7f6;padding:1rem;margin:1.2rem 0;min-width:0}
.pm-interactivo input:focus-visible,.pm-interactivo select:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.pm-interactivo label{max-width:100%;min-width:0}.pm-interactivo select{min-width:0}
.pm-interactivo textarea{max-width:100%;width:min(100%,32rem);font:inherit;padding:.5rem;border:1px solid #758987;border-radius:var(--radius)}.pm-interactivo textarea:focus-visible{outline:3px solid var(--teal);outline-offset:3px}.pm-interactivo [data-objetos]{white-space:pre-line;overflow-wrap:anywhere}
.pm-traza{white-space:pre-line;overflow-wrap:anywhere;line-height:1.6}
.pm-arreglo{display:flex;flex-wrap:wrap;gap:.4rem}.pm-celda{display:flex;flex-direction:column;border:1px solid var(--line);background:var(--paper);padding:.4rem .7rem;border-radius:var(--radius);font-size:.85rem}.pm-celda strong{font-size:1rem}
.pm-interactivo h3{margin:0 0 .6rem}.pm-interactivo p,.recurso-alternativo p{margin:.4rem 0 .8rem}.pm-interactivo pre{margin:.8rem 0;max-width:100%;overflow-x:auto}.pm-controles{display:flex;flex-wrap:wrap;align-items:end;gap:.65rem;margin:.8rem 0}.pm-interactivo label{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin:.3rem .5rem .3rem 0;font-size:.92rem}.pm-interactivo input:not([type=checkbox]),.pm-interactivo select{max-width:100%;min-height:2.75rem;padding:.45rem;border:1px solid #758987;border-radius:var(--radius);font:inherit;background:#fff;color:var(--ink)}.pm-interactivo input[type=number]{width:7rem}.pm-interactivo button{min-height:2.75rem;padding:.5rem .8rem;border:1px solid var(--teal);border-radius:var(--radius);font:600 .9rem var(--font-body);color:var(--teal);background:#fff;cursor:pointer}.pm-interactivo button:disabled{opacity:.55;cursor:not-allowed}.pm-interactivo button:hover:not(:disabled){background:#dcefed}.pm-resultado{margin-top:.8rem;font-weight:600;white-space:pre-line}.pm-prediccion{font-size:.92rem}.alternativa-impresa{display:none}
@media print{.pm-interactivo{display:none}.alternativa-impresa{display:block}.recurso-alternativo{background:#fff;border-color:#444;color:#000}}
@media print{.prose p{margin-bottom:.65rem}}
