@font-face{font-family:Charter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/charter/charter_regular.woff2)format("woff2")}@font-face{font-family:Charter;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/charter/charter_italic.woff2)format("woff2")}@font-face{font-family:Charter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/charter/charter_bold.woff2)format("woff2")}@font-face{font-family:Charter;font-style:italic;font-weight:700;font-display:swap;src:url(/fonts/charter/charter_bold_italic.woff2)format("woff2")}:root{--font-serif:"Charter", Georgia, "Times New Roman", serif;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", "Roboto Mono", Menlo, Consolas, monospace;--bg:#fcfbf9;--text:#222221;--heading:#141413;--muted:#9b968d;--rule:#e9e5dd;--accent:#b14a3a;--code-bg:#f3f0ea;--prose-size:18px;--prose-leading:1.5;--measure:32em;--para-space:1em}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.6}.prose{max-width:var(--measure);font-family:var(--font-serif);font-size:var(--prose-size);line-height:var(--prose-leading);color:var(--text);margin:0 auto;padding:0 1.25rem}.prose h1{font-family:var(--font-serif);letter-spacing:-.01em;color:var(--heading);margin:0 0 .4rem;font-size:2rem;font-weight:700;line-height:1.2}.prose h2{font-family:var(--font-serif);color:var(--heading);margin:1.7em 0 .4em;font-size:1.5rem;font-weight:700;line-height:1.25}.prose h3{font-family:var(--font-serif);color:var(--heading);margin:1.5em 0 .4em;font-size:1.25rem;font-weight:700;line-height:1.3}.prose p{margin:0 0 var(--para-space);text-indent:0}.prose a{color:var(--heading);text-underline-offset:2px;text-decoration:underline 1px;transition:text-decoration-thickness .15s}.prose a:hover{text-decoration-thickness:2px}.prose strong{font-weight:700}.prose em{font-style:italic}.prose blockquote{border-left:3px solid var(--rule);color:#6b675f;margin:1.5em 0;padding-left:1em;font-style:italic}.prose ul,.prose ol{margin:0 0 var(--para-space);padding-left:1.3em}.prose li{margin:.25em 0}.prose code{font-family:var(--font-mono);background:var(--code-bg);border-radius:3px;padding:.12em .35em;font-size:.85em}.prose pre{font-family:var(--font-mono);background:var(--code-bg);border-radius:8px;margin:0 0 1.2em;padding:1em 1.2em;font-size:.82em;line-height:1.5;overflow-x:auto}.prose pre code{background:0 0;padding:0;font-size:1em}.prose img{border-radius:6px;max-width:100%;height:auto}.prose hr{border:none;border-top:1px solid var(--rule);margin:2.2em 0}.prose .skill-embed{border:1px solid var(--rule);background:var(--code-bg);border-radius:8px;margin:0 0 1.4em;overflow:hidden}.prose .skill-embed__summary{cursor:pointer;font-family:var(--font-sans);letter-spacing:.02em;color:var(--muted);user-select:none;padding:.65em 1em;font-size:.82rem;list-style:none}.prose .skill-embed__summary::-webkit-details-marker{display:none}.prose .skill-embed__summary:before{content:"▸ ";color:var(--accent);vertical-align:-.12em;font-size:1.5em;line-height:0}.prose .skill-embed[open] .skill-embed__summary{border-bottom:1px solid var(--rule);color:var(--heading)}.prose .skill-embed[open] .skill-embed__summary:before{content:"▾ "}.prose .skill-embed__toolbar{justify-content:flex-end;padding:.55em .6em 0;display:flex}.prose .skill-embed__copy{font-family:var(--font-sans);letter-spacing:.03em;color:var(--muted);background:var(--bg);border:1px solid var(--rule);cursor:pointer;border-radius:5px;padding:.3em .7em;font-size:.72rem}.prose .skill-embed__copy:hover{color:var(--heading);border-color:var(--muted)}.prose .skill-embed__copy.is-copied{color:var(--accent);border-color:var(--accent)}.prose .skill-embed__pre{background:0 0;border-radius:0;max-height:30em;margin:0;overflow:auto}.post-date{font-family:var(--font-sans);color:var(--muted);margin:0 0 2.5rem;font-size:.8rem}.post-date .updated{font-style:italic}.sr-only{clip:rect(1px, 1px, 1px, 1px);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:0;padding:0;overflow:hidden;position:absolute!important}.prose figure{max-width:40em;margin:2.4em auto;padding:0;overflow-x:auto}.prose .fig-title{font-family:var(--font-sans);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);text-align:center;margin:0 0 1.3em;font-size:.76rem;font-weight:700}.prose .dtab{border-collapse:separate;border-spacing:4px;font-family:var(--font-sans);margin:0 auto}.prose .dtab th{color:var(--heading);font-weight:600}.prose .dtab th.col{text-align:center;vertical-align:bottom;padding:0 0 .45em;font-size:.86rem}.prose .dtab th.row{text-align:right;white-space:nowrap;padding:0 .7em 0 0;font-size:.86rem}.prose .dtab .fhead{color:var(--heading);text-align:center;white-space:nowrap;padding:0 0 .45em;font-size:.86rem;font-weight:600}.prose .dtab td.cell{text-align:center;width:3em;height:2.35em;font-family:var(--font-mono);color:#351812;font-variant-numeric:tabular-nums;border-radius:5px;font-size:1rem;font-weight:600}.prose .ftab th.row{text-align:left;padding:0 1.1em 0 .2em;font-size:.88rem}.prose .ftab td.cell{width:3.6em}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}
