.Button-module__8RiFmG__button{min-height:48px;padding:0 var(--space-lg);background:var(--color-accent);color:var(--color-accent-ink);border:1px solid var(--color-accent);border-radius:var(--radius-card);transition:transform var(--dur-micro) var(--ease-out), opacity var(--dur-micro) var(--ease-out);align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.Button-module__8RiFmG__button:hover{opacity:.88}.Button-module__8RiFmG__button:active{transform:translateY(1px)}.Button-module__8RiFmG__quiet{color:var(--color-ink);border-color:var(--color-ink);background:0 0}.Button-module__8RiFmG__quiet:hover{background:var(--color-paper-3);opacity:1}@media (max-width:40rem){.Button-module__8RiFmG__button{flex:auto;justify-content:center}}
.TextLink-module__0J5utG__link{color:var(--surface-link);text-underline-offset:.18em;transition:opacity var(--dur-micro) var(--ease-out);text-decoration:underline;text-decoration-thickness:1px}.TextLink-module__0J5utG__link:hover{opacity:.65}
.Hero-module___w2HtG__hero{padding-block:var(--space-3xl) var(--space-2xl)}.Hero-module___w2HtG__inner{gap:var(--space-2xl);grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start;display:grid}.Hero-module___w2HtG__heading{font-size:var(--text-display);max-width:12ch}.Hero-module___w2HtG__lead{margin-top:var(--space-lg);font-size:var(--text-lead);color:var(--color-ink-2);max-width:38ch}.Hero-module___w2HtG__actions{gap:var(--space-sm);margin-top:var(--space-xl);flex-wrap:wrap;display:flex}.Hero-module___w2HtG__availability{margin-top:var(--space-lg);font-size:var(--text-sm);color:var(--color-muted);max-width:44ch}.Hero-module___w2HtG__board{border:1px solid var(--color-ink);border-radius:var(--radius-card);background:var(--color-paper-2)}.Hero-module___w2HtG__boardHeading{font-family:var(--font-body);font-size:var(--text-sm);letter-spacing:0;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-ink);font-weight:600;line-height:1.4}.Hero-module___w2HtG__boardList{margin:0;padding:0;list-style:none}.Hero-module___w2HtG__boardList li{justify-content:space-between;align-items:baseline;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);flex-wrap:wrap;display:flex}.Hero-module___w2HtG__boardList li+li{border-top:var(--rule-hair) solid var(--color-rule)}.Hero-module___w2HtG__boardName{font-weight:500}.Hero-module___w2HtG__boardState{font-family:var(--font-mono);font-size:var(--text-xs)}.Hero-module___w2HtG__isOpen{color:var(--color-accent)}.Hero-module___w2HtG__isShut{color:var(--color-ink-2)}@media (max-width:64rem){.Hero-module___w2HtG__hero{padding-block:var(--space-2xl)}.Hero-module___w2HtG__inner{grid-template-columns:minmax(0,1fr)}}
.LinkList-module__I1B_oW__list{margin:var(--space-md) 0 0;gap:var(--space-2xs);padding:0;list-style:none;display:grid}
.ProjectScreenshot-module__Zyd8vW__frame{border:1px solid var(--surface-rule);border-radius:var(--radius-card);background:var(--color-paper-2);margin:0;overflow:hidden}.ProjectScreenshot-module__Zyd8vW__image{width:100%;height:auto}
.StackList-module__G6DWZa__label{display:block}.StackList-module__G6DWZa__list{margin:var(--space-xs) 0 0;gap:var(--space-3xs);padding:0;list-style:none;display:grid}
.FeaturedProject-module__NAF5qa__section{padding-block:var(--section-gap-s)}.FeaturedProject-module__NAF5qa__head{gap:var(--space-2xl);grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:end;display:grid}.FeaturedProject-module__NAF5qa__name{font-size:var(--text-display-s)}.FeaturedProject-module__NAF5qa__summary{font-size:var(--text-lead);color:var(--surface-text-2);max-width:46ch}.FeaturedProject-module__NAF5qa__screenshot{margin-top:var(--space-xl)}.FeaturedProject-module__NAF5qa__foot{gap:var(--space-2xl);margin-top:var(--space-xl);border-top:1px solid var(--surface-rule);padding-top:var(--space-lg);grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);display:grid}.FeaturedProject-module__NAF5qa__access{margin-top:var(--space-xs);color:var(--surface-text-2);max-width:54ch}@media (max-width:64rem){.FeaturedProject-module__NAF5qa__head,.FeaturedProject-module__NAF5qa__foot{grid-template-columns:minmax(0,1fr)}}
.SideProject-module__2xfJKW__section{padding-block:var(--section-gap-s)}.SideProject-module__2xfJKW__inner{gap:var(--space-2xl);grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center;display:grid}.SideProject-module__2xfJKW__summary{margin-top:var(--space-md);font-size:var(--text-lead);color:var(--surface-text-2);max-width:42ch}.SideProject-module__2xfJKW__status{margin-top:var(--space-md);color:var(--surface-text-2);max-width:44ch}.SideProject-module__2xfJKW__stack{margin-top:var(--space-xl)}@media (max-width:64rem){.SideProject-module__2xfJKW__inner{grid-template-columns:minmax(0,1fr)}.SideProject-module__2xfJKW__screenshot{order:-1}}
.InProgressProject-module__WHRk6q__section{padding-block:var(--section-gap-l) var(--section-gap-s)}.InProgressProject-module__WHRk6q__inner{gap:var(--space-2xl);grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);align-items:start;display:grid}.InProgressProject-module__WHRk6q__summary{margin-top:var(--space-md);font-size:var(--text-lead);color:var(--surface-text-2);max-width:34ch}.InProgressProject-module__WHRk6q__detail>p{color:var(--surface-text-2);max-width:60ch}.InProgressProject-module__WHRk6q__detail .InProgressProject-module__WHRk6q__status{margin-top:var(--space-md);max-width:44ch}.InProgressProject-module__WHRk6q__stack{margin-top:var(--space-lg)}@media (max-width:64rem){.InProgressProject-module__WHRk6q__inner{grid-template-columns:minmax(0,1fr)}}
.EarlierWork-module__d_PRgG__section{padding-block:var(--section-gap-l) var(--section-gap-s)}.EarlierWork-module__d_PRgG__note{margin-top:var(--space-sm);color:var(--surface-text-2);max-width:46ch}.EarlierWork-module__d_PRgG__list{margin:var(--space-lg) 0 0;gap:var(--space-xl);grid-template-columns:minmax(0,1fr);padding:0;list-style:none;display:grid}.EarlierWork-module__d_PRgG__list li{border-top:2px solid var(--color-ink);padding-top:var(--space-md)}.EarlierWork-module__d_PRgG__list p{margin:var(--space-xs) 0 var(--space-md);color:var(--surface-text-2)}.EarlierWork-module__d_PRgG__link{font-family:var(--font-mono);font-size:var(--text-sm)}@media (min-width:48rem){.EarlierWork-module__d_PRgG__list{grid-template-columns:repeat(3,minmax(0,1fr))}}
.Practice-module__tHmd6a__section{padding-block:var(--section-gap-s)}.Practice-module__tHmd6a__list{margin:var(--space-xl) 0 0;display:grid}.Practice-module__tHmd6a__list>div{gap:var(--space-xl);padding-block:var(--space-lg);grid-template-columns:minmax(0,1fr) minmax(0,2fr);display:grid}.Practice-module__tHmd6a__list>div+div{border-top:var(--rule-hair) solid var(--color-rule)}.Practice-module__tHmd6a__list dt{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:-.01em;font-weight:600}.Practice-module__tHmd6a__list dd{font-size:var(--text-lead);color:var(--surface-text-2);margin:0}@media (max-width:64rem){.Practice-module__tHmd6a__list>div{grid-template-columns:minmax(0,1fr)}}
.Prose-module__vQOPAW__prose{font-size:var(--text-md);color:var(--color-ink);line-height:1.7}.Prose-module__vQOPAW__prose>*+*{margin-top:var(--space-md)}.Prose-module__vQOPAW__prose h2{margin-top:var(--space-2xl);font-size:var(--text-2xl);line-height:1.1}.Prose-module__vQOPAW__prose h3{margin-top:var(--space-xl);font-size:var(--text-xl);line-height:1.15}.Prose-module__vQOPAW__prose a{color:var(--color-accent)}.Prose-module__vQOPAW__prose ul,.Prose-module__vQOPAW__prose ol{padding-left:var(--space-lg)}.Prose-module__vQOPAW__prose li+li{margin-top:var(--space-2xs)}.Prose-module__vQOPAW__prose blockquote{padding-left:var(--space-md);border-left:2px solid var(--color-rule);color:var(--color-ink-2);margin-inline:0}.Prose-module__vQOPAW__prose table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.Prose-module__vQOPAW__prose th,.Prose-module__vQOPAW__prose td{padding:var(--space-xs) var(--space-sm);border-bottom:var(--rule-hair) solid var(--color-rule);text-align:left}.Prose-module__vQOPAW__prose :not(pre)>code{border-radius:var(--radius-card);background:var(--color-paper-3);font-family:var(--font-mono);padding:.1em .35em;font-size:.9em}.Prose-module__vQOPAW__prose figure[data-rehype-pretty-code-figure]{margin:var(--space-lg) 0}.Prose-module__vQOPAW__prose pre{padding:var(--space-md) 0;border-radius:var(--radius-card);font-family:var(--font-mono);font-size:var(--text-sm);line-height:1.6;overflow-x:auto}.Prose-module__vQOPAW__prose pre code{display:grid}.Prose-module__vQOPAW__prose pre [data-line]{padding-inline:var(--space-md)}.Prose-module__vQOPAW__prose pre [data-highlighted-line]{box-shadow:inset 3px 0 0 var(--color-accent-bright);background:#ffffff14}.Prose-module__vQOPAW__prose pre [data-highlighted-chars]{background:#ffffff24;border-radius:2px;padding:.1em .2em}.Prose-module__vQOPAW__prose figcaption[data-rehype-pretty-code-title]{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-card) var(--radius-card) 0 0;background:var(--color-panel-2);color:var(--color-panel-ink-2);font-family:var(--font-mono);font-size:var(--text-xs)}.Prose-module__vQOPAW__prose figcaption[data-rehype-pretty-code-title]+pre{border-top-left-radius:0;border-top-right-radius:0}
.Stack-module__Eo5vkq__section{padding-block:var(--section-gap-s)}.Stack-module__Eo5vkq__grid{margin:var(--space-xl) 0 0;gap:var(--space-xl);grid-template-columns:minmax(0,1fr);display:grid}.Stack-module__Eo5vkq__grid dt{font-size:var(--text-sm);color:var(--surface-text-2);font-weight:600}.Stack-module__Eo5vkq__grid dd{margin:var(--space-xs) 0 0;color:var(--surface-text);line-height:1.7}@media (min-width:48rem){.Stack-module__Eo5vkq__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:72rem){.Stack-module__Eo5vkq__grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.blog-module__JsT-Oq__page{padding-block:var(--space-3xl) var(--section-gap-s)}.blog-module__JsT-Oq__narrow{max-width:46rem}.blog-module__JsT-Oq__kicker{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-2);text-transform:uppercase;letter-spacing:.06em}.blog-module__JsT-Oq__title{margin-top:var(--space-sm);font-size:var(--text-display-s)}.blog-module__JsT-Oq__lead{margin-top:var(--space-lg);font-size:var(--text-lead);color:var(--color-ink-2)}.blog-module__JsT-Oq__list{margin:var(--space-2xl) 0 0;border-top:var(--rule-hair) solid var(--color-rule);padding:0;list-style:none}.blog-module__JsT-Oq__item{padding-block:var(--space-lg);border-bottom:var(--rule-hair) solid var(--color-rule)}.blog-module__JsT-Oq__itemTitle{font-size:var(--text-title);line-height:1.1}.blog-module__JsT-Oq__itemTitle a{text-decoration:none}.blog-module__JsT-Oq__itemTitle a:hover{color:var(--color-accent);text-decoration:underline}.blog-module__JsT-Oq__itemDescription{margin-top:var(--space-xs);color:var(--color-ink-2)}.blog-module__JsT-Oq__meta{gap:var(--space-xs) var(--space-md);margin-top:var(--space-sm);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-muted);flex-wrap:wrap;display:flex}.blog-module__JsT-Oq__draft{color:var(--color-error)}.blog-module__JsT-Oq__empty{margin-top:var(--space-2xl);color:var(--color-ink-2)}.blog-module__JsT-Oq__header{padding-bottom:var(--space-xl);border-bottom:var(--rule-hair) solid var(--color-rule)}.blog-module__JsT-Oq__body{margin-top:var(--space-xl)}.blog-module__JsT-Oq__follow{margin-top:var(--space-2xl);padding-top:var(--space-lg);border-top:2px solid var(--color-ink);gap:var(--space-xs);display:grid}.blog-module__JsT-Oq__follow p{color:var(--color-ink-2)}.blog-module__JsT-Oq__back{margin-top:var(--space-xl);color:var(--color-accent);display:inline-block}
.Contact-module__DIbnYa__section{padding-block:var(--section-gap-s)}.Contact-module__DIbnYa__inner{gap:var(--space-2xl);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}.Contact-module__DIbnYa__say{gap:var(--space-lg);align-items:start;display:flex}.Contact-module__DIbnYa__portrait{object-fit:cover;object-position:50% 18%;border-radius:var(--radius-card);border:1px solid var(--surface-rule);flex:none;width:88px;height:88px}.Contact-module__DIbnYa__heading{font-size:var(--text-display-s);max-width:14ch}.Contact-module__DIbnYa__text{margin-top:var(--space-md);color:var(--surface-text-2);font-size:var(--text-lead);max-width:34ch}.Contact-module__DIbnYa__follow{margin-top:var(--space-md);color:var(--color-accent-bright);font-size:var(--text-lead);max-width:32ch}.Contact-module__DIbnYa__list{gap:var(--space-sm);font-family:var(--font-mono);margin:0;padding:0;list-style:none;display:grid}.Contact-module__DIbnYa__list li{border-bottom:var(--rule-hair) solid var(--surface-rule);padding-bottom:var(--space-sm);color:var(--surface-text-2)}.Contact-module__DIbnYa__mail{font-size:var(--text-lg)}@media (max-width:64rem){.Contact-module__DIbnYa__inner{grid-template-columns:minmax(0,1fr)}}
