@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")}@font-face{font-family:Archivo Variable;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/archivo-latin-wght-normal.woff2)format("woff2")}:root{--paper:#efefed;--card:#fff;--ink:#16161a;--steel:#6e7076;--rule:#d7d7d3;--signal:#da291c;--amber:#b45309;--code-bg:#f5f5f3;--card-soft:#f7f7f5;--mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--sans:"Archivo Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--gutter:24px;--header-h:8.5rem;--maxw:1120px;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--paper:#111214;--card:#191a1d;--ink:#e8e8e6;--steel:#8b8d93;--rule:#2c2e32;--signal:#f0392b;--amber:#d98324;--code-bg:#17181b;--card-soft:#1e1f23}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:15px;line-height:1.5}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--signal);outline-offset:2px;border-radius:1px}.section,.entry,.table-block,.prose{scroll-margin-top:calc(var(--header-h) + 12px)}.header{z-index:10;background:color-mix(in srgb, var(--paper) 92%, transparent);backdrop-filter:saturate(180%)blur(8px);border-bottom:1px solid var(--rule);padding:12px var(--gutter);position:sticky;top:0}.header-bar{max-width:var(--maxw);justify-content:space-between;align-items:baseline;gap:16px;margin:0 auto;display:flex}.wordmark{align-items:baseline;gap:12px;min-width:0;display:flex}.wordmark-main{font-family:var(--mono);letter-spacing:.14em;font-size:18px;font-weight:500}.wordmark-sub{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--steel);white-space:nowrap;font-size:11px}.count{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--steel);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12px}#count-num{color:var(--ink);font-weight:500}.search-row{max-width:var(--maxw);align-items:center;margin:10px auto 0;display:flex;position:relative}.search-key{font-family:var(--mono);color:var(--steel);border:1px solid var(--rule);pointer-events:none;border-radius:3px;padding:0 6px;font-size:13px;line-height:1.5;position:absolute;left:12px}.search{width:100%;font-family:var(--mono);color:var(--ink);background:var(--card);border:1px solid var(--rule);appearance:none;border-radius:4px;padding:12px 14px 12px 40px;font-size:16px}.search::placeholder{color:var(--steel);opacity:.9}.search:focus-visible{outline:2px solid var(--signal);outline-offset:1px;border-color:#0000}.search::-webkit-search-cancel-button{appearance:none}.chips{max-width:var(--maxw);scrollbar-width:none;flex-wrap:wrap;gap:8px;margin:10px auto 0;padding-bottom:2px;display:flex}.chips::-webkit-scrollbar{display:none}.chip{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--steel);border:1px solid var(--rule);cursor:pointer;white-space:nowrap;background:0 0;border-radius:0;flex:none;padding:5px 10px;font-size:11px;transition:color .1s,border-color .1s}.chip:hover{color:var(--ink);border-color:var(--steel)}.chip.is-active{color:var(--card);background:var(--signal);border-color:var(--signal)}.chip-gotcha:not(.is-active){color:var(--amber);border-color:color-mix(in srgb, var(--amber) 45%, var(--rule))}.shell{max-width:var(--maxw);padding:0 var(--gutter);gap:var(--gutter);grid-template-columns:64px minmax(0,1fr);margin:0 auto;display:grid}.rail{top:var(--header-h);align-self:start;height:max-content;padding-top:32px;position:sticky}.rail-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.rail-link{font-family:var(--mono);letter-spacing:.06em;color:var(--steel);font-variant-numeric:tabular-nums;border-left:2px solid #0000;padding:4px 6px;font-size:12px;text-decoration:none;transition:color .1s;display:block}.rail-link:hover{color:var(--ink)}.rail-link.is-current{color:var(--signal);border-left-color:var(--signal)}.doc{min-width:0;padding:32px 0 40vh}.section{margin-bottom:40px}.section-head{border-bottom:1px solid var(--rule);align-items:baseline;gap:12px;margin-bottom:16px;padding-bottom:8px;display:flex}.section-num{font-family:var(--mono);color:var(--steel);font-variant-numeric:tabular-nums;font-size:13px}.section-title{font-family:var(--mono);letter-spacing:.02em;margin:0;font-size:16px;font-weight:500}.section-body{flex-direction:column;gap:10px;display:flex}.entry{background:var(--card);border:1px solid var(--rule);border-radius:0;padding:14px 18px 16px}.entry-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px 16px;display:flex}.entry-name{font-family:var(--mono);letter-spacing:-.01em;word-break:break-word;margin:0;font-size:20px;font-weight:500;line-height:1.25}.entry-name mark{background:color-mix(in srgb, var(--signal) 22%, transparent);color:inherit;border-radius:1px;padding:0 1px}.tags{flex-wrap:wrap;gap:4px 10px;margin:0;padding:0;list-style:none;display:flex}.tag{font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--steel);font-size:11px}.tag-gotcha{color:var(--amber)}.entry-desc{max-width:68ch;color:var(--ink);margin-top:8px;font-size:15px;line-height:1.55}.entry-desc p{margin:0 0 6px}.entry-desc p:last-child{margin-bottom:0}.entry-desc code,.prose code,.tbl code{font-family:var(--mono);background:var(--card-soft);border:1px solid var(--rule);border-radius:2px;padding:.5px 4px;font-size:.88em}.entry-desc strong{font-weight:600}.code-wrap{border:1px solid var(--rule);background:var(--code-bg);margin-top:10px;overflow-x:auto}.code-wrap .astro-code{font-family:var(--mono);margin:0;padding:12px 14px;font-size:13px;line-height:1.6;background:0 0!important}.astro-code,.astro-code span{color:var(--shiki-light)}@media (prefers-color-scheme:dark){.astro-code,.astro-code span{color:var(--shiki-dark)!important}}.table-block{border:1px solid var(--rule);background:var(--card);overflow-x:auto}.tbl{border-collapse:collapse;width:100%;font-size:13.5px;line-height:1.45}.tbl th{text-align:left;font-family:var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--steel);border-bottom:1px solid var(--rule);white-space:nowrap;background:var(--card-soft);padding:9px 14px;font-size:11px;font-weight:500}.tbl td{border-bottom:1px solid var(--rule);vertical-align:top;padding:9px 14px}.tbl tr:last-child td{border-bottom:0}.tbl-row:hover td{background:var(--card-soft)}.prose{color:var(--ink);max-width:72ch;font-size:15px;line-height:1.55}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose p{margin:0 0 8px}.prose ul,.prose ol{margin:0 0 8px;padding-left:1.25em}.prose li{margin:3px 0}.prose blockquote{border-left:2px solid var(--rule);color:var(--steel);margin:0 0 8px;padding-left:12px}.prose pre{background:var(--code-bg);border:1px solid var(--rule);font-family:var(--mono);margin:0;padding:12px 14px;font-size:13px;overflow-x:auto}.prose pre code{background:0 0;border:0;padding:0}.empty{text-align:center;padding:48px 8px}.empty-head{font-family:var(--mono);margin:0 0 10px;font-size:16px}.empty-hint{color:var(--steel);margin:0;font-size:14px}.empty-chip{font-family:var(--mono);color:var(--signal);border:0;border-bottom:1px solid color-mix(in srgb, var(--signal) 40%, transparent);cursor:pointer;background:0 0;margin:0 2px;padding:0 1px;font-size:12px}.flash{outline:2px solid var(--signal);outline-offset:3px;animation:1.3s ease-out flash-pulse}@keyframes flash-pulse{0%{outline-color:var(--signal)}to{outline-color:#0000}}@media (width<=900px){.rail{display:none}.shell{grid-template-columns:minmax(0,1fr)}}@media (width<=480px){body{font-size:14px}.chips{flex-wrap:nowrap;overflow-x:auto}.header{padding:10px 16px}.shell{padding:0 16px}.entry{padding:12px 14px 14px}.entry-name{font-size:18px}.wordmark-sub{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.flash{animation:none}.chip{transition:none}}
