@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Hanken+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--accent: #9d6c00}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:Hanken Grotesk,ui-sans-serif,system-ui,sans-serif;color:#20180b;background:#faf7f1;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{font-family:Fraunces,ui-serif,Georgia,serif;font-optical-sizing:auto;font-weight:500;--tw-text-opacity: 1;color:rgb(32 24 11 / var(--tw-text-opacity, 1));letter-spacing:-.015em;line-height:1.08}a{transition:color .18s ease}::-moz-selection{background:var(--accent);color:#faf7f1}::selection{background:var(--accent);color:#faf7f1}.section{padding:3.5rem 1.5rem}@media(min-width:768px){.section{padding-top:4.5rem;padding-bottom:4.5rem}}.container{margin-left:auto;margin-right:auto;width:100%;max-width:820px}.rule{border-top-width:1px;--tw-border-opacity: 1;border-color:rgb(231 223 208 / var(--tw-border-opacity, 1))}.eyebrow{display:block;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,monospace;--tw-text-opacity: 1;color:rgb(157 108 0 / var(--tw-text-opacity, 1));font-size:11px;letter-spacing:.16em;line-height:1.5;text-transform:uppercase}.eyebrow .num{color:#6e6553b3;margin-right:.4rem}.link{position:relative;font-weight:500;--tw-text-opacity: 1;color:rgb(157 108 0 / var(--tw-text-opacity, 1));text-decoration:none}.link:after{content:"";position:absolute;left:0;bottom:-.125rem;width:100%;height:1px;background-color:currentColor;transform:scaleX(0);transform-origin:bottom right;transition:transform .22s ease}.link:hover:after{transform:scaleX(1);transform-origin:bottom left}.tag{display:inline-flex;align-items:center;gap:.375rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,monospace;--tw-text-opacity: 1;color:rgb(110 101 83 / var(--tw-text-opacity, 1));font-size:12px}.tag img{height:.875rem;width:.875rem;-o-object-fit:contain;object-fit:contain}.tag-list .tag:not(:last-child):after{content:"·";margin-right:.375rem;color:var(--muted, currentColor)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-weight:500;font-size:13px;padding:.6rem 1.05rem;border-radius:3px;transition:background-color .18s ease,color .18s ease,border-color .18s ease}.btn-primary{--tw-bg-opacity: 1;background-color:rgb(32 24 11 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(250 247 241 / var(--tw-text-opacity, 1))}.btn-primary:hover{--tw-bg-opacity: 1;background-color:rgb(157 108 0 / var(--tw-bg-opacity, 1))}.btn-ghost{border-width:1px;border-color:#20180b40;--tw-text-opacity: 1;color:rgb(32 24 11 / var(--tw-text-opacity, 1))}.btn-ghost:hover{--tw-border-opacity: 1;border-color:rgb(32 24 11 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(32 24 11 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(250 247 241 / var(--tw-text-opacity, 1))}.reveal{opacity:0;transform:translateY(8px);transition:opacity .5s ease,transform .5s ease;will-change:opacity,transform}.reveal.is-visible{opacity:1;transform:none}.toc-nav{display:none}.toc-nav.open{display:block}@media(min-width:1024px){.toc-nav{display:block}}.toc-link{display:block;border-left-width:1px;border-color:transparent;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,monospace;--tw-text-opacity: 1;color:rgb(110 101 83 / var(--tw-text-opacity, 1));text-decoration-line:none;font-size:12.5px;padding:5px 0 5px 12px;margin:1px 0;letter-spacing:.01em;transition:color .15s ease,border-color .15s ease}.toc-link:hover{--tw-text-opacity: 1;color:rgb(32 24 11 / var(--tw-text-opacity, 1))}.toc-link.active{--tw-text-opacity: 1;color:rgb(157 108 0 / var(--tw-text-opacity, 1));border-left-color:var(--accent)}.article{font-size:16px}.article h2{font-family:Fraunces,ui-serif,Georgia,serif;font-size:1.6rem;margin:.4rem 0 .5rem;scroll-margin-top:5rem}.article h3{font-family:Fraunces,ui-serif,Georgia,serif;font-size:1.18rem;margin:1.75rem 0 .4rem;scroll-margin-top:5rem}.article p{line-height:1.625;color:#20180bcc;margin:.85rem 0}.article a:not(.btn){position:relative;font-weight:500;--tw-text-opacity: 1;color:rgb(157 108 0 / var(--tw-text-opacity, 1));text-decoration:none}.article a:not(.btn):after{content:"";position:absolute;left:0;bottom:-.125rem;width:100%;height:1px;background-color:currentColor;transform:scaleX(0);transform-origin:bottom right;transition:transform .22s ease}.article a:not(.btn):hover:after{transform:scaleX(1);transform-origin:bottom left}.article strong{font-weight:600;--tw-text-opacity: 1;color:rgb(32 24 11 / var(--tw-text-opacity, 1))}.article em{font-style:italic}.article section{scroll-margin-top:5rem;padding-top:1.75rem}.article section+section{border-top-width:1px;--tw-border-opacity: 1;border-color:rgb(231 223 208 / var(--tw-border-opacity, 1));margin-top:1.75rem}.article :not(pre)>code{border-width:1px;--tw-border-opacity: 1;border-color:rgb(231 223 208 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(242 236 225 / var(--tw-bg-opacity, 1));font-family:JetBrains Mono,ui-monospace,SFMono-Regular,monospace;--tw-text-opacity: 1;color:rgb(32 24 11 / var(--tw-text-opacity, 1));font-size:.84em;padding:1px 6px;border-radius:4px;white-space:nowrap}.article .code{position:relative;margin:1rem 0}.article .code pre{margin:0;background:#20180b;color:#f2ece1;border:1px solid #3a2f1d;border-radius:6px;padding:16px 18px;overflow-x:auto;font-family:JetBrains Mono,ui-monospace,monospace;font-size:13.5px;line-height:1.7}.article .code pre code{background:none;border:none;padding:0;color:inherit;white-space:pre;font-size:inherit}.article .code .cmt{color:#8f8369}.article .code .cmd{color:#e6b450}.article .code .flag{color:#c98a5a}.article .code .out{color:#b7ab93}.article .copy-btn{position:absolute;top:8px;right:8px;background:#faf7f114;color:#d8cdb7;border:1px solid rgba(250,247,241,.14);border-radius:5px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:11px;letter-spacing:.04em;text-transform:uppercase;padding:4px 9px;cursor:pointer;opacity:0;transition:opacity .15s ease,background .15s ease}.article .code:hover .copy-btn{opacity:1}.article .copy-btn:hover{background:#faf7f129}.article .copy-btn.copied{color:#e6b450;border-color:#9d6c0066}.article .note{border-width:1px;--tw-border-opacity: 1;border-color:rgb(231 223 208 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(245 237 218 / var(--tw-bg-opacity, 1));border-left:3px solid var(--accent);border-radius:6px;padding:12px 16px;margin:1.15rem 0;font-size:15px}.article .note p:first-child{margin-top:0}.article .note p:last-child{margin-bottom:0}.article .note.warn{border-left-color:#b45309;background:#fbf3e3}.article .note.tip{border-left-color:#4d7c3a;background:#f0f4ea}.article .note .label{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,monospace;--tw-text-opacity: 1;color:rgb(157 108 0 / var(--tw-text-opacity, 1));display:inline-block;font-size:10.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;margin-right:7px}.article .note.warn .label{color:#b45309}.article .note.tip .label{color:#4d7c3a}.article table{width:100%;border-collapse:collapse;margin:1.15rem 0;font-size:14px}.article th,.article td{text-align:left;padding:10px 12px;border-bottom:1px solid #e7dfd0;vertical-align:top}.article th{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,monospace;--tw-text-opacity: 1;color:rgb(110 101 83 / var(--tw-text-opacity, 1));font-size:11px;text-transform:uppercase;letter-spacing:.06em;border-bottom:2px solid #e7dfd0}.article td>code{white-space:normal}.article .diagram{border-width:1px;--tw-border-opacity: 1;border-color:rgb(231 223 208 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(242 236 225 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(32 24 11 / var(--tw-text-opacity, 1));border-radius:6px;padding:16px 18px;margin:1.15rem 0;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12.5px;line-height:1.7;overflow-x:auto;white-space:pre}.article .diagram .b{--tw-text-opacity: 1;color:rgb(157 108 0 / var(--tw-text-opacity, 1));font-weight:600}.article dl.glossary{margin:1rem 0}.article dl.glossary dt{font-weight:600;--tw-text-opacity: 1;color:rgb(32 24 11 / var(--tw-text-opacity, 1));margin-top:.9rem}.article dl.glossary dd{--tw-text-opacity: 1;color:rgb(110 101 83 / var(--tw-text-opacity, 1));margin:2px 0 0}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
