h1{font-size:clamp(1.5rem,4vw,1.75rem);font-weight:500;letter-spacing:-.02em;margin-bottom:1rem;line-height:1.35}.lede{color:var(--muted);margin-bottom:2.5rem;max-width:55ch}.intro{color:var(--muted);max-width:50ch;margin-bottom:2rem}.block{margin-bottom:2.75rem}.block h2{font-family:ui-monospace,Menlo,monospace;font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:1rem}.block p+p{margin-top:.85rem;color:var(--muted)}.block p.lead{color:var(--fg)}.exp-list{list-style:none}.exp-item{border-top:1px solid var(--border);padding:1.35rem 0}.exp-item:last-child{border-bottom:1px solid var(--border)}.exp-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.35rem 1rem;margin-bottom:.65rem}.exp-title{font-size:15px;font-weight:500;color:var(--fg)}.exp-date{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.exp-item ul{list-style:none;color:var(--muted);font-size:14px;line-height:1.6}.exp-item li{padding-left:1rem;position:relative;max-width:58ch}.exp-item li+li{margin-top:.4rem}.exp-item li:before{content:"—";position:absolute;left:0;color:var(--border)}.skills{display:flex;flex-wrap:wrap;gap:.45rem}.skills span{font-family:ui-monospace,Menlo,monospace;font-size:11px;padding:.3rem .55rem;border:1px solid var(--border);border-radius:2px;color:var(--muted);transition:color .14s,border-color .14s,background .14s}.skills span:hover{color:var(--fg);border-color:var(--muted);background:var(--pill-bg)}html:not(.theme-light) .skills span:hover{color:var(--accent);border-color:var(--accent)}.filters{margin-bottom:2rem}.filters p{font-family:ui-monospace,Menlo,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:.75rem;max-width:none}.tag-row{display:flex;flex-wrap:wrap;gap:.5rem}.tag{font-family:ui-monospace,Menlo,monospace;font-size:12px;padding:.35rem .7rem;border:1px solid var(--border);border-radius:2px;background:transparent;color:var(--muted);cursor:pointer;transition:color .14s,border-color .14s,background .14s}.tag:hover{color:var(--fg)}.tag.is-on{color:var(--fg);border-color:var(--muted);background:var(--pill-bg)}.project-grid{list-style:none;display:flex;flex-direction:column;gap:0}.project-card{border-top:1px solid var(--border);padding:1.5rem 0;display:grid;gap:.75rem}.project-card:last-child{border-bottom:1px solid var(--border)}.project-card[hidden]{display:none}.project-card h2{font-size:1.125rem;font-weight:500}.project-card h2 a:hover{color:var(--accent)}.project-card p{color:var(--muted);font-size:14px;max-width:55ch}.card-links{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;font-size:13px}.card-links a:hover{color:var(--accent)}.card-links .sep{color:var(--border);user-select:none}html.theme-light .card-links a{text-decoration:underline;text-underline-offset:3px}.card-tags{display:flex;flex-wrap:wrap;gap:.4rem}.card-tags span{font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--muted);padding:.15rem .45rem;border:1px solid var(--border);border-radius:2px}.meta-row{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:1rem;max-width:none}.project-prose h1,.note-article h1,.writing-article h1{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:500;letter-spacing:-.02em;line-height:1.2;margin-bottom:1rem}.dek{color:var(--muted);font-size:16px;margin-bottom:2.5rem;max-width:50ch}.figure{margin:2.5rem 0;border:1px solid var(--border);aspect-ratio:16 / 10;display:grid;place-items:center;color:var(--muted);font-family:ui-monospace,Menlo,monospace;font-size:12px;letter-spacing:.06em;text-transform:uppercase}.prose{max-width:65ch}.prose section{margin-top:2.5rem}.prose h2{font-family:ui-monospace,Menlo,monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.75rem}.prose p+p{margin-top:.85rem}.prose a{text-decoration:underline;text-underline-offset:.15em}.prose ul{margin-top:.75rem;padding-left:1.25rem;color:var(--muted)}.prose li+li{margin-top:.35rem}.stack-tags,.project-prose .stack{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem;list-style:none;padding:0}.stack-tags span,.project-prose .stack li{font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--muted);padding:.2rem .5rem;border:1px solid var(--border);border-radius:2px}.project-links,.project-prose .links{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;font-size:14px}.project-links .label{font-family:ui-monospace,Menlo,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);width:100%;margin-bottom:.25rem}.project-links a.is-accent{color:var(--accent)}html.theme-light .project-links a,html.theme-light .project-prose .links a{text-decoration:underline;text-underline-offset:3px}html.theme-light .project-links a.is-accent{color:var(--fg)}.project-links .sep{color:var(--border);user-select:none}.project-prose .eyebrow{font-family:ui-monospace,Menlo,monospace;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.note-list,.writing-list{list-style:none;margin:0;padding:0}.note-list li,.writing-list li{border-top:1px solid var(--border)}.note-list li:last-child,.writing-list li:last-child{border-bottom:1px solid var(--border)}.note-link,.writing-list a{display:block;padding:1.25rem 0;transition:color .14s;text-decoration:none}.note-link h2{font-size:1.0625rem;font-weight:500;margin-bottom:.35rem}.note-link p{font-size:14px;color:var(--muted);max-width:52ch}.note-link .meta{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--muted);margin-top:.5rem;letter-spacing:.04em}.note-article,.writing-article{display:block}.note-article .back-note,.writing-article .back-note{font-size:14px;color:var(--muted);display:inline-block;margin-bottom:2rem}.note-article h1,.writing-article h1{font-size:clamp(1.5rem,4vw,2rem);margin-bottom:.75rem}.note-article .dek,.writing-article .dek{color:var(--muted);margin-bottom:2rem;max-width:55ch}.note-article .prose h2,.writing-article .prose h2{margin:2rem 0 .75rem}.empty-notes{color:var(--muted);font-size:14px}.prose-page .back{margin-top:3rem}
