:root{--bg:#0a0a0b;--bg-raised:#111113;--bg-code:#101010;--ink:#dcdad3;--ink-strong:#f4f2ec;--muted:#86847d;--faint:#2a2a2d;--rule:#1f1f22;--accent:#ffc799;--accent-2:#99ffe4;--accent-ink:#0a0a0b;--selection:#ffc79947;--grid:#ffffff06;--font-body:"IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--measure:44rem;--gutter:16px;color-scheme:dark}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#f5f3ee;--bg-raised:#ece9e2;--bg-code:#edeae3;--ink:#2a2926;--ink-strong:#0f0f0e;--muted:#6d6a62;--faint:#d6d2c8;--rule:#dcd8ce;--accent:#b4531a;--accent-2:#0f7a63;--accent-ink:#f5f3ee;--selection:#b4531a2e;--grid:#00000008;color-scheme:light}}:root[data-theme=light]{--bg:#f5f3ee;--bg-raised:#ece9e2;--bg-code:#edeae3;--ink:#2a2926;--ink-strong:#0f0f0e;--muted:#6d6a62;--faint:#d6d2c8;--rule:#dcd8ce;--accent:#b4531a;--accent-2:#0f7a63;--accent-ink:#f5f3ee;--selection:#b4531a2e;--grid:#00000008;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background-color:var(--bg);background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;background-position:-1px -1px;background-size:32px 32px;margin:0;font-size:1.0625rem;line-height:1.7;overflow-x:hidden}::selection{background:var(--selection)}a{color:var(--accent);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-underline-offset:3px;transition:text-decoration-color .12s}a:hover{text-decoration-color:var(--accent)}:focus-visible{outline:2px solid var(--accent-2);outline-offset:3px;border-radius:2px}.wrap{width:100%;max-width:calc(var(--measure) + var(--gutter) * 2);padding:0 var(--gutter);margin:0 auto}.wrap-wide{max-width:calc(56rem + var(--gutter) * 2)}.mono{font-family:var(--font-mono)}.skip{position:absolute;left:-9999px}.skip:focus{left:var(--gutter);background:var(--accent);color:var(--accent-ink);z-index:10;padding:4px 10px;top:8px}.site-header{border-bottom:1px solid var(--rule);background:color-mix(in srgb, var(--bg) 88%, transparent);backdrop-filter:blur(8px);z-index:5;position:sticky;top:0}.site-header .wrap{justify-content:space-between;align-items:center;gap:1rem;height:3.5rem;display:flex}.brand{font-family:var(--font-mono);color:var(--ink-strong);white-space:nowrap;font-size:.9rem;text-decoration:none}.brand .prompt{color:var(--accent-2)}.brand .path{color:var(--accent)}.cursor{vertical-align:-.15em;background:var(--accent);width:.55em;height:1.05em;margin-left:2px;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.cursor{animation:none}}.nav{font-family:var(--font-mono);align-items:center;gap:1.1rem;font-size:.8rem;display:flex}.nav a{color:var(--muted);text-decoration:none}.nav a:hover,.nav a[aria-current=page]{color:var(--ink-strong)}.theme-toggle{appearance:none;border:1px solid var(--faint);color:var(--muted);font:inherit;font-family:var(--font-mono);cursor:pointer;background:0 0;border-radius:3px;padding:2px 8px;font-size:.75rem}.theme-toggle:hover{color:var(--ink-strong);border-color:var(--muted)}@media (width<=480px){.nav .hide-sm{display:none}}.site-footer{border-top:1px solid var(--rule);font-family:var(--font-mono);color:var(--muted);margin-top:6rem;padding:2rem 0 3rem;font-size:.75rem}.site-footer .wrap{flex-wrap:wrap;justify-content:space-between;gap:.75rem;display:flex}.site-footer a{color:var(--muted)}.hero{padding:4.5rem 0 3rem}.hero .whoami{font-family:var(--font-mono);color:var(--muted);margin:0 0 1.25rem;font-size:.8rem}.hero .whoami span{color:var(--accent-2)}.hero h1{font-family:var(--font-mono);letter-spacing:-.03em;color:var(--ink-strong);margin:0 0 1.25rem;font-size:clamp(2rem,7vw,3.25rem);font-weight:700;line-height:1.05}.hero h1 em{color:var(--accent);font-style:normal}.hero p{max-width:36rem;color:var(--ink);margin:0}.section-label{font-family:var(--font-mono);text-transform:lowercase;color:var(--muted);border-bottom:1px solid var(--rule);justify-content:space-between;margin:2rem 0 0;padding-bottom:.6rem;font-size:.75rem;display:flex}.post-list{margin:0;padding:0;list-style:none}.post-list li{border-bottom:1px solid var(--rule)}.post-list a{color:inherit;grid-template-columns:6.5rem 1fr;gap:1rem;padding:1.25rem 0;text-decoration:none;display:grid}.post-list time{font-family:var(--font-mono);color:var(--muted);padding-top:.2rem;font-size:.8rem}.post-list h2{font-family:var(--font-mono);letter-spacing:-.01em;color:var(--ink-strong);margin:0 0 .35rem;font-size:1.05rem;font-weight:600;line-height:1.35;transition:color .12s}.post-list a:hover h2{color:var(--accent)}.post-list p{color:var(--muted);margin:0;font-size:.95rem;line-height:1.55}@media (width<=560px){.post-list a{grid-template-columns:1fr;gap:.35rem}}.post-head{border-bottom:1px solid var(--rule);margin-bottom:2.5rem;padding:4rem 0 2rem}.crumb{font-family:var(--font-mono);color:var(--muted);overflow-wrap:anywhere;margin:0 0 1.5rem;font-size:.78rem}.crumb .prompt{color:var(--accent-2)}.crumb a{color:var(--muted);text-decoration:none}.crumb a:hover{color:var(--ink-strong)}.post-head h1{font-family:var(--font-mono);letter-spacing:-.025em;color:var(--ink-strong);text-wrap:balance;margin:0 0 1rem;font-size:clamp(1.7rem,5.2vw,2.5rem);font-weight:700;line-height:1.12}.post-head .dek{color:var(--muted);text-wrap:pretty;margin:0 0 1.5rem;font-size:1.1rem}.meta{font-family:var(--font-mono);color:var(--muted);flex-wrap:wrap;gap:.4rem 1.25rem;font-size:.75rem;display:flex}.meta .tag{color:var(--accent-2)}.prose{font-size:1.0625rem}.prose>*+*{margin-top:1.25em}.prose p,.prose ul,.prose ol{margin-bottom:0}.prose p{text-wrap:pretty}.prose h2{font-family:var(--font-mono);letter-spacing:-.015em;color:var(--ink-strong);margin:3.25rem 0 0;scroll-margin-top:5rem;font-size:1.25rem;font-weight:700;line-height:1.3}.prose h2:before{content:"## ";color:var(--accent);opacity:.7}.prose h3{font-family:var(--font-mono);color:var(--ink-strong);margin:2.25rem 0 0;font-size:1.02rem}.prose h2+*,.prose h3+*{margin-top:.9rem}.prose strong{color:var(--ink-strong);font-weight:600}.prose :not(pre)>code{font-family:var(--font-mono);background:var(--bg-raised);border:1px solid var(--rule);color:var(--ink-strong);overflow-wrap:anywhere;border-radius:3px;padding:.1em .35em;font-size:.86em}.prose pre{font-family:var(--font-mono);border:1px solid var(--rule);border-radius:6px;padding:1rem 1.1rem;font-size:.84rem;line-height:1.6;overflow-x:auto;background-color:var(--bg-code)!important}.prose pre code{font-family:inherit}.astro-code,.astro-code span{color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .astro-code,:root:not([data-theme=dark]) .astro-code span{color:var(--shiki-light)!important;font-style:var(--shiki-light-font-style)!important;font-weight:var(--shiki-light-font-weight)!important}}:root[data-theme=light] .astro-code,:root[data-theme=light] .astro-code span{color:var(--shiki-light)!important;font-style:var(--shiki-light-font-style)!important;font-weight:var(--shiki-light-font-weight)!important}.prose ul,.prose ol{padding-left:1.3rem}.prose li+li{margin-top:.4em}.prose ul li::marker{color:var(--accent);content:"›  ";font-family:var(--font-mono)}.prose blockquote{border-left:2px solid var(--accent);color:var(--muted);margin-left:0;margin-right:0;padding-left:1rem}.prose hr{border:0;border-top:1px solid var(--rule);margin:3rem 0}.table-wrap{border:1px solid var(--rule);background:var(--bg-raised);border-radius:6px;overflow-x:auto}.prose table{border-collapse:collapse;width:100%;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:.82rem}.prose th,.prose td{border-bottom:1px solid var(--rule);text-align:left;vertical-align:top;padding:.55rem .9rem}.prose tr:last-child td{border-bottom:0}.prose th{color:var(--muted);font-weight:500}.prose td.num,.prose th.num{text-align:right;color:var(--ink-strong);white-space:nowrap}.figure{border:1px solid var(--rule);background:var(--bg-raised);border-radius:6px;margin:2rem 0 0;padding:1.25rem}.figure svg{width:100%;height:auto;display:block}.figure figcaption{font-family:var(--font-mono);color:var(--muted);margin-top:.9rem;font-size:.75rem;line-height:1.55}.stat-row{background:var(--rule);border:1px solid var(--rule);border-radius:6px;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:1px;display:grid;overflow:hidden}.stat{background:var(--bg-raised);padding:.9rem 1rem}.stat .v{font-family:var(--font-mono);color:var(--accent);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:700;display:block}.stat .k{font-family:var(--font-mono);color:var(--muted);margin-top:.2rem;font-size:.7rem;line-height:1.4;display:block}.post-foot{border-top:1px solid var(--rule);font-family:var(--font-mono);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:.75rem;margin-top:4rem;padding-top:1.5rem;font-size:.8rem;display:flex}.post-foot a{color:var(--muted)}.dg-label{font-family:var(--font-mono);fill:var(--ink);font-size:12px}.dg-small{font-family:var(--font-mono);fill:var(--muted);font-size:10.5px}.dg-restore-text{fill:var(--accent-2)}.dg-pin{fill:color-mix(in srgb, var(--accent-2) 22%, transparent);stroke:var(--accent-2);stroke-width:1.5px}.dg-hot{fill:color-mix(in srgb, var(--accent) 30%, transparent);stroke:var(--accent);stroke-width:1.5px}.dg-restored{stroke:var(--accent-2);stroke-dasharray:3 2}.dg-cold{fill:none;stroke:var(--faint);stroke-width:1.5px;stroke-dasharray:4 3}.dg-store{fill:var(--bg);stroke:var(--faint);stroke-width:1.5px}.dg-gdn{fill:color-mix(in srgb, var(--accent-2) 8%, transparent);stroke:color-mix(in srgb, var(--accent-2) 45%, transparent);stroke-width:1.5px}.dg-arrow{fill:none;stroke:var(--muted);stroke-width:1.5px}.dg-arrow-restore{stroke:var(--accent-2)}.dg-head{fill:var(--muted)}.dg-head-restore{fill:var(--accent-2)}.prose pre,.prose code{font-variant-ligatures:none;font-feature-settings:"calt" 0, "liga" 0}.figure .scroll{overflow-x:auto}@media (width<=640px){.figure{padding:1rem .75rem}.figure svg{min-width:560px}}
