@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-ext-wght-normal.cHuGMAiY.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-wght-normal.DwHjdM4S.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-greek-wght-normal.ece1310W.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-vietnamese-wght-normal.D-yuW59g.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-ext-wght-normal.CxNHBx-q.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-wght-normal.D9elroTD.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-ext-wght-italic.BXuSHrjR.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-wght-italic.RLIThRd4.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-greek-wght-italic.F2ziEGcb.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-vietnamese-wght-italic.C3q834ic.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-ext-wght-italic.CpkvI5hy.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-wght-italic.D2yaqPoE.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-normal.6IgcOCM7.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAfsABQAAAAAEAwAAAeCAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoP0hWQVJbBmA/U1RBVIFiJyYAdC9qEQgKhGSEAAsgADCGCAE2AiQDOgQgBYlMB4EUDAcbLQ4onoexrSC/2ZyLAa8p8VHB8/x3Vue+V0hVJalMJg2nx/TCrQXxBeqLjQG7FyM1WEa/X1tEXN7cFz9EJEMmMUz3RihWSSKeQCbcIou0izz/C8v+fq3VfajEa9gDD11CImXS7qL/RJFVzC1qiB6KmKeD6TZdQ6IRGv78dL6uSVVCfgni5mzu7kcgQBgAEAQTQRCoL++STTYybkJxNfQxAAIAGu8OdEB9teW2jh4BpgDqFjAeSEByW3zFP0CBBgNMsMCGEDjgggdhiEAUAeIIED7ABTDUEnkIE9Q9ahFgKttcVhApo4ACB4qobHaccgDfEjFO6aaWUhjMLt2SyIvHKoDqoA4CSUwEIYQCEjhAO9R1G6keDeDZGjNo+AhxOjCEGTr1WeIF3kYBiLAOKvkJSMiKX0VdAyQt3SDJClCkxJCHkCzfqyVTriJZLcolS32JZHUekq2TYNkYtCtjYHMQXSxGjXDz2t/yLWXzDzxz+o3zFwDEaN23F+13pyMdQAEaSKAR9vcGq4A4MTSKCElGW+M7UcY7xqkggITb28ZJhlqc9q2twYKTt0NjixBgYvO9BIihEBLYuOFXQzfIQ7dXGUEEEgFDooBfAzqiQbpJrhiWSuKJCRFKYbHCyJKI2G5GiZbNAvgAu5pc3vwx4G+g3aDkhklABiSz0BICXrYghtYhx/cdJ+44rY2oZ0aMNRFz3VZjb6W33F3gzltqtOCV8tTHSpOeXuItfvr5lCdfzFpqtEitvqdcdGGFd28ZqqC0tPbeChGXgrIlnhSWu/eUso4uKWFLugyDzQJhflY4659+WjQ++6x72WUMv9G8mw6QJl7BVxX5fe/kpUsOvnZwee9uQ0cGXYd0o89XB2748sDSnt8d2VphdOTTgceDVvOds0v9P/s7HPq15aGun/6Vllb56f1dl0t1LejqrNkpdRZsG8TOnM5vkBG5oiVyVGnS8LHps5cfNWJs6qKPfaNSxiQNBUm3cKNWROr0GSur7Za31k1vieq7LH11VF+jXdRIasRKflc7jkobm1Z9te1IyZA0pDkhLR98+H37Zf1c/8at+dB7x+7GfVyTfJMPiYztsnl59Y5l4j+0n1RXlpHnF3Tq7HecmNF/CJodEMAikruxiyJaGLvHOdAfoA+oDvpjBm2b91cHGRZMU9n25xEU0A8fgEEAdKI3Q1iDtc034sug5YVMkE2jsE+BIkwSoQ3gxXMqz9tELp48bd0cFKOKS7xYjEuXBnZP5ia7DyiO/X/YI+PQSbt2uSdqAkWL9nQbV1XB94/+uPfdZz8dnXYFBYrcTl2SIR/ybxJNJPz/Gupb0JaZeens2ekC7EKr8t+Ls/P5VJPYJdHKyqfg2nqU6bhlidzcddQV/7MmecTzJ5VPcKXkNKSEogHjYFx6QZ7rQ+FSe8njaiNuOnXS8H2ScQ619c2mC3VTtauL0rRbXd/CkSOP37FY9Zkjz8+GibYUMOEWF+RdrFS8Ecv1SHOpPUPZGEIpjPvFyU5cXKjd6OXqorTqy9GwRd++HVufPGnVsW+aO3vggKZ18jR9sXaTC1PWTEsVUaK0FkNySbTQDqlm2PfDjZcu4aalnSLKjnOoYQ0nUlqqXcGpPu/4VgV/xU2pAqW4BW3qzhQ8/hFKhV2qE3+BKAtDqBXjfgnVdH4y0wg5tbVNRenNdTWOrenWLcupQdmsbq5b+18piTe/xRdp1xbILxNPJGInm2z6hoB21Lal0i+ePTtd7B45+3XhFJ329evskXm7qurUVREotqSluSo/L29d3qDhI4YOQqWhI4YNvBNfsMHeXKemXrxQfKeuPOGRVayA3JtkJKEgbPp+dXUDluddutRYLFoXGXWX6N3WFaGLbQtRSitVYNacTNSdy7AaG/HSaUEANcBoGXNdcZvZsOqQ1icBDv21/gzAoYPHH/WDW0qNR3QTYKEAEHig6o13NXbND06CQPlRtYjGNnSktRc09k1mAMDvAlDKfQjgy6fssInlfzmNAjKkDxoxHOBLdVRAIVt9j4qo+hA1w9T1aNBNTUOTTNUHLbqokE+UAfJXCIGw/IxCSL5GRUJeR40rL/UxTm4Q08H6MbCs70ObuNyIIXrINHQYInF06UUlevTjbQzTh5upiDMzMMogUtEnjPs/Y7jAHCJeB0GBHh04tC6FiB6ZFB1oArUSIoFoqhzCeAN6lHwm0T4C3VVPWvjpSMXReuWesMEcoqrmgtNBGd2noWeV0hNAz9rFeShNJxHGsPa3HXeKTk8b55hahySYHaYKKFFLpCfN8rsoaJn01CR04Gkc+5k7KVTCmClX8Q10HCrUEkVlSX+XO33oQR9609tJ516H497WSobWs5Up6TLaS10/dessIskgJSLiDlWvHVUywpkQ7hdPZqGyiEF0uVQerVcPamT1A3eKXdyI1vG9OoflrSXihZ1qqGE3nhmAgiIbRCQgPLEPtOM3UQwTLYaYYomNlpA44opnjV6jkD6id80OOrzf6BzmMD6eEa1zKyeYG1fzfEf16V6jw9XYOaar1/b2kP/IYX8oR2mcFvv2GtBV3JXgd437AQAA) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: oklch(.975 .005 80);--bg-2: oklch(.955 .006 80);--fg: oklch(.18 .005 80);--muted: oklch(.52 .008 80);--faint: oklch(.78 .006 80);--line: oklch(.88 .006 80);--accent: oklch(.55 .14 40);--accent-soft: oklch(.93 .04 40);--serif: "Source Serif 4 Variable", "Source Serif 4", "Iowan Old Style", Georgia, serif;--sans: "Geist Variable", "Geist", ui-sans-serif, system-ui, sans-serif;--mono: "JetBrains Mono Variable", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--maxw: 1200px;--pad-x: 56px;--row-gap: 56px;--idx-col: 200px}@media(max-width:1024px){:root{--pad-x: 32px}}@media(max-width:720px){:root{--pad-x: 20px;--row-gap: 36px}}[data-theme=dark]{--bg: oklch(.16 .005 80);--bg-2: oklch(.19 .006 80);--fg: oklch(.95 .005 80);--muted: oklch(.62 .008 80);--faint: oklch(.36 .006 80);--line: oklch(.28 .006 80);--accent: oklch(.72 .14 40);--accent-soft: oklch(.26 .06 40)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100vh;overflow-x:hidden;-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}::selection{background:var(--accent-soft);color:var(--fg)}.shell{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad-x)}nav.top{position:sticky;top:0;z-index:30;background:color-mix(in oklab,var(--bg) 88%,transparent);backdrop-filter:saturate(140%) blur(10px);-webkit-backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid transparent;transition:border-color .2s}nav.top.scrolled{border-bottom-color:var(--line)}nav.top .row{display:flex;align-items:center;justify-content:space-between;padding:22px 0}.brand{display:flex;align-items:center;gap:12px}.brand .name{font-family:var(--sans);font-weight:500;letter-spacing:.14em;font-size:13px}.navlinks{display:flex;align-items:center;gap:32px}.navlinks .item{font-size:13px;letter-spacing:.14em;font-weight:500;color:var(--muted);padding:4px 0;border-bottom:1px solid transparent;transition:color .15s,border-color .15s}.navlinks .item:hover{color:var(--fg)}.navlinks .item.active{color:var(--fg);border-bottom-color:var(--fg)}.icon-btn{width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:transparent;cursor:pointer;display:grid;place-items:center;color:var(--muted);padding:0;flex-shrink:0}.icon-btn:hover{color:var(--fg);border-color:var(--fg)}.lang-toggle{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:999px;padding:6px 12px;min-width:44px;text-align:center;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.lang-toggle:hover{color:var(--fg);border-color:var(--fg)}[data-theme=light] .icon-moon{display:block}[data-theme=light] .icon-sun,[data-theme=dark] .icon-moon{display:none}[data-theme=dark] .icon-sun{display:block}main{padding:72px 0 120px;min-height:70vh}.page-title{font-family:var(--serif);font-weight:400;font-size:clamp(44px,9vw,128px);line-height:.95;letter-spacing:-.025em;margin:0 0 96px;word-break:break-word}.page-title em{font-style:italic;color:var(--muted)}.index-row{display:grid;grid-template-columns:var(--idx-col) 1fr;gap:40px;padding:var(--row-gap) 0;border-top:1px solid var(--line)}.index-row .month{font-family:var(--sans);font-size:14px;color:var(--muted);letter-spacing:.02em;padding-top:6px}.post-link{display:block;padding:14px 0}.post-link+.post-link{border-top:1px solid color-mix(in oklab,var(--line) 60%,transparent)}.post-link .title{font-family:var(--serif);font-size:22px;line-height:1.25;letter-spacing:-.01em;color:var(--fg);margin:0 0 6px;font-weight:400;transition:color .15s}.post-link:hover .title{color:var(--accent)}.post-link .meta{font-size:13px;color:var(--muted)}.proj-row{display:grid;grid-template-columns:80px 1fr 200px 120px;gap:32px;padding:28px 0;border-top:1px solid var(--line);align-items:baseline}.proj-row:last-child{border-bottom:1px solid var(--line)}.proj-row .year{font-family:var(--mono);font-size:13px;color:var(--muted)}.proj-row .name{font-family:var(--serif);font-size:32px;line-height:1.1;letter-spacing:-.015em;font-weight:400;transition:color .15s}.proj-row:hover .name{color:var(--accent)}.proj-row .blurb{color:var(--muted);font-size:14px;line-height:1.5}.proj-row .status{justify-self:end;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);padding:4px 10px;border:1px solid var(--line);border-radius:999px;white-space:nowrap}@media(max-width:880px){.proj-row{grid-template-columns:56px 1fr;gap:16px 20px;padding:22px 0}.proj-row .name{font-size:26px}.proj-row .blurb,.proj-row .status{grid-column:2;justify-self:start}.proj-row .status{margin-top:4px}}.about-grid{display:grid;grid-template-columns:var(--idx-col) 1fr;gap:40px;border-top:1px solid var(--line);padding-top:var(--row-gap)}.about-grid h3{margin:0;font-size:14px;font-weight:500;color:var(--muted);letter-spacing:.02em}.about-grid+.about-grid{margin-top:var(--row-gap);padding-top:var(--row-gap)}.about-body{font-family:var(--serif);font-size:20px;line-height:1.55;max-width:62ch;color:var(--fg)}.about-body p{margin:0 0 1em}.about-body em{font-style:italic}.about-body a{color:var(--accent);border-bottom:1px solid color-mix(in oklab,var(--accent) 40%,transparent)}.about-body a:hover{border-bottom-color:var(--accent)}.pair-list{font-size:15px;color:var(--fg)}.pair-list .row{display:grid;grid-template-columns:140px 1fr;gap:16px;padding:10px 0;border-top:1px solid color-mix(in oklab,var(--line) 60%,transparent)}.pair-list .row:first-child{border-top:0}.pair-list .k{color:var(--muted);font-size:14px}.pair-list .v a{color:var(--accent);border-bottom:1px solid color-mix(in oklab,var(--accent) 40%,transparent)}.entry-list{display:flex;flex-direction:column}.entry{padding:18px 0;border-top:1px solid color-mix(in oklab,var(--line) 60%,transparent)}.entry:first-child{border-top:0;padding-top:0}.entry .date{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:6px}.entry .title{font-family:var(--serif);font-size:22px;line-height:1.2;letter-spacing:-.01em;margin:0 0 2px;font-weight:400;color:var(--fg)}.entry .org{font-size:14px;color:var(--muted);margin-bottom:8px}.entry .desc{font-size:15px;color:var(--fg);line-height:1.55;max-width:62ch}.nl-hero{max-width:760px;margin:0 auto;text-align:center;padding:24px 0 0}.nl-hero .eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:24px}.nl-hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(48px,6.5vw,88px);line-height:1.02;letter-spacing:-.025em;margin:0 0 24px}.nl-hero h1 em{font-style:italic;color:var(--muted)}.nl-hero p.lede{font-family:var(--serif);font-size:22px;line-height:1.5;color:var(--muted);max-width:56ch;margin:0 auto 48px}.nl-form{display:flex;gap:0;max-width:520px;margin:0 auto;border:1px solid var(--line);border-radius:999px;padding:6px;background:var(--bg);transition:border-color .2s}.nl-form:focus-within{border-color:var(--fg)}.nl-form input{flex:1;border:0;background:transparent;outline:0;padding:12px 18px;font-family:var(--sans);font-size:15px;color:var(--fg);min-width:0}.nl-form input::placeholder{color:var(--muted)}.nl-form button{border:0;cursor:pointer;background:var(--fg);color:var(--bg);font-family:var(--sans);font-weight:500;font-size:14px;letter-spacing:.04em;padding:12px 22px;border-radius:999px;transition:background .15s}.nl-form button:hover{background:var(--accent)}.nl-form-wrap{display:flex;flex-direction:column;align-items:center;gap:14px}.nl-form-wrap .nl-form{width:100%;margin:0}.nl-consent{display:flex;align-items:flex-start;gap:9px;max-width:520px;font-size:13px;line-height:1.5;color:var(--muted);text-align:left;cursor:pointer}.nl-consent input{margin-top:2px;width:15px;height:15px;flex-shrink:0;accent-color:var(--accent);cursor:pointer}.nl-consent a{color:var(--fg);text-decoration:underline;text-underline-offset:2px}.nl-consent a:hover{color:var(--accent)}.error-msg{font-size:13px;color:#db4241;text-align:center}.nl-form-wrap.success .success-msg{padding:12px 20px;border:1px solid var(--accent);border-radius:999px;font-family:var(--serif);font-size:16px;color:var(--fg)}.nl-meta{margin-top:18px;font-size:13px;color:var(--muted);text-align:center}.post-back{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);display:inline-block;margin-bottom:48px}.post-back:hover{color:var(--fg)}.post-header{max-width:720px;margin:0 auto 64px}.post-header .meta{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:24px}.post-header h1{font-family:var(--serif);font-weight:400;font-size:clamp(40px,5.5vw,64px);line-height:1.05;letter-spacing:-.02em;margin:0 0 24px}.post-header .excerpt{font-family:var(--serif);font-style:italic;font-size:22px;color:var(--muted);line-height:1.5;margin:0}.post-body{max-width:660px;margin:0 auto;font-family:var(--serif);font-size:20px;line-height:1.65;color:var(--fg)}.post-body p{margin:0 0 1.4em}.post-body h2{font-family:var(--serif);font-weight:500;font-size:26px;letter-spacing:-.01em;margin:2em 0 .6em}.post-body ul{margin:0 0 1.4em;padding:0;list-style:none}.post-body ul li{padding:6px 0 6px 28px;position:relative}.post-body ul li:before{content:"—";position:absolute;left:0;color:var(--muted)}.post-body a{color:var(--accent);border-bottom:1px solid color-mix(in oklab,var(--accent) 40%,transparent)}.nl-inline{max-width:660px;margin:96px auto 0;padding:48px;background:var(--bg-2);border-radius:4px;text-align:center;border:1px solid var(--line)}.nl-inline .eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:16px}.nl-inline h3{font-family:var(--serif);font-weight:400;font-size:32px;line-height:1.15;letter-spacing:-.015em;margin:0 0 12px}.nl-inline p{font-family:var(--serif);font-size:17px;color:var(--muted);margin:0 0 28px}.post-foot{max-width:660px;margin:64px auto 0;padding-top:32px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:24px;font-size:14px;color:var(--muted)}.post-foot a:hover{color:var(--fg)}footer.site{border-top:1px solid var(--line);padding:40px 0;margin-top:80px;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:13px}footer.site .links{display:flex;gap:24px}footer.site a:hover{color:var(--fg)}@media(max-width:720px){main{padding:40px 0 72px}nav.top .row{padding:16px 0}.brand .name{font-size:12px;letter-spacing:.12em}.navlinks{gap:14px}.navlinks .item{font-size:11px;letter-spacing:.1em}.navlinks .item[data-key=newsletter]{display:none}.page-title{margin:0 0 48px}.index-row{grid-template-columns:1fr;gap:12px;padding:28px 0}.index-row .month{font-size:12px;text-transform:uppercase;letter-spacing:.1em;padding-top:0}.post-link{padding:10px 0}.post-link .title{font-size:19px}.about-grid{grid-template-columns:1fr;gap:12px}.about-grid+.about-grid{margin-top:36px;padding-top:36px}.about-body{font-size:18px}.about-body p{margin:0 0 .9em}.pair-list .row{grid-template-columns:96px 1fr;gap:12px;padding:8px 0;font-size:14px}.pair-list .k{font-size:13px}.entry .title{font-size:20px}.entry .desc{font-size:14px}.nl-hero{padding:8px 0 0}.nl-hero .eyebrow{margin-bottom:16px}.nl-hero h1{margin:0 0 16px}.nl-hero p.lede{font-size:18px;margin:0 auto 32px}.nl-form{padding:5px}.nl-form input{padding:10px 14px;font-size:14px}.nl-form button{padding:10px 16px;font-size:13px}.post-back{margin-bottom:24px}.post-header{margin:0 auto 40px}.post-header .meta{margin-bottom:16px}.post-header h1{margin:0 0 16px}.post-header .excerpt{font-size:18px}.post-body{font-size:18px;line-height:1.6}.post-body p{margin:0 0 1.1em}.post-body h2{font-size:22px}.post-body ul li{padding:4px 0 4px 22px}.nl-inline{margin:56px auto 0;padding:28px 20px}.nl-inline h3{font-size:24px}.nl-inline p{font-size:15px;margin:0 0 20px}.post-foot{flex-direction:column;gap:12px;margin-top:48px;padding-top:24px}footer.site{flex-direction:column;gap:16px;align-items:flex-start;margin-top:56px;padding:28px 0}}@media(max-width:420px){:root{--pad-x: 16px}.page-title{font-size:clamp(40px,12vw,56px);margin-bottom:36px}.navlinks{gap:10px}.navlinks .item[data-key=about]{display:none}.proj-row .name{font-size:22px}.proj-row .blurb{font-size:13px}.post-header h1{font-size:clamp(30px,8vw,40px)}.post-body{font-size:17px}}footer.site .legal-links{gap:18px}footer.site .legal-links a{font-size:12px;color:var(--faint)}footer.site .legal-links a:hover{color:var(--fg)}.shell.legal{max-width:720px;padding-top:24px;padding-bottom:40px}.legal-header{margin-bottom:40px;padding-bottom:24px;border-bottom:1px solid var(--line)}.legal-header h1{font-family:var(--serif);font-size:clamp(32px,6vw,44px);font-weight:500;letter-spacing:-.02em;margin:0 0 10px;color:var(--fg)}.legal-updated{margin:0;font-size:13px;color:var(--muted)}.legal-section{margin-bottom:32px}.legal-section h2{font-family:var(--sans);font-size:14px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--fg);margin:0 0 12px}.legal-section>div{font-family:var(--serif);font-size:17px;line-height:1.65;color:var(--fg);margin:0 0 14px}.legal-section>div:last-child{margin-bottom:0}.legal-section a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.legal-section ul{margin:8px 0 0;padding-left:22px}.legal-section li{margin-bottom:6px}.legal-section strong{font-weight:600}.cookie-banner{position:fixed;left:50%;bottom:20px;transform:translate(-50%);z-index:50;width:min(680px,calc(100% - 32px));display:flex;align-items:center;gap:18px;padding:16px 18px;background:var(--bg);border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 40px #00000029}.cookie-banner[hidden]{display:none}.cookie-text{flex:1;margin:0;font-size:13px;line-height:1.5;color:var(--muted)}.cookie-text a{color:var(--fg);text-decoration:underline;text-underline-offset:2px}.cookie-text a:hover{color:var(--accent)}.cookie-actions{display:flex;gap:8px;flex-shrink:0}.cookie-btn{cursor:pointer;font-family:var(--sans);font-size:13px;font-weight:500;padding:9px 16px;border-radius:999px;border:1px solid var(--line);transition:background .15s,border-color .15s,color .15s}.cookie-btn.ghost{background:transparent;color:var(--muted)}.cookie-btn.ghost:hover{color:var(--fg);border-color:var(--fg)}.cookie-btn.primary{background:var(--fg);color:var(--bg);border-color:var(--fg)}.cookie-btn.primary:hover{background:var(--accent);border-color:var(--accent)}@media(max-width:560px){.cookie-banner{flex-direction:column;align-items:stretch;gap:12px;bottom:12px}.cookie-actions{justify-content:flex-end}}
