@font-face{font-family:Inter;src:url(/fonts/inter-latin-var.woff2) format("woff2");font-style:normal;font-weight:300 900;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-latin-var.woff2) format("woff2");font-style:normal;font-weight:400 600;font-display:swap}:root{color:var(--text);background:var(--bg);font-family:Inter,Helvetica Neue,Helvetica,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--bg: #f7f7f4;--paper: #fff;--surface-1: #e6e5e0;--surface-2: #eeede8;--surface-3: #f1f0ec;--text: #26251e;--muted: #57544c;--quiet: #666258;--line: #dad7cf;--line-strong: #bcb8ad;--signal: #f54e00;--signal-text: #a93800;--focus: rgba(38, 37, 30, .56);--font-display: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-body: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;--site-width: 1312px;--nav-height: 52px;--radius-card: 4px;--radius-action: 999px;--action-height: 38px;--action-height-compact: 28px;--action-height-touch: 40px;--action-font-size: .8125rem;--action-font-size-compact: .75rem;--type-meta: .625rem}:root[data-theme=dark]{--bg: #171713;--paper: #211f1a;--surface-1: #302e27;--surface-2: #282620;--surface-3: #1f1e19;--text: #f3f1ea;--muted: #c9c5ba;--quiet: #aaa69b;--line: #3f3c33;--line-strong: #5d584c;--signal: #ff6a2c;--signal-text: #ff8b59;--focus: rgba(243, 241, 234, .68)}*{box-sizing:border-box}html{min-width:320px;overflow-x:clip;color-scheme:light dark;scroll-behavior:smooth}body{min-width:320px;min-height:100vh;margin:0;overflow-x:clip;background:var(--bg);color:var(--text)}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--focus);outline-offset:4px}::selection{background:color-mix(in srgb,var(--signal) 24%,transparent);color:var(--text)}.shell,.nav-inner,.footer-inner{width:min(calc(100% - 4rem),var(--site-width));margin-inline:auto}.site-header{position:fixed;z-index:50;top:0;right:0;left:0;min-height:var(--nav-height);background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.nav-inner{display:flex;min-height:var(--nav-height);align-items:center;justify-content:space-between;gap:2rem}.brand-lockup{display:inline-flex;align-items:center;padding-block:1rem}.brand-lockup img{display:block;width:auto;height:.76rem;object-fit:contain;transition:filter .15s ease,opacity .15s ease}.brand-lockup:hover img{opacity:.58}:root[data-theme=dark] .brand-lockup img,:root[data-theme=dark] .footer-brand img{filter:invert(1)}.nav-links{display:flex;align-items:center;gap:clamp(1rem,2vw,1.8rem)}.nav-link{color:var(--muted);font-size:.78rem;font-weight:460;transition:color .15s ease}.nav-link:hover,.nav-link:focus-visible{color:var(--text)}.exk-action{display:inline-flex;min-height:var(--action-height);align-items:center;justify-content:center;gap:.7rem;border:1px solid transparent;border-radius:var(--radius-action);padding:.58rem .94rem;font-size:var(--action-font-size);font-weight:520;line-height:1;text-decoration:none;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.exk-action svg{width:.9rem;height:.9rem;transition:transform .16s ease}.exk-action:hover,.exk-action:focus-visible{transform:translateY(-1px)}.exk-action:hover svg,.exk-action:focus-visible svg{transform:translate(2px)}.exk-action--primary{border-color:var(--text);background:var(--text);color:var(--bg)}.exk-action--primary:hover,.exk-action--primary:focus-visible{border-color:var(--text);background:var(--text);color:var(--bg)}.exk-action--secondary{border-color:var(--line-strong);background:transparent;color:var(--text)}.exk-action--secondary:hover,.exk-action--secondary:focus-visible{border-color:var(--text);background:var(--text);color:var(--bg)}.exk-action--compact{position:relative;min-height:var(--action-height-compact);padding:0 .72rem;font-size:var(--action-font-size-compact)}.exk-action--compact:before{position:absolute;inset-block-start:50%;inset-inline:0;block-size:var(--action-height-touch);content:"";transform:translateY(-50%)}.exk-action--text{min-height:var(--action-height-compact);justify-content:flex-start;border-color:transparent;border-radius:0;color:var(--signal-text);padding-inline:0}.exk-action--text:hover,.exk-action--text:focus-visible{color:var(--signal-text);transform:none}.exk-action--media{border-color:#ffffff9e;background:#1413103d;color:#fff}.exk-action--media:hover,.exk-action--media:focus-visible{border-color:#fff;background:#fff;color:#26251e}main{padding-top:var(--nav-height)}.public-work{padding:clamp(7rem,12vw,10rem) 0 clamp(7rem,12vw,11rem)}.work-heading{display:grid;justify-items:center;gap:1rem;margin-bottom:clamp(3.5rem,7vw,5.5rem);text-align:center}.work-heading h1,.closing h2{margin:0;font-family:var(--font-display);font-size:clamp(2.35rem,4.25vw,4rem);font-weight:300;letter-spacing:-.045em;line-height:1;text-wrap:balance}.work-heading p{max-width:34rem;margin:0;color:var(--muted);font-size:.84rem;line-height:1.62}.work-list{display:grid;gap:1px;overflow:hidden;padding:1px;border-radius:var(--radius-card);background:var(--line-strong);grid-template-columns:repeat(2,minmax(0,1fr))}.work-list>a{display:grid;min-height:21rem;align-content:start;gap:1rem;padding:1.2rem 1.25rem 1.35rem;background:var(--surface-1);grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto 1fr auto;transition:background-color .18s ease,transform .22s cubic-bezier(.22,1,.36,1)}.work-list>a:hover,.work-list>a:focus-visible{background:var(--surface-2)}.work-number{color:var(--quiet);font-family:var(--font-mono);font-size:.59rem;letter-spacing:.04em}.work-icon{width:1.35rem;height:1.35rem;color:var(--signal-text)}.work-copy{align-self:end;grid-column:1 / -1}.work-copy h2{margin:0;font-family:var(--font-display);font-size:clamp(1.45rem,2vw,1.8rem);font-weight:380;letter-spacing:-.035em;line-height:1.06}.work-copy p{max-width:22rem;margin:.75rem 0 0;color:var(--muted);font-size:.8rem;line-height:1.55}.work-copy span,.work-source{color:var(--quiet);font-family:var(--font-mono);font-size:.6rem;line-height:1.45}.work-copy span{display:block;margin-top:.55rem}.work-source{align-self:end;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.work-arrow{width:1rem;height:1rem;align-self:end;transition:transform .16s ease}.work-list>a:hover .work-arrow,.work-list>a:focus-visible .work-arrow{transform:translate(2px)}.text-link{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.1rem;color:var(--signal-text);font-size:.72rem}.text-link svg{width:.85rem;height:.85rem;transition:transform .16s ease}.text-link:hover svg,.text-link:focus-visible svg{transform:translate(2px)}.closing{min-height:clamp(22rem,27vw,24rem)}.closing-inner{display:grid;min-height:inherit;place-items:center;align-content:center;gap:2rem;text-align:center}.closing h2{max-width:52rem;font-size:clamp(3rem,5vw,4.5rem);font-weight:400;letter-spacing:-.03em;line-height:1.1}.site-footer{background:var(--surface-3);color:var(--muted)}.footer-inner{padding:clamp(4rem,8vw,6rem) 0 1.5rem}.footer-grid{display:grid;min-height:16rem;align-content:start;gap:3rem 1.5rem;grid-template-columns:repeat(12,minmax(0,1fr))}.footer-brand{display:grid;align-content:start;gap:1.2rem;grid-column:1 / 5}.footer-brand img{width:auto;height:.76rem}.footer-brand p{max-width:18rem;margin:0;color:var(--muted);font-size:.8rem;line-height:1.55}.footer-column{display:flex;align-content:start;flex-direction:column;gap:.58rem;grid-column:span 2}.footer-column>span{margin-bottom:.35rem;color:var(--quiet);font-family:var(--font-mono);font-size:var(--type-meta);letter-spacing:.04em;text-transform:uppercase}.footer-column a{display:inline-flex;min-height:24px;align-items:center;width:fit-content;color:var(--muted);font-size:.8rem;transition:color .15s ease,transform .15s ease}.footer-column a:hover,.footer-column a:focus-visible{color:var(--signal-text);transform:translate(2px)}.footer-meta{display:flex;align-items:center;justify-content:space-between;gap:.75rem 2rem;color:var(--quiet);font-family:var(--font-mono);font-size:var(--type-meta);letter-spacing:.035em;text-transform:uppercase}.footer-meta-end{display:flex;align-items:center;gap:.8rem;margin-left:auto}.theme-toggle{display:inline-grid;flex:none;gap:2px;padding:2px;border:0;border-radius:999px;background:color-mix(in srgb,var(--text) 5%,transparent);grid-template-columns:repeat(3,28px)}.theme-toggle-option{display:grid;width:28px;min-width:28px;height:28px;min-height:28px;place-items:center;border:0;border-radius:999px;background:transparent;color:var(--quiet);padding:0;cursor:pointer;transition:background-color .15s ease,color .15s ease}.theme-toggle-option:hover,.theme-toggle-option:focus-visible{background:color-mix(in srgb,var(--text) 8%,transparent);color:var(--text)}.theme-toggle-option[aria-pressed=true]{background:color-mix(in srgb,var(--text) 13%,transparent);color:var(--text)}.theme-toggle-option svg{width:.72rem;height:.72rem}@media(max-width:760px){:root{--nav-height: 56px}.exk-action:not(.exk-action--compact){min-height:var(--action-height-touch)}.shell,.nav-inner,.footer-inner{width:min(calc(100% - 2rem),var(--site-width))}.nav-inner{width:calc(100% - 1.5rem)}.nav-link-optional{display:none}.public-work{padding:5rem 0 7rem}.work-heading{justify-items:start;margin-bottom:3rem;text-align:left}.work-list{grid-template-columns:1fr}.work-list>a{min-height:15rem}.work-source{max-width:16rem}.closing{min-height:22rem}.footer-inner{padding-top:4rem}.footer-grid{min-height:0;grid-template-columns:repeat(2,minmax(0,1fr))}.footer-brand{grid-column:1 / -1}.footer-column{grid-column:span 1}.footer-meta{margin-top:3.5rem;flex-wrap:wrap}.footer-meta-end{margin-left:auto}}@media(max-width:430px){.work-list>a{min-height:14rem}.footer-meta{align-items:flex-start;flex-direction:column}.footer-meta-end{width:100%;justify-content:space-between;margin-left:0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
