.pagehead{padding:56px 0 24px;border-bottom:var(--rule);position:relative}.pagehead .crumbs{font-family:var(--f-mono);font-size:var(--fz-xs);color:var(--ink-soft);margin-bottom:18px}.pagehead .crumbs span{color:var(--ink-faint)}.pagehead h1{font-family:var(--f-display);font-size:clamp(64px,11vw,160px);line-height:.85;letter-spacing:-.01em;margin:0 0 16px}.pagehead h1 em{font-style:normal;background:var(--accent);color:var(--accent-ink);padding:0 .05em}.pagehead p.lede{font-family:var(--f-body);font-size:var(--fz-xl);max-width:56ch;color:var(--ink-soft);text-wrap:pretty}.filterbar{display:flex;gap:4px;flex-wrap:wrap;padding:18px 0;border-bottom:var(--rule-soft);margin-bottom:18px;align-items:center}.filterbar .label-static{font-family:var(--f-mono);font-size:var(--fz-xxs);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);margin-right:12px}.filterbar button{font-family:var(--f-mono);font-size:var(--fz-xs);text-transform:uppercase;letter-spacing:.08em;padding:5px 10px;border:1px solid var(--ink-rule);color:var(--ink-soft)}.filterbar button[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.filterbar .spacer{flex:1}.filterbar .count{font-family:var(--f-mono);font-size:var(--fz-xs);color:var(--ink-faint)}.blog-list{padding:8px 0 32px}.blog-row{display:grid;grid-template-columns:64px 110px 1fr auto;gap:22px;align-items:baseline;padding:18px 0;border-bottom:var(--rule-dotted);cursor:pointer;transition:background .12s}.blog-row:hover{background:color-mix(in oklab,var(--ink) 4%,transparent)}.blog-row .num{font-family:var(--f-mono);font-size:var(--fz-xs);color:var(--ink-faint)}.blog-row .date{font-family:var(--f-mono);font-size:var(--fz-xs);color:var(--ink-soft)}.blog-row .title{font-family:var(--f-body);font-size:clamp(20px,2vw,24px);line-height:1.25;font-weight:500}.blog-row .title small{display:block;margin-top:6px;font-family:var(--f-mono);font-size:var(--fz-xs);font-weight:400;color:var(--ink-soft)}.blog-row .meta{font-family:var(--f-mono);font-size:var(--fz-xxs);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.08em;text-align:right;white-space:nowrap}@media(max-width:720px){.blog-row{grid-template-columns:1fr auto;gap:12px}.blog-row .num,.blog-row .date{grid-column:1;font-size:var(--fz-xxs)}.blog-row .title{grid-column:1 / -1}}.post-shell{display:grid;grid-template-columns:220px minmax(0,680px) 220px;gap:56px;padding:32px 0 56px}@media(max-width:1080px){.post-shell{grid-template-columns:1fr;gap:24px}.post-side{display:none}}.post-meta{font-family:var(--f-mono);font-size:var(--fz-xs);display:flex;gap:14px;align-items:center;color:var(--ink-soft);margin:24px 0 16px;padding:10px 0;border-top:var(--rule-soft);border-bottom:var(--rule-soft)}.post-title{font-family:var(--f-body);font-size:clamp(36px,5.6vw,64px);line-height:1.05;letter-spacing:-.015em;font-weight:500;text-wrap:balance;margin:24px 0 8px}.post-deck{font-family:var(--f-body);font-size:var(--fz-xl);color:var(--ink-soft);max-width:60ch;line-height:1.4;margin-bottom:32px}.post-body{font-family:var(--f-body);font-size:18px;line-height:1.7;color:var(--ink)}.post-body p{margin:0 0 1.2em}.post-body h2{font-family:var(--f-body);font-size:28px;line-height:1.2;margin:2em 0 .6em;font-weight:500;letter-spacing:-.005em}.post-body h3{font-family:var(--f-mono);font-size:14px;text-transform:uppercase;letter-spacing:.1em;margin:1.6em 0 .6em;color:var(--ink-soft)}.post-body blockquote{margin:1.5em 0;padding:4px 18px;border-left:2px solid var(--ink);font-style:italic;color:var(--ink-soft)}.post-body code{font-family:var(--f-mono);font-size:14px;background:var(--code-bg);padding:1px 6px;border:1px solid var(--code-border)}.post-body pre{font-family:var(--f-mono);font-size:13px;line-height:1.6;background:var(--code-bg);border:1px solid var(--code-border);padding:16px;overflow-x:auto;margin:1.6em 0}.post-body pre code{background:none;border:0;padding:0}.post-body a{text-decoration:underline;text-decoration-color:var(--ink-rule);text-underline-offset:3px}.post-body a:hover{text-decoration-color:var(--ink)}.post-body ul,.post-body ol{padding-left:1.4em;margin:0 0 1.2em}.post-body ul li::marker{color:var(--ink-faint)}.post-body img,.post-body .figure{margin:1.8em 0;border:1px solid var(--ink);background:var(--paper-2);max-width:100%}@media(min-width:1080px){.post-body img,.post-body .figure{margin:1.8em -64px}}.post-body .figure{padding:24px;aspect-ratio:16/9;position:relative}.post-body .figure .grid-bg{position:absolute;inset:0}.post-body .figure-cap{font-family:var(--f-mono);font-size:var(--fz-xs);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.08em;margin:6px 0 1.6em}.post-side{font-family:var(--f-mono);font-size:var(--fz-xs);color:var(--ink-soft);position:sticky;top:88px;align-self:start}.post-side h4{font-family:var(--f-mono);font-size:var(--fz-xxs);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);margin:0 0 10px;font-weight:500}.post-side ul{list-style:none;padding:0;margin:0 0 24px;display:flex;flex-direction:column;gap:6px}.post-side ul li:before{content:"→ ";color:var(--ink-faint)}.post-side a:hover{color:var(--ink)}.related{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:24px 0;border-top:var(--rule)}.related a{border:1px solid var(--ink-rule);padding:18px;display:flex;flex-direction:column;gap:8px}.related a:hover{border-color:var(--ink);text-decoration:none}.related .dir{font-family:var(--f-mono);font-size:var(--fz-xxs);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint)}.related .t{font-family:var(--f-body);font-size:var(--fz-lg);line-height:1.3}@media(max-width:720px){.related{grid-template-columns:1fr}}.proj-list{display:flex;flex-direction:column;gap:24px;padding:24px 0}.proj-card{display:grid;grid-template-columns:1fr 1.4fr;gap:0;border:1px solid var(--ink);background:var(--paper);min-height:260px}.proj-card__art{position:relative;border-right:1px solid var(--ink);background:var(--paper-2);display:grid;place-items:center;font-family:var(--f-display);font-size:clamp(120px,14vw,180px);color:var(--ink);overflow:hidden}.proj-card__art .grid-bg{position:absolute;inset:0}.proj-card__art .glyph{position:relative;z-index:1;line-height:1}.proj-card__body{padding:22px 24px;display:flex;flex-direction:column;gap:10px}.proj-card__bar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding-bottom:12px;margin-bottom:4px;border-bottom:var(--rule-dotted);font-family:var(--f-mono);font-size:var(--fz-xxs);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}.proj-card__name{font-family:var(--f-body);font-size:clamp(28px,3vw,40px);line-height:1;font-weight:500;letter-spacing:-.01em}.proj-card__desc{font-family:var(--f-body);font-size:var(--fz-lg);color:var(--ink-soft);max-width:52ch;line-height:1.45}.proj-card__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:auto;padding-top:14px;border-top:var(--rule-dotted);font-family:var(--f-mono);font-size:var(--fz-xs)}.proj-card__stats dt{color:var(--ink-faint);text-transform:uppercase;font-size:var(--fz-xxs);letter-spacing:.08em;margin-bottom:2px}.proj-card__stats dd{margin:0;color:var(--ink)}.proj-card__cta{display:flex;gap:10px;margin-top:8px}@media(max-width:880px){.proj-card{grid-template-columns:1fr}.proj-card__art{border-right:0;border-bottom:1px solid var(--ink);aspect-ratio:16/9}.proj-card__stats{grid-template-columns:repeat(2,1fr)}}.about-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:56px;padding:32px 0}.about-body{font-family:var(--f-body);font-size:18px;line-height:1.7;color:var(--ink);max-width:60ch}.about-body p{margin:0 0 1.2em}.about-body h3{font-family:var(--f-mono);font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);margin:2em 0 .8em;font-weight:500}.about-side .panel{border:1px solid var(--ink);padding:18px;margin-bottom:18px;background:var(--paper)}.about-side .panel h4{font-family:var(--f-mono);font-size:var(--fz-xxs);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);margin:0 0 12px;font-weight:500}.about-side dl{font-family:var(--f-mono);font-size:var(--fz-sm);display:grid;grid-template-columns:110px 1fr;gap:10px 16px;margin:0}.about-side dt{color:var(--ink-faint)}.about-side dd{margin:0}.timeline{font-family:var(--f-mono);font-size:var(--fz-sm);display:flex;flex-direction:column;gap:0}.timeline li{list-style:none;padding:10px 0;border-bottom:var(--rule-dotted);display:grid;grid-template-columns:64px 1fr;gap:16px}.timeline li:last-child{border-bottom:0}.timeline .yr{color:var(--ink-faint)}.timeline .ev b{font-weight:500}.timeline .ev small{display:block;color:var(--ink-soft);margin-top:2px}@media(max-width:880px){.about-grid{grid-template-columns:1fr;gap:24px}}@media(max-width:560px){.pagehead{padding:32px 0 18px}.pagehead h1{font-size:clamp(48px,14vw,80px);margin-bottom:12px}.pagehead p.lede{font-size:var(--fz-lg)}.filterbar{padding:12px 0;gap:6px}.post-shell{padding:20px 0 32px}.post-title{margin:16px 0 8px}.post-deck{font-size:var(--fz-lg);margin-bottom:24px}.post-body{font-size:17px;line-height:1.65}.post-body h2{font-size:24px;margin:1.5em 0 .5em}.post-body pre{padding:12px;font-size:12px}.about-side dl{grid-template-columns:90px 1fr;gap:8px 12px;font-size:var(--fz-xs)}.timeline li{grid-template-columns:52px 1fr;gap:12px}}
