@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/InterVariable-latin.woff2)format("woff2")}@font-face{font-family:Inter fallback Roboto;src:local(Roboto),local(Roboto-Regular);size-adjust:106.98%;ascent-override:90.55%;descent-override:22.55%;line-gap-override:0%}@font-face{font-family:Inter fallback;src:local(Arial),local(ArialMT),local(Liberation Sans),local(LiberationSans);size-adjust:107.48%;ascent-override:90.14%;descent-override:22.44%;line-gap-override:0%}:root{--gray-50:#f8f8fa;--gray-100:#ededed;--gray-200:#dbdde5;--gray-300:#c4c8cf;--gray-400:#9ca6ae;--gray-450:#8a9197;--gray-500:#72777a;--gray-700:#4c4f50;--gray-800:#3a3d3e;--gray-900:#242627;--gray-600:#6a737b;--gray-650:#5e6366;--accent:#3a72b0;--bg:#fff;--figure-rule:var(--gray-100);--accent-wash:color-mix(in srgb, var(--accent) 7%, var(--bg));--link-line:var(--gray-300);--head-ink:var(--accent);--head-rule:color-mix(in srgb, var(--accent) 28%, transparent);--sans:"Inter", "Inter fallback Roboto", "Inter fallback", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--column:680px;--gutter:24px;color-scheme:light}:root:not([data-theme=dark]):not(:has(body.resume)){--gray-700:#3a3d3e;--gray-650:#4c4f50;--gray-500:#5e6366}:root:not([data-theme=dark]) body.resume :is(.post-nav,.site-foot){--gray-500:#5e6366}:root:not([data-theme=dark]) body.resume :is(.r-summary,.r-title){color:var(--gray-800)}@media screen{:root[data-theme=dark]{--bg:#1c1d1e;--gray-50:#242527;--gray-100:#2d2e31;--gray-200:#373a3d;--gray-300:#4f5357;--gray-400:#686f74;--gray-450:#6d7478;--figure-rule:var(--gray-200);--gray-500:#93989b;--gray-600:#979ea5;--gray-650:#a0a5a7;--gray-700:#c1c4c6;--gray-800:#c1c4c6;--gray-900:#f6f6f7;--accent:#6299d2;color-scheme:dark}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--gray-700);font:400 17px/1.6 var(--sans);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit}p a{color:var(--gray-900);text-decoration:underline;text-decoration-color:var(--link-line);text-underline-offset:3px;text-decoration-thickness:1px}p a:hover{text-decoration-color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.column{max-width:calc(var(--column) + var(--gutter) * 2);padding:0 var(--gutter);margin:0 auto}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.nav{z-index:5;padding:12px var(--gutter);background:var(--bg);justify-content:space-between;align-items:baseline;gap:12px;margin-top:40px;font-size:15px;line-height:1.6;display:flex;position:sticky;top:0}.nav:after{content:"";left:var(--gutter);right:var(--gutter);background:var(--gray-200);height:1px;opacity:var(--dock,0);position:absolute;bottom:0}.nav-name{color:var(--gray-900);letter-spacing:-.011em;white-space:nowrap;font-weight:500;text-decoration:none}.dock-mark{vertical-align:-12px;width:36px;height:36px;margin-right:10px;display:inline-block}.nav .nav-label{opacity:clamp(0, calc((var(--dock,0) - .65) * 2.9), 1)}.nav-links{align-items:center;gap:22px;display:flex}.nav-links a{color:var(--gray-500);text-decoration:none}.nav-links a:hover,.nav-links a[aria-current]{color:var(--gray-900)}.hero{padding-top:22px;position:relative}.lockup{grid-template-columns:126px 1fr;align-items:center;gap:14px;display:grid}.lockup-mark{width:148px;height:148px;margin-left:-22px}.mark-fallback{width:100%;height:100%;display:block}.mark-ready .mark-fallback{visibility:hidden}.lockup-name{color:var(--gray-900);letter-spacing:-.032em;margin:0;font-size:clamp(34px,5vw,46px);font-weight:500;line-height:1.05}.lockup-tagline{color:var(--gray-700);letter-spacing:-.012em;text-wrap:balance;margin:10px 0 0;font-size:19px;line-height:1.35}.mark{z-index:6;pointer-events:none;transform-origin:0 0;opacity:0;position:fixed;top:0;left:0}#mark.ready{opacity:1}#mark-rest,#mark-docked{display:none}.mark img{width:100%;height:100%;position:absolute;inset:0}.mark .mark-colour{opacity:0;transition:opacity .35s}.mark.lit .mark-colour{opacity:1}@supports (animation-timeline:scroll()){.mark-scroll .mark.ready,.mark-scroll .nav:after,.mark-scroll .nav .nav-label{animation-timing-function:linear;animation-fill-mode:both;animation-timeline:scroll(root);animation-range:0 220px}.mark-scroll #mark.ready{animation-name:dock-mark,dock-show-mark}.mark-scroll #mark-rest,.mark-scroll #mark-docked{display:block}.mark-scroll #mark-rest.ready{animation-name:dock-show-rest}.mark-scroll #mark-docked.ready{animation-name:dock-show-docked}.mark-scroll .nav:after{animation-name:dock-rule}.mark-scroll .nav .nav-label{animation-name:dock-label}@media (prefers-reduced-motion:reduce){.mark-scroll #mark.ready{animation-name:dock-mark-cut,dock-show-mark-cut}.mark-scroll #mark-docked.ready{animation-name:dock-show-docked-cut}.mark-scroll .nav:after,.mark-scroll .nav .nav-label{animation-name:dock-fade-cut}}}.bio{margin-top:36px}.bio p{text-wrap:pretty;max-width:36em;margin:0 0 14px}section.list{margin-top:88px}.list-head{color:var(--head-ink);align-items:center;gap:14px;margin:0 0 28px;scroll-margin-top:100px;font-size:15px;font-weight:500;display:flex}.list-head:after{content:"";background:var(--head-rule);flex:1;height:1px;transition:background-color .9s .25s}.list-head.arrived:after{animation:1.4s ease-out arrive}.list-head:focus{outline:none}@keyframes arrive{0%,35%{background-color:var(--accent)}to{background-color:var(--head-rule)}}.list ul{margin:0;padding:0;list-style:none}.item-title{color:var(--gray-900);font-weight:500;text-decoration:none;display:block}.item-desc{color:var(--gray-650);text-wrap:pretty;display:block}.list .more{margin:26px 0 0;font-size:15px}.list .more a{color:var(--gray-700);text-decoration:underline;text-decoration-color:var(--link-line);text-underline-offset:3px;padding:4px 0;display:inline-block}.list .more a:hover{color:var(--gray-900);text-decoration-color:var(--accent)}.work .item-desc a{color:var(--gray-900);text-decoration:underline;text-decoration-color:var(--link-line);text-underline-offset:3px;text-decoration-thickness:1px}.work .item-desc a:hover{text-decoration-color:var(--accent);text-decoration-thickness:2px}.work li{grid-template-columns:6.6em 1fr;align-items:baseline;column-gap:18px;display:grid}.work li+li{margin-top:34px}.work .w-area{font:14px/1.85 var(--mono);color:var(--gray-700);letter-spacing:-.01em;display:block}.work .item-desc{font-size:15px}.archive li{grid-template-columns:3.4em 2.8em 1fr;align-items:baseline;column-gap:12px;padding:5px 0;display:grid;position:relative}.archive li.year-start:not(:first-child){margin-top:20px}.archive .w-year{font:14px var(--mono);color:var(--gray-700);letter-spacing:-.01em}.archive .w-month{font:14px var(--mono);color:var(--gray-500);letter-spacing:-.01em}.archive .item-title{font-weight:450}.p-block{grid-template-columns:6.6em 1fr;align-items:baseline;column-gap:18px;display:grid}.p-block+.p-block{margin-top:34px}.p-grouphead{font:14px var(--mono);color:var(--gray-700);letter-spacing:-.01em;margin:0;font-weight:400}.p-block ul{grid-template-columns:1fr 1fr;gap:20px 28px;display:grid}.p-block li{position:relative}.projects-few .p-block ul{grid-template-columns:1fr;gap:16px}.projects-few .p-block+.p-block{margin-top:28px}.p-thumb{display:none}.projects-few .has-thumb{grid-template-columns:minmax(0,1fr) 144px;align-items:center;column-gap:24px;display:grid}.projects-few .has-thumb .p-thumb{order:2}.projects-few .p-block:has(.has-thumb){align-items:start}.projects-few .p-block:has(.has-thumb) .p-grouphead{padding-top:20px}.projects-few .p-thumb{border:1px solid var(--gray-200);background:var(--gray-50);border-radius:4px;width:144px;height:96px;display:block}.projects-few .p-block ul:has(.has-thumb){gap:20px}.no-thumbs .projects-few .has-thumb{display:block}.no-thumbs .projects-few .p-thumb{display:none!important}.p-block li:hover .p-thumb{border-color:var(--accent)}.projects-few .p-thumb.dark-only{display:none}@media screen{:root[data-theme=dark] .p-thumb:not(.dark-only){filter:brightness(.88)}:root[data-theme=dark] .projects-few .p-thumb.dark-only{background:var(--bg);display:block}:root[data-theme=dark] .projects-few .p-thumb.light-only{display:none}}.p-block .item-desc{margin-top:2px;font-size:15px;line-height:1.5;transition:color .15s}.archive .item-title,.p-block .item-title{text-decoration:underline;text-decoration-color:var(--link-line);text-underline-offset:4px;text-wrap:pretty;text-decoration-thickness:1px;transition:text-decoration-color .15s}.archive .item-title:after,.p-block .item-title:after{content:"";position:absolute;inset:-3px -6px}.archive li:hover .item-title,.p-block li:hover .item-title{text-decoration-color:var(--accent)}:is(.archive li:hover .item-title,.p-block li:hover .item-title,p a:hover,.contact a:hover,.list .more a:hover,.sources a:hover){text-decoration-thickness:2px}.archive li:hover .w-month,.p-block li:hover .item-desc{color:var(--gray-700)}.archive .item-title:focus-visible,.p-block .item-title:focus-visible{outline:none}.archive li:has(.item-title:focus-visible),.p-block li:has(.item-title:focus-visible){outline:2px solid var(--accent);outline-offset:4px;border-radius:3px}.contact p{margin:0}.contact a{color:var(--gray-900);text-decoration:underline;text-decoration-color:var(--link-line);text-underline-offset:3px}.contact a:hover{text-decoration-color:var(--accent)}.site-foot{color:var(--gray-500);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 24px;margin-top:120px;padding-bottom:56px;font-size:14px;display:flex}.theme-ctl{view-transition-name:theme-ctl;align-items:center;display:inline-flex}::view-transition-old(theme-ctl){display:none}::view-transition-new(theme-ctl){animation:none}.tt{color:var(--gray-500);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0}.tt:hover{color:var(--gray-900)}.tt-word{font:inherit;font-size:15px;line-height:1.6}.theme-ctl:has(.tt-word):before{content:"";background:var(--gray-200);width:1px;height:14px;margin-right:22px;display:inline-block}.light-only{display:inline}.dark-only{display:none}@media screen{:root[data-theme=dark] .dark-only{display:inline}:root[data-theme=dark] .light-only{display:none}}@media (pointer:coarse){.nav-links a,.tt-word{margin:-10px 0;padding:10px 0}}::view-transition-old(root),::view-transition-new(root){animation-duration:.28s}html img.dark-only{display:none}@media screen{:root[data-theme=dark] img.dark-only{display:block}:root[data-theme=dark] img.light-only{display:none}}@media (width<=560px){.nav .nav-label{display:none}.nav-links{gap:14px}.hero{padding-top:40px}.lockup{grid-template-columns:88px 1fr;gap:12px}.lockup-mark{width:104px;height:104px;margin-left:-16px}.lockup-tagline{font-size:17px}section.list{margin-top:64px}.work li{grid-template-columns:1fr}.archive li{grid-template-columns:2.4em 1fr;column-gap:10px}.archive .w-year{display:none}.archive li.year-start:before{content:attr(data-year);font:14px var(--mono);color:var(--gray-700);letter-spacing:-.01em;grid-column:1/-1;margin-bottom:4px}.p-block{grid-template-columns:1fr}.p-grouphead{margin-bottom:12px}.p-block ul{grid-template-columns:1fr;gap:14px}.projects-few .has-thumb{grid-template-columns:minmax(0,1fr) 96px;column-gap:14px}.projects-few .p-block:has(.has-thumb) .p-grouphead{padding-top:0}.projects-few .p-thumb{width:96px;height:64px}}@media (prefers-reduced-motion:reduce){.mark .mark-colour,.archive .item-title,.p-block .item-title,.p-block .item-desc{transition:none}}
