@font-face{font-family:sans;src:url(../media/dmSansRegular-s.p.1lf96kbl_wni-.ttf?dpl=dpl_5VYgdwfaahmJf9V3pHrbuW7qaj4S)format("truetype");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:sans;src:url(../media/dmSansSemibold-s.p.3juez_dy6dlio.ttf?dpl=dpl_5VYgdwfaahmJf9V3pHrbuW7qaj4S)format("truetype");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:sans Fallback;src:local(Arial);ascent-override:94.36%;descent-override:29.49%;line-gap-override:0.0%;size-adjust:105.13%}.sans_e691a24b-module__n54Lca__className{font-family:sans,sans Fallback}.sans_e691a24b-module__n54Lca__variable{--fontSans:"sans", "sans Fallback"}
@font-face{font-family:"serif";src:url(../media/dmSerifDisplay-s.p.1cjvt01sio8vf.ttf?dpl=dpl_5VYgdwfaahmJf9V3pHrbuW7qaj4S)format("truetype");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:"serif";src:url(../media/dmSerifDisplayItalic-s.p.33a29xz-z_fkg.ttf?dpl=dpl_5VYgdwfaahmJf9V3pHrbuW7qaj4S)format("truetype");font-display:swap;font-weight:400;font-style:italic}@font-face{font-family:serif Fallback;src:local(Arial);ascent-override:102.23%;descent-override:33.06%;line-gap-override:0.0%;size-adjust:101.35%}.serif_c351de73-module__tP0BDG__className{font-family:"serif",serif Fallback}.serif_c351de73-module__tP0BDG__variable{--fontSerif:"serif", "serif Fallback"}
:root{--sidebarLeft:48px;--sidebarInsetY:48px;--sidebarWidth:248px;--pageGutter:clamp(48px, 4.8vw, 80px);--contentGap:clamp(32px, 3vw, 48px);--contentLeft:calc(var(--sidebarLeft) + var(--sidebarWidth) + 40px + var(--contentGap));--contentWidth:min(720px, calc(100vw - var(--contentLeft) - var(--pageGutter)));--contentWidthWide:min(920px, calc(100vw - var(--contentLeft) - var(--pageGutter)));--radius:12px;--cardBg:color-mix(in srgb, var(--surface) 45%, var(--paper));--easeOut:cubic-bezier(.22, 1, .36, 1);--easeSoft:cubic-bezier(.4, 0, .2, 1);--easeBounce:cubic-bezier(.34, 1.56, .64, 1);--easeMedia:cubic-bezier(.22, .8, .2, 1)}*{box-sizing:border-box}html{background:var(--paper);scrollbar-gutter:stable}body{background:var(--paper);color:var(--muted);font-family:var(--fontSans), ui-sans-serif, system-ui, sans-serif;-webkit-font-smoothing:antialiased;text-rendering:geometricprecision;margin:0;font-size:14px;line-height:normal}::selection{background:var(--accent);color:var(--paper)}a{color:var(--ink);text-decoration:none}a:hover{-webkit-text-decoration:underline dotted var(--lineStrong);text-decoration:underline dotted var(--lineStrong);text-underline-offset:3px}button{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline-offset:4px;outline:1px dotted}img,video{max-width:100%;display:block}h1,h2,h3,p,figure,blockquote,dl,dd{margin:0}h1,h2,h3{font-size:inherit;font-weight:400}.skipLink{background:var(--ink);color:var(--paper);border-radius:var(--radius);z-index:40;padding:12px 16px;position:fixed;top:-90px;left:20px}.skipLink:focus{top:15px}.contentPane{view-transition-name:content}::view-transition-old(root){animation:none}::view-transition-new(root){animation:none}::view-transition-group(content){animation:none}::view-transition-old(content){animation:.28s cubic-bezier(.4,0,.6,1) both contentLeave}::view-transition-new(content){animation:contentEnter .52s var(--easeSoft) .12s both}@keyframes contentLeave{to{opacity:0;filter:blur(6px)}}@keyframes contentEnter{0%{opacity:0;filter:blur(6px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-property:opacity,color,background-color,box-shadow!important;animation:none!important}}
.contentPane{min-height:100vh;margin-left:var(--contentLeft);padding:var(--sidebarInsetY) var(--pageGutter) var(--sidebarInsetY) 0;justify-content:center;display:flex}.contentStack{width:var(--contentWidth);flex-direction:column;display:flex}.contentStackWide{width:var(--contentWidthWide)}.pageIntro{margin-bottom:32px}.pageEyebrow{color:var(--muted);opacity:.8;margin-bottom:32px}.pageIntro h1{color:var(--ink);margin-bottom:12px}.pageIntro p{max-width:369px;line-height:1.32}.textSection{margin-top:56px}.textSection h2{color:var(--muted);opacity:.8;margin-bottom:16px}.prose{flex-direction:column;gap:12px;max-width:520px;display:flex}.prose p{line-height:1.5}.projectCall{margin-top:56px}@media (max-width:960px){.shell{padding:0 max(20px, env(safe-area-inset-right)) calc(64px + env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left))}.contentPane{min-height:0;margin-left:0;padding:32px 0 0;display:block}.contentStack,.contentStackWide{width:100%;max-width:603px}}@media (max-width:560px){.contentPane{padding-top:28px}}
.sidebar{top:var(--sidebarInsetY);bottom:var(--sidebarInsetY);left:calc(var(--sidebarLeft) - 16px);z-index:2;width:calc(var(--sidebarWidth) + 16px);scrollbar-width:none;flex-direction:column;align-items:flex-start;padding-left:16px;display:flex;position:fixed;overflow-y:auto}.sidebar::-webkit-scrollbar{display:none}.portfolioHeader{flex:none;width:32px;height:34px;display:block;position:relative}.portfolioHeader:hover{text-decoration:none}.portrait{object-fit:cover;width:32px;height:32px;transition:border-radius .48s var(--easeOut);border-radius:8px;position:absolute;top:1px;left:0;transform:translateZ(0)}.portfolioHeader[data-about=true] .portrait{border-radius:50%}.portfolioNav{flex-direction:column;align-items:flex-start;gap:32px;margin-top:32px;display:flex}.navGroup,.navSubgroup{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.navSubgroup{gap:6px}.navHeading{color:var(--muted);opacity:.8}.navItem{color:var(--ink);white-space:nowrap;align-items:baseline;display:flex;position:relative}.navItem:hover{text-decoration:none}.navItem:before{content:"";background:var(--accent);opacity:0;transform-origin:bottom;width:5px;height:5px;transition:opacity .18s ease-in-out, transform .24s var(--easeSoft), left .24s var(--easeOut);pointer-events:none;border-radius:50%;position:absolute;bottom:calc(.18em + 1px);left:-11px;transform:scale(.35)}.navItem[data-selected=true]:before{opacity:1;transition:opacity .26s ease-out .14s, transform .36s var(--easeOut) .14s, left .24s var(--easeOut);transform:scale(1)}@media (hover:hover) and (pointer:fine){.navItem[data-selected=true]:hover:before{left:-13px}}.bioBlock{flex-direction:column;gap:20px;margin-top:auto;padding-top:32px;display:flex}.signature{color:var(--ink);font-family:var(--fontSerif), Georgia, serif;letter-spacing:-.02em;font-size:20px;font-style:italic;line-height:1}.bioCopy{flex-direction:column;gap:12px;display:flex}.bioCopy p{line-height:1.32}.contactLine{color:var(--ink)}.contactLine>span{color:var(--muted)}@media (max-width:960px){.sidebar{display:contents}.navigationHeader{margin-inline:calc(-1 * max(20px, env(safe-area-inset-left)));padding:max(18px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) 10px max(20px, env(safe-area-inset-left));border-bottom:1px solid var(--line);grid-template-columns:42px minmax(0,1fr);align-items:center;column-gap:12px;display:grid}.portfolioHeader{width:24px;height:26px}.portrait{width:24px;height:24px}.portfolioNav{flex-direction:row;justify-content:flex-end;column-gap:16px;margin:0}.navGroup{display:contents}.navProjects{display:none}.navItem{padding-left:0;transition:padding-left .24s var(--easeOut);padding-block:6px;line-height:1.32}.navItem[data-selected=true]{padding-left:10px}.navItem:before{transform-origin:50%;top:calc(50% - 2.5px);bottom:auto;left:0}.bioBlock{gap:16px;margin-top:16px;padding-top:0}.signature{display:none}.bioCopy{max-width:320px}}
.interactiveLabel{transform-origin:50%;transition:transform .36s var(--easeBounce);display:inline-block;position:relative}@media (hover:hover) and (pointer:fine){a:hover>.interactiveLabel,a:focus-visible>.interactiveLabel{transform:scale(1.04)}a:has(>.interactiveLabel):hover{text-decoration:none}}a:active>.interactiveLabel{transition-duration:90ms;transition-timing-function:cubic-bezier(.4,0,1,1);transform:scale(.96)}
.mediaGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.mediaColumn{flex-direction:column;gap:24px;display:flex}.mediaCard{border:1px solid var(--line);border-radius:var(--radius);appearance:none;background-color:var(--cardBg);text-align:left;cursor:zoom-in;background-position:50%;background-size:cover;width:100%;margin:0;padding:0;display:block;overflow:hidden}.mediaCard[data-hidden=true]{visibility:hidden}.mediaImage{width:100%;height:auto;transition:transform .24s var(--easeMedia), opacity .2s var(--easeOut);transform:scale(1)}.mediaImage[data-loading=true]{opacity:0}.mediaCard{transition:transform .16s var(--easeOut)}.mediaCard:active,.coverLink:active .mediaCard{transform:scale(.985)}.coverLink{flex-direction:column;gap:10px;display:flex}.coverLink:hover{text-decoration:none}.coverLink .mediaCard{cursor:pointer}.coverCaption{color:var(--muted);justify-content:space-between;gap:12px;display:flex}.coverClient{color:var(--ink)}@media (hover:hover) and (pointer:fine){.mediaCard:not([data-hidden=true]):hover .mediaImage,.coverLink:hover .mediaImage{transform:scale(1.012)}}.mediaViewer{z-index:50;overscroll-behavior:contain;touch-action:none;position:fixed;inset:0}.mediaViewerBackdrop{background:color-mix(in srgb, var(--paper) 54%, transparent);-webkit-backdrop-filter:blur()saturate();backdrop-filter:blur()saturate();opacity:0;transition:opacity .38s cubic-bezier(.16,1,.3,1),-webkit-backdrop-filter .52s cubic-bezier(.16,1,.3,1),backdrop-filter .52s cubic-bezier(.16,1,.3,1);position:fixed;inset:0}.mediaViewer[data-open=true] .mediaViewerBackdrop{-webkit-backdrop-filter:blur(20px)saturate(.92);backdrop-filter:blur(20px)saturate(.92);opacity:1}.mediaViewerStage{z-index:1;appearance:none;background:var(--cardBg);cursor:zoom-out;transform-origin:50%;backface-visibility:hidden;will-change:transform;border:0;padding:0;transition:border-radius .26s cubic-bezier(.34,0,.2,1),transform .26s cubic-bezier(.34,0,.2,1);position:fixed;overflow:hidden}.mediaViewer[data-open=true] .mediaViewerStage{transition:border-radius .36s var(--easeMedia), transform .36s var(--easeMedia)}.mediaViewerStage:focus{outline:none}.mediaViewerMedia{object-fit:cover;width:100%;height:100%;animation:viewerSwap .22s var(--easeOut) both}.mediaViewerCaption{z-index:2;text-align:center;text-wrap:balance;pointer-events:none;opacity:0;filter:blur(2.5px);transition:opacity .34s var(--easeOut), filter .42s var(--easeOut), transform .4s var(--easeOut);padding:0 12px;font-size:12.5px;line-height:1.4;position:fixed;transform:translateY(2px)}.mediaViewerCaption span{border:1px solid var(--line);background:var(--paper);border-radius:999px;max-width:100%;padding:6px 10px;display:inline-block}.mediaViewerCaption[data-visible=true]{opacity:1;filter:blur();transition-delay:.12s;transform:none}@keyframes viewerSwap{0%{opacity:0}}.nextPageLink{background:var(--paper);width:max-content;height:37px;box-shadow:inset 0 0 0 1px var(--line);color:var(--ink);transition:box-shadow .22s var(--easeOut), transform .22s var(--easeOut);border-radius:19px;align-self:center;align-items:center;gap:12px;margin-top:96px;padding:6px 6px 6px 13px;line-height:16px;display:inline-flex;position:relative;overflow:hidden}.nextPageLink:hover{text-decoration:none}.nextPageContent{z-index:1;white-space:nowrap;align-items:center;gap:6px;display:inline-flex;position:relative}.nextPageThumbnail{object-fit:cover;border-radius:4px;flex:none;width:16px;height:16px}.nextPageAction{z-index:1;background:var(--line);width:25px;height:25px;transition:background-color .22s var(--easeOut);border-radius:50%;flex:none;place-items:center;display:grid;position:relative}@media (hover:hover) and (pointer:fine){.nextPageLink:hover{box-shadow:inset 0 0 0 1px var(--lineStrong);transform:scale(1.02)}.nextPageLink:hover .nextPageAction{background:var(--lineStrong)}}.nextPageLink:active{transition-duration:.12s;transform:scale(.97)}@media (max-width:960px){.mediaGrid,.mediaColumn{gap:16px}.nextPageLink{margin-top:48px}.mediaViewer{touch-action:pinch-zoom}}@media (max-width:560px){.mediaGrid{grid-template-columns:minmax(0,1fr);gap:20px}.mediaColumn{display:contents}}.mediaCard[data-cropped=true]{aspect-ratio:2/3}.mediaCard[data-cropped=true] .mediaImage{object-fit:cover;object-position:top center;transform-origin:top;height:100%}
