:root{--paper:#fff;--ink:#1d1d1f;--ink-soft:#6e6e73;--rule:#d2d2d7;--red:#ff3b30;--red-text:#d70015;--blue:#0071e3;--blue-text:#0071e3;--yellow:#ff9f0a;--yellow-text:#8a6d00;--green:#34c759;--green-text:#248a3d;--purple:#0071e3;--purple-text:#0071e3;--mono:"Monaco", "Menlo", "SF Mono", ui-monospace, "Cascadia Mono", monospace;--ui:-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Roboto, "Helvetica Neue", Arial, sans-serif;--rule-w:1px;--measure:68ch}@media (prefers-color-scheme:dark){:root{--paper:#000;--ink:#f5f5f7;--ink-soft:#a1a1a6;--rule:#38383c;--red-text:#ff6961;--blue-text:#0d84ff;--yellow-text:#ffd60a;--green-text:#30d158;--purple-text:#0d84ff}}:root[data-theme=dark]{--paper:#000;--ink:#f5f5f7;--ink-soft:#a1a1a6;--rule:#38383c;--red-text:#ff6961;--blue-text:#0d84ff;--yellow-text:#ffd60a;--green-text:#30d158;--purple-text:#0d84ff}:root[data-theme=light]{--paper:#fff;--ink:#1d1d1f;--ink-soft:#6e6e73;--rule:#d2d2d7;--red-text:#d70015;--blue-text:#0071e3;--yellow-text:#8a6d00;--green-text:#248a3d;--purple-text:#0071e3}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--ui);margin:0;font-size:16px;line-height:1.65;overflow-x:hidden}.wrap{max-width:860px;margin:0 auto;padding:0 1.25rem 5rem}.masthead{border-bottom:var(--rule-w) solid var(--rule);margin-bottom:2.5rem}.masthead-inner{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1.25rem;max-width:860px;margin:0 auto;padding:1rem 1.25rem;display:flex}.wordmark{letter-spacing:-.03em;color:var(--ink);font-size:1rem;font-weight:700;text-decoration:none}.wordmark .dot{color:var(--red-text)}nav.top{gap:1.25rem;display:flex}nav.top a{color:var(--ink);border-bottom:var(--rule-w) solid transparent;padding-bottom:2px;text-decoration:none}nav.top a:hover,nav.top a[aria-current=page]{border-bottom-color:var(--red)}h1{letter-spacing:-.045em;margin:0 0 1rem;font-size:clamp(2rem,7vw,3.4rem);font-weight:700;line-height:1.05}.lede{max-width:var(--measure);color:var(--ink);margin:0 0 1rem;font-size:clamp(1rem,2.4vw,1.15rem)}.sub{color:var(--ink-soft);max-width:var(--measure)}h2{letter-spacing:.18em;text-transform:uppercase;border-bottom:var(--rule-w) solid var(--rule);justify-content:space-between;align-items:baseline;gap:1rem;margin:3.5rem 0 1.25rem;padding-bottom:.5rem;font-size:.8rem;font-weight:700;display:flex}h2 .count{color:var(--ink-soft);letter-spacing:.05em;font-weight:400}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;display:grid}.card{border:var(--rule-w) solid var(--rule);color:var(--ink);background:color-mix(in srgb, var(--ink) 3%, var(--paper));border-radius:10px;flex-direction:column;gap:.55rem;padding:1.35rem 1.4rem;text-decoration:none;transition:transform .12s,box-shadow .12s,border-color .12s;display:flex;position:relative}.card:hover,.card:focus-visible{box-shadow:5px 5px 0 var(--rule);border-color:var(--ink);transform:translate(-3px,-3px)}.card:focus-visible{outline:2px solid var(--blue-text);outline-offset:3px}.card h3{letter-spacing:-.02em;margin:0;padding-right:1.6rem;font-size:1.15rem;font-weight:700;line-height:1.3}.card h3:after{content:"↗";content:"↗" / "";color:var(--ink-soft);font-weight:400;transition:transform .12s,color .12s;position:absolute;top:1.35rem;right:1.4rem}.card:hover h3:after,.card:focus-visible h3:after{color:var(--ink);transform:translate(2px,-2px)}.card p{color:var(--ink-soft);margin:0;font-size:.9rem;line-height:1.55}.card .meta{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-top:auto;padding-top:.75rem;font-size:.72rem;font-weight:600}.posts{margin:0;padding:0;list-style:none}.posts li{border-bottom:1px solid var(--rule)}.posts a{color:var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1rem;padding:.9rem .25rem;text-decoration:none;display:flex}.posts a:hover{background:var(--yellow);color:#0d0d0d}.posts .date{color:var(--ink-soft);white-space:nowrap;font-size:.8rem}.posts a:hover .date{color:#0d0d0d}.posts .title{letter-spacing:-.02em;font-weight:700}.links{flex-wrap:wrap;gap:.75rem;display:flex}.links a{border:var(--rule-w) solid var(--ink);background:var(--ink);min-height:44px;color:var(--paper);border-radius:8px;align-items:center;gap:.5rem;padding:.6rem 1.15rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:background .12s,color .12s;display:inline-flex}.links a:after{content:"→";content:"→" / "";transition:transform .12s}.links a:hover,.links a:focus-visible{background:var(--paper);color:var(--ink)}.links a:hover:after,.links a:focus-visible:after{transform:translate(3px)}.links a:focus-visible{outline:2px solid var(--blue-text);outline-offset:3px}.prose{max-width:var(--measure)}.prose h2{text-transform:none;letter-spacing:-.02em;border:0;margin:2.5rem 0 .75rem;font-size:1.3rem;display:block}.prose h3{letter-spacing:-.02em;margin:2rem 0 .5rem;font-size:1.05rem}.prose p,.prose li{font-size:1rem}.prose a{color:var(--blue-text);text-underline-offset:3px}.prose blockquote{border-left:6px solid var(--yellow);color:var(--ink-soft);margin:1.5rem 0;padding:.25rem 0 .25rem 1.1rem}.prose code{font-family:var(--mono);background:color-mix(in srgb, var(--ink) 9%, transparent);padding:.1em .35em;font-size:.9em}.prose pre{border:var(--rule-w) solid var(--rule);padding:1rem;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose img{border:var(--rule-w) solid var(--rule);max-width:100%;height:auto}.prose hr{border:0;border-top:var(--rule-w) solid var(--rule);margin:2.5rem 0}.prose table{border-collapse:collapse;width:100%}.table-scroll{overflow-x:auto}.bio-head{align-items:flex-start;gap:1.75rem;margin-bottom:1.5rem;display:flex}.portrait{border:var(--rule-w) solid var(--rule);aspect-ratio:1;object-fit:cover;border-radius:12px;flex:none;width:200px;height:auto;display:block}.bio-head .lede{margin-top:0}@media (width<=620px){.bio-head{flex-direction:column;gap:1.25rem}.portrait{width:160px}}footer{border-top:var(--rule-w) solid var(--rule);color:var(--ink-soft);flex-wrap:wrap;justify-content:space-between;gap:.5rem 1rem;margin-top:4rem;padding-top:1rem;font-size:.8rem;display:flex}footer a{color:var(--ink-soft)}.back{color:var(--ink-soft);margin-bottom:1.5rem;text-decoration:none;display:inline-block}.back:hover{color:var(--red-text)}@media (prefers-reduced-motion:reduce){*{transition:none!important}.card:hover,.card:focus-visible,.card:hover h3:after,.card:focus-visible h3:after,.links a:hover:after,.links a:focus-visible:after{transform:none}}
