*{box-sizing:border-box}:root{--bg:oklch(0.965 0.004 100);--panel:oklch(0.99 0.003 100);--strong:oklch(0.2 0.01 100);--line:oklch(0.85 0.008 100);--ink:oklch(0.22 0.012 100);--muted:oklch(0.45 0.02 100);--faint:oklch(0.6 0.02 100);--ph1:oklch(0.92 0.006 100);--ph2:oklch(0.955 0.004 100);--hover:oklch(0.975 0.004 100);--link:oklch(0.72 0.16 250);--badge-ink:oklch(0.99 0 0)}html.dark{--bg:oklch(0.15 0.008 260);--panel:oklch(0.185 0.01 260);--strong:oklch(0.6 0.02 260);--line:oklch(0.32 0.012 260);--ink:oklch(0.93 0.008 260);--muted:oklch(0.72 0.014 260);--faint:oklch(0.56 0.014 260);--ph1:oklch(0.27 0.012 260);--ph2:oklch(0.22 0.01 260);--hover:oklch(0.23 0.011 260)}.acc-green{--accent:oklch(0.62 0.16 150);--tint:oklch(0.955 0.035 150)}.acc-blue{--accent:oklch(0.6 0.16 255);--tint:oklch(0.955 0.035 255)}.acc-amber{--accent:oklch(0.64 0.16 45);--tint:oklch(0.955 0.035 55)}html.dark .acc-green{--accent:oklch(0.74 0.15 150);--tint:oklch(0.26 0.045 150)}html.dark .acc-blue{--accent:oklch(0.72 0.14 255);--tint:oklch(0.26 0.045 255)}html.dark .acc-amber{--accent:oklch(0.76 0.14 60);--tint:oklch(0.26 0.045 55)}body{margin:0;font-family:space grotesk,system-ui,sans-serif;background:var(--bg);color:var(--ink);transition:background .25s ease}a{color:inherit;text-decoration:none}.mono{font-family:jetbrains mono,ui-monospace,monospace}.frame{min-height:100vh;padding:48px 24px;display:flex;justify-content:center}.panel{width:100%;max-width:1040px;background:var(--panel);border:1.5px solid var(--strong);box-shadow:0 40px 100px -50px oklch(.2 .02 100/.4);transition:background .25s ease,border-color .25s ease}.site-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;border-bottom:1.5px solid var(--strong);font-size:13px}.brand{color:var(--muted)}.site-header nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.navpill{border:1px solid var(--line);color:var(--muted);padding:3px 10px;background:0 0;font-size:13px;font-family:inherit}.navpill.active{border-color:var(--strong);color:var(--ink)}.navpill.toggle{border-color:var(--strong);color:var(--ink);cursor:pointer}.hero{padding:56px 40px 44px;border-bottom:1.5px solid var(--strong)}.hero h1{margin:0;font-size:clamp(30px,5vw,46px);line-height:1.08;font-weight:600;letter-spacing:-.02em;max-width:760px}.hero .tagline{margin:18px 0 0;font-size:13px;color:var(--muted)}.section-hero{padding:48px 40px 32px;border-bottom:1.5px solid var(--strong)}.section-hero h1{margin:0;font-size:clamp(28px,4.5vw,38px);font-weight:600;letter-spacing:-.02em}.section-hero p{margin:14px 0 0;font-size:13px;color:var(--muted)}.section-label{padding:12px 40px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);border-bottom:1px solid var(--line)}.backbar{padding:20px 40px;border-bottom:1px solid var(--line)}.backbar a{font-size:12px;color:var(--muted)}.grid{display:grid}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:repeat(2,1fr)}.cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.grid-3>.cell:nth-child(3n){border-right:none}.grid-2>.cell:nth-child(2n){border-right:none}.ph{border-radius:2px;background-image:repeating-linear-gradient(45deg,var(--ph1) 0 7px,var(--ph2) 7px 14px);display:flex;align-items:flex-end;padding:8px}.ph span{font-size:10px;color:var(--faint)}.r-square{aspect-ratio:1}.r-wide{aspect-ratio:16/10;padding:10px}.r-banner{aspect-ratio:2/1;padding:16px;border-radius:0;border-bottom:1.5px solid var(--strong)}.r-banner span{font-size:11px}img.thumb{width:100%;object-fit:cover;border-radius:2px;display:block;padding:0}img.r-banner{border-radius:0}.badge{align-self:flex-start;font-size:11px;padding:3px 8px;color:var(--badge-ink);background:var(--accent)}.badge-outline{font-size:11px;padding:2px 8px;color:var(--accent);border:1px solid var(--accent)}.person-card{display:flex;flex-direction:column;gap:14px;padding:28px 26px;transition:background .15s ease}.person-card:hover{background:var(--tint)}.person-card-body{display:flex;flex-direction:column;gap:8px}.person-name{font-size:20px;font-weight:600;letter-spacing:-.01em}.person-bio{margin:0;font-size:13px;line-height:1.5;color:var(--muted)}.person-links{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--muted);margin-top:auto}.work-card{display:flex;flex-direction:column;gap:12px;padding:24px 26px;transition:background .15s ease}.work-card:hover{background:var(--tint)}.row-between{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.work-title{font-size:19px;font-weight:600;letter-spacing:-.01em}.accent-text{font-size:11px;color:var(--accent)}.work-meta{margin:0;font-size:11px;color:var(--muted)}.work-blurb{margin:0;font-size:13px;line-height:1.5;color:var(--muted)}.project-card{display:flex;flex-direction:column;gap:14px;padding:28px;transition:background .15s ease}.project-card:hover{background:var(--tint)}.project-tags{display:flex;align-items:center;gap:10px}.project-client{font-size:11px;color:var(--faint)}.project-title{font-size:24px;font-weight:600;letter-spacing:-.015em}.project-blurb{margin:0;font-size:14px;line-height:1.55;color:var(--muted)}.project-link{display:inline-block;margin-top:14px;font-size:12px;color:var(--accent)}.maker-card{display:flex;align-items:center;gap:18px;padding:24px 40px;transition:background .15s ease}.maker-card:hover{background:var(--tint)}.post-row{display:grid;grid-template-columns:110px 1fr 90px;gap:28px;align-items:baseline;padding:28px 40px;border-bottom:1px solid var(--line);transition:background .15s ease}.post-row:hover{background:var(--hover)}.post-date{font-size:12px;color:var(--faint)}.post-main{display:flex;flex-direction:column;gap:8px}.post-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.post-title{font-size:22px;font-weight:600;letter-spacing:-.015em}.post-excerpt{margin:0;font-size:14px;line-height:1.55;color:var(--muted);max-width:560px}.post-read{font-size:11px;color:var(--faint);text-align:right}.post-header{padding:52px 40px 36px;border-bottom:1.5px solid var(--strong)}.post-header h1{max-width:640px}.post-header .badge-outline{padding:3px 9px}.post-header h1{margin:20px 0 0;font-size:clamp(30px,5vw,44px);line-height:1.1;font-weight:600;letter-spacing:-.025em;text-wrap:balance}.post-meta{margin:20px 0 0;font-size:12px;color:var(--muted)}.post-body{padding:48px 40px;max-width:680px}.post-body p{margin:0 0 22px;font-size:17px;line-height:1.7}.post-body>:last-child{margin-bottom:0}.post-body h2{margin:34px 0 4px;font-size:24px;font-weight:600;letter-spacing:-.015em}.post-body h3{margin:28px 0 2px;font-size:19px;font-weight:600}.post-body a{color:var(--link)}.post-body blockquote{margin:0 0 22px;padding:4px 0 4px 20px;border-left:2px solid var(--strong);color:var(--muted)}.post-body code{font-family:jetbrains mono,ui-monospace,monospace;font-size:.85em;background:var(--hover);border:1px solid var(--line);padding:1px 5px;border-radius:2px}.post-body pre{background:var(--hover);border:1px solid var(--line);padding:16px;overflow-x:auto;font-size:13px;line-height:1.6;margin:0 0 22px}.post-body pre code{background:0 0;border:none;padding:0}.post-body .highlight{margin:0 0 22px}.post-body .highlight pre{margin:0}:root{--code-key:oklch(0.52 0.16 255);--code-str:oklch(0.52 0.14 150);--code-lit:oklch(0.55 0.15 45)}html.dark{--code-key:oklch(0.75 0.13 255);--code-str:oklch(0.76 0.13 150);--code-lit:oklch(0.78 0.13 60)}.chroma .c,.chroma .c1,.chroma .cm,.chroma .cs,.chroma .ch{color:var(--faint);font-style:italic}.chroma .k,.chroma .kd,.chroma .kr,.chroma .kn,.chroma .kc,.chroma .kp{color:var(--code-key)}.chroma .kt,.chroma .nc,.chroma .nn{color:var(--code-lit)}.chroma .s,.chroma .s1,.chroma .s2,.chroma .sb,.chroma .sx,.chroma .sr,.chroma .se{color:var(--code-str)}.chroma .m,.chroma .mi,.chroma .mf,.chroma .mh,.chroma .mb,.chroma .mo{color:var(--code-lit)}.chroma .nf,.chroma .fm{color:var(--code-key);font-weight:500}.chroma .o,.chroma .p{color:var(--muted)}.chroma .nb,.chroma .bp{color:var(--code-lit)}.post-body img{max-width:100%}.author-card{margin:0 40px 48px;padding:24px;border:1px solid var(--line);display:flex;align-items:center;gap:18px;transition:background .15s ease}.author-card:hover{background:var(--hover)}.author-card .avatar,.maker-card .avatar{width:56px;height:56px;flex:none;padding:0;background-image:repeating-linear-gradient(45deg,var(--ph1) 0 6px,var(--ph2) 6px 12px)}img.avatar{object-fit:cover;border-radius:2px}.author-meta{display:flex;flex-direction:column;gap:3px}.author-name{font-size:16px;font-weight:600}.author-role{font-size:12px;color:var(--muted)}.person-hero{display:grid;grid-template-columns:280px 1fr;border-bottom:1.5px solid var(--strong)}.person-side{padding:40px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:18px}.contact{display:flex;flex-direction:column;gap:8px;font-size:12px;color:var(--muted)}.contact-label{letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-size:11px}.person-main{padding:48px 40px;display:flex;flex-direction:column;gap:16px;align-items:flex-start}.person-main h1{margin:0;font-size:clamp(30px,5vw,44px);font-weight:600;letter-spacing:-.025em}.person-longbio p{margin:0 0 16px;font-size:17px;line-height:1.7;max-width:520px}.person-longbio>:last-child{margin-bottom:0}.mini-work{display:flex;flex-direction:column;gap:12px;padding:24px}.mini-title{font-size:18px;font-weight:600;letter-spacing:-.01em}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:20px 40px;border-top:1.5px solid var(--strong);font-size:12px;color:var(--muted)}.footer-link{color:var(--link)}@media(max-width:900px){.frame{padding:24px 12px}.grid-3{grid-template-columns:repeat(2,1fr)}.grid-3>.cell:nth-child(3n){border-right:1px solid var(--line)}.grid-3>.cell:nth-child(2n){border-right:none}}@media(max-width:700px){.grid-3,.grid-2{grid-template-columns:1fr}.cell{border-right:none!important}.hero,.section-hero,.post-header,.post-body,.person-main,.person-side,.section-label,.backbar,.post-row,.site-footer{padding-left:24px;padding-right:24px}.post-row{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.post-read{text-align:left}.person-hero{grid-template-columns:1fr}.person-side{border-right:none;border-bottom:1px solid var(--line)}.author-card{margin:0 24px 40px}}