.toc[data-astro-cid-4h44iwkc]{background:var(--color-bg-subtle);padding:var(--space-4);border-radius:var(--radius-md);font-size:var(--fs-sm);margin:var(--space-6) 0}.toc__title[data-astro-cid-4h44iwkc]{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-weight:var(--fw-semibold);margin:0 0 var(--space-2)}.toc__list[data-astro-cid-4h44iwkc]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-1)}.toc__list[data-astro-cid-4h44iwkc] a[data-astro-cid-4h44iwkc]{text-decoration:none;color:var(--color-text-muted)}.toc__list[data-astro-cid-4h44iwkc] a[data-astro-cid-4h44iwkc]:hover{color:var(--color-accent);text-decoration:underline}@media (min-width: 1280px){.toc[data-astro-cid-4h44iwkc]{position:sticky;top:96px}}.tutorial-bg[data-astro-cid-t4kimzku]{background:linear-gradient(180deg,color-mix(in srgb,var(--tut-cat-color) 9%,transparent) 0%,color-mix(in srgb,var(--tut-cat-color) 4%,transparent) 40%,transparent 100%);background-size:100% 380px;background-repeat:no-repeat}.tutorial[data-astro-cid-t4kimzku]{padding-top:var(--space-8)}.tutorial__header[data-astro-cid-t4kimzku]{padding-bottom:var(--space-8);text-align:left}.tutorial__breadcrumb[data-astro-cid-t4kimzku]{display:flex;gap:var(--space-2);font-size:var(--fs-sm);color:var(--color-text-muted);margin-bottom:var(--space-4)}.tutorial__breadcrumb[data-astro-cid-t4kimzku] a[data-astro-cid-t4kimzku]{color:var(--color-text-muted);text-decoration:none}.tutorial__breadcrumb[data-astro-cid-t4kimzku] a[data-astro-cid-t4kimzku]:hover{color:var(--color-accent)}.tutorial__meta[data-astro-cid-t4kimzku]{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap;margin-bottom:var(--space-4);font-size:var(--fs-sm);color:var(--color-text-muted)}.tutorial__diff[data-astro-cid-t4kimzku],.tutorial__time[data-astro-cid-t4kimzku]{text-transform:uppercase;letter-spacing:.05em;font-size:var(--fs-xs);font-weight:var(--fw-medium)}.tutorial__title[data-astro-cid-t4kimzku]{font-family:var(--font-display);font-size:var(--fs-3xl);line-height:var(--lh-tight);margin:0 0 var(--space-4);letter-spacing:-.02em}.tutorial__summary[data-astro-cid-t4kimzku]{color:var(--color-text-muted);font-size:var(--fs-md);margin:0}.tutorial__dates[data-astro-cid-t4kimzku]{margin:var(--space-4) 0 0;font-size:var(--fs-xs);color:var(--color-text-subtle)}.tutorial__dates[data-astro-cid-t4kimzku] a[data-astro-cid-t4kimzku]{color:var(--color-text-muted);text-decoration:none}.tutorial__dates[data-astro-cid-t4kimzku] a[data-astro-cid-t4kimzku]:hover{color:var(--color-accent)}.tutorial__dates[data-astro-cid-t4kimzku] time[data-astro-cid-t4kimzku]{color:var(--color-text-muted)}.tutorial__layout[data-astro-cid-t4kimzku]{display:grid;grid-template-columns:1fr;gap:var(--space-8);padding-bottom:var(--space-16)}.tutorial__aside[data-astro-cid-t4kimzku]{order:-1;min-width:0}.tutorial__main[data-astro-cid-t4kimzku]{min-width:0;max-width:var(--container-content);margin:0 auto;width:100%}.tutorial__body[data-astro-cid-t4kimzku]{min-width:0;max-width:100%;overflow-x:clip}.tutorial__body[data-astro-cid-t4kimzku] *{max-width:100%}@media (min-width: 1280px){.tutorial__layout[data-astro-cid-t4kimzku]{grid-template-columns:240px minmax(0,var(--container-content));gap:var(--space-16);justify-content:center}.tutorial__aside[data-astro-cid-t4kimzku]{order:0}.tutorial__main[data-astro-cid-t4kimzku]{margin:0}}.tutorial__body[data-astro-cid-t4kimzku] h2,.tutorial__body[data-astro-cid-t4kimzku] h3{scroll-margin-top:96px}.tutorial__projects[data-astro-cid-t4kimzku]{margin-top:var(--space-12);padding-top:var(--space-8);border-top:1px dashed var(--color-border)}.tutorial__projects[data-astro-cid-t4kimzku] h2[data-astro-cid-t4kimzku]{font-family:var(--font-display);font-size:var(--fs-2xl);margin:0 0 var(--space-2);letter-spacing:-.02em}.tutorial__projects-lead[data-astro-cid-t4kimzku]{color:var(--color-text-muted);font-size:var(--fs-md);margin:0 0 var(--space-5)}.tutorial__projects-list[data-astro-cid-t4kimzku]{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr;gap:var(--space-4)}@media (min-width: 720px){.tutorial__projects-list[data-astro-cid-t4kimzku]{grid-template-columns:repeat(2,1fr)}}.tutorial__projects-item[data-astro-cid-t4kimzku]{padding:var(--space-4) var(--space-5);background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color .2s ease,transform .2s ease}.tutorial__projects-item[data-astro-cid-t4kimzku]:hover{border-color:color-mix(in srgb,var(--color-accent) 30%,var(--color-border));transform:translateY(-1px)}.tutorial__projects-link[data-astro-cid-t4kimzku]{display:flex;align-items:center;gap:var(--space-3);color:var(--color-text);text-decoration:none;margin-bottom:var(--space-2)}.tutorial__projects-link[data-astro-cid-t4kimzku]:hover{color:var(--color-text)}.tutorial__projects-title[data-astro-cid-t4kimzku]{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:var(--fw-semibold);letter-spacing:-.01em}.tutorial__projects-status[data-astro-cid-t4kimzku]{flex-shrink:0;font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:999px;border:1px solid var(--color-border);background:transparent;color:var(--color-text-muted);white-space:nowrap}.tutorial__projects-status--en-desarrollo[data-astro-cid-t4kimzku]{border-color:color-mix(in srgb,var(--color-accent) 50%,var(--color-border));color:var(--color-accent)}.tutorial__projects-status--publicado[data-astro-cid-t4kimzku]{border-color:var(--color-success, #0f9960);color:var(--color-success, #0f9960)}.tutorial__projects-status--archivado[data-astro-cid-t4kimzku]{border-color:var(--color-border);color:var(--color-text-subtle)}.tutorial__projects-summary[data-astro-cid-t4kimzku]{color:var(--color-text-muted);font-size:var(--fs-sm);margin:0;line-height:var(--lh-body)}.tutorial__body[data-astro-cid-t4kimzku] pre{background:color-mix(in srgb,var(--tut-cat-color) 6%,var(--color-bg-code))}.tutorial__body[data-astro-cid-t4kimzku] pre.pseudocode-block{background:color-mix(in srgb,var(--color-text) 6%,var(--color-bg-code));box-shadow:var(--shadow-2)}
