:root{--canvas:#f5f5ed;--surface:#e8ede5;--surface-muted:#efeee4;--ink:#202923;--muted:#5c6860;--line:#d5d9cf;--accent:#285f49;--accent-soft:#cfe1d3;--inverse:#f5f5ed;--shadow:0 18px 50px rgb(32 41 35/7%);color-scheme:light}:root[data-theme=dark]{--canvas:#101914;--surface:#1d3326;--surface-muted:#192a20;--ink:#e8eee5;--muted:#aab8ac;--line:#34463a;--accent:#9acbb0;--accent-soft:#2f4a38;--inverse:#101914;--shadow:0 18px 50px rgb(0 0 0/20%);color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}body,html{background:var(--canvas)}body{min-width:320px;margin:0;color:var(--ink);font-family:Arial,Helvetica Neue,sans-serif;font-size:16px;line-height:1.5;transition:background-color .18s ease,color .18s ease}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}a,button{-webkit-tap-highlight-color:transparent}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.site-frame{width:min(1216px,calc(100% - 48px));min-height:100svh;margin:0 auto}.site-header{display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(220px,1fr);align-items:center;min-height:112px;border-bottom:1px solid var(--line);grid-gap:28px;gap:28px}.brand,.site-header__actions,.site-nav{display:flex;align-items:center}.brand{gap:10px;font-weight:600;letter-spacing:-.02em}.brand__avatar{display:block;width:34px;height:34px;place-items:center;border-radius:5px;object-fit:cover;object-position:center}.site-nav{justify-content:center;gap:28px;color:var(--muted);font-size:14px}.resume-action,.site-nav a,.theme-toggle{transition:color .15s ease,border-color .15s ease,background-color .15s ease}.site-nav a:focus-visible,.site-nav a:hover{color:var(--accent)}.site-header__actions{justify-content:flex-end;gap:14px}.theme-toggle{display:inline-grid;width:36px;height:36px;padding:0;place-items:center;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);cursor:pointer;font-size:18px}.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}.resume-action{display:inline-flex;align-items:center;justify-content:space-between;min-width:188px;min-height:44px;padding:0 16px;border:1px solid var(--line);border-radius:4px;font-size:14px}.resume-action:hover{border-color:var(--accent);color:var(--accent)}.shell-preview{display:grid;grid-template-columns:minmax(0,1fr) 330px;align-items:end;grid-gap:clamp(48px,8vw,120px);gap:clamp(48px,8vw,120px);padding:96px 0 112px}.eyebrow{margin:0;color:var(--accent);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase}.shell-preview h1{max-width:780px;margin:22px 0 24px;font-family:Georgia,Times New Roman,serif;font-size:clamp(54px,7vw,86px);font-weight:600;letter-spacing:-.055em;line-height:.98}.shell-preview h1 span{display:block;color:var(--accent)}.lede{max-width:590px;margin:0;color:var(--muted);font-size:19px;line-height:1.55}.shell-preview__role{margin:28px 0 0;font-weight:600}.signal-panel{padding:28px;border:1px solid var(--line);border-radius:6px;background:var(--surface);box-shadow:var(--shadow)}.signal-panel ul{display:grid;grid-gap:14px;gap:14px;padding:22px 0 0;margin:0;list-style:none}.signal-panel li{padding-top:14px;border-top:1px solid color-mix(in srgb,var(--line) 78%,transparent);color:var(--muted);font-size:14px}.signal-panel li:before{margin-right:10px;color:var(--accent);content:"→"}.slot-grid{grid-template-columns:repeat(3,1fr);padding-bottom:96px}.slot-card,.slot-grid{display:grid;grid-gap:20px;gap:20px}.slot-card{min-height:176px;align-content:space-between;padding:24px;border:1px solid var(--line);border-radius:6px;background:var(--surface-muted);transition:transform .15s ease,border-color .15s ease}.slot-card:hover{border-color:var(--accent);transform:translateY(-3px)}.slot-card strong{max-width:230px;font-family:Georgia,Times New Roman,serif;font-size:25px;font-weight:600;letter-spacing:-.025em;line-height:1.08}.slot-card>span:last-child{letter-spacing:.08em;text-transform:uppercase}.shell-footer,.slot-card>span:last-child{color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:11px}.shell-footer{display:flex;justify-content:space-between;padding:22px 0 36px;border-top:1px solid var(--line);letter-spacing:.04em}.placeholder-page{max-width:760px;min-height:calc(100svh - 112px);padding:112px 0}.placeholder-page h1{margin:20px 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(48px,7vw,76px);letter-spacing:-.05em;line-height:1}.placeholder-page p:not(.eyebrow){max-width:560px;color:var(--muted);font-size:18px}.placeholder-page__back{display:inline-block;margin-top:28px;color:var(--accent);font-weight:600}@media (max-width:800px){.site-frame{width:min(100% - 48px,600px)}.site-header{grid-template-columns:1fr auto;min-height:80px}.site-nav{display:none}.site-header__actions{gap:10px}.resume-action{min-width:auto;min-height:36px;padding:0 12px;font-size:12px}.theme-toggle{width:34px;height:34px}.shell-preview{display:block;padding:64px 0 72px}.shell-preview h1{margin-top:20px;font-size:clamp(46px,14vw,64px)}.lede{font-size:17px}.signal-panel{margin-top:48px}.slot-grid{grid-template-columns:1fr;padding-bottom:72px}.slot-card{min-height:150px}.shell-footer{display:grid;grid-gap:8px;gap:8px}}.about-page,.contact-page{padding-bottom:96px}.about-hero{display:grid;grid-template-columns:minmax(0,1fr) 180px;align-items:end;grid-gap:64px;gap:64px;padding:88px 0 72px;border-bottom:1px solid var(--line)}.about-hero h1,.contact-page__hero h1{max-width:850px;margin:20px 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(52px,7vw,82px);font-weight:600;letter-spacing:-.055em;line-height:.98}.about-hero p:not(.eyebrow),.contact-page__hero>p:not(.eyebrow){max-width:680px;margin:0;color:var(--muted);font-size:19px;line-height:1.6}.about-avatar{display:block;width:180px;height:196px;border-radius:6px;object-fit:cover;object-position:center}.about-principles,.contact-page__links,.contact-page__resume{display:grid;grid-template-columns:260px minmax(0,1fr);grid-gap:56px;gap:56px;padding:56px 0;border-bottom:1px solid var(--line)}.about-principles h2,.contact-page__links h2,.contact-page__resume h2,.experience-section h2,.recognition-section h2{margin:16px 0 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(30px,4vw,44px);font-weight:600;letter-spacing:-.045em;line-height:1.05}.about-principles ul{display:grid;grid-gap:14px;gap:14px;padding:0;margin:0;list-style:none;color:var(--muted);font-size:18px}.about-principles li{padding-top:14px;border-top:1px solid var(--line)}.about-principles li:before{margin-right:12px;color:var(--accent);content:"→"}.experience-section{padding:64px 0 80px}.experience-list{margin-top:42px;border-top:1px solid var(--line)}.experience-item{display:grid;grid-template-columns:220px minmax(0,1fr);grid-gap:44px;gap:44px;padding:28px 0;border-bottom:1px solid var(--line)}.experience-item__date{display:grid;align-content:start;grid-gap:8px;gap:8px;color:var(--accent);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.experience-item__date small{color:var(--muted);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.experience-item h3{margin:0;font-family:Georgia,Times New Roman,serif;font-size:27px;font-weight:600;letter-spacing:-.035em}.experience-item__org{margin:4px 0 12px;color:var(--accent);font-weight:600}.experience-item p:last-child{max-width:650px;margin:0;color:var(--muted);font-size:16px}.recognition-section{display:flex;align-items:end;justify-content:space-between;gap:32px;padding:56px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.recognition-section p:not(.eyebrow){max-width:580px;margin:18px 0 0;color:var(--muted)}.about-footer{display:flex;justify-content:space-between;padding-top:28px}.contact-page__hero{max-width:900px;padding:96px 0 80px}.contact-page__email{display:inline-block;margin-top:36px;color:var(--accent);font-size:22px;font-weight:600}.contact-page__link-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px 28px;gap:14px 28px}.contact-page__link-list a{padding:16px 0;border-bottom:1px solid var(--line);color:var(--accent);font-size:17px}.contact-page__link-list a:hover{color:var(--ink)}.contact-page__resume{align-items:center;border-bottom:0}.contact-page__resume p:not(.eyebrow){max-width:600px;margin:18px 0 0;color:var(--muted)}.not-found-page{padding-bottom:96px}.not-found-page>section{max-width:720px;padding:112px 0}.not-found-page h1{margin:20px 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(48px,7vw,78px);font-weight:600;letter-spacing:-.055em;line-height:1}.not-found-page p:not(.eyebrow){margin:0 0 30px;color:var(--muted);font-size:18px}@media (max-width:800px){.about-page,.contact-page{padding-bottom:72px}.about-hero{display:block;padding:64px 0 56px}.about-hero h1,.contact-page__hero h1{font-size:clamp(46px,14vw,64px)}.about-avatar{margin-top:32px}.about-principles,.contact-page__links,.contact-page__resume{display:block;padding:44px 0}.about-principles ul,.contact-page__link-list{margin-top:28px}.experience-section{padding:48px 0 56px}.experience-item{grid-template-columns:1fr;gap:14px}.recognition-section{display:block;padding:44px 0}.recognition-section .text-link{display:inline-block;margin-top:22px}.about-footer{display:grid;grid-gap:12px;gap:12px}.contact-page__hero{padding:64px 0 56px}.contact-page__link-list{grid-template-columns:1fr}.contact-page__resume .resume-action{display:inline-flex;margin-top:28px}}.article-page,.blog-page{padding-bottom:96px}.blog-page__header{max-width:800px;padding:96px 0 56px}.article-page__header h1,.blog-page__header h1{margin:20px 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(52px,7vw,82px);font-weight:600;letter-spacing:-.055em;line-height:.98}.article-page__header>p:not(.eyebrow),.blog-page__header>p:not(.eyebrow){max-width:650px;margin:0;color:var(--muted);font-size:19px;line-height:1.55}.blog-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:20px;gap:20px;border-top:1px solid var(--line);padding-top:28px}.blog-card{display:flex;min-height:280px;flex-direction:column;align-items:flex-start;gap:16px;padding:28px 30px;border:1px solid var(--line);border-radius:6px;background:var(--surface-muted);transition:border-color .15s ease,transform .15s ease}.blog-card:hover{border-color:var(--accent);transform:translateY(-3px)}.blog-card__topline{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px}.blog-card__topics{color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:10px;letter-spacing:.05em;text-transform:uppercase;text-align:right}.blog-card h2{margin:20px 0 0;font-family:Georgia,Times New Roman,serif;font-size:30px;font-weight:600;letter-spacing:-.04em;line-height:1.05}.blog-card p{margin:0;color:var(--muted);font-size:15px}.blog-card .text-link{margin-top:auto}.article-page__header{max-width:820px;padding:76px 0 56px}.article-page__header h1{font-size:clamp(48px,6vw,74px)}.article-page__meta{display:flex;flex-wrap:wrap;gap:16px 28px;padding-top:24px;color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:11px;letter-spacing:.05em;text-transform:uppercase}.prose{max-width:760px;padding-top:48px;border-top:1px solid var(--line);font-size:18px;line-height:1.75}.prose h1,.prose h2,.prose h3{font-family:Georgia,Times New Roman,serif;font-weight:600;letter-spacing:-.035em;line-height:1.1}.prose h1{font-size:46px}.prose h2{margin-top:52px;font-size:34px}.prose h3{margin-top:40px;font-size:26px}.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:4px}.prose blockquote{margin:28px 0;padding:8px 24px;border-left:3px solid var(--accent);color:var(--muted)}.prose pre{overflow-x:auto;padding:20px;border:1px solid var(--line);border-radius:5px;background:var(--ink);color:var(--inverse);font-size:13px;line-height:1.65}.prose code:not(pre code),.prose pre{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.prose code:not(pre code){padding:2px 5px;border-radius:3px;background:var(--surface);font-size:.85em}.prose table{width:100%;border-collapse:collapse;margin:28px 0;font-size:15px}.prose td,.prose th{padding:10px 12px;border:1px solid var(--line);text-align:left;vertical-align:top}.prose th{font-weight:700}.mdx-callout,.prose th{background:var(--surface)}.mdx-callout{display:grid;grid-template-columns:90px minmax(0,1fr);grid-gap:16px;gap:16px;padding:18px;margin:28px 0;border:1px solid var(--accent);border-radius:5px}.mdx-callout>strong{color:var(--accent);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:11px;text-transform:uppercase}.mdx-diagram{padding:24px;margin:32px 0;border:1px solid var(--line);border-radius:5px;background:var(--surface-muted)}.mdx-diagram figcaption{margin-bottom:12px;color:var(--accent);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.article-page__external{margin-top:36px}@media (max-width:800px){.article-page,.blog-page{padding-bottom:72px}.article-page__header,.blog-page__header{padding:64px 0 42px}.article-page__header h1,.blog-page__header h1{font-size:clamp(46px,14vw,64px)}.blog-list{grid-template-columns:1fr}.blog-card h2{font-size:27px}.prose{padding-top:36px;font-size:17px}.prose h1{font-size:38px}.prose h2{font-size:30px}.prose table{display:block;overflow-x:auto}.mdx-callout{grid-template-columns:1fr;gap:8px}}.case-study-page,.work-page{padding-bottom:96px}.breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:22px 0 0;color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:11px;letter-spacing:.04em}.breadcrumbs a:hover{color:var(--accent)}.breadcrumbs [aria-current=page]{color:var(--ink)}.work-page__header{max-width:760px;padding:96px 0 48px}.case-study-hero h1,.work-page__header h1{margin:20px 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(52px,7vw,82px);font-weight:600;letter-spacing:-.055em;line-height:.98}.work-page__header p:not(.eyebrow){max-width:620px;margin:0;color:var(--muted);font-size:19px}.project-filters{display:flex;flex-wrap:wrap;gap:10px;padding:18px 0 28px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.project-filter{padding:9px 13px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:13px}.project-filter--active,.project-filter:hover{border-color:var(--accent);background:var(--accent);color:var(--inverse)}.directory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:20px;gap:20px;padding-top:28px}.directory-card{display:flex;min-height:330px;flex-direction:column;align-items:flex-start;gap:18px;padding:30px 32px;border:1px solid var(--line);border-radius:6px;background:var(--surface-muted)}.directory-card__footer,.directory-card__topline{display:flex;width:100%;align-items:center;justify-content:space-between;gap:16px}.directory-card__index{color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:11px}.directory-card h2{margin:4px 0 0;font-family:Georgia,Times New Roman,serif;font-size:34px;font-weight:600;letter-spacing:-.04em;line-height:1.05}.directory-card>p:not(.eyebrow){max-width:540px;margin:0;color:var(--muted);font-size:16px;line-height:1.55}.directory-card__footer{align-items:end;margin-top:auto}.project-tags{display:flex;flex-wrap:wrap;gap:8px}.project-tags span{padding:6px 9px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:10px;letter-spacing:.05em;text-transform:uppercase}.back-link{display:inline-block;padding-top:34px;color:var(--accent);font-size:14px;font-weight:600}.back-link:hover{text-decoration:underline;text-underline-offset:4px}.case-study-hero{display:grid;grid-template-columns:minmax(0,1fr) 300px;align-items:end;grid-gap:72px;gap:72px;padding:80px 0 72px;border-bottom:1px solid var(--line)}.case-study-hero__summary{max-width:720px;margin:0;color:var(--muted);font-size:20px;line-height:1.55}.case-study-hero__meta{display:grid;grid-gap:14px;gap:14px;padding-top:18px;border-top:1px solid var(--line)}.case-study-hero__meta p{margin:0 0 10px;color:var(--muted);font-size:14px}.case-study-layout{display:grid;grid-template-columns:minmax(0,760px) 260px;justify-content:space-between;grid-gap:64px;gap:64px;padding-top:64px}.case-study-body{min-width:0}.case-study-section{padding:0 0 48px;margin-bottom:48px;border-bottom:1px solid var(--line)}.case-study-section__heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}.case-study-section li,.case-study-section>p{color:var(--muted);font-size:18px;line-height:1.7}.case-study-section ul{padding-left:22px;margin:0}.case-study-section--limitations{border-bottom:0}.evidence-badge{display:inline-block;flex:0 0 auto;padding:5px 8px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:10px;letter-spacing:.04em;text-transform:uppercase}.evidence-badge--public-source{border-color:var(--accent);color:var(--accent)}.evidence-badge--supplied-result,.evidence-badge--user-supplied{background:var(--accent-soft);color:var(--accent)}.case-study-aside{align-self:start;padding:20px 0;border-top:1px solid var(--line)}.case-study-aside ul{display:grid;grid-gap:14px;gap:14px;padding:18px 0 0;margin:0;list-style:none}.case-study-aside a{color:var(--accent);font-size:14px}.case-study-aside__pending{margin:18px 0 0;color:var(--muted);font-size:14px}@media (max-width:800px){.case-study-page,.work-page{padding-bottom:72px}.work-page__header{padding:64px 0 40px}.case-study-hero h1,.work-page__header h1{font-size:clamp(46px,14vw,64px)}.case-study-hero,.case-study-layout,.directory-grid{grid-template-columns:1fr}.directory-card{min-height:290px;padding:24px}.case-study-hero{gap:42px;padding:56px 0 48px}.case-study-layout{gap:38px;padding-top:44px}.case-study-section li,.case-study-section>p{font-size:17px}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important}}.home-page{width:min(1216px,calc(100% - 48px))}.home-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,330px);align-items:end;grid-gap:clamp(48px,8vw,120px);gap:clamp(48px,8vw,120px);padding:96px 0 112px}.hero-title{max-width:780px;margin:22px 0 24px;font-family:Georgia,Times New Roman,serif;font-size:clamp(54px,7vw,86px);font-weight:600;letter-spacing:-.055em;line-height:.98}.hero-title span{display:block;color:var(--accent)}.hero-role{margin:0;font-weight:700}.hero-lede{max-width:590px;margin:24px 0 0;color:var(--muted);font-size:19px;line-height:1.55}.hero-actions{display:flex;align-items:center;gap:26px;margin-top:34px}.primary-link{display:inline-flex;min-height:50px;align-items:center;justify-content:space-between;gap:30px;padding:0 20px;border:1px solid var(--accent);border-radius:4px;background:var(--accent);color:var(--inverse);font-size:15px}.primary-link:hover{background:transparent;color:var(--accent)}.section-link,.text-link{color:var(--accent);font-size:15px;font-weight:600}.section-link:hover,.text-link:hover{text-decoration:underline;text-underline-offset:4px}.current-work{padding-top:20px;border-top:1px solid var(--line)}.current-work__row{display:grid;grid-template-columns:100px 1fr;grid-gap:16px;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}.current-work__row strong{font-family:Georgia,Times New Roman,serif;font-size:21px;font-weight:600}.current-work__note,.current-work__row span{color:var(--muted);font-size:14px}.current-work__note{margin:26px 0 0;line-height:1.65}.section{padding:48px 0 96px;border-top:1px solid var(--line)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:34px}.contact-footer h2,.context-section h2,.section-heading h2{margin:18px 0 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(34px,4vw,46px);font-weight:600;letter-spacing:-.045em;line-height:1.05}.feature-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,1fr);min-height:416px;overflow:hidden;border-radius:6px;background:var(--surface)}.feature-card__copy{display:flex;flex-direction:column;align-items:flex-start;gap:18px;padding:42px 40px}.feature-card__copy h3,.project-card h3{margin:0;font-family:Georgia,Times New Roman,serif;font-size:36px;font-weight:600;letter-spacing:-.04em;line-height:1}.feature-card__copy>p:not(.eyebrow):not(.feature-card__subtitle):not(.project-meta){max-width:430px;margin:0;color:var(--muted);font-size:17px;line-height:1.55}.feature-card__subtitle{margin:-6px 0 0;font-size:20px}.project-meta{margin-top:auto;color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:11px;letter-spacing:.03em}.interface-diagram{display:flex;flex-direction:column;justify-content:center;gap:12px;min-width:0;margin:0;padding:42px;background-color:color-mix(in srgb,var(--surface) 72%,var(--canvas));background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-position:50%;background-size:32px 32px}.diagram-node{width:min(100%,360px);padding:18px;border:1px solid var(--line);border-radius:4px;background:var(--canvas);box-shadow:var(--shadow)}.diagram-node--code{align-self:center}.diagram-node--artifact{align-self:flex-end;border-color:var(--ink);background:var(--ink);color:var(--inverse)}.diagram-label{display:block;margin-bottom:12px;color:var(--accent);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.diagram-label,.diagram-node code{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.diagram-node code{color:var(--ink);font-size:12px;line-height:1.8}.diagram-node code span,.diagram-node--artifact .diagram-label{color:var(--accent)}.diagram-node--artifact strong{display:block;font-family:Georgia,Times New Roman,serif;font-size:20px;font-weight:600}.diagram-connector{align-self:center;color:var(--accent);font-size:26px;line-height:1}.interface-diagram figcaption{margin-top:4px;color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:20px;gap:20px;margin-top:20px}.project-card{display:flex;min-height:270px;flex-direction:column;align-items:flex-start;gap:16px;padding:30px 32px;border-radius:6px;background:var(--surface-muted)}.project-card h3{font-size:32px}.project-card>p:not(.eyebrow):not(.project-meta){max-width:500px;margin:0;color:var(--muted);font-size:16px}.metric,.project-card .text-link{margin-top:auto}.metric{display:flex;align-items:baseline;gap:18px;font-family:Georgia,Times New Roman,serif;font-size:34px;letter-spacing:-.04em}.metric b{color:var(--muted);font-family:Arial,sans-serif;font-size:20px;font-weight:400}.metric--accent{color:var(--accent)}.secondary-projects{display:flex;flex-wrap:wrap;gap:14px 42px;padding-top:20px;color:var(--muted);font-size:14px}.secondary-projects a{color:var(--ink)}.secondary-projects a:hover{color:var(--accent)}.blog-preview{padding-top:30px}.article-list{border-top:1px solid var(--line)}.article-row{display:grid;grid-template-columns:150px minmax(0,1fr) 30px;align-items:center;grid-gap:20px;gap:20px;min-height:112px;border-bottom:1px solid var(--line)}.article-row__body{display:grid;grid-gap:8px;gap:8px}.article-row__body strong{font-family:Georgia,Times New Roman,serif;font-size:25px;font-weight:600;letter-spacing:-.025em;line-height:1.1}.article-row__body small{color:var(--muted);font-size:14px}.article-row__arrow{font-size:22px}.article-row:hover .article-row__arrow,.article-row:hover .article-row__body strong{color:var(--accent)}.context-section{display:grid;grid-template-columns:190px minmax(0,1fr);grid-gap:42px;gap:42px;padding:56px 0 96px;border-top:1px solid var(--line)}.context-section__body{display:flex;max-width:760px;flex-direction:column;align-items:flex-start;gap:16px}.context-section h2{margin:0;font-size:clamp(30px,4vw,42px)}.context-section__body p{margin:0;font-family:Georgia,Times New Roman,serif;font-size:22px}.recognition-card{display:grid;grid-template-columns:180px minmax(0,1fr);align-items:center;grid-gap:20px;gap:20px;width:min(100%,680px);margin-top:20px;padding:16px;border:1px solid var(--line);border-radius:6px;background:var(--surface-muted)}.recognition-card__image{display:block;overflow:hidden;border-radius:4px}.recognition-card__image img{display:block;width:100%;height:auto;transition:transform .16s ease}.recognition-card__image:hover img{transform:scale(1.03)}.recognition-card h3{margin:8px 0;font-family:Georgia,Times New Roman,serif;font-size:22px;font-weight:600;letter-spacing:-.025em}.recognition-card p:not(.eyebrow):not(.project-meta){margin:0 0 10px;color:var(--muted);font-size:14px}.contact-footer{display:flex;align-items:end;justify-content:space-between;gap:40px;padding:48px 40px;border-radius:6px 6px 0 0;background:var(--ink);color:var(--inverse)}.contact-footer h2{margin-top:18px;color:var(--inverse)}.contact-footer__right{min-width:min(100%,410px)}.contact-email{display:block;padding-bottom:12px;border-bottom:1px solid color-mix(in srgb,var(--inverse) 35%,transparent);font-size:21px}.contact-links{display:flex;flex-wrap:wrap;gap:12px 24px;padding-top:20px;color:color-mix(in srgb,var(--inverse) 70%,transparent);font-size:13px}.contact-email:hover,.contact-links a:hover{color:var(--accent)}@media (max-width:800px){.home-page{width:min(100% - 48px,600px)}.home-hero{display:block;padding:64px 0 72px}.hero-title{margin-top:20px;font-size:clamp(46px,14vw,64px)}.hero-lede{font-size:17px}.current-work{margin-top:48px}.section{padding-bottom:72px}.section-heading{display:block}.section-link{display:inline-block;margin-top:20px}.feature-card,.project-grid{grid-template-columns:1fr}.feature-card__copy{padding:30px 24px}.interface-diagram{min-height:360px;padding:24px}.project-card{min-height:240px;padding:24px}.article-row{grid-template-columns:1fr 24px;gap:10px;padding:22px 0}.article-row>.eyebrow{grid-column:1/-1}.article-row__body strong{font-size:22px}.context-section{display:block;padding-bottom:72px}.context-section__body{margin-top:22px}.recognition-card{grid-template-columns:1fr}.recognition-card__image{max-width:260px}.contact-footer{display:block;padding:32px 24px}.contact-footer__right{min-width:0;margin-top:36px}}