@font-face{font-family:Instrument;src:url('/fonts/instrument-sans.ttf') format('truetype');font-weight:400 700;font-display:swap}
@font-face{font-family:Plex;src:url('/fonts/ibm-plex-mono.ttf') format('truetype');font-weight:400;font-display:swap}
:root{--paper:#eeeae1;--ink:#252622;--muted:#65665d;--line:#ccc8bc;--accent:#ac3a27}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px;scrollbar-color:var(--muted) var(--paper)}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.8 Instrument,sans-serif;-webkit-font-smoothing:antialiased}::selection{background:var(--accent);color:var(--paper)}a{color:inherit;text-underline-offset:4px;text-decoration-thickness:1px}a:hover{color:var(--accent)}a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:balance}svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.symbols{position:absolute;width:0;height:0}.page{max-width:1056px;padding:0 48px;margin:auto}.skip{position:absolute;top:-100px;left:20px;background:var(--ink);color:var(--paper);padding:12px;z-index:20}.skip:focus{top:10px}header{min-height:106px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}header a{text-decoration:none}.identity{display:flex;align-items:center;gap:14px;font-size:15px;font-weight:500}.mark{color:var(--accent);font-size:30px;line-height:1;letter-spacing:-.04em}nav{display:flex;gap:26px;font-size:13px}nav a{display:flex;gap:6px;align-items:center}nav svg{width:12px;height:12px}main{max-width:720px;margin:auto}.intro{padding:78px 0 54px}h1{font-size:52px;font-weight:500;line-height:1.15;letter-spacing:-.035em;margin-bottom:25px}.intro p{margin-top:18px}.intro .introduction{font-size:24px;line-height:1.6;letter-spacing:-.015em;margin-top:0}.social-links{display:flex;gap:24px;margin-top:27px;font-size:14px}.social-links a{color:var(--muted)}.social-links a:hover{color:var(--accent)}section:not(.intro){padding:35px 0 42px;border-top:1px solid var(--line)}h2{font-size:26px;line-height:1.3;letter-spacing:-.02em;font-weight:500}h3{font-size:20px;font-weight:500;letter-spacing:-.01em;line-height:1.5}.section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:30px}.section-heading>a{font-size:13px;color:var(--muted);display:flex;gap:7px;align-items:center}.section-heading>a:hover{color:var(--accent)}.project+.project{margin-top:34px}.project h3{margin-bottom:9px}.project h3 a{display:inline-flex;align-items:center;gap:10px;text-decoration:none}.project p{font-size:16px;line-height:1.85}.project-links{display:flex;gap:20px;margin-top:12px;font-size:13px}.inline-link{display:inline-flex;align-items:center;gap:8px;font-size:13px;margin-top:12px}code{font:13px Plex,monospace}.experiments{margin-top:37px}.experiments h3{font-size:17px}.experiments ul{padding-left:20px;margin:12px 0 0}.experiments li{font-size:15px;margin:9px 0;padding-left:2px}.article{display:grid;grid-template-columns:75px 1fr 16px;gap:20px;padding:20px 0;border-bottom:1px solid var(--line);text-decoration:none;align-items:baseline}.article:first-child{padding-top:0}.article time{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.article h3{font-size:18px;font-weight:500;text-wrap:initial}.article p{font-size:13px;color:var(--muted);line-height:1.7;margin-top:5px}.article-topic{display:none}.article svg{width:13px;height:13px}.archive-link{display:inline-flex;align-items:center;gap:12px;font-size:12px;color:var(--muted);margin-top:20px}.archive-link svg{width:12px;height:12px}.about h2,.contact h2{margin-bottom:22px}.about p,.contact p{font-size:16px;line-height:1.85}.about p+p{margin-top:16px}footer{border-top:1px solid var(--line);padding:25px 0 35px;display:flex;align-items:center;justify-content:space-between;gap:22px;font-size:11px;color:var(--muted)}footer>div{display:flex;gap:18px}.footer-note{font-size:10px}footer a{text-decoration:none}.footer-note a{text-decoration:underline}
@media(max-width:760px){.page{padding:0 24px}header{min-height:87px;gap:16px}.identity{font-size:13px;gap:9px}.mark{font-size:26px}nav{gap:17px;font-size:12px}nav>a:last-child{display:none}.intro{padding:49px 0 39px}h1{font-size:42px;margin-bottom:23px}.intro .introduction{font-size:21px;line-height:1.65}.intro>p{font-size:16px}h2{font-size:24px}section:not(.intro){padding:30px 0 35px}.article{grid-template-columns:1fr 16px;gap:6px;padding:20px 0}.article time{grid-column:1}.article>div{grid-column:1}.article svg{grid-column:2;grid-row:2}.article h3{font-size:18px}.social-links{gap:22px}.section-heading{margin-bottom:25px}.experiments li{font-size:15px}.project p,.about p,.contact p{font-size:16px}footer{flex-wrap:wrap;gap:16px}footer>div{gap:16px}.footer-note{width:100%}}
@media(max-width:380px){.identity>span:last-child{max-width:78px;line-height:1.3}nav{gap:13px}h1{font-size:38px}.intro .introduction{font-size:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.project-recognition{display:flex;flex-wrap:wrap;gap:12px 25px;margin-top:17px;font-size:14px}.project-recognition a{display:inline-flex;align-items:center;gap:5px}.project-recognition strong{font-weight:600}.project-recognition svg{width:12px;height:12px;margin-left:2px}
