@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-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));--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}@media screen{:root[data-theme=dark]{--bg:#1c1d1e;--gray-50:#242527;--gray-100:#2d2e31;--gray-200:#373a3d;--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(--gray-200);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(--gray-900);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(--gray-100);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(--gray-100)}}.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(--gray-200);text-underline-offset:3px;padding:4px 0;display:inline-block}.list .more a:hover{color:var(--gray-900);text-decoration-color:var(--accent)}.work li{grid-template-columns:6.6em 1fr;align-items:baseline;column-gap:18px;display:grid}.work li+li{margin-top:22px}.work .date{font:14px/1.85 var(--mono);color:var(--gray-500);letter-spacing:-.01em}.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}.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(--gray-200);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)}.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(--gray-200);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{width:28px;height:28px;color:var(--gray-500);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;place-items:center;margin:-2px -4px;padding:0;display:inline-grid}.tt:hover{color:var(--gray-900)}.tt-word{width:auto;height:auto;font:inherit;color:var(--gray-500);margin:0;padding:0;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}}.tt svg{display:block;overflow:visible}@media (pointer:coarse){.tt{width:44px;height:44px;margin:-10px -12px}}.tt-sun-disc,.tt-beams{transform-box:fill-box;transform-origin:50%}.tt-sun-disc{transition:transform .5s cubic-bezier(.5,1.25,.75,1.25)}.tt-beams{transition:transform .5s cubic-bezier(.5,1.5,.75,1.25),opacity .5s cubic-bezier(.25,0,.3,1)}.tt-moon circle{transition:transform .25s cubic-bezier(0,0,0,1)}:root[data-theme=dark] .tt-sun-disc{transition-duration:.25s;transition-timing-function:cubic-bezier(.25,0,.3,1);transform:scale(1.75)}:root[data-theme=dark] .tt-beams{opacity:0;transition-duration:.15s;transform:rotate(-25deg)}:root[data-theme=dark] .tt-moon circle{transition-duration:.5s;transition-delay:.25s;transform:translate(-7px)}@media (prefers-reduced-motion:reduce){.tt *{transition:none!important}}::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){body{font-size:16px}.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}.work .date{line-height:1.5}.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}}@media (prefers-reduced-motion:reduce){.mark .mark-colour,.archive .item-title,.p-block .item-title,.p-block .item-desc{transition:none}}
