:root{--bg-hard:#f9f5d7;--bg:#fbf1c7;--bg-1:#ebdbb2;--bg-2:#d5c4a1;--fg-0:#282828;--fg-1:#3c3836;--fg-mute:#7c6f64;--accent:#af3a03;--accent-2:#8f3f71;--measure:42rem}@media(prefers-color-scheme:dark){:root{--bg-hard:#1d2021;--bg:#282828;--bg-1:#3c3836;--bg-2:#504945;--fg-0:#fbf1c7;--fg-1:#ebdbb2;--fg-mute:#a89984;--accent:#fe8019;--accent-2:#d3869b}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0 auto;max-width:var(--measure);padding:0 1.25rem 4rem;background:var(--bg-hard);color:var(--fg-0);font:1.05rem/1.65 ui-serif,Georgia,times new roman,serif;text-rendering:optimizeLegibility}header{border-bottom:2px solid var(--bg-2);margin-bottom:2.5rem}nav{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem 1.25rem;padding:1.1rem 0;font-family:ui-monospace,sfmono-regular,Menlo,Consolas,monospace;font-size:.95rem}nav .brand{display:inline-flex;align-items:center;gap:.45rem;font-weight:700;color:var(--accent);margin-right:auto}.logo{height:1.9em;width:auto;flex-shrink:0}nav a{color:var(--fg-1);text-decoration:none}nav a:hover{color:var(--accent)}h1,h2,h3{line-height:1.25;font-weight:700}h1{font-size:2rem;margin:0 0 .75rem}h2{font-size:1.4rem;margin:2.5rem 0 .75rem;padding-bottom:.25rem;border-bottom:1px solid var(--bg-2)}h3{font-size:1.15rem;margin:1.75rem 0 .5rem}p,ul,ol{margin:0 0 1.1rem}ul,ol{padding-left:1.4rem}li{margin:.3rem 0}a{color:var(--accent);text-underline-offset:2px}a:hover{color:var(--accent-2)}.lede{font-size:1.15rem;color:var(--fg-1)}time{font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--fg-mute);font-size:.9rem}code,pre{font-family:ui-monospace,sfmono-regular,Menlo,Consolas,monospace;font-size:.9em}code{background:var(--bg-1);padding:.12em .35em;border-radius:4px}pre{background:var(--bg-1);padding:1rem 1.15rem;border-radius:6px;border:1px solid var(--bg-2);overflow-x:auto;line-height:1.5}pre code{background:0 0;padding:0}footer{margin-top:3.5rem;padding-top:1.25rem;border-top:2px solid var(--bg-2);color:var(--fg-mute);font-size:.85rem}footer a{color:var(--fg-mute);text-decoration:underline}footer a:hover{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.post-list{list-style:none;padding-left:0}.post-list li{margin:.5rem 0}.post-meta{margin-top:-.4rem;color:var(--fg-mute)}article{margin-bottom:2rem}.back{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.9rem}.codehilite{border-radius:6px;overflow-x:auto;margin:0 0 1.1rem}.codehilite pre{margin:0;border:none}.highlight{border-radius:6px;overflow-x:auto;margin:0 0 1.1rem}.highlight pre{margin:0;border:none}nav .ext{font-size:.75em;margin-left:.15em}footer p{margin:0 0 .4rem}.cards{list-style:none;padding-left:0}.card{margin:0 0 1.1rem}.card h2{margin-top:0}.card p{margin:0 0 .4rem}.papers{list-style:none;padding-left:0}.paper{margin:0 0 2rem}.paper h2{margin-top:0}.paper .post-meta{margin-top:0}.links{list-style:none;padding-left:0;display:flex;flex-wrap:wrap;gap:0 1.25rem;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.95rem}.links li{margin:0}.lineage{list-style:none;padding-left:0}.lineage li+li::before{content:"↓";display:block;color:var(--fg-mute)}.subnav{border-bottom:1px solid var(--bg-2);margin:-1.5rem 0 2rem}.subnav nav{padding:.6rem 0}.status{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.8rem;font-weight:400;color:var(--fg-mute);border:1px solid var(--bg-2);border-radius:4px;padding:.05rem .4rem;vertical-align:middle;white-space:nowrap}.projects h2 a{margin-right:.3rem}nav.jump{gap:.25rem .5rem;padding:0 0 .5rem;font-size:.85rem;color:var(--fg-mute)}.bundle-image{margin:0 0 1.1rem}.bundle-image img{display:block;max-width:100%;height:auto;border:1px solid var(--bg-2);border-radius:6px}.bundle-image figcaption{margin-top:.4rem;font-size:.9rem}.books{list-style:none;padding-left:0}.book{display:flex;gap:.9rem;align-items:flex-start;margin:0 0 1rem}.book img{flex:none;width:64px;height:auto;border:1px solid var(--bg-2);border-radius:3px}.book>div{min-width:0}.book-title{line-height:1.35}.book-credit{margin:.15rem 0 0;color:var(--fg-mute);font-size:.9rem;line-height:1.4}.book details p{margin:.3rem 0 0}.book summary{display:inline-block;cursor:pointer;list-style:none;margin-top:.2rem;color:var(--fg-mute);font-size:.85rem;text-decoration:underline}.book summary::-webkit-details-marker{display:none}.book summary:hover{color:var(--accent)}.book summary .less,.book details[open] summary .more{display:none}.book details[open] summary .less{display:inline}.bg{color:#ebdbb2;background-color:#282828}.chroma{color:#ebdbb2;background-color:#282828}.chroma .x{}.chroma .err{}.chroma .cl{}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#3d3d3d}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#756d59}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#756d59}.chroma .line{display:flex}.chroma .k{color:#fe8019}.chroma .kc{color:#fe8019}.chroma .kd{color:#fe8019}.chroma .kn{color:#fe8019}.chroma .kp{color:#fe8019}.chroma .kr{color:#fe8019}.chroma .kt{color:#fabd2f}.chroma .n{}.chroma .na{color:#b8bb26;font-weight:700}.chroma .nb{color:#fabd2f}.chroma .bp{}.chroma .nc{}.chroma .no{color:#d3869b}.chroma .nd{}.chroma .ni{color:#fabd2f}.chroma .ne{color:#fb4934}.chroma .nf{color:#fabd2f}.chroma .fm{}.chroma .nl{color:#fb4934}.chroma .nn{}.chroma .nx{}.chroma .py{}.chroma .nt{color:#fb4934}.chroma .nv{}.chroma .vc{}.chroma .vg{}.chroma .vi{}.chroma .vm{}.chroma .l{}.chroma .ld{}.chroma .s{color:#b8bb26}.chroma .sa{color:#b8bb26}.chroma .sb{color:#b8bb26}.chroma .sc{color:#b8bb26}.chroma .dl{color:#b8bb26}.chroma .sd{color:#b8bb26}.chroma .s2{color:#b8bb26}.chroma .se{color:#b8bb26}.chroma .sh{color:#b8bb26}.chroma .si{color:#b8bb26}.chroma .sx{color:#b8bb26}.chroma .sr{color:#b8bb26}.chroma .s1{color:#b8bb26}.chroma .ss{color:#83a598}.chroma .m{color:#d3869b}.chroma .mb{color:#d3869b}.chroma .mf{color:#d3869b}.chroma .mh{color:#d3869b}.chroma .mi{color:#d3869b}.chroma .il{color:#d3869b}.chroma .mo{color:#d3869b}.chroma .o{color:#fe8019}.chroma .ow{color:#fe8019}.chroma .p{}.chroma .c{color:#928374;font-style:italic}.chroma .ch{color:#928374;font-style:italic}.chroma .cm{color:#928374;font-style:italic}.chroma .c1{color:#928374;font-style:italic}.chroma .cs{color:#928374;font-style:italic}.chroma .cp{color:#8ec07c}.chroma .cpf{color:#8ec07c;font-style:italic}.chroma .g{}.chroma .gd{color:#282828;background-color:#fb4934}.chroma .ge{color:#83a598;text-decoration:underline}.chroma .gr{background-color:#fb4934;font-weight:700}.chroma .gh{color:#b8bb26;font-weight:700}.chroma .gi{color:#282828;background-color:#b8bb26}.chroma .go{color:#504945}.chroma .gp{}.chroma .gs{}.chroma .gu{color:#b8bb26;font-weight:700}.chroma .gt{background-color:#fb4934;font-weight:700}.chroma .gl{}.chroma .w{}