@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif-latin-400-normal.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-400-normal.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-500-normal.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-600-normal.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-latin-400-normal.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-latin-500-normal.woff2)format("woff2")}:root{color-scheme:light;--paper:#f4efe6;--ink:#2c261f;--ink-strong:#241c14;--muted:#7a6c5d;--body:#5c5146;--line:#e3d8c8;--rule:#c9d5c8;--leaf:#3f6848;--link:#2f5a3c;--measure:40rem;--font-body:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Instrument Serif", Georgia, "Times New Roman", serif;--font-code:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box}html{background:var(--paper)}body{background:var(--paper);min-height:100vh;color:var(--ink);font-family:var(--font-body);margin:0;font-size:1.0625rem;line-height:1.6}::selection{color:var(--ink-strong);background:#d7e4d6}a{color:var(--link);text-underline-offset:.16em}a:hover{text-decoration-thickness:2px}a:focus-visible{outline:2px solid var(--leaf);outline-offset:3px}.skip{background:var(--paper);color:var(--ink);padding:.4rem .6rem;position:absolute;top:-3rem;left:.75rem}.skip:focus{top:.75rem}.site-header,.site-footer,main{width:min(var(--measure), calc(100% - 2.5rem));margin-inline:auto}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem 1.5rem;padding:1.35rem 0 .9rem;display:flex}.brand{color:var(--ink-strong);font-family:var(--font-display);letter-spacing:-.01em;align-items:center;gap:.34em;font-size:1.4rem;font-weight:400;line-height:1;text-decoration:none;display:inline-flex}.brand .mark{flex:none;width:1.42cap;height:1.42cap;display:block;transform:translateY(.13em)}@supports (text-box-trim:trim-both){.brand .mark{transform:none}}.brand-name{text-box-trim:trim-both;text-box-edge:cap alphabetic}.site-header nav{gap:1.1rem;display:flex}.site-header nav a{color:var(--ink);font-size:.98rem;text-decoration:none}.site-header nav a:hover{text-decoration:underline}main.is-home{width:min(56rem,100% - 2.5rem)}main{padding:1.6rem 0 2.5rem}.hero{grid-template-columns:minmax(11rem,15.5rem) minmax(0,1fr);align-items:start;gap:1.5rem 2rem;display:grid}.portrait-frame{aspect-ratio:1;background:#e7e0d4;border-radius:12px;display:block;overflow:hidden}.portrait-frame.about{width:7.5rem}.portrait-frame img{object-fit:cover;object-position:50% 58%;transform-origin:50% 58%;width:100%;height:100%;transform:scale(1.72)}.about-intro{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.35rem 1.15rem;display:grid}ul.credentials{margin:1rem 0 0;padding-left:1.15rem;list-style:outside}ul.credentials li{border-left:0;margin:.55rem 0;padding-left:.2rem}h1,h2,h3{text-wrap:balance}h1{color:var(--ink-strong);font-family:var(--font-display);letter-spacing:-.015em;margin:0 0 .65rem;font-size:clamp(2.4rem,5.6vw,3.05rem);font-weight:400;line-height:1.14}h2{color:var(--muted);font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;margin:1.8rem 0 .55rem;font-size:.75rem;font-weight:600}h3{color:var(--ink-strong);font-family:var(--font-display);letter-spacing:-.01em;margin:.15rem 0;font-size:1.55rem;font-weight:400;line-height:1.22}.masthead h1{margin-bottom:.55rem}.masthead h1 a{color:inherit;text-decoration:none}.identity{max-width:34rem;color:var(--body);margin:.15rem 0 0;font-size:1.08rem}.lede{max-width:36rem;color:var(--body);margin-top:0}.recent,.credentials{margin-top:1.7rem}.recent-meta,.kicker{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .35rem;font-size:.75rem;font-weight:600}.recent h3 a{color:var(--ink-strong);text-decoration:none}.recent h3 a:hover{text-decoration:underline}.credentials ul{margin:0;padding:0;list-style:none}.credentials li{border-left:2px solid var(--rule);margin:.85rem 0;padding-left:.85rem}.piece .masthead{border-bottom:1px solid var(--line);padding-bottom:.4rem}.prose{text-wrap:pretty;font-size:1.08rem}.prose p,.prose li{margin:.85rem 0}.prose ul,.prose ol{padding-left:1.2rem}code,kbd,samp,pre{font-family:var(--font-code);font-size:.92em;font-weight:400}.prose h2{color:var(--ink-strong);font-family:var(--font-display);letter-spacing:-.01em;text-transform:none;margin-top:2rem;font-size:1.55rem;font-weight:400;line-height:1.22}.writing-list,.road,.tags{margin:0;padding:0;list-style:none}.writing-list a{border-bottom:1px solid var(--line);color:inherit;padding:.85rem 0;text-decoration:none;display:block}.writing-list time{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:600;display:block}.writing-list span{color:var(--ink-strong);font-family:var(--font-display);letter-spacing:-.01em;margin-top:.15rem;font-size:1.55rem;font-weight:400;line-height:1.22;display:block}.writing-list a:hover span{text-underline-offset:.12em;text-decoration:underline}.road li{border-left:2px solid var(--rule);margin:0 0 1.35rem;padding-left:.9rem}.when{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.75rem;font-weight:600}.road h3{margin:.15rem 0 .3rem;font-size:1.45rem;line-height:1.22}.project h2{color:var(--ink-strong);font-family:var(--font-display);letter-spacing:-.012em;text-transform:none;margin:1.7rem 0 .35rem;font-size:1.7rem;font-weight:400;line-height:1.2}.project p{margin:.45rem 0}.contact{flex-wrap:wrap;gap:.45rem 1.05rem;margin:.4rem 0 0;padding:0;list-style:none;display:flex}.empty{color:var(--muted)}.tags{flex-wrap:wrap;gap:.45rem;margin-top:1.2rem;display:flex}.tags a{border:1px solid var(--line);color:var(--link);border-radius:999px;padding:.15rem .55rem;font-size:.85rem;text-decoration:none}.back{flex-wrap:wrap;gap:.4rem 1rem;margin-top:2rem;display:flex}.subscribe{border:1px solid var(--line);border-left:2px solid var(--leaf);margin-top:2.4rem;padding:1.05rem 1.1rem 1.15rem}.subscribe h2{color:var(--ink-strong);font-family:var(--font-display);letter-spacing:-.012em;text-transform:none;margin:0 0 .35rem;font-size:1.6rem;font-weight:400;line-height:1.22}.subscribe p{color:var(--body);margin:0 0 .85rem}.subscribe-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.subscribe-label{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.subscribe input[type=email]{border:1px solid var(--line);min-width:0;height:2.65rem;color:var(--ink);font:inherit;background:#f7f3ea;border-radius:2px;flex:12rem;padding:.55rem .7rem}.subscribe button{background:var(--leaf);color:var(--paper);font:inherit;cursor:pointer;border:0;border-radius:2px;padding:.55rem .95rem;font-weight:600}.subscribe button:hover{background:var(--link)}.footer-pair{gap:1.05rem;display:inline-flex}.site-footer{border-top:1px solid var(--line);color:var(--body);flex-wrap:wrap;gap:.55rem 1.05rem;padding:.95rem 0 2.75rem;font-size:.98rem;display:flex}@media (width<=640px){.site-header,.site-footer,main{width:min(var(--measure), calc(100% - 2rem))}.site-header{flex-wrap:wrap;align-items:flex-start;row-gap:.45rem;padding-top:1.1rem}.hero{grid-template-columns:1fr}.hero .portrait-frame.hero-photo{width:min(16rem,78vw)}.about-intro{grid-template-columns:1fr}.about-intro .portrait-frame{width:min(8.75rem,48vw)}h1{font-size:2.35rem}.writing-list span,h3{font-size:1.4rem}.subscribe-row{flex-direction:column;align-items:stretch}.subscribe input[type=email]{flex:none;width:100%}.subscribe button{width:100%}}
