@font-face{font-family:Plex;src:url('./plex-sans-regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:PlexMono;src:url('./plex-mono-regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
:root{--paper:#f8fafb;--text:#29323c;--ink:#244acc;--accent:#b84430;--muted:#626d78;--line:#d6dde2;--mono:PlexMono,Consolas,monospace;font-family:Plex,"Helvetica Neue",sans-serif;color:var(--text);background:var(--paper);color-scheme:light;font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:34px}body{margin:0;background:var(--paper)}body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:3;background:url('/grainient.webp') center/cover;opacity:.48;mix-blend-mode:multiply}.site-header,main,.site-footer{position:relative}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400}p{text-wrap:pretty}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.55}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--ink);outline-offset:5px}::selection{background:#e3e8f9;color:var(--ink)}.skip{position:fixed;top:12px;left:16px;padding:12px;background:var(--text);color:var(--paper);transform:translateY(-180%);z-index:50}.skip:focus{transform:none}.site-header,main,.site-footer{width:calc(100% - 68px);margin-inline:auto}.site-header{min-height:89px;display:flex;justify-content:space-between;align-items:center}.monogram{font-size:24px;letter-spacing:-2px}.site-header nav{display:flex;gap:34px;font-size:13px}.site-header nav a{padding-block:15px}.site-header nav span{color:var(--ink);margin-left:8px}
.introduction{height:calc(100svh - 89px);min-height:610px;max-height:900px;position:relative;display:grid;grid-template-columns:38.2% 61.8%;align-items:center;padding-bottom:89px}.intro-copy{position:relative;z-index:4;align-self:center;padding-right:34px;padding-bottom:21px;pointer-events:none}.intro-copy a{pointer-events:auto}.occupation{font:11px/1.6 var(--mono);color:var(--muted);white-space:nowrap}h1{font-size:clamp(55px,5.4vw,89px);line-height:1.04;letter-spacing:-.045em;margin-top:27px}.intro-note{font-size:18px;line-height:1.6;margin-top:34px;color:var(--muted)}.intro-link{font-size:13px;display:inline-flex;gap:34px;align-items:center;min-height:44px;margin-top:34px}.intro-link span{color:var(--ink);font-size:18px}.intro-link:hover{text-decoration:underline;text-underline-offset:6px}.about-art{position:relative;width:100%;height:min(62vh,640px);min-height:420px;align-self:center}.portrait{display:block;position:absolute;top:0;left:-2%;width:90%;height:100%}.portrait-field{position:fixed;inset:0;pointer-events:none;width:100%;height:100%;z-index:1;contain:strict}.intro-foot{position:absolute;bottom:34px;left:0;right:0;display:flex;justify-content:space-between;align-items:end;font:10px/1.7 var(--mono);color:var(--muted);z-index:5}.code-study{max-width:520px}.code-study summary{list-style:none;cursor:pointer;display:flex;justify-content:end;align-items:center;gap:21px;min-height:44px}.code-study summary::-webkit-details-marker{display:none}.code-study summary span{font-size:17px;color:var(--ink)}.code-study[open] summary span{transform:rotate(45deg)}.code-content{position:absolute;right:0;bottom:54px;width:min(520px,100%);padding:26px;background:var(--paper);border:1px solid var(--line);box-shadow:0 10px 30px #26334b08;font:14px/1.65 Plex,sans-serif;color:var(--text)}.code-content pre{font:11px/1.7 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;margin-block:18px;color:var(--ink)}.code-links{display:flex;flex-wrap:wrap;gap:8px 21px;align-items:center;justify-content:space-between}.code-links a,.code-links button{font:10px/1.5 var(--mono);text-decoration:underline;text-underline-offset:4px;min-height:44px;display:flex;align-items:center}.code-links button{border:0;background:transparent;padding:0}.credit{font-size:11px;color:var(--muted);margin-top:8px}.credit a{text-decoration:underline}
.selected-work{padding-top:21px;border-top:1px solid var(--line)}.work-row:first-child{border-top:0}.work-row{display:grid;grid-template-columns:55px 1fr 21%;gap:34px;padding-block:34px;border-top:1px solid var(--line);align-items:start}.work-number{font:10px var(--mono);color:var(--muted);padding-top:13px}.work-row h2{font-size:34px;line-height:1.2;letter-spacing:-1px}.work-row h2 a{display:inline-flex;gap:21px;align-items:center}.work-row h2 a:hover{color:var(--ink)}.work-row h2 span{font-size:23px;color:var(--ink)}.work-row p{font-size:16px;line-height:1.6;color:var(--muted);max-width:480px;margin-top:17px}.work-kind{font:10px/1.6 var(--mono);padding-top:13px;justify-self:end;color:var(--muted)}.contact{padding-block:89px 76px;display:grid;grid-template-columns:38.2% 61.8%;align-items:center;border-top:1px solid var(--line);margin-top:55px;position:relative}.contact h2{font-size:55px;letter-spacing:-2px;line-height:1.1}.contact>div{display:flex;gap:55px;justify-content:flex-end}.contact>div a{display:flex;align-items:center;gap:21px;min-height:44px;font-size:14px}.contact>div span{color:var(--ink);font-size:21px}.life-note{font-size:13px;color:var(--muted);grid-column:1/-1;margin-top:34px}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:21px;border-top:1px solid var(--line);padding-block:21px 34px;font:10px/1.5 var(--mono);color:var(--muted)}.site-footer>a{padding-block:12px}
@media(max-width:1050px){.site-header,main,.site-footer{width:calc(100% - 68px)}.introduction{grid-template-columns:42% 58%;min-height:575px}.intro-copy{padding-right:13px}h1{font-size:65px}.occupation{font-size:9px}.intro-note{font-size:16px}.about-art{height:57vh;min-height:360px}.portrait{left:3%;width:94%}.work-row{grid-template-columns:34px 1fr 21%;gap:21px}.work-row h2{font-size:30px}.work-row p{font-size:15px;max-width:420px}.work-kind{font-size:9px}.contact{padding-block:76px 55px}}
@media(max-width:700px){.site-header,main,.site-footer{width:calc(100% - 42px)}.site-header{min-height:76px}.site-header nav{font-size:12px;gap:27px}.monogram{font-size:22px}.introduction{height:auto;min-height:0;max-height:none;display:block;padding-bottom:104px}.intro-copy{padding:34px 0 0}h1{font-size:clamp(55px,13vw,76px);margin-top:21px;line-height:1.04}.occupation{font-size:10px}.intro-note{font-size:16px;margin-top:21px}.intro-link{font-size:12px;gap:27px;margin-top:21px}.about-art{height:350px;min-height:0;width:86%;margin:8px auto 0}.portrait{width:100%;left:0;height:100%}.intro-foot{bottom:21px;font-size:9px;align-items:center}.code-study summary{gap:13px}.code-content{padding:21px;font-size:13px}.code-content pre{font-size:10px}.selected-work{padding-top:34px}.work-row{grid-template-columns:21px 1fr;gap:17px;padding-block:27px}.work-row h2{font-size:28px;letter-spacing:-.7px}.work-row h2 a{gap:13px}.work-row h2 span{font-size:20px;flex-shrink:0}.work-row p{font-size:16px;margin-top:13px;max-width:400px}.work-kind{grid-column:2;justify-self:start;padding-top:0;font-size:9px}.work-number{font-size:9px;padding-top:10px}.contact{display:block;margin-top:34px;padding-block:55px 42px}.contact h2{font-size:44px;letter-spacing:-1.5px}.contact>div{justify-content:start;gap:34px;margin-top:21px}.contact>div a{font-size:13px;gap:21px}.life-note{font-size:12px;margin-top:27px}.site-footer{font-size:9px;gap:17px;padding-bottom:21px}.site-footer>span{max-width:150px}.site-footer>a{max-width:130px;text-align:right}}
@media(max-width:359px){.site-header,main,.site-footer{width:calc(100% - 34px)}h1{font-size:55px}.occupation{font-size:9px}.intro-copy{padding-top:27px}.intro-note{font-size:15px}.about-art{height:310px;width:94%}.work-row h2{font-size:26px}.code-study summary{font-size:8px;gap:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

.blog-preview{display:grid;grid-template-columns:55px 1fr auto;gap:34px;align-items:start;border-top:1px solid var(--line);margin-top:55px;padding-block:34px}.blog-preview h2{font:11px var(--mono);padding-top:7px}.blog-preview>a{font-size:23px;line-height:1.4;letter-spacing:-.5px}.blog-preview>a span{color:var(--ink);margin-left:13px}.blog-preview>span{font:10px/1.6 var(--mono);color:var(--muted);padding-top:7px}@media(max-width:700px){.blog-preview{display:block;margin-top:34px;padding-block:27px}.blog-preview>a{display:block;margin-top:21px;font-size:23px}.blog-preview>span{display:block;margin-top:13px}.site-header nav{gap:21px}}

.page-shell{position:relative;width:min(1440px,calc(100% - 68px));margin:13px auto 34px}
.page-shell main{width:100%;padding-inline:34px;background:linear-gradient(125deg,#fff3,#f8fafb14 65%,#eef1f524);border:1px solid #d6dde28c;box-shadow:0 8px 55px #29323c06}
.page-shell .introduction{height:calc(100svh - 102px);min-height:575px}
.page-shell .site-header{min-height:55px}
.page-shell .site-footer{border-top:0}
.page-shell .article-layout{padding-inline:55px;max-width:910px!important}
.intro-copy::before{content:"";position:absolute;inset:-21px -13px;z-index:0;background:radial-gradient(ellipse at 38% 45%,#f8fafbbf,transparent 72%);pointer-events:none}
.intro-copy{z-index:auto}
.occupation,.intro-note{position:relative;z-index:0}
.intro-copy h1,.intro-link,.site-header,.site-footer,.selected-work,.blog-preview,.contact{position:relative;z-index:2}
.intro-mantra{color:var(--text)}
@media(max-width:1050px){.page-shell{width:calc(100% - 42px);margin-block:13px}.page-shell .introduction{height:calc(100svh - 94px)}}
@media(max-width:700px){.page-shell{width:calc(100% - 26px);margin-block:13px}.page-shell main,.page-shell .article-layout{padding-inline:21px}.page-shell .introduction{height:auto;min-height:0}.page-shell .site-header{min-height:55px}}
@media(max-width:359px){.page-shell{width:calc(100% - 16px);margin-block:8px}.page-shell main{padding-inline:16px}.page-shell .site-header,.page-shell .site-footer{width:calc(100% - 32px)}.occupation{font-size:8px}.site-header nav{gap:16px;font-size:11px}}

@media(max-width:700px){.site-header nav{gap:13px;font-size:11px}}
