@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-sans-latin-400-normal.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(fonts/ibm-plex-sans-latin-600-normal.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-mono-latin-400-normal.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-mono-latin-500-normal.woff2)format("woff2")}:root{color-scheme:light dark;--papel:#f3f5f6;--papel-2:#e7ebed;--tinta:#151a21;--tinta-2:#4a5560;--timbre:#1b3fa8;--aprobada:#0a6b3d;--anulada:#a12a1e;--regla:#c3cbd1;--trazo:#4a5560;--sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--gutter:1rem;--medida:42rem;--ancho:70rem;--radio:4px}@media (prefers-color-scheme:dark){:root{--papel:#0f1317;--papel-2:#181e24;--tinta:#e6eaed;--tinta-2:#a3aeb8;--timbre:#9db2ff;--aprobada:#62d394;--anulada:#ff9384;--regla:#333d47;--trazo:#a3aeb8}}@media (prefers-contrast:more){:root{--tinta-2:#151a21;--regla:#4a5560;--trazo:#151a21}}@media (prefers-contrast:more) and (prefers-color-scheme:dark){:root{--tinta-2:#e6eaed;--regla:#a3aeb8;--trazo:#e6eaed}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:1rem}body{background:var(--papel);color:var(--tinta);font-family:var(--sans);overflow-wrap:break-word;margin:0;font-size:1.0625rem;line-height:1.6}h1,h2,h3,p,ul,ol,figure,pre{margin:0}img,svg{max-width:100%}a{color:var(--timbre);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--timbre);outline-offset:3px;border-radius:2px}::selection{background:var(--timbre);color:var(--papel)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{left:var(--gutter);z-index:10;background:var(--tinta);color:var(--papel);border-radius:var(--radio);padding:.75rem 1rem;position:absolute;top:.5rem;transform:translateY(-200%)}.skip:focus{outline:3px solid var(--timbre);outline-offset:2px;transform:none}.wrap{width:100%;max-width:var(--ancho);padding-inline:var(--gutter);margin-inline:auto}.site-header{padding-block:.5rem}.site-header .wrap{flex-wrap:wrap;justify-content:space-between;align-items:center;column-gap:1.5rem;display:flex}.brand{min-height:2.75rem;color:var(--tinta);align-items:center;font-size:1.0625rem;font-weight:600;text-decoration:none;display:inline-flex}.brand:hover{text-decoration:underline}.nav{flex-wrap:wrap;column-gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.nav a{min-height:2.75rem;color:var(--tinta);align-items:center;padding-inline:.5rem;font-size:.9375rem;text-decoration:none;display:inline-flex}.nav a:hover{color:var(--timbre);text-decoration:underline}h1{letter-spacing:-.02em;text-wrap:balance;font-size:clamp(2.125rem,1.6rem + 2.2vw,3.25rem);font-weight:600;line-height:1.08}h2{letter-spacing:-.01em;font-size:1.375rem;font-weight:600;line-height:1.25}h3{font-size:1.0625rem;font-weight:600;line-height:1.35}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.btn{background:var(--timbre);min-height:2.75rem;color:var(--papel);border-radius:var(--radio);overflow-wrap:anywhere;align-items:center;padding:.5rem 1.125rem;font-size:1rem;font-weight:600;line-height:1.3;text-decoration:none;display:inline-flex}.btn:hover{text-underline-offset:.2em;text-decoration:underline;text-decoration-thickness:2px}.btn:focus-visible{outline-color:var(--tinta)}.link-block{align-items:center;min-height:2.75rem;display:inline-flex}.hero{padding-block:2.5rem 3.5rem}.hero-grid{gap:2.5rem;display:grid}.hero-text>*+*{margin-top:1.25rem}.hero-text .lead{max-width:36rem}.actions{flex-wrap:wrap;align-items:center;gap:.25rem 1.5rem;margin-top:1.75rem;display:flex}.section{padding-block:3.5rem 0}.section h2{margin-bottom:1.25rem}.prose-block{max-width:var(--medida)}.prose-block>*+*{margin-top:1.5rem}.prose-block h3{margin-bottom:.25rem}.sub{max-width:var(--medida);color:var(--tinta-2)}.ledger-wrap{margin-top:1.5rem}.ledger{border-collapse:collapse;width:100%;font-size:.9375rem;line-height:1.5}.ledger thead{display:none}.ledger tr{border-top:1px solid var(--regla);padding-block:1rem;display:block}.ledger tr:last-child{border-bottom:1px solid var(--regla)}.ledger th[scope=row],.ledger td{text-align:left;padding:0;display:block}.ledger th[scope=row]{margin-bottom:.5rem;font-size:1.0625rem;font-weight:600}.ledger td+td{margin-top:.5rem}.ledger td:before{content:attr(data-label);font-family:var(--mono);color:var(--tinta-2);font-size:.8125rem;line-height:1.4;display:block}.ledger .stack{font-family:var(--mono);font-size:.875rem}.post-list{max-width:var(--medida);padding:0;list-style:none}.post-date{font-family:var(--mono);color:var(--tinta-2);font-size:.875rem;display:block}.post-title{margin-block:.25rem;font-size:1.1875rem;font-weight:600;line-height:1.35;display:inline-block}.post-list p{color:var(--tinta)}.contact-links{flex-wrap:wrap;gap:0 1.5rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.contact-links a{align-items:center;min-height:2.75rem;display:inline-flex}.site-footer{border-top:1px solid var(--regla);color:var(--tinta-2);margin-top:4rem;padding-block:1.5rem 2.5rem;font-size:.9375rem}.site-footer .wrap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:0 1.5rem;display:flex}.site-footer a{align-items:center;min-height:2.75rem;display:inline-flex}.trace{--pad:.75rem;border:1px solid var(--trazo);background:var(--papel-2);border-radius:0}.trace-lanes{gap:var(--pad);padding:var(--pad);grid-template-columns:1fr 1fr;display:grid}.lane{flex-direction:column;gap:.5rem;min-width:0;display:flex}.lane-name{font-family:var(--mono);color:var(--tinta);padding-bottom:.125rem;font-size:.8125rem;font-weight:500;line-height:1.3}.step{background:var(--papel);border:1px solid var(--trazo);padding:.5rem .625rem;font-size:.875rem;line-height:1.35;position:relative}.step+.step:before{content:"";background:var(--trazo);width:1px;height:.5rem;position:absolute;bottom:100%;left:.875rem}.trace-lock{padding:.75rem var(--pad);background:var(--tinta);color:var(--papel);display:block}.trace-lock .lock-label{font-family:var(--mono);font-size:.875rem;font-weight:500;line-height:1.35;display:block}.trace-lock .lock-note{margin-top:.125rem;font-size:.875rem;line-height:1.4;display:block}.trace-lock.is-open{background:var(--papel);color:var(--tinta);border-block:2px dashed var(--trazo)}.trace-results{gap:var(--pad);padding:var(--pad);grid-template-columns:1fr 1fr;display:grid}.result{background:var(--papel);min-width:0;color:var(--tinta);border:2px solid;padding:.5rem .625rem}.result .who{font-family:var(--mono);color:var(--tinta-2);font-size:.8125rem;line-height:1.3;display:block}.result .state{font-family:var(--mono);margin-top:.125rem;font-size:1rem;font-weight:500;line-height:1.3;display:block}.result .why{color:var(--tinta);margin-top:.25rem;font-size:.875rem;line-height:1.35;display:block}.result.ok{color:var(--aprobada)}.result.void{color:var(--anulada)}.result .state{color:inherit}.trace-flag{padding:0 var(--pad) var(--pad);font-family:var(--mono);color:var(--anulada);margin:0;font-size:.9375rem;font-weight:500}figcaption{max-width:36rem;color:var(--tinta-2);margin-top:.75rem;font-size:.9375rem;line-height:1.5}@media (max-width:21.25rem){.trace-lanes,.trace-results{grid-template-columns:1fr}}.article-head{padding-block:1.5rem 0}.back{align-items:center;min-height:2.75rem;display:inline-flex}.article-head h1{max-width:46rem;margin-top:.5rem;font-size:clamp(1.875rem,1.5rem + 1.8vw,2.75rem)}.article-meta{font-family:var(--mono);color:var(--tinta-2);margin-top:1rem;font-size:.875rem}.article{padding-block:2rem 0}.article>.wrap>*{max-width:var(--medida)}.article>.wrap>*+*{margin-top:1.25rem}.article>.wrap>h2{max-width:var(--medida);margin-top:3rem}.article>.wrap>h2+*{margin-top:.75rem}.article>.wrap>figure{max-width:44rem;margin-top:1.75rem;margin-bottom:.5rem}.article ol,.article ul{padding-left:1.5rem}.article li+li{margin-top:.5rem}.article ol>li::marker{font-family:var(--mono);font-weight:500}.article pre{background:var(--papel-2);border:1px solid var(--regla);border-radius:var(--radio);font-family:var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;tab-size:2;padding:1rem;font-size:.8125rem;line-height:1.6}.article code{font-family:var(--mono)}@media (min-width:37.5rem){:root{--gutter:1.5rem}.site-header{padding-block:.75rem}.nav a{padding-inline:.75rem}}@media (min-width:56.25rem){:root{--gutter:2rem}body{font-size:1.125rem}h2{font-size:1.625rem}.hero{padding-block:4rem 5rem}.hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,26rem);align-items:start;column-gap:4rem}.section{padding-block:5.5rem 0}.section h2{margin-bottom:1.5rem}.ledger{font-size:1rem}.ledger thead{display:table-header-group}.ledger thead th{text-align:left;font-family:var(--mono);color:var(--tinta-2);border-bottom:1px solid var(--tinta-2);padding:0 1.5rem .75rem 0;font-size:.8125rem;font-weight:500}.ledger tr{border:0;padding:0;display:table-row}.ledger tbody tr:last-child{border:0}.ledger th[scope=row],.ledger td{vertical-align:top;border-bottom:1px solid var(--regla);padding:1.125rem 1.5rem 1.125rem 0;display:table-cell}.ledger th[scope=row]{width:14%;margin:0;font-size:1rem}.ledger td+td{margin:0}.ledger td:before{display:none}.ledger td:nth-child(2){width:34%}.ledger td:nth-child(3){width:24%}.ledger .stack{font-size:.9375rem}.article{padding-block:3rem 0}.article pre{font-size:.875rem}.trace{--pad:1rem}}@media (min-width:75rem){.hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,28rem)}}@media (min-width:37.5rem){.trace.is-large .step{padding:.75rem .875rem;font-size:1rem}.trace.is-large .lane-name{font-size:.9375rem}.trace.is-large .lock-label,.trace.is-large .lock-note,.trace.is-large .result .why{font-size:1rem}.trace.is-large .result .state{font-size:1.125rem}.trace.is-large .result .who{font-size:.875rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@media print{.skip{display:none}}.contact-cta{margin-top:1.25rem}