.prose{counter-reset:section;max-width:68ch;color:var(--ink-soft);font-family:var(--font-serif);font-size:clamp(1.08rem,1.3vw,1.18rem);line-height:1.72}.prose>p:first-of-type{color:var(--ink-soft);font-size:1.18em;line-height:1.65}.prose h2,.prose h3,.prose h4{color:var(--ink);scroll-margin-top:calc(var(--header-height) + 2rem)}.prose h2{counter-increment:section;border-top:1px solid var(--line);margin-top:3.6rem;padding-top:1.2rem;font-size:clamp(1.9rem,3vw,2.5rem);font-weight:400;line-height:1.04}.prose h2:before{content:"0" counter(section);color:var(--accent);font-family:var(--font-mono);letter-spacing:.08em;margin-bottom:.55rem;font-size:.62rem;font-weight:500;line-height:1.4;display:block}.prose h3{margin-top:2.4rem;font-size:clamp(1.4rem,2vw,1.65rem);font-weight:500;line-height:1.15}.prose h4{margin-top:2rem;font-size:1.15rem;font-weight:600;line-height:1.25}.prose p{margin:0 0 1.2rem}.prose p+p{margin-top:0}.prose a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}.prose a:hover{color:var(--accent-hover)}.prose strong{color:var(--ink);font-weight:600}.prose em{font-style:italic}.prose ul,.prose ol{margin:0 0 1.4rem;padding-left:1.3rem}.prose li{margin-bottom:.4rem;padding-left:.15rem}.prose li::marker{color:var(--accent);font-family:var(--font-mono);font-size:.8em}.prose blockquote{border-left:2px solid var(--accent);color:var(--muted);margin:2rem 0;padding:.2rem 0 .2rem 1.2rem;font-style:italic}.prose blockquote p:last-child{margin-bottom:0}.prose code{border:1px solid var(--line);background:var(--paper-muted);font-family:var(--font-mono);padding:.12em .32em;font-size:.82em;line-height:1.4}.prose pre{border:1px solid color-mix(in srgb, var(--ink) 60%, var(--line));color:var(--code-ink);font-family:var(--font-mono);tab-size:2;margin:1.6rem 0 2rem;padding:1.25rem 1.2rem;font-size:.79rem;line-height:1.65;position:relative;overflow-x:auto;background:var(--code-bg)!important}.prose pre code{color:inherit;font-size:inherit;line-height:inherit;background:0 0;border:0;padding:0}.prose .astro-code{background:var(--code-bg)!important}.prose .code-block{position:relative}.prose .code-copy{z-index:1;border:1px solid color-mix(in srgb, var(--code-ink) 30%, transparent);background:color-mix(in srgb, var(--code-bg) 85%, transparent);color:var(--code-muted);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;transition:color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);padding:.25rem .45rem;font-size:.58rem;line-height:1.4;position:absolute;top:.55rem;right:.55rem}.prose .code-copy:hover,.prose .code-copy:focus-visible{border-color:var(--accent);color:var(--code-ink)}.prose table{border-collapse:collapse;width:100%;font-family:var(--font-sans);margin:1.5rem 0 2rem;font-size:.86rem;line-height:1.5}.prose th{border-bottom:1px solid var(--line-strong);color:var(--muted);font-family:var(--font-mono);letter-spacing:.06em;text-align:left;text-transform:uppercase;padding:.6rem .7rem;font-size:.58rem;font-weight:500}.prose td{border-bottom:1px solid var(--line);vertical-align:top;padding:.6rem .7rem}.prose tr:last-child td{border-bottom:0}.prose .note{border:1px solid var(--line-strong);background:var(--paper-raised);color:var(--ink-soft);font-family:var(--font-sans);margin:2rem 0;padding:1.1rem 1.2rem;font-size:.92rem;line-height:1.6}.prose .note:before{content:"Nota";color:var(--accent);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.45rem;font-size:.57rem;line-height:1.4;display:block}.prose .note strong{color:var(--ink)}.prose hr{margin:3rem 0}.prose img{border:1px solid var(--line);margin:2rem 0}.prose kbd{border:1px solid var(--line-strong);border-radius:var(--radius-xs);background:var(--paper-raised);color:var(--ink);font-family:var(--font-mono);white-space:nowrap;border-bottom-width:2px;padding:.12em .38em;font-size:.78em;line-height:1.3}.prose .project-repo-badges{flex-wrap:wrap;align-items:center;gap:.45rem;margin:0 0 1.6rem;display:flex}.prose .project-repo-badges a{line-height:0;display:inline-flex}.prose .project-repo-badges img{border:0;width:auto;height:20px;margin:0;display:block}.prose .project-figure{border:1px solid var(--line-strong);background:var(--code-bg);box-shadow:var(--shadow-lift);margin:2.4rem 0}.prose .project-figure img{border:0;width:100%;height:auto;margin:0}.prose .project-figure--narrow{max-width:25rem}.prose .project-figure figcaption{border-top:1px solid var(--line);background:var(--paper-raised);color:var(--muted);font-family:var(--font-mono);letter-spacing:.02em;padding:.75rem .95rem .85rem;font-size:.62rem;line-height:1.55}.prose .project-figure figcaption strong{color:var(--ink);font-weight:500}.prose .project-figure figcaption code{font-size:.92em}@media (width<=640px){.prose .project-figure{margin-inline:calc(-1*clamp(.35rem,1.5vw,.75rem))}}.prose>:last-child{margin-bottom:0}@media (width<=640px){.prose table{display:block;overflow-x:auto}.prose th,.prose td{min-width:8.5rem}}
