:root{--bg:#0c0c0b;--bg-elev:#161614;--text:#f4f1ea;--text-muted:#9a948a;--text-faint:#5b5650;--rule:#1f1d1a;--accent:#6ee7b7;--accent-dim:#3aa382;--max:680px;--serif:"Fraunces", Georgia, "Iowan Old Style", Times, serif;--sans:"IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;min-height:100vh;font-size:16px;line-height:1.6;position:relative}body:before{content:"";background:linear-gradient(90deg, transparent 0%, var(--accent-dim) 35%, var(--accent) 50%, var(--accent-dim) 65%, transparent 100%);opacity:.5;z-index:10;height:1px;position:fixed;inset:0 0 auto}main{max-width:var(--max);margin:0 auto;padding:96px 32px 160px}.reveal{opacity:0;animation:.7s cubic-bezier(.2,.7,.2,1) forwards rise;transform:translateY(8px)}.reveal:first-child{animation-delay:60ms}.reveal:nth-child(2){animation-delay:.18s}.reveal:nth-child(3){animation-delay:.3s}.reveal:nth-child(4){animation-delay:.42s}.reveal:nth-child(5){animation-delay:.54s}@keyframes rise{to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;animation:none;transform:none}}header{margin-bottom:88px}h1{font-family:var(--serif);letter-spacing:-.015em;font-variation-settings:"opsz" 144;margin-bottom:18px;font-size:clamp(2rem,4.5vw,2.75rem);font-weight:400;line-height:1.05}.lede{color:var(--text-muted);max-width:56ch;font-size:17px;line-height:1.5}.lede a{color:var(--text)}section{margin-bottom:64px}h2{font-family:var(--mono);text-transform:uppercase;letter-spacing:.18em;color:var(--text-faint);margin-bottom:24px;font-size:11px;font-weight:500}.now p{font-family:var(--serif);color:var(--text);font-variation-settings:"opsz" 24;max-width:60ch;font-size:19px;font-weight:300;line-height:1.5}.entry{border-bottom:1px solid var(--rule);margin-bottom:36px;padding-bottom:36px}.entry:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.entry-header{flex-wrap:wrap;align-items:baseline;gap:16px;margin-bottom:10px;display:flex}.entry-title{font-family:var(--serif);letter-spacing:-.01em;color:var(--text);font-variation-settings:"opsz" 36;font-size:21px;font-weight:500}.entry-meta{font-family:var(--mono);color:var(--text-faint);letter-spacing:.02em;font-size:12px;font-weight:400}.entry-body{color:var(--text-muted);max-width:60ch;margin-bottom:14px;font-size:15.5px;line-height:1.65}.entry-body p+p{margin-top:10px}.entry-body strong{color:var(--text);font-weight:500}.stack{font-family:var(--mono);color:var(--text-faint);letter-spacing:.005em;font-size:12.5px;line-height:1.7}.stack span{color:var(--text-muted)}.entry-link{font-family:var(--mono);letter-spacing:.01em;margin-top:10px;font-size:12.5px;display:inline-block}a{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--text-faint);text-decoration-color:var(--text-faint);text-underline-offset:3px;text-decoration-thickness:1px;transition:color .16s,text-decoration-color .16s}a:hover,a:focus-visible{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);outline:none}.contact-list{flex-direction:column;gap:6px;list-style:none;display:flex}.contact-list li{font-family:var(--mono);color:var(--text-faint);font-size:14px}.contact-list a{color:var(--text-muted);text-decoration-color:#0000}.contact-list a:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.contact-label{width:78px;color:var(--text-faint);display:inline-block}footer{border-top:1px solid var(--rule);font-family:var(--mono);color:var(--text-faint);letter-spacing:.04em;margin-top:96px;padding-top:24px;font-size:11px}.inline-code{font-family:var(--mono);font-size:13px}@media (max-width:600px){main{padding:72px 22px 96px}header{margin-bottom:64px}section{margin-bottom:52px}.entry{margin-bottom:28px;padding-bottom:28px}h1{font-size:1.85rem}.now p{font-size:17px}.entry-title{font-size:19px}}::selection{background:var(--accent-dim);color:var(--bg)}
