@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/35f3de0ebb1cfc70-s.woff2) format("woff2");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:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e6099e249fd938cc-s.p.woff2) format("woff2");unicode-range:u+00??,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:"Instrument Serif Fallback";src:local("Times New Roman");ascent-override:117.94%;descent-override:36.93%;line-gap-override:0.00%;size-adjust:83.94%}.__className_315a98{font-family:"Instrument Serif","Instrument Serif Fallback";font-weight:400;font-style:normal}.__variable_315a98{--font-display:"Instrument Serif","Instrument Serif Fallback"}:root{--bg:#fbfaf7;--bg-raised:#ffffff;--ink:#16150f;--ink-soft:#5d594c;--ink-faint:#8d8779;--rule:#e2ded2;--accent:#9a4a1e;--accent-soft:#f0e4d8;--danger-bg:#fdecec;--danger-ink:#8f1d1d;--danger-rule:#f0b9b9;--measure:34rem;--gutter:1.5rem;--step:clamp(1rem,0.85rem + 0.6vw,1.125rem)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#12110f;--bg-raised:#1a1917;--ink:#eeebe4;--ink-soft:#a8a294;--ink-faint:#7b7568;--rule:#2e2c27;--accent:#e0915c;--accent-soft:#2a211a;--danger-bg:#2a1616;--danger-ink:#f0a0a0;--danger-rule:#5a2626}}:root[data-theme=dark]{--bg:#12110f;--bg-raised:#1a1917;--ink:#eeebe4;--ink-soft:#a8a294;--ink-faint:#7b7568;--rule:#2e2c27;--accent:#e0915c;--accent-soft:#2a211a;--danger-bg:#2a1616;--danger-ink:#f0a0a0;--danger-rule:#5a2626}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:var(--step);line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit}::selection{background:var(--accent-soft);color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.shell{max-width:44rem;margin:0 auto;padding:0 var(--gutter)}.display{font-family:var(--font-display),Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.01em;line-height:1.12;margin:0}.siteHeader{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:2.25rem 0 0;flex-wrap:wrap}.wordmark{font-family:var(--font-display),Georgia,serif;font-size:1.15rem;text-decoration:none}.navLinks{display:flex;gap:1.25rem;font-size:.9rem;color:var(--ink-soft)}.navLinks a{text-decoration:none}.navLinks a:hover{color:var(--accent)}.hero{padding:4.5rem 0 3rem}.heroKicker{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 1.5rem}.hero h1{font-size:clamp(1.55rem,1.1rem + 1.8vw,2.25rem);max-width:28ch;line-height:1.18;text-wrap:balance}.hero .tagline{max-width:var(--measure);color:var(--ink-soft);font-size:1.1em;margin:1.5rem 0 0;text-wrap:pretty}.metaRow{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin-top:1.75rem;font-size:.875rem;color:var(--ink-faint)}.metaRow a{color:var(--accent);text-underline-offset:3px}.sectionLabel{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);border-top:1px solid var(--rule);padding-top:.85rem;margin:3.5rem 0 1.75rem}.workList{display:grid;grid-gap:1rem;gap:1rem;padding:0;margin:0;list-style:none}.workCard{display:block;text-decoration:none;background:var(--bg-raised);border:1px solid var(--rule);border-radius:10px;padding:1.5rem;transition:border-color .15s ease,transform .15s ease}.workCard:hover{border-color:var(--accent);transform:translateY(-2px)}@media (prefers-reduced-motion:reduce){.workCard{transition:none}.workCard:hover{transform:none}}.workCard h3{font-family:var(--font-display),Georgia,serif;font-weight:400;font-size:1.4rem;line-height:1.25;margin:0 0 .6rem;text-wrap:balance}.workCard p{margin:0;color:var(--ink-soft);font-size:.95rem}.workCard .context{margin-top:.9rem;font-size:.8rem;color:var(--ink-faint)}.prose p{max-width:var(--measure);margin:0 0 1.15rem;text-wrap:pretty}.prose h2{font-family:var(--font-display),Georgia,serif;font-weight:400;font-size:1.6rem;margin:2.75rem 0 1rem}.csHeader{padding:3.5rem 0 0}.csHeader h1{font-size:clamp(2rem,1.4rem + 2.6vw,3rem);text-wrap:balance}.csContext{margin-top:1.25rem;font-size:.875rem;color:var(--ink-faint)}.stackRow{display:flex;flex-wrap:wrap;gap:.4rem;margin:1.5rem 0 0;padding:0;list-style:none}.stackRow li{font-size:.78rem;border:1px solid var(--rule);border-radius:999px;padding:.2rem .7rem;color:var(--ink-soft)}.resultBox{border-left:3px solid var(--accent);background:var(--accent-soft);padding:1.1rem 1.35rem;border-radius:0 8px 8px 0;margin:2.5rem 0}.resultBox h2{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 .6rem;font-family:inherit}.resultBox ul{margin:0;padding-left:1.1rem}.resultBox li{margin-bottom:.3rem}.todo{display:block;background:var(--danger-bg);border:1px dashed var(--danger-rule);color:var(--danger-ink);border-radius:8px;padding:.9rem 1.1rem;margin:0 0 1.15rem;max-width:var(--measure);font-size:.9rem;line-height:1.55}.todo strong{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.3rem}.siteFooter{border-top:1px solid var(--rule);margin-top:5rem;padding:2rem 0 3.5rem;font-size:.875rem;color:var(--ink-faint);display:flex;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.siteFooter a{color:var(--accent)}.backLink,.siteFooter a{text-underline-offset:3px}.backLink{display:inline-block;margin-top:3rem;font-size:.9rem;color:var(--ink-soft)}.figure{margin:2.5rem 0 2.75rem}.figure svg{width:100%;height:auto;display:block;overflow:visible}.figureCaption{margin:1rem 0 0;max-width:var(--measure);font-size:.85rem;line-height:1.6;color:var(--ink-faint);text-wrap:pretty}.dBox{fill:var(--bg-raised);stroke:var(--rule);stroke-width:1}.dBoxBad{stroke:var(--danger-rule)}.dBoxGood{stroke:var(--accent)}.dLabel{font-size:13px;fill:var(--ink)}.dMuted{font-size:11.5px;fill:var(--ink-faint)}.dMid{text-anchor:middle}.dRowLabel{font-size:10px;letter-spacing:.11em;text-transform:uppercase;fill:var(--ink-faint)}.dStroke{stroke:var(--ink-faint);stroke-width:1.2;fill:none}.dStrokeAccent{stroke:var(--accent)}.dDashed{stroke-dasharray:4 3}.dHead{fill:var(--ink-faint)}.dHeadAccent{fill:var(--accent)}