@font-face{font-family:Crimson Pro;src:url(/assets/crimson-pro-C4R2PX-h.woff2) format("woff2");font-style:normal;font-weight:200 900;font-display:swap}@font-face{font-family:Crimson Text;src:url(/assets/crimson-text-regular-pRLgj_b_.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Crimson Text;src:url(/assets/crimson-text-semibold-BLvyr2CS.woff2) format("woff2");font-style:normal;font-weight:600;font-display:swap}@font-face{font-family:Crimson Text;src:url(/assets/crimson-text-bold-Stku49pw.woff2) format("woff2");font-style:normal;font-weight:700;font-display:swap}:root{--font-display: "Crimson Pro", serif;--font-reading: "Crimson Text", serif;--font-meta: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--type-display: 300 2.25rem/1.2 var(--font-display);--type-section: 300 2.25rem/1.2 var(--font-display);--type-subsection: 600 1.5rem/1.2 var(--font-display);--type-support: 600 1.125rem/1.25 var(--font-display);--type-callout: 400 1.5rem/1.3 var(--font-display);--type-metric: 400 3rem/1 var(--font-display);--track-metric: -.035em;--type-quote: 300 3.75rem/1 var(--font-display);--track-quote: -.035em;--type-deck: 400 1.25rem/1.5 var(--font-reading);--type-body: 400 1.125rem/1.45 var(--font-reading);--type-body-sm: 400 1rem/1.45 var(--font-reading);--type-caption: 400 .875rem/1.4 var(--font-reading);--type-action: 800 1rem/1 var(--font-display);--track-action: .025em;--type-eyebrow: 500 1rem/1.2 var(--font-display);--track-eyebrow: .025em;--type-badge: 800 .8125rem/1.2 var(--font-display);--track-badge: .015em;--type-meta-lg: 600 .8125rem/1.2 var(--font-meta);--type-meta: 600 .75rem/1.2 var(--font-meta);--type-meta-sm: 600 .6875rem/1.45 var(--font-meta);--track-meta: .08em;--track-meta-sm: .07em;--weight-strong: 700;--weight-link: 600;--space-paragraph: 1.45em;--layer-content: 0;--layer-sticky-nav: 1;--layer-header: 2;--layer-popover: 1;color:#000;background:#f6f6f6;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.type-display,.type-section,.type-hero,.type-subsection,.type-support,.type-callout,.type-metric,.type-quote,.type-deck,.type-body,.type-body-sm,.type-caption,.type-action,.type-eyebrow,.type-badge,.type-meta-lg,.type-meta,.type-meta-sm{font-synthesis:none}.type-display{font:var(--type-display);letter-spacing:0;text-wrap:balance}.type-section{font:var(--type-section);letter-spacing:0;text-wrap:balance}.type-hero{font:var(--type-display);font-weight:var(--weight-link);letter-spacing:0;text-wrap:balance}.type-subsection{font:var(--type-subsection);letter-spacing:0}.type-support{font:var(--type-support);letter-spacing:0}.type-callout{font:var(--type-callout);letter-spacing:0;text-wrap:pretty}.type-metric{font:var(--type-metric);letter-spacing:var(--track-metric)}.type-quote{font:var(--type-quote);letter-spacing:var(--track-quote)}.type-deck{font:var(--type-deck);letter-spacing:0;text-wrap:pretty}.type-body{font:var(--type-body);letter-spacing:0}.type-body-sm{font:var(--type-body-sm);letter-spacing:0}.type-caption{font:var(--type-caption);letter-spacing:0}.type-action{font:var(--type-action);letter-spacing:var(--track-action)}.type-eyebrow{font:var(--type-eyebrow);letter-spacing:var(--track-eyebrow)}.type-badge{font:var(--type-badge);letter-spacing:var(--track-badge)}.type-meta-lg{font:var(--type-meta-lg);letter-spacing:var(--track-meta)}.type-meta{font:var(--type-meta);letter-spacing:var(--track-meta)}.type-meta-sm{font:var(--type-meta-sm);letter-spacing:var(--track-meta-sm)}.type-caps{text-transform:uppercase}:where(.type-body,.type-body-sm,.type-deck,.type-caption) strong{font-weight:var(--weight-strong)}:where(.type-body,.type-body-sm,.type-deck,.type-caption,.type-display,.type-section,.type-hero) a{font-weight:var(--weight-link);text-decoration:underline}.type-prose>p+p{margin-top:var(--space-paragraph)}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{min-width:320px;background:linear-gradient(172deg,#fcfeff,#f6f6f6);color:#000}img{display:block}a{color:inherit}.page-shell{isolation:isolate;display:flex;min-height:100dvh;width:100%;flex-direction:column;align-items:center}.site-header{isolation:isolate;position:relative;z-index:var(--layer-header);display:flex;width:min(100%,940px);height:88px;padding:40px 24px 0;align-items:center;justify-content:space-between}.brand-link,.brand-mark{width:48px;height:48px;flex:0 0 48px}.desktop-header-actions{display:flex;align-items:center;gap:28px}.case-studies-link{text-decoration:none}.contact-button{display:flex;min-height:44px;padding:0 18px;border:1px solid rgb(0 0 0 / 24%);border-radius:999px;align-items:center;background:transparent;text-decoration:none;white-space:nowrap}.case-studies-link[aria-current=page]{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}.mobile-menu{position:relative;display:none}.mobile-menu summary{position:relative;display:flex;width:48px;height:48px;cursor:pointer;list-style:none;align-items:center;justify-content:flex-end}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-nav{position:absolute;z-index:var(--layer-popover);top:52px;right:0;display:grid;width:220px;padding:8px;border:1px solid rgb(0 0 0 / 10%);border-radius:12px;background:#fffffffa;box-shadow:0 16px 36px #0000001a}.mobile-nav a{display:flex;min-height:48px;padding:15px 12px;align-items:center;text-decoration:none}.mobile-nav a+a{border-top:1px solid rgb(0 0 0 / 8%)}.resume-button{display:flex;width:max-content;min-width:237px;min-height:44px;padding:0 24px;flex:0 0 auto;align-items:center;gap:12px;border-radius:999px;background:#000;color:#fff;text-decoration:none;white-space:nowrap}.resume-button img{width:16px;height:16px;flex:0 0 16px}.site-main{isolation:isolate;position:relative;z-index:var(--layer-content);display:flex;width:min(100%,940px);padding:0 24px 40px;flex-direction:column;align-items:center}.core-main{isolation:isolate;position:relative;z-index:var(--layer-content)}.content{display:flex;width:100%;min-width:0;flex-direction:column;align-items:flex-start;gap:40px}.intro{display:flex;width:100%;min-width:0;padding-top:160px;flex-direction:column;gap:40px}h1,.skills,.bio p,.portrait-frame{margin:0}.skills{width:85%}.skills strong{font-weight:800}.profile{display:flex;width:100%;min-width:0;align-items:flex-start;gap:60px}.bio{width:min(100%,480px);min-width:0;flex:0 1 480px}.portrait-frame{width:320px;height:320px;flex:0 0 320px;overflow:hidden;border-radius:16px}.profile>.case-study-magnetic-stage{width:320px;height:320px;flex:0 0 320px;border-radius:16px}.portrait{width:100%;height:100%;object-fit:cover}.social-links{display:flex;height:24px;align-items:center;gap:12px}.social-links a{position:relative;width:24px;height:24px}.social-links a:before{position:absolute;top:50%;left:50%;width:max(100%,48px);height:max(100%,48px);content:"";transform:translate(-50%,-50%)}.social-links img{width:24px;height:24px}.social-footer{display:flex;width:min(100%,940px);margin:0 auto;padding:24px 24px 40px;align-items:center;flex-wrap:wrap;gap:24px;justify-content:space-between}.resume-button:focus-visible,.contact-button:focus-visible,.case-studies-link:focus-visible,.mobile-menu summary:focus-visible,.mobile-nav a:focus-visible,.brand-link:focus-visible,.social-links a:focus-visible,h1 a:focus-visible,.bio a:focus-visible{outline:2px solid #1677ff;outline-offset:3px}.work-main{align-items:stretch}.work-content{gap:40px;padding-top:160px}.work-intro{display:grid;gap:40px}.work-eyebrow,.work-title{margin:0}.work-eyebrow,.work-meta{color:#00000094}.work-title{max-width:38ch}.work-list{width:100%;border-top:1px solid rgb(0 0 0 / 14%)}.work-item{display:grid;min-width:0;padding:32px 0;border-bottom:1px solid rgb(0 0 0 / 14%);gap:20px;text-decoration:none;grid-template-columns:minmax(160px,1fr) minmax(0,2.35fr) auto;align-items:baseline}.work-item-copy{display:grid;min-width:0;gap:10px}.work-item-copy h2{max-width:26ch;margin:0;font-weight:var(--weight-link);text-decoration:underline}.work-item-copy>p{max-width:58ch;margin:0;color:#000000ad;text-wrap:pretty}.work-cta{font-weight:var(--weight-link);white-space:nowrap}.work-item:focus-visible{outline:2px solid #1677ff;outline-offset:8px}@media(hover:hover)and (pointer:fine){.resume-button:hover,.contact-button:hover,.case-studies-link:hover,.mobile-nav a:hover,.social-links a:hover{opacity:.78}.work-item:hover .work-cta{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}}@media(min-width:810px)and (max-width:1199.98px){:root{--type-display: 300 1.8125rem/1.2 var(--font-display);--type-section: 300 1.8125rem/1.2 var(--font-display);--type-metric: 400 2.5rem/1 var(--font-display);--type-quote: 300 2.5rem/1 var(--font-display)}.site-header,.site-main,.social-footer{width:min(calc(100% - 80px),730px);padding-right:0;padding-left:0}.intro{padding-top:88px}.work-content{gap:40px;padding-top:88px}.profile{gap:20px}.bio{width:480px;flex:0 0 480px}.portrait-frame{width:230px;height:230px;flex-basis:230px}.profile>.case-study-magnetic-stage{width:230px;height:230px;flex-basis:230px}}@media(max-width:809.98px){:root{--type-display: 300 1.125rem/1.35 var(--font-display);--type-section: 300 1.125rem/1.35 var(--font-display);--type-subsection: 600 1.25rem/1.2 var(--font-display);--type-callout: 400 1.25rem/1.35 var(--font-display);--type-metric: 400 2rem/1 var(--font-display);--type-quote: 300 2rem/1 var(--font-display);--type-deck: 400 1.125rem/1.5 var(--font-reading)}.site-header{width:100%;height:64px;padding:16px 16px 0}.desktop-header-actions{display:none}.mobile-menu{display:block}.site-main{width:100%;padding:0 16px 16px}.social-footer{width:calc(100% - 32px);padding:24px 0 calc(32px + env(safe-area-inset-bottom))}.content{gap:24px}.intro{padding-top:40px;gap:24px}.skills{width:100%}.profile{flex-direction:column;gap:36px}.bio{width:100%;flex-basis:auto}.portrait-frame{width:100%;height:auto;aspect-ratio:1;flex-basis:auto}.profile>.case-study-magnetic-stage{width:100%;height:auto;aspect-ratio:1;flex-basis:auto}.work-content{gap:24px;padding-top:40px}.work-intro{gap:24px}.work-item{padding:24px 0;gap:16px;grid-template-columns:1fr;align-items:start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important}}
