@font-face{font-family:bodyFont;src:url(../media/inter_tight_latin_wght_normal-s.p.1_fsb17gxmapx.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:bodyFont Fallback;src:local(Arial);ascent-override:99.65%;descent-override:24.81%;line-gap-override:0.0%;size-adjust:97.21%}.nfrxKq_className{font-family:bodyFont,bodyFont Fallback}.nfrxKq_variable{--font-body:"bodyFont", "bodyFont Fallback"}
:root{--bg:#fff;--mist:#f2f3f5;--raise:#fff;--ink:#000;--text:#2b2c2e;--muted:#66686c;--line:#e4e5e7;--line-strong:#c9cbcf;--accent:#ff4d00;--accent-ink:#c23b00;--on-accent:#000;--bezel:#000;--shadow:0 1px 2px #1418200f, 0 24px 48px -24px #14182038;--body:var(--font-body), "Inter Tight", system-ui, sans-serif;--cols:4;--margin:clamp(20px, 3.6vw, 72px);--gutter:clamp(12px, 1.6vw, 24px);--max:1920px;--header:64px;--section:clamp(96px, 10vw, 176px);--ease:cubic-bezier(.2, .8, .2, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--t-xs:12px;--t-sm:14px;--t-md:17px;--t-lg:clamp(19px, 1.45vw, 23px);--t-xl:clamp(24px, 2.2vw, 34px);--t-2xl:clamp(34px, 4.2vw, 68px);--t-3xl:clamp(44px, 6.6vw, 124px);--t-hero:min(12vw, 240px);--xr:#ff4d00;--xr-wire:#ff4d0052;--xr-col:#ff4d000f;--xr-m:#ffa60052;--xr-p:#2eb85c4d;--xr-c:#2e7dff33;--xr-base:#2e7dff24;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (min-width:640px){:root{--cols:8}}@media (min-width:1024px){:root{--cols:12}}html[data-theme=dark]{--bg:#141517;--mist:#1c1d20;--raise:#1c1d20;--ink:#f4f4f5;--text:#d6d7da;--muted:#9b9ea4;--line:#2b2d31;--line-strong:#3d4045;--accent:#ff5a1a;--accent-ink:#ff7a45;--bezel:#000;--shadow:0 1px 2px #0006, 0 24px 48px -24px #000000b3;--xr-wire:#ff6e3266;--xr-base:#5aa0ff29;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){html:not([data-theme]){--bg:#141517;--mist:#1c1d20;--raise:#1c1d20;--ink:#f4f4f5;--text:#d6d7da;--muted:#9b9ea4;--line:#2b2d31;--line-strong:#3d4045;--accent:#ff5a1a;--accent-ink:#ff7a45;--bezel:#000;--shadow:0 1px 2px #0006, 0 24px 48px -24px #000000b3;--xr-wire:#ff6e3266;--xr-base:#5aa0ff29;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + 24px);-webkit-text-size-adjust:100%}@media (hover:hover) and (pointer:fine){html{overscroll-behavior-y:none}}body{background:var(--bg);color:var(--text);font-family:var(--body);font-size:var(--t-md);letter-spacing:-.006em;font-feature-settings:"ss01", "cv11";font-synthesis:none;font-optical-sizing:auto;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-wrap:pretty;margin:0;line-height:1.6;overflow-x:clip}::selection{background:var(--accent);color:var(--on-accent)}h1,h2,h3,h4,p,figure,dl,dd,blockquote{margin:0}h1,h2,h3,h4{color:var(--ink);letter-spacing:-.03em;text-wrap:balance;font-weight:500;line-height:1.1}p{text-wrap:pretty}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}button{font:inherit;color:inherit;cursor:pointer}ol,ul{margin:0;padding:0;list-style:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--ink);color:var(--bg);border-radius:999px;padding:8px 16px;position:absolute;top:-64px;left:16px}.skip-link:focus{top:12px}.scroll-progress{z-index:60;background:var(--accent);transform-origin:0;height:2px;scale:var(--scroll-progress,0) 1;pointer-events:none;position:fixed;inset:0 0 auto}@supports (animation-timeline:scroll()){.scroll-progress{animation:linear both scroll-progress;animation-timeline:scroll(root)}@keyframes scroll-progress{0%{scale:0 1}to{scale:1}}}html.theming *,html.theming :before,html.theming :after{transition:none!important}.grid{grid-template-columns:repeat(var(--cols), minmax(0, 1fr));column-gap:var(--gutter);width:100%;max-width:var(--max);padding-inline:var(--margin);margin-inline:auto;display:grid}.grid>.section-head,.sub{grid-column:1/-1;grid-template-columns:subgrid;display:grid}.section-head{align-items:end;row-gap:24px;margin-bottom:clamp(48px,6vw,96px)}.section-head h2{font-size:var(--t-2xl);letter-spacing:-.04em;grid-column:1/-1;line-height:1.02}.section-head p{max-width:44ch;color:var(--muted);font-size:var(--t-lg);grid-column:1/-1;line-height:1.45}.section-head p a{color:var(--ink);text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px}@media (min-width:1024px){.section-head h2{grid-column:1/span 7}.section-head p{grid-column:9/span 4}}.button{border:1px solid var(--ink);background:var(--ink);min-height:40px;color:var(--bg);letter-spacing:-.01em;white-space:nowrap;transition:background-color .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease), translate .25s var(--ease);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:15px;font-weight:500;display:inline-flex}.button:hover{background:var(--bg);border-color:var(--ink);color:var(--ink)}.button:active{translate:0 1px}.button.secondary{color:var(--ink);background:0 0}.button.secondary:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}a:not([class]){transition:text-decoration-color .2s var(--ease)}a:not([class]):hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.text-link,.text-button{background:linear-gradient(var(--ink), var(--ink)) 0 100% / 0% 1px no-repeat, linear-gradient(var(--line-strong), var(--line-strong)) 0 100% / 100% 1px no-repeat;width:fit-content;color:var(--ink);font-weight:500;font-size:inherit;transition:background-size .45s var(--ease-out);border:0;align-items:center;gap:6px;padding:0 0 2px;display:inline-flex}.text-link:hover,.text-button:hover{background-size:100% 1px,100% 1px}.icon-button{width:40px;height:40px;color:var(--ink);transition:background-color .2s var(--ease), border-color .2s var(--ease);background:0 0;border:1px solid #0000;border-radius:999px;flex:none;place-items:center;padding:0;display:inline-grid}.icon-button:hover{background:var(--mist)}.icon-button[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:var(--bg)}kbd{border:1px solid var(--line-strong);min-width:22px;height:22px;font:500 12px/1 var(--body);color:var(--muted);border-bottom-width:2px;border-radius:6px;place-items:center;padding:0 6px;display:inline-grid}.count-up{font-variant-numeric:tabular-nums;color:var(--ink);font-weight:500}.brand-mark{align-items:center;gap:8px;display:inline-flex}.brand-mark img{width:auto;height:22px}.brand-mark:not(.symbol) img{filter:grayscale()brightness(0)}html[data-theme=dark] .brand-mark:not(.symbol) img{filter:grayscale()brightness(0)invert()}.brand-mark b{color:var(--ink);letter-spacing:-.03em;font-size:19px;font-weight:600}.site-header{z-index:50;border-bottom:1px solid var(--line);position:relative}.header-grid{height:var(--header);align-items:center}.wordmark{color:var(--ink);letter-spacing:-.04em;grid-column:1/span 2;justify-self:start;font-size:19px;font-weight:600}.brand-dot{color:var(--accent);transition:rotate .6s var(--ease-out);display:inline-block}.wordmark:hover .brand-dot{rotate:180deg}.dock{--dock-shadow:0 0 0 1px color-mix(in srgb, var(--ink) 9%, transparent), 0 2px 6px #1418200f, 0 16px 40px -16px #1418204d;left:50%;bottom:max(16px, env(safe-area-inset-bottom));z-index:55;background:color-mix(in srgb, var(--bg) 86%, transparent);-webkit-backdrop-filter:blur(20px)saturate(1.6);backdrop-filter:blur(20px)saturate(1.6);width:min(100% - 24px,520px);box-shadow:var(--dock-shadow);white-space:nowrap;transition:translate .4s var(--ease-out), opacity .3s var(--ease), grid-template-rows .4s var(--ease-out);border-radius:28px;grid-template-rows:0fr auto;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:4px;padding:6px;display:grid;position:fixed;translate:-50%}.dock.open{grid-template-rows:1fr auto}html[data-theme=dark] .dock{--dock-shadow:0 0 0 1px color-mix(in srgb, var(--ink) 14%, transparent), 0 16px 40px -12px #000000b3}.main-nav{grid-area:2/1;gap:2px;display:flex}.main-nav a{height:40px;color:var(--muted);letter-spacing:-.01em;transition:color .2s var(--ease), background-color .2s var(--ease);border-radius:999px;flex:auto;justify-content:center;align-items:center;padding:0 10px;font-size:15px;font-weight:500;display:inline-flex;position:relative}.main-nav a:hover,.main-nav a[aria-current=page]{color:var(--ink)}.main-nav a{isolation:isolate}.nav-mark{z-index:-1;border-radius:inherit;background:var(--mist);position:absolute;inset:0}.main-nav .nav-contact,.main-nav .nav-contact[aria-current=page]{background:var(--ink);color:var(--bg)}.nav-controls{display:contents}.nav-pill{display:none}.tools-toggle{grid-area:2/2}.dock.open .tools-toggle{background:var(--mist)}.tools{opacity:0;visibility:hidden;min-height:0;transition:opacity .2s var(--ease), visibility 0s .4s;grid-area:1/1/auto/-1;grid-template-columns:repeat(4,minmax(0,1fr));align-content:start;align-self:stretch;gap:4px;display:grid;overflow:hidden}.dock.open .tools{opacity:1;visibility:visible;transition:opacity .25s var(--ease), visibility 0s}.tools .icon-button{background:var(--mist);width:auto;height:72px;transition:scale .3s var(--ease-out), translate .3s var(--ease-out), background-color .2s var(--ease);border-radius:22px;align-content:center;gap:8px;margin-bottom:6px;translate:0 10px;scale:.94}.dock.open .tools .icon-button{translate:0;scale:1}.tools .icon-button:hover{background:var(--line)}.tools .icon-button[aria-pressed=true]{background:var(--ink);color:var(--bg)}.tool-label{color:var(--muted);white-space:nowrap;font-size:12px;font-weight:500;line-height:1}.tool-label kbd{display:none}.icon-button[aria-pressed=true] .tool-label{color:inherit}.dock.open .tools .icon-button:nth-child(2){transition-delay:30ms,30ms,0s}.dock.open .tools .icon-button:nth-child(3){transition-delay:60ms,60ms,0s}.dock.open .tools .icon-button:nth-child(4){transition-delay:90ms,90ms,0s}@media (prefers-reduced-motion:reduce){.dock,.tools,.tools .icon-button{transition:none!important}.tools .icon-button{translate:0;scale:1}}@media (max-width:1023px){html.xray .dock,html.story .dock{opacity:0;pointer-events:none;translate:-50% calc(100% + 32px)}body:has(:is(input,textarea,select):focus) .dock{opacity:0;pointer-events:none;translate:-50% calc(100% + 32px)}.site-footer{padding-bottom:calc(72px + env(safe-area-inset-bottom))}html{scroll-padding-bottom:calc(88px + env(safe-area-inset-bottom))}}@media (max-width:379px){.main-nav a{padding:0 8px;font-size:14px}}@media (max-width:1023px) and (max-height:500px) and (orientation:landscape){.dock{bottom:max(8px, env(safe-area-inset-bottom));border-radius:24px;padding:4px}.main-nav a{height:36px;font-size:14px}.tools-toggle{width:36px;height:36px}.tools .icon-button{border-radius:20px;gap:4px;height:56px;margin-bottom:4px}.site-footer{padding-bottom:calc(56px + env(safe-area-inset-bottom))}html{scroll-padding-bottom:calc(64px + env(safe-area-inset-bottom))}}@media (min-width:640px){.wordmark{grid-column:1/span 3}}@media (min-width:1024px){.site-header{background:color-mix(in srgb, var(--bg) 86%, transparent);-webkit-backdrop-filter:blur(16px)saturate(1.4);backdrop-filter:blur(16px)saturate(1.4);position:sticky;top:0}.dock{display:contents}.wordmark,.main-nav,.nav-controls{grid-row:1}.main-nav{grid-column:1/-1;justify-self:center;gap:8px}.main-nav a{height:36px;padding:0 12px}.nav-mark{background:var(--accent);border-radius:50%;width:4px;height:4px;margin-left:-2px;inset:auto auto 0 50%}.main-nav .nav-contact{display:none}.nav-controls{grid-column:8/-1;justify-self:end;align-items:center;gap:12px;display:flex}.tools{border-right:1px solid var(--line);opacity:1;visibility:visible;gap:2px;padding-right:12px;transition:none;display:flex;overflow:visible}.tools .icon-button{background:0 0;border-radius:999px;width:36px;height:36px;margin:0;position:relative;translate:0;scale:1}.tools .icon-button:hover{background:var(--mist)}.tools .icon-button[aria-pressed=true]:hover{background:color-mix(in srgb, var(--ink) 82%, var(--bg))}.tools .tool-label{z-index:2;background:var(--ink);color:var(--bg);opacity:0;pointer-events:none;transition:opacity .15s var(--ease), translate .2s var(--ease-out);border-radius:6px;align-items:center;gap:6px;padding:6px 8px;font-size:12px;display:inline-flex;position:absolute;top:calc(100% + 10px);left:50%;translate:-50% -4px}.tools .icon-button:hover .tool-label,.tools .icon-button:focus-visible .tool-label{opacity:1;transition-delay:.25s;translate:-50%}.tool-label kbd{border-color:color-mix(in srgb, var(--bg) 35%, transparent);min-width:18px;height:18px;color:inherit;border-bottom-width:1px;border-radius:4px;padding:0 4px;font-size:11px;display:inline-grid}.tools-toggle{display:none}.nav-pill{border:1px solid var(--ink);background:var(--ink);height:36px;color:var(--bg);white-space:nowrap;transition:background-color .2s var(--ease), color .2s var(--ease);border-radius:999px;align-items:center;padding:0 16px;font-size:14px;font-weight:500;display:inline-flex}.nav-pill:hover{background:var(--bg);color:var(--ink)}}@media (min-width:1280px){.nav-controls{grid-column:10/-1}}.hero{padding-block:clamp(24px,3vw,48px) 0;position:relative}.hero-guides{pointer-events:none;height:100%;position:absolute;inset:0 0 0 50%;translate:-50%;-webkit-mask-image:linear-gradient(#0000,#000 30% 60%,#0000);mask-image:linear-gradient(#0000,#000 30% 60%,#0000)}.hero-guides span{border-inline:1px solid var(--line);opacity:.7;transform-origin:top}.hero-guides span:nth-child(n+5){display:none}@media (min-width:640px){.hero-guides span:nth-child(n+5){display:block}.hero-guides span:nth-child(n+9){display:none}}@media (min-width:1024px){.hero-guides span:nth-child(n+9){display:block}}.hero-grid{row-gap:24px;position:relative}.hero-name,.hero-role{border-top:1px solid var(--ink);color:var(--ink);font-size:var(--t-sm);grid-column:1/-1;padding-top:16px;font-weight:500}.hero-role{color:var(--muted);border-top:0;padding-top:0}.hero-title{letter-spacing:-.055em;grid-column:1/-1;margin-block:clamp(32px,5vw,80px) clamp(24px,3vw,48px);font-size:calc(14.6vw - 4px);font-weight:500;line-height:.9}.hero-title .line{margin-bottom:-.16em;padding-bottom:.16em;display:block;overflow:clip}.hero-title .line>span{display:inline-block}.hero-intro{grid-column:1/-1;gap:32px;display:grid}.hero-intro p{max-width:34ch;color:var(--ink);font-size:var(--t-lg);letter-spacing:-.015em;line-height:1.4}.hero-links{flex-wrap:wrap;align-items:center;gap:16px 32px;display:flex}.hero-xray{order:2;grid-column:1/-1;align-content:end;gap:16px;margin-top:24px;display:grid}.hero-xray p{max-width:30ch;color:var(--muted);font-size:var(--t-sm)}@media (max-width:639px){:is(.hero-links,.contact-submit,.resume-actions,.resume-gate-row,.study-info,.not-found) .button{width:100%;min-height:44px}.hero-links,.contact-submit,.resume-actions{flex-direction:column;align-items:stretch;gap:16px}.hero-links .text-link,.resume-actions .text-button{align-self:center}.resume-gate-row input{flex-basis:100%;min-height:44px}.not-found>.button{justify-self:stretch}.hero-xray-actions{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;display:grid}.hero-xray-actions .hint-button{justify-content:center;width:100%;height:44px}}.hint-button{border:1px solid var(--line-strong);background:var(--bg);width:fit-content;height:36px;color:var(--ink);font-size:var(--t-sm);white-space:nowrap;transition:border-color .2s var(--ease), background-color .2s var(--ease), color .2s var(--ease);border-radius:999px;align-items:center;gap:8px;padding:0 14px 0 12px;font-weight:500;display:inline-flex}.hint-button:hover{border-color:var(--ink)}.hint-button[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:var(--bg)}.hint-button kbd{min-width:20px;height:20px;margin-right:-6px;font-size:11px}.hint-button[aria-pressed=true] kbd{border-color:color-mix(in srgb, var(--bg) 35%, transparent);color:inherit}@media (hover:none){.hint-button kbd{display:none}}@media (min-width:640px){.hero-name{grid-column:1/span 4}.hero-role{border-top:1px solid var(--ink);grid-column:5/span 4;padding-top:16px}.hero-title{font-size:var(--t-hero)}.hero-intro{grid-column:1/span 6}}@media (min-width:1024px){.hero-name{grid-column:1/span 6}.hero-role{grid-column:7/span 6}.hero-xray{order:0;grid-column:1/span 4;margin-top:0}.hero-intro{grid-column:7/span 5}}.mock{background:var(--raise);box-shadow:0 0 0 1px color-mix(in srgb, var(--ink) 9%, transparent), var(--shadow);border-radius:10px;display:block;position:relative;overflow:hidden}.mock img{width:100%;height:auto}.mock-bar{border-bottom:1px solid var(--line);background:var(--raise);align-items:center;gap:6px;height:28px;padding:0 12px;display:flex;container:mock-bar/inline-size}.mock-bar i{background:var(--line-strong);border-radius:50%;flex:none;width:8px;height:8px}.mock-url{min-width:0;color:var(--muted);text-align:center;text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0 24px 0 16px;font-size:11px;font-weight:500;overflow:hidden}@container mock-bar (max-width:260px){.mock-url{margin:0 4px 0 8px}}@container mock-bar (max-width:179px){.mock-url{visibility:hidden}}.mock-screen{display:block}.mock-phone{background:var(--bezel);border-radius:28px;padding:6px}.mock-phone .mock-screen{border-radius:22px;overflow:hidden}.mock-notch{z-index:1;background:var(--bezel);border-radius:999px;width:28%;height:14px;position:absolute;top:14px;left:50%;translate:-50%}.mock-card{border-radius:12px}.filmstrip{--film-h:clamp(200px, 26vw, 440px);gap:var(--gutter);view-timeline:--film block;padding-block:clamp(48px,6vw,96px) 0;display:grid;overflow:clip}.film-row{gap:var(--gutter);width:max-content;padding-inline:var(--margin);display:flex}.film-row.r1{translate:-18%}.film-row a{border-radius:10px;display:block}.film-row .mock{width:max-content}.film-row .mock-phone{border-radius:18px;padding:4px}.film-row .mock img{width:auto;height:calc(var(--film-h) - 28px)}.film-row .mock-card img{height:var(--film-h)}.film-row .mock-phone img{height:calc(var(--film-h) - 12px)}.film-row .mock-phone .mock-screen{border-radius:14px}@media (max-width:639px){.mock-phone{border-radius:16px;padding:3px}.mock-phone .mock-screen{border-radius:13px}.film-row .mock-phone{border-radius:12px}.film-row .mock-phone .mock-screen{border-radius:9px}.mock-notch{height:8px;top:8px}}.film-row .mock{transition:translate .4s var(--ease-out)}.film-row a:hover .mock{translate:0 -6px}.proof{padding-block:var(--section) 0;row-gap:32px}.proof-head{font-size:var(--t-md);letter-spacing:-.01em;border-top:1px solid var(--ink);grid-column:1/-1;padding-top:16px;font-weight:500}.proof-list{gap:48px var(--gutter);grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.proof-list li{border-top:1px solid var(--line);align-content:start;gap:4px;padding-top:16px;display:grid;container-type:inline-size}.proof-list .count-up{font-size:min(var(--t-2xl), 17cqi);letter-spacing:-.045em;text-wrap:balance;margin-bottom:8px;line-height:1}@media (max-width:639px){.proof-list .count-up{font-size:var(--t-2xl);text-wrap:wrap}}.proof-list li>span{color:var(--ink);font-size:var(--t-sm);line-height:1.4}.proof-list small{color:var(--muted);font-size:var(--t-xs)}@media (min-width:640px){.proof-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1024px){.proof-head{grid-column:1/span 3}.proof-list{grid-column:4/-1;grid-template-columns:subgrid}.proof-list li{grid-column:span 3}}.work{padding-top:var(--section)}.studies{gap:clamp(96px,10vw,160px);display:grid}.study{align-items:start;row-gap:40px}.study-info{grid-column:1/-1;align-content:start;gap:24px;display:grid}.study-top{border-top:1px solid var(--ink);color:var(--muted);font-size:var(--t-sm);flex-wrap:wrap;align-items:center;gap:8px 16px;padding-top:16px;display:flex}.study-info h3{font-size:var(--t-xl);letter-spacing:-.035em;line-height:1.08}.tldr{gap:0;display:grid}.tldr>div{border-top:1px solid var(--line);grid-template-columns:88px minmax(0,1fr);gap:16px;padding-block:12px;display:grid}.tldr dt{color:var(--muted);font-size:var(--t-xs);font-weight:500;line-height:1.6}.tldr dd{font-size:15px;line-height:1.5}.study-outcome{gap:4px;display:grid}.study-outcome .count-up{font-size:var(--t-2xl);letter-spacing:-.045em;line-height:1}.study-outcome>span{color:var(--muted);font-size:var(--t-sm)}.study-info .button{justify-self:start}.study-stage{border-radius:20px;grid-column:1/-1;display:block}@media (min-width:1024px){.study-info{top:calc(var(--header) + 32px);grid-column:1/span 4;position:sticky}.study-stage{grid-column:5/-1}}.stage{background:var(--mist);border-radius:20px;grid-template-columns:repeat(8,minmax(0,1fr));align-items:start;gap:clamp(12px,2vw,32px);padding:clamp(16px,4vw,64px);display:grid}.stage-main{grid-column:1/-1}.stage-support{grid-column:1/span 4}.stage-third{grid-column:5/span 4}.stage.has-phone .stage-support{grid-column:1/span 5}.stage.has-phone .stage-third{grid-column:6/span 3}.stage .mock-phone .mock-screen{aspect-ratio:9/17}.stage .mock-phone img{object-fit:cover;object-position:top;height:100%}.stage-sage .stage-support,.stage-blue .stage-support{align-self:center}.study-stage .mock,.work-card-stage .mock{transition:translate .5s var(--ease-out)}.study-stage:hover .stage-main,.work-card-stage:hover .stage-main{translate:0 -6px}.locked-work{align-items:start;row-gap:48px}.locked-intro{background:var(--mist);color:var(--ink);border-radius:20px;grid-column:1/-1;align-content:start;gap:16px;padding:clamp(20px,3vw,40px);display:grid}.locked-intro h3{font-size:var(--t-xl);letter-spacing:-.035em}.locked-intro>p:not(.locked-meanwhile){max-width:44ch;color:var(--muted)}.locked-meanwhile{color:var(--muted);font-size:var(--t-sm)}.locked-meanwhile a{color:var(--ink);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.locked-list{gap:32px var(--gutter);grid-column:1/-1;display:grid}.locked-list li{gap:12px;display:grid}.locked-meta{border-top:1px solid var(--line);align-items:center;gap:12px;padding-top:12px;display:flex}.locked-meta>span{display:grid}.locked-meta b{color:var(--ink);font-weight:500}.locked-meta small{color:var(--muted);font-size:var(--t-sm)}.hidden-name{background:var(--mist);white-space:nowrap;border-radius:.16em;padding-inline:.2em .14em}.hidden-name>[aria-hidden]{letter-spacing:.06em;display:inline-block;translate:0 .2em}.case-bar{z-index:20;background:color-mix(in srgb, var(--bg) 94%, transparent);-webkit-backdrop-filter:blur(14px)saturate(1.2);border-block:1px solid var(--line);font-size:var(--t-sm);position:sticky;top:0}.case-bar-inner{max-width:var(--max);min-height:48px;padding:max(8px, env(safe-area-inset-top)) var(--margin) 8px;align-items:center;gap:12px 20px;margin-inline:auto;display:flex}.case-bar-id{min-width:0;color:var(--muted);white-space:nowrap;align-items:center;gap:12px;display:flex}.case-bar-logo{color:var(--ink);flex:none;align-items:center;gap:6px;display:flex}.case-bar-logo img{width:auto;height:18px}.case-bar-role{display:none}.case-bar b{color:var(--ink);letter-spacing:-.01em;white-space:nowrap;margin-left:auto;font-weight:600}.case-bar-link{color:var(--ink);white-space:nowrap;text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px}.case-bar-link:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}@media (max-width:479px){.case-bar-years{display:none}}@media (min-width:1024px){.case-bar{top:var(--header);border-top:0}.case-bar-role{display:inline}.case-bar-role:before{content:"·";margin-right:12px}}main:has(.case-bar){timeline-scope:--case-hero;--case-bar:49px}.case-hero{view-timeline:--case-hero block}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){html:not(.motion-paused) .case-bar{animation:linear both case-bar-in;animation-timeline:--case-hero;animation-range:exit 70%;position:fixed;inset:0 0 auto}@media (min-width:1024px){html:not(.motion-paused) .case-bar{top:var(--header)}}}}@keyframes case-bar-in{0%{opacity:0;visibility:hidden;translate:0 -100%}to{opacity:1;visibility:visible;translate:0}}.wip-badge{border:1px solid var(--line-strong);color:var(--ink);font-size:var(--t-xs);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:2px 10px;display:inline-flex}.wip-badge:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px}.hidden-figure{white-space:nowrap}.hidden-figure .hidden-name{padding-inline:.04em}.locked-mark{background:var(--mist);width:32px;height:32px;color:var(--accent);border-radius:8px;flex:none;place-items:center;padding-top:9px;font-size:22px;font-weight:600;line-height:0;display:inline-grid}@media (min-width:640px){.locked-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.locked-intro{top:calc(var(--header) + 32px);grid-column:1/span 4;position:sticky}.locked-list{grid-column:5/-1}}.ghost{aspect-ratio:16/10;background:var(--raise);box-shadow:0 0 0 1px color-mix(in srgb, var(--ink) 8%, transparent), var(--shadow);border-radius:12px;display:block;position:relative;overflow:hidden}.ghost.tall{aspect-ratio:16/9}.ghost-bar{border-bottom:1px solid var(--line);align-items:center;gap:6px;height:28px;padding:0 12px;display:flex}.ghost-bar i{background:var(--line-strong);border-radius:50%;width:8px;height:8px}.ghost-body{filter:blur(.5px);gap:10px;padding:6% 7%;display:grid}.ghost-body b,.ghost-row em,.ghost-chart{background:var(--mist);border-radius:6px;display:block}.ghost-body>b:first-child{background:var(--line);width:38%;height:18px}.ghost-body>b:nth-child(2){width:62%;height:10px}.ghost-row{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.ghost-row em{height:44px}.ghost-chart{background:linear-gradient(transparent 60%, var(--line) 60% 62%, transparent 62%), var(--mist);height:clamp(48px,9vw,120px)}.ghost-body>b:last-child{width:46%;height:10px}.ghost-lock{color:var(--muted);place-items:center;display:grid;position:absolute;inset:0}.ghost-lock svg{background:var(--bg);width:48px;height:48px;box-shadow:0 0 0 1px var(--line);border-radius:50%;padding:12px}@media (prefers-reduced-motion:no-preference){html:not(.motion-paused) .ghost-body{animation:2.8s linear infinite ghost-shimmer;-webkit-mask-image:linear-gradient(100deg,#000 30%,#00000073 50%,#000 70%);mask-image:linear-gradient(100deg,#000 30%,#00000073 50%,#000 70%);-webkit-mask-size:300% 100%;mask-size:300% 100%}}@keyframes ghost-shimmer{0%{-webkit-mask-position:100% 0;mask-position:100% 0}to{-webkit-mask-position:0 0;mask-position:0 0}}.locked-case .locked-case-form{background:var(--mist);border-radius:20px;grid-column:1/-1;max-width:560px;padding:clamp(20px,3vw,32px)}@media (min-width:1024px){.case-hero.locked-case h1,.case-hero.locked-case .case-summary{grid-column:1/span 6}.case-hero.locked-case .locked-case-form{grid-area:3/7/span 2/span 6;align-self:end}}.locked-stage .case-stage-tilt{width:100%;max-width:1100px;margin-inline:auto}.decision-locked{border-top:1px solid var(--line);color:var(--muted);align-items:center;gap:12px;padding-block:24px;font-size:15px;display:flex}.decision-locked a{color:var(--ink);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}@media (min-width:1024px){.decision-locked{grid-column:1/-1}}@media (prefers-reduced-motion:no-preference){html.just-unlocked:not(.motion-paused) :is(.study,.work-card,.film-row li,.decision){animation:unlock-in 1.3s var(--ease-out) both}html.just-unlocked:not(.motion-paused) :is(.study,.work-card):nth-child(2){animation-delay:.12s}html.just-unlocked:not(.motion-paused) :is(.study,.work-card):nth-child(3){animation-delay:.24s}html.just-unlocked:not(.motion-paused) :is(.study,.work-card):nth-child(4){animation-delay:.36s}html.just-unlocked:not(.motion-paused) .film-row li:nth-child(n+2){animation-delay:80ms}html.just-unlocked:not(.motion-paused) .film-row li:nth-child(n+4){animation-delay:.16s}html.just-unlocked:not(.motion-paused) .case-hero>*{animation:unlock-in .9s var(--ease-out) both}html.just-unlocked:not(.motion-paused) .case-hero>:nth-child(n+3){animation-delay:.1s}html.just-unlocked:not(.motion-paused) .case-stage-tilt{animation:unlock-in 1.2s .2s var(--ease-out) both}}@keyframes unlock-in{0%{clip-path:inset(0 0 100%);filter:blur(10px);translate:0 32px}60%{filter:blur()}to{clip-path:inset(0 0 -20%)}}.method{padding-top:var(--section)}.loop-body{view-timeline:--loop block;grid-column:1/-1;position:relative}.loop-line{background:var(--line);height:1px;position:absolute;top:4px;left:0;right:0}.loop-line span{background:var(--accent);transform-origin:0;position:absolute;inset:0}.loop-steps{gap:48px var(--gutter);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.loop-steps li{align-content:start;gap:8px;padding-top:40px;display:grid;position:relative}.loop-node{background:var(--accent);width:9px;height:9px;box-shadow:0 0 0 4px var(--bg);border-radius:50%;position:absolute;top:0;left:0}.loop-steps small{color:var(--muted);font-size:var(--t-xs);font-variant-numeric:tabular-nums}.loop-steps b{color:var(--ink);font-size:var(--t-xl);letter-spacing:-.035em;font-weight:500;line-height:1}.loop-steps li>span:last-child{max-width:22ch;color:var(--muted);font-size:15px;line-height:1.45}@media (max-width:1023px){.loop-line{display:none}.loop-steps li{border-top:1px solid var(--line);padding-top:24px}.loop-steps li:before{content:"";background:var(--accent);transform-origin:0;height:1px;position:absolute;top:-1px;left:0;right:0}.loop-node{top:-5px}}@media (min-width:640px){.loop-steps{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1024px){.loop-body{grid-template-columns:subgrid;display:grid}.loop-steps{grid-column:1/-1;grid-template-columns:subgrid}.loop-steps li{grid-column:span 2}}.decisions{padding-top:var(--section);align-items:start;position:relative}.decision-filters{flex-wrap:wrap;grid-column:1/-1;justify-content:space-between;align-items:center;gap:16px;margin-bottom:32px;display:flex}.decision-filters [role=group]{background:var(--mist);border-radius:999px;flex-wrap:wrap;gap:4px;padding:4px;display:inline-flex}.decision-filters button{height:36px;color:var(--muted);font-size:var(--t-sm);transition:background-color .2s var(--ease), color .2s var(--ease);background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;padding:0 clamp(10px,1vw,14px);font-weight:500;display:inline-flex}.decision-filters button:hover{color:var(--ink)}.decision-filters button[aria-pressed=true]{background:var(--bg);color:var(--ink);box-shadow:0 1px 3px #1418201a}@media (max-width:379px){.decision-filters [role=group]{border-radius:22px;grid-template-columns:1fr 1fr;width:100%;display:grid}.decision-filters button{justify-content:center}}.decision-filters small{color:var(--muted);font-size:var(--t-xs);font-variant-numeric:tabular-nums}.decision-status{color:var(--muted);font-size:var(--t-sm)}.decision-feed{border-bottom:1px solid var(--line);grid-column:1/-1}.decision{border-top:1px solid var(--line);transition:background-color .25s var(--ease);grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;padding-block:24px;display:grid;position:relative}.decision[hidden]{display:none}.decision-meta{font-size:var(--t-sm);flex-wrap:wrap;gap:4px 12px;display:flex}.decision-meta b{color:var(--ink);font-weight:500}.decision-meta span{color:var(--muted);font-variant-numeric:tabular-nums}.decision h3{font-size:var(--t-lg);letter-spacing:-.02em;grid-column:1/-1;line-height:1.25}.decision h3 a{transition:color .2s var(--ease)}.decision h3 a:after{content:"";position:absolute;inset:0}.decision:hover h3 a{color:var(--accent-ink)}.decision-context{max-width:56ch;color:var(--muted);grid-column:1/-1;font-size:15px;line-height:1.5}.decision-outcome{grid-column:1/-1;gap:2px;display:grid}.decision-outcome strong{color:var(--ink);font-size:var(--t-xl);letter-spacing:-.035em;font-variant-numeric:tabular-nums;font-weight:500;line-height:1.1}.decision-outcome span{color:var(--muted);font-size:var(--t-xs);line-height:1.45}.decision-kind{border:1px solid var(--line-strong);color:var(--muted);font-size:var(--t-xs);border-radius:999px;grid-area:1/2;place-self:start end;padding:2px 10px;font-style:normal;font-weight:500}.decision-kind.kind-revenue{border-color:var(--accent);color:var(--accent-ink)}.decision-follow{z-index:40;pointer-events:none;position:fixed;top:0;left:0}.decision-follow img{width:320px;max-width:none;box-shadow:0 0 0 1px color-mix(in srgb, var(--ink) 9%, transparent), var(--shadow);opacity:0;transition:opacity .25s var(--ease), scale .35s var(--ease-out);border-radius:10px;position:absolute;top:0;left:0;translate:32px -50%;scale:.9}.decision-follow img.on{opacity:1;scale:1}@media (hover:none),(max-width:1023px){.decision-follow{display:none}}@media (min-width:640px){.decision{column-gap:var(--gutter);grid-template-columns:minmax(0,2fr) minmax(0,4fr) minmax(0,2fr)}.decision-meta{flex-direction:column;grid-area:1/1/span 2;align-self:start;padding-top:2px}.decision h3{grid-area:1/2}.decision-context{grid-area:2/2}.decision-outcome{grid-area:1/3/span 2;align-content:start}.decision-kind{grid-area:3/1;justify-self:start}}@media (min-width:1024px){.decision-filters{top:calc(var(--header) + 32px);flex-direction:column;grid-column:1/span 3;justify-content:start;align-items:start;position:sticky}.decision-filters [role=group]{border-radius:16px;flex-direction:column;width:100%}.decision-filters button{border-radius:12px;justify-content:space-between}.decision-feed{grid-column:4/-1;grid-template-columns:subgrid;display:grid}.decision{grid-column:1/-1;grid-template-columns:subgrid;padding-block:32px}.decision-meta{grid-column:1/span 2}.decision h3,.decision-context{grid-column:3/span 4}.decision-outcome{grid-column:7/span 2}.decision-kind{grid-area:1/9;justify-self:end}}.career{padding-block:var(--section)}.gantt{--label:100%;grid-column:1/-1}.gantt-axis,.gantt-row{gap:8px var(--gutter);grid-template-columns:minmax(0,1fr);display:grid}.gantt-axis>span{display:none}.gantt-years{border-bottom:1px solid var(--line);height:32px;color:var(--muted);font-size:var(--t-xs);font-variant-numeric:tabular-nums;position:relative}.gantt-years span{position:absolute;bottom:8px;translate:-50%}.gantt-years span:first-child{translate:0}.gantt-years i{font-style:normal}.gantt-years span:has(i){font-size:11px}@media (max-width:639px){.gantt-years span:has(i){display:none}}@media (max-width:359px){.gantt-years span:nth-child(3){display:none}}.gantt-row{border-bottom:1px solid var(--line);padding-block:16px}.gantt-label{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.gantt-label b{color:var(--ink);font-weight:500}.gantt-label span,.gantt-label small{color:var(--muted);font-size:var(--t-sm)}.gantt-label small{font-size:var(--t-xs);font-variant-numeric:tabular-nums}.gantt-track{background:repeating-linear-gradient(to right, var(--line) 0 1px, transparent 1px calc(100% / 13));min-height:40px;position:relative}.gantt-bar{background:var(--ink);transform-origin:0;border-radius:999px;height:8px;position:absolute;top:8px}.gantt-row:last-child .gantt-bar{background:var(--accent)}.gantt-milestone{top:22px;left:var(--from);color:var(--ink);font-size:var(--t-xs);white-space:nowrap;font-weight:500;position:absolute}.gantt-milestone.before{left:auto;right:calc(100% - var(--at))}@media (min-width:640px){.gantt{grid-template-columns:subgrid;display:grid}.gantt>ol,.gantt-axis,.gantt-row{grid-column:1/-1;grid-template-columns:subgrid}.gantt>ol{display:grid}.gantt-axis>span{grid-column:1/span 2;display:block}.gantt-years,.gantt-track{grid-column:3/-1}.gantt-label{flex-direction:column;grid-column:1/span 2;gap:2px}}@media (min-width:1024px){.gantt-axis>span,.gantt-label{grid-column:1/span 3}.gantt-years,.gantt-track{grid-column:4/-1}}.career-archive{grid-column:1/-1;gap:24px;margin-top:clamp(64px,8vw,128px);display:grid}.career-archive h3{font-size:var(--t-md);border-top:1px solid var(--ink);padding-top:16px}.career-archive ul{border-bottom:1px solid var(--line)}.career-archive li a{border-top:1px solid var(--line);transition:color .2s var(--ease);grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:4px 16px;padding-block:20px;display:grid}.career-archive li a b{color:var(--ink);font-size:var(--t-lg);letter-spacing:-.02em;font-weight:500}.career-archive li a span{color:var(--muted);grid-column:1/-1;font-size:15px}.career-archive li a small{color:var(--muted);font-size:var(--t-sm);font-variant-numeric:tabular-nums;grid-area:1/2}.career-archive li a svg{color:var(--muted);transition:translate .3s var(--ease-out), color .2s var(--ease);display:none}.career-archive li a:hover svg{color:var(--accent-ink);translate:3px -3px}.career-archive li a:hover b{color:var(--accent-ink)}@media (min-width:1024px){.career-archive{grid-template-columns:subgrid;align-items:start}.career-archive h3{grid-column:1/span 3}.career-archive ul{grid-column:4/-1;grid-template-columns:subgrid;display:grid}.career-archive li{grid-column:1/-1;grid-template-columns:subgrid;display:grid}.career-archive>.text-link{grid-column:4/-1}.career-archive li a{grid-column:1/-1;grid-template-columns:subgrid;align-items:center}.career-archive li a b{grid-column:1/span 3}.career-archive li a span{grid-column:4/span 4}.career-archive li a small{grid-area:auto/8}.career-archive li a svg{grid-column:-2;justify-self:end;display:block}}main{z-index:1;background:var(--bg);view-timeline:--page block;position:relative}body{timeline-scope:--page}.site-footer{z-index:0;background:var(--mist);--rise-timeline:view();--rise-kicker:entry 0% entry 100%;--rise-title:entry 0% entry 100%;--rise-actions:entry 0% entry 100%;--rise-bottom:entry 0% entry 100%;margin-top:0;position:relative}@media (min-width:1024px) and (max-width:1699.98px) and (min-height:760px),(min-width:1700px) and (min-height:820px){.site-footer{--rise-timeline:--page;--rise-kicker:exit 300px exit 600px;--rise-title:exit 200px exit 560px;--rise-actions:exit 120px exit 420px;--rise-bottom:exit 0px exit 120px;position:sticky;bottom:0}main{min-height:calc(100vh - var(--header));box-shadow:0 24px 48px -24px #1418202e}html[data-theme=dark] main{box-shadow:0 24px 48px -24px #000000b3}}.cta{row-gap:32px;padding-block:clamp(64px,7vw,120px)}.cta-kicker{color:var(--muted);font-size:var(--t-lg);grid-column:1/-1}.cta h2{font-size:var(--t-3xl);letter-spacing:-.05em;grid-column:1/-1;line-height:.95}.cta-actions{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:24px 40px;margin-top:16px;display:flex}.cta-email{color:var(--ink);font-size:var(--t-xl);letter-spacing:-.03em;overflow-wrap:anywhere;background:linear-gradient(var(--ink), var(--ink)) 0 100% / 100% 2px no-repeat;transition:color .2s var(--ease);align-items:center;gap:8px;padding-bottom:4px;font-weight:500;display:inline-flex}.cta-email svg{transition:translate .3s var(--ease-out);flex:none}.cta-email:hover{color:var(--muted)}.cta-email:hover svg{translate:4px -4px}.footer-bottom{color:var(--muted);font-size:var(--t-sm);align-items:center;row-gap:16px;padding-block:0 32px}.footer-bottom .wordmark{grid-column:1/-1}.footer-bottom nav{flex-wrap:wrap;grid-column:1/-1;gap:8px 24px;display:flex}.footer-bottom nav a{position:relative}.footer-bottom nav a:after{content:"";position:absolute;inset:-11px -12px}.footer-bottom nav a:hover{color:var(--ink)}.footer-bottom small{font-size:var(--t-sm);grid-column:1/-1}.motion-toggle{white-space:nowrap;border:1px solid var(--line-strong);width:fit-content;height:32px;color:var(--muted);font-size:var(--t-xs);background:0 0;border-radius:999px;grid-column:1/-1;align-items:center;gap:8px;padding:0 12px;font-weight:500;display:inline-flex}.motion-toggle:hover{color:var(--ink);border-color:var(--ink)}@media (min-width:640px){.footer-bottom .wordmark{grid-column:1/span 2}.footer-bottom nav{grid-column:3/span 4}.motion-toggle{grid-column:7/span 2;justify-self:end}.footer-bottom small{grid-column:1/-1}}@media (min-width:1024px){.cta-kicker,.cta-actions{grid-column:1/span 6}.cta h2{grid-column:1/span 10}.footer-bottom .wordmark{grid-column:1/span 3}.footer-bottom nav{grid-column:5/span 4}.motion-toggle{grid-column:9/span 2;justify-self:start}.footer-bottom small{white-space:nowrap;grid-column:11/span 2;justify-self:end}}.page-hero{row-gap:32px;padding-block:clamp(48px,7vw,120px) clamp(48px,6vw,96px)}.page-hero h1{font-size:var(--t-3xl);letter-spacing:-.05em;grid-column:1/-1;line-height:.95}.page-hero>p{max-width:40ch;color:var(--ink);font-size:var(--t-lg);grid-column:1/-1;line-height:1.4}.breadcrumb{color:var(--muted);font-size:var(--t-sm);flex-wrap:wrap;grid-column:1/-1;gap:8px;display:flex}.breadcrumb a{position:relative}.breadcrumb a:after{content:"";position:absolute;inset:-11px -4px}.breadcrumb a:hover,.breadcrumb [aria-current]{color:var(--ink)}@media (min-width:1024px){.page-hero h1{grid-column:1/span 10}.page-hero>p{grid-column:7/span 5}}.case-hero{row-gap:32px;padding-block:clamp(32px,4vw,64px) clamp(48px,6vw,96px)}.case-brand{border-top:1px solid var(--ink);color:var(--muted);font-size:var(--t-sm);flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:8px 16px;margin-top:clamp(16px,4vw,64px);padding-top:16px;display:flex}.case-hero h1{font-size:var(--t-3xl);letter-spacing:-.05em;grid-column:1/-1;line-height:.95}.case-summary{max-width:40ch;color:var(--ink);font-size:var(--t-lg);grid-column:1/-1;line-height:1.4}.case-facts{gap:24px var(--gutter);grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.case-facts>div{border-top:1px solid var(--line);align-content:start;gap:4px;padding-top:12px;display:grid}.case-facts dt{color:var(--muted);font-size:var(--t-xs);font-weight:500}.case-facts dd{color:var(--ink);font-size:15px;line-height:1.45}.case-facts a{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}@media (min-width:1024px){.case-hero h1{grid-column:1/span 10}.case-summary{grid-column:1/span 5}.case-facts{grid-column:7/span 6;grid-template-columns:subgrid}.case-facts>div{grid-column:span 3}}.case-stage{background:var(--mist);view-timeline:--stage block;padding-block:clamp(48px,6vw,96px) clamp(64px,8vw,144px);overflow:clip}.case-stage-tilt{perspective:1600px;grid-column:1/-1;position:relative}.case-main{transform-origin:50% 100%}.case-float{z-index:1;position:absolute}.case-float.c0{width:34%;bottom:-6%;left:-2%}.case-float.c1{width:22%;bottom:-6%;right:-2%}.case-stage.has-phone .case-float.c1{width:16%;bottom:-8%}.case-stage:not(.has-phone) .case-float.c1{width:30%}@media (max-width:639px){.case-float.c0{display:none}.case-float.c1{width:34%}.case-stage.has-phone .case-float.c1{width:26%}}@media (min-width:1024px){.case-stage-tilt{grid-column:2/span 10}.case-float.c0{left:-8%}.case-float.c1{right:-6%}}.case-tldr{padding-block:var(--section) 0;row-gap:24px}.case-tldr h2{border-top:1px solid var(--ink);font-size:var(--t-md);letter-spacing:-.01em;grid-column:1/-1;padding-top:16px;font-weight:500}.case-tldr dl{gap:32px var(--gutter);grid-column:1/-1;display:grid}.case-tldr dl>div{border-top:1px solid var(--line);align-content:start;gap:12px;padding-top:16px;display:grid}.case-tldr dt{color:var(--muted);font-size:var(--t-sm);font-weight:500}.case-tldr dd{color:var(--ink);font-size:var(--t-lg);letter-spacing:-.015em;line-height:1.4}@media (min-width:640px){.case-tldr dl{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1024px){.case-tldr h2{grid-column:1/span 3}.case-tldr dl{grid-column:4/-1;grid-template-columns:subgrid}.case-tldr dl>div{grid-column:span 3}}.workflow{padding-top:var(--section);row-gap:32px}.workflow-title{border-top:1px solid var(--ink);font-size:var(--t-md);grid-column:1/-1;gap:4px;padding-top:16px;display:grid}.workflow-title b{color:var(--ink);font-weight:500}.workflow-title span{color:var(--muted);font-size:var(--t-sm)}.workflow-body{view-timeline:--flow block;grid-column:1/-1;position:relative}.workflow-line{background:var(--accent);transform-origin:top;width:1px;position:absolute;top:16px;bottom:16px;left:15px}.workflow-body ol{gap:32px;display:grid;position:relative}.workflow-body li{grid-template-columns:32px minmax(0,1fr);align-content:start;gap:4px 16px;display:grid}.workflow-node{border:1px solid var(--accent);background:var(--bg);width:32px;height:32px;color:var(--accent-ink);font-size:var(--t-xs);font-variant-numeric:tabular-nums;border-radius:50%;grid-row:span 2;place-items:center;font-weight:600;display:grid}.workflow-body b{color:var(--ink);font-size:var(--t-lg);letter-spacing:-.02em;font-weight:500;line-height:32px}.workflow-body li>span:last-child{color:var(--muted);font-size:15px;line-height:1.45}@media (min-width:1024px){.workflow-title{grid-column:1/span 3}.workflow-body{grid-column:4/-1}.workflow-line{left:16px;right:calc(100% / var(--n));transform-origin:0;width:auto;height:1px;top:16px;bottom:auto}.workflow-body ol{grid-template-columns:repeat(var(--n), minmax(0, 1fr));gap:var(--gutter)}.workflow-body li{grid-template-columns:minmax(0,1fr);row-gap:8px}.workflow-node{grid-row:auto;margin-bottom:16px}.workflow-body b{line-height:1.2}}.case-body{padding-top:var(--section)}.case-body>section{row-gap:16px;padding-bottom:40px}.case-body>section:before,.case-outcome:before,.footer-bottom:before{content:"";border-top:1px solid var(--line);grid-column:1/-1;margin-bottom:24px}.case-body>section:first-child:before,.case-outcome:before{border-top-color:var(--ink)}.case-body h2{font-size:var(--t-xl);letter-spacing:-.035em;grid-column:1/-1;line-height:1.1}.case-body section>p{grid-column:1/-1;max-width:62ch;line-height:1.65}.case-takeaway{color:var(--ink);font-size:var(--t-2xl);letter-spacing:-.045em;text-wrap:balance;grid-column:1/-1;padding-top:64px;line-height:1.02}.case-links{flex-wrap:wrap;grid-column:1/-1;gap:16px 32px;margin-top:32px;display:flex}@media (min-width:1024px){.case-body h2{grid-column:1/span 5}.case-body section>p{grid-column:7/span 5}.case-takeaway{grid-column:1/span 9}}.case-deep{padding-top:var(--section);row-gap:24px}.deep-label{border-top:1px solid var(--ink);color:var(--ink);font-size:var(--t-sm);letter-spacing:0;grid-column:1/-1;margin-top:40px;padding-top:16px;font-weight:500}.ledger{grid-column:1/-1;grid-template-columns:subgrid;margin:0;padding:0;list-style:none;display:grid}.ledger li{grid-column:1/-1;grid-template-columns:subgrid;border-top:1px solid var(--line);row-gap:8px;padding-block:20px 24px;display:grid}.ledger li:first-child{border-top:0;padding-top:8px}.ledger time{color:var(--muted);font-size:var(--t-sm);font-variant-numeric:tabular-nums;grid-column:1/-1}.ledger li>div{grid-column:1/-1;gap:8px;display:grid}.ledger h4{color:var(--ink);font-size:var(--t-lg);letter-spacing:-.025em;font-weight:500;line-height:1.2}.ledger p{max-width:62ch;line-height:1.6}.ledger small{color:var(--muted);font-size:var(--t-sm)}.deep-evidence,.deep-system{gap:32px var(--gutter);grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.deep-evidence>div,.deep-system>div{border-top:1px solid var(--line);align-content:start;gap:8px;padding-top:12px;display:grid}.deep-evidence dt,.deep-system dt{color:var(--ink);font-size:var(--t-sm);font-weight:500}.deep-evidence dd{gap:4px;display:grid}.deep-evidence b{color:var(--ink);font-size:var(--t-xl);letter-spacing:-.035em;font-variant-numeric:tabular-nums;font-weight:500;line-height:1.05}.deep-evidence span,.deep-system dd{color:var(--muted);font-size:var(--t-sm);line-height:1.5}.deep-system dd{color:var(--text)}.deep-sources{max-width:70ch;color:var(--muted);font-size:var(--t-xs);grid-column:1/-1;margin-top:16px;line-height:1.5}@media (min-width:640px){.ledger time{grid-column:1/span 2}.ledger li>div{grid-column:3/-1}.deep-evidence,.deep-system{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:1024px){.ledger time{grid-column:1/span 2}.ledger li>div{grid-column:3/span 8}}.case-study>*{grid-column:1/-1}.case-study{padding-top:clamp(32px,4vw,64px)}.project-media-section{padding-top:var(--section)}.gallery-switch{background:var(--mist);border-radius:999px;flex-wrap:wrap;grid-column:1/-1;justify-self:start;gap:4px;margin-bottom:32px;padding:4px;display:inline-flex}.gallery-switch button{height:36px;color:var(--muted);font-size:var(--t-sm);background:0 0;border:0;border-radius:999px;padding:0 16px;font-weight:500}.gallery-switch button[aria-pressed=true]{background:var(--bg);color:var(--ink);box-shadow:0 1px 3px #1418201a}.gallery-screen{background:var(--mist);border-radius:20px;grid-column:1/-1;gap:16px;padding:clamp(16px,4vw,64px);display:grid}.gallery-screen figcaption{color:var(--ink);font-size:15px}.gallery-screen figcaption span{color:var(--muted);font-size:var(--t-sm);display:block}.project-media-grid{gap:48px var(--gutter);grid-column:1/-1;display:grid}.project-media-grid figure{align-content:start;gap:16px;display:grid}.project-media-grid a{background:var(--mist);border-radius:20px;place-items:center;min-height:100%;padding:clamp(24px,4vw,64px);display:grid}.project-media-grid .mock{width:100%}.project-media-grid figcaption{max-width:48ch;color:var(--muted);font-size:15px}@media (min-width:640px){.project-media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.project-media-grid{grid-template-columns:subgrid}.project-media-grid figure{grid-column:span 6}}.case-outcome{margin-top:var(--section);row-gap:24px}.case-outcome:before{margin-bottom:-8px}.case-outcome-label{color:var(--ink);grid-column:1/-1;font-weight:500}.case-outcome>.count-up{font-size:var(--t-hero);letter-spacing:-.06em;grid-column:1/-1;line-height:.9}.case-outcome-copy{grid-column:1/-1;align-content:end;gap:12px;display:grid}.case-outcome-copy h2{font-size:var(--t-xl);letter-spacing:-.03em}.case-outcome-copy p{max-width:48ch;color:var(--muted);font-size:15px}.case-outcome-copy a{color:var(--ink);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}@media (min-width:1024px){.case-outcome>.count-up{grid-column:1/span 7}.case-outcome-copy{grid-column:8/span 5}}.next-project{margin-top:var(--section);border-top:1px solid var(--line);background:var(--mist);padding-block:clamp(48px,6vw,96px);display:block}.next-project>.grid{align-items:center;row-gap:32px}.next-copy{grid-column:1/-1;gap:8px;display:grid}.next-copy>span:first-child{color:var(--muted);font-size:var(--t-sm)}.next-copy b{color:var(--ink);font-size:var(--t-3xl);letter-spacing:-.05em;transition:color .2s var(--ease);font-weight:500;line-height:.95}.next-copy>span:last-child{max-width:32ch;color:var(--ink);font-size:var(--t-lg)}.next-shot{grid-column:1/-1}.next-shot .mock{transition:translate .6s var(--ease-out), rotate .6s var(--ease-out)}.next-project:hover .next-copy b{color:var(--accent-ink)}.next-project:hover .next-shot .mock{translate:0 -8px;rotate:-1deg}@media (min-width:1024px){.next-copy{grid-column:1/span 5}.next-shot{grid-column:7/span 6}}.work-grid{row-gap:clamp(64px,8vw,128px)}.work-card{grid-column:1/-1;align-content:start;gap:32px;display:grid}.work-card-stage .stage{height:100%}.work-card-stage{border-radius:20px;display:block}.work-card-copy{align-content:start;gap:16px;display:grid}.work-card-copy h2{font-size:var(--t-xl);letter-spacing:-.035em}.work-card-copy>p:not(.study-outcome){max-width:52ch;color:var(--muted)}.work-card-kicker{color:var(--muted);font-size:var(--t-sm);flex-wrap:wrap;gap:4px 16px;display:flex}.work-card-kicker span+span:before{content:"·";margin-right:16px}.is-feature .work-card-copy h2{font-size:var(--t-2xl);letter-spacing:-.045em;text-wrap:balance;line-height:1.02}@media (min-width:1024px){.work-card{grid-area:span 2/span 6;grid-template-rows:subgrid}.work-card.is-feature{grid-area:auto/1/auto/-1;grid-template-columns:subgrid;align-items:center;column-gap:var(--gutter);grid-template-rows:none}.is-feature .work-card-stage{grid-column:1/span 7}.is-feature .work-card-copy{grid-column:9/span 4;gap:24px}.is-feature .work-card-copy h2{font-size:clamp(30px,2.9vw,52px)}}.archive-section{padding-block:var(--section)}.chapter-grid{gap:48px var(--gutter);grid-column:1/-1;display:grid}.chapter-card{gap:12px;display:grid}.chapter-shot{background:var(--mist);border-radius:16px;display:block;overflow:hidden}.chapter-shot img{aspect-ratio:4/3;object-fit:cover;width:100%;transition:scale .6s var(--ease-out)}.chapter-card:hover .chapter-shot img{scale:1.04}.chapter-meta{border-top:1px solid var(--line);justify-content:space-between;gap:16px;padding-top:12px;display:flex}.chapter-meta b{color:var(--ink);font-size:var(--t-lg);letter-spacing:-.02em;transition:color .2s var(--ease);font-weight:500}.chapter-card:hover .chapter-meta b{color:var(--accent-ink)}.chapter-meta small{color:var(--muted);font-size:var(--t-sm);font-variant-numeric:tabular-nums}.chapter-line{color:var(--muted);font-size:15px}@media (min-width:640px){.chapter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.chapter-grid{grid-template-columns:subgrid}.chapter-grid li{grid-column:span 4}}.about-facts{gap:32px var(--gutter);grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:clamp(16px,3vw,48px);display:grid}.about-facts>div{border-top:1px solid var(--ink);align-content:start;gap:8px;padding-top:12px;display:grid}.about-facts dt{color:var(--muted);font-size:var(--t-xs);font-weight:500}.about-facts dd{gap:4px;display:grid}.about-facts :is(.count-up,.about-value){color:var(--ink);font-size:var(--t-2xl);letter-spacing:-.045em;line-height:1}.about-facts dd>span{color:var(--muted);font-size:var(--t-sm)}@media (max-width:1023px){.about-facts{grid-template-columns:repeat(3,minmax(0,1fr))}.about-facts>div:last-child{grid-column:1/-1}}@media (min-width:1024px){.about-facts{grid-template-columns:subgrid}.about-facts>div{grid-column:span 2}.about-facts>div:last-child{grid-column:7/span 6}}.trio-shot{background:var(--mist);border-radius:16px;gap:8px;margin-bottom:16px;padding:clamp(16px,2vw,24px);display:grid}.trio-shot figcaption{color:var(--muted);font-size:var(--t-xs)}.about-lede{padding-bottom:var(--section);row-gap:32px}.about-lede>div{grid-column:1/-1;align-content:start;gap:24px;display:grid}.about-lede>div:first-child p{color:var(--ink);font-size:var(--t-lg);letter-spacing:-.015em;line-height:1.45}.about-lede>div:last-child p{color:var(--muted)}@media (min-width:1024px){.about-lede>div:first-child{grid-column:1/span 6}.about-lede>div:last-child{grid-column:8/span 4}}.trio{row-gap:48px}.trio article{grid-column:1/-1;align-content:start;gap:16px;display:grid}.trio-word{color:var(--accent-ink);font-size:var(--t-sm);font-weight:500}.trio h2{font-size:var(--t-xl);letter-spacing:-.035em}.trio article>p:last-child{max-width:40ch;color:var(--muted)}@media (min-width:640px){.trio article{grid-area:span 4/span 4;grid-template-rows:subgrid;row-gap:16px}.trio-shot{margin-bottom:0}.trio article:last-child{grid-column:1/span 4}}@media (min-width:1024px){.trio article,.trio article:last-child{grid-column:span 4}}.sketchbook{padding-top:var(--section)}.sketchbook-grid{columns:2;column-gap:var(--gutter);grid-column:1/-1}.sketchbook-grid li{break-inside:avoid;margin-bottom:var(--gutter)}.sketchbook-item{color:var(--muted);font-size:var(--t-sm);gap:8px;display:grid}.sketchbook-shot{background:var(--mist);box-shadow:0 0 0 1px color-mix(in srgb, var(--ink) 6%, transparent);border-radius:12px;display:block;overflow:hidden}.sketchbook-shot img{width:100%;transition:scale .6s var(--ease-out)}.sketchbook-item:hover .sketchbook-shot img{scale:1.04}.sketchbook-item:hover>span:last-child{color:var(--ink)}.sketchbook .section-head a{color:var(--ink);text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px}@media (min-width:640px){.sketchbook-grid{columns:4}}@media (min-width:1024px){.sketchbook-grid{columns:4}}.experience-section{padding-block:var(--section)}.experience-list{border-bottom:1px solid var(--line);grid-column:1/-1}.experience-row{gap:8px var(--gutter);border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr);padding-block:24px;display:grid}.experience-row>span{color:var(--muted);font-size:var(--t-sm);font-variant-numeric:tabular-nums}.experience-row h3{font-size:var(--t-lg);letter-spacing:-.02em}.experience-role{color:var(--accent-ink);font-size:var(--t-sm);margin:2px 0 8px;font-weight:500}.experience-row p{max-width:64ch;color:var(--text);font-size:15px}@media (min-width:1024px){.experience-list{grid-template-columns:subgrid;display:grid}.experience-list .experience-row{grid-column:1/-1;grid-template-columns:subgrid}.experience-list .experience-row>span{grid-column:1/span 3}.experience-list .experience-row>div{grid-column:4/span 7}}.footer-privacy{position:relative}.footer-privacy:after{content:"";position:absolute;inset:-11px -8px}.footer-privacy:hover{color:var(--ink)}.privacy-page{padding-block:clamp(48px, 7vw, 120px) var(--section);align-items:start;row-gap:clamp(32px,4vw,64px)}.privacy-page h1{font-size:var(--t-3xl);letter-spacing:-.05em;grid-column:1/-1;line-height:.95}.privacy-body{grid-column:1/-1;gap:32px;display:grid}.privacy-lede{max-width:34ch;font-size:var(--t-lg);line-height:1.4}.privacy-switch{gap:8px;display:grid}.privacy-switch button{width:fit-content;min-height:44px;color:var(--ink);font:inherit;background:0 0;border:0;align-items:center;gap:12px;padding:0;font-weight:500;display:inline-flex}.privacy-switch-track{border:1px solid var(--line-strong);background:var(--bg);border-radius:999px;width:40px;height:24px;transition:background-color .2s,border-color .2s;position:relative}.privacy-switch-track:after{content:"";background:var(--ink);border-radius:50%;width:16px;height:16px;transition:translate .2s cubic-bezier(.2,.8,.2,1);position:absolute;top:3px;left:3px}.privacy-switch [aria-checked=true] .privacy-switch-track{border-color:var(--ink);background:var(--ink)}.privacy-switch [aria-checked=true] .privacy-switch-track:after{background:var(--accent);translate:16px}.privacy-switch button:disabled{opacity:.5}.privacy-switch p,.privacy-quiet{min-height:1.4em;color:var(--muted);font-size:15px}.privacy-notes{border-bottom:1px solid var(--line);display:grid}.privacy-notes>div{border-top:1px solid var(--line);gap:4px;padding-block:16px;display:grid}.privacy-notes dt{font-weight:500}.privacy-notes dd{max-width:62ch;color:var(--muted);font-size:15px}@media (prefers-reduced-motion:reduce){.privacy-switch-track,.privacy-switch-track:after{transition:none}}html.motion-paused .privacy-switch-track,html.motion-paused .privacy-switch-track:after{transition:none}@media (min-width:1024px){.privacy-page h1{grid-column:1/span 5}.privacy-body{grid-column:7/span 6}}body:has(.contact-page) .cta{display:none}body:has(.contact-page) .footer-bottom{padding-top:clamp(40px,5vw,72px)}.contact-page{padding-block:clamp(48px, 7vw, 120px) var(--section);align-items:start;row-gap:clamp(40px,5vw,80px)}.contact-page h1{font-size:var(--t-3xl);letter-spacing:-.05em;grid-column:1/-1;line-height:.95}.contact-intro{grid-column:1/-1;gap:32px;display:grid}.contact-lede{max-width:34ch;color:var(--ink);font-size:var(--t-lg);line-height:1.4}.contact-helps{border-bottom:1px solid var(--line);display:grid}.contact-helps>div{border-top:1px solid var(--line);gap:4px;padding-block:16px;display:grid}.contact-helps dt{color:var(--ink);font-weight:500}.contact-helps dd,.contact-elsewhere{color:var(--muted);font-size:15px}.contact-elsewhere a{color:var(--ink);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.contact-panel{background:var(--mist);border-radius:20px;grid-column:1/-1;padding:clamp(20px,3vw,40px)}.contact-form{gap:24px;display:grid}.contact-trap{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.contact-topics{border:0;flex-wrap:wrap;gap:8px;margin:0;padding:0;display:flex}.contact-topics legend,.contact-field label{color:var(--ink);font-size:var(--t-sm);margin-bottom:8px;padding:0;font-weight:500}.contact-topics label{cursor:pointer;position:relative}.contact-topics input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.contact-topics span{border:1px solid var(--line-strong);background:var(--bg);height:40px;color:var(--muted);font-size:var(--t-sm);transition:border-color .2s var(--ease), color .2s var(--ease), background-color .2s var(--ease);border-radius:999px;align-items:center;padding:0 16px;font-weight:500;display:inline-flex}.contact-topics label:hover span{color:var(--ink)}.contact-topics input:checked+span{border-color:var(--ink);background:var(--ink);color:var(--bg)}.contact-topics input:focus-visible+span{outline:2px solid var(--accent);outline-offset:3px}.contact-pair{gap:24px;display:grid}.contact-field{display:grid}.contact-field input,.contact-field textarea{border:1px solid var(--line-strong);background:var(--bg);width:100%;min-height:44px;color:var(--ink);font:inherit;transition:border-color .2s var(--ease), box-shadow .2s var(--ease);border-radius:12px;padding:12px 16px;font-size:16px}.contact-field textarea{resize:vertical;min-height:160px;line-height:1.5}.contact-field input::placeholder,.contact-field textarea::placeholder{color:var(--muted)}.contact-field input:hover,.contact-field textarea:hover{border-color:var(--muted)}.contact-field input:focus,.contact-field textarea:focus{border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 35%, transparent);outline:none}.contact-field[data-invalid] input,.contact-field[data-invalid] textarea{border-color:var(--accent-ink)}.contact-field small{color:var(--accent-ink);font-size:var(--t-sm);margin-top:8px}.contact-submit{flex-wrap:wrap;align-items:center;gap:16px 24px;display:flex}.contact-submit .button:disabled{cursor:progress;opacity:.6}.contact-submit p{color:var(--muted);font-size:var(--t-sm)}.contact-submit p.is-error{color:var(--accent-ink);font-weight:500}.contact-sent{gap:8px;padding-block:32px;display:grid}.contact-sent:focus{outline:none}.contact-sent b{color:var(--ink);font-size:var(--t-xl);letter-spacing:-.035em;font-weight:500}.contact-sent p{color:var(--muted)}@media (min-width:640px){.contact-pair{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.contact-page h1{grid-column:1/span 10}.contact-intro{grid-column:1/span 5}.contact-panel{grid-column:7/span 6}}.archive-metric{color:var(--ink);font-size:var(--t-3xl);letter-spacing:-.05em;font-variant-numeric:tabular-nums;align-items:baseline;gap:16px;font-weight:500;line-height:1;display:flex}.archive-metric span{color:var(--muted);letter-spacing:-.02em;font-size:.4em}.case-source{color:var(--muted);font-size:var(--t-sm)}@media (min-width:1024px){.page-hero .case-facts{grid-column:7/span 6}}.archive-stage .grid{justify-items:center}.archive-lead{grid-column:1/-1;justify-items:center;width:100%;display:grid}.archive-lead .mock{width:fit-content;max-width:100%}.archive-lead img{width:auto;max-height:min(72vh,760px)}@media (min-width:1024px){.archive-lead{grid-column:2/span 10}}.archive-intro,.archive-measure,.archive-list-items{grid-column:1/-1;gap:16px;max-width:62ch;display:grid}.archive-list-items{border-bottom:1px solid var(--line);gap:0}.archive-list-items li{border-top:1px solid var(--line);padding-block:12px;line-height:1.55}@media (min-width:1024px){.archive-intro,.archive-measure,.archive-list-items{grid-column:7/span 5}}.archive-gallery{padding-top:var(--section)}.archive-gallery-grid{gap:48px var(--gutter);grid-column:1/-1;display:grid}.archive-gallery-grid figure{align-content:start;gap:12px;display:grid}.archive-gallery-grid a{background:var(--mist);border-radius:20px;place-items:center;padding:clamp(16px,3vw,48px);display:grid}.archive-gallery-grid .mock{width:100%}.archive-gallery-grid .is-tall .mock{width:min(100%,360px)}.archive-gallery-grid figcaption{color:var(--muted);font-size:var(--t-sm)}@media (min-width:640px){.archive-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.archive-gallery-grid .is-wide{grid-column:1/-1}}.not-found{row-gap:24px;padding-block:clamp(48px,7vw,120px) 0}.not-found>*{grid-column:1/-1;justify-self:start}.not-found .big{color:var(--line-strong);letter-spacing:-.07em;font-size:clamp(120px,26vw,420px);font-weight:300;line-height:.8}.not-found h1{font-size:var(--t-2xl);letter-spacing:-.045em}.not-found p{color:var(--muted);font-size:var(--t-lg)}.resume-gate{padding-block:clamp(48px, 8vw, 144px) var(--section);align-items:end;row-gap:40px}.resume-peek{grid-column:1/-1;grid-template-columns:subgrid;border-top:1px solid var(--line);row-gap:40px;margin-top:clamp(40px,6vw,96px);padding-top:clamp(40px,6vw,96px);display:grid}.resume-peek-head{grid-column:1/-1;gap:12px;display:grid}.resume-peek-head h2{font-size:var(--t-2xl);letter-spacing:-.04em;line-height:1.02}.resume-peek-head p{max-width:44ch;color:var(--muted);font-size:var(--t-lg);line-height:1.45}.resume-peek-facts{margin-top:0}.resume-peek-sheet{grid-column:1/-1;max-width:none;margin:0;position:relative}.resume-peek-sheet .resume-heading h1{font-size:clamp(2rem,3.4vw,2.8rem)}.resume-peek-badge{background:var(--mist);height:28px;color:var(--muted);font-size:var(--t-xs);border-radius:999px;align-items:center;gap:6px;margin-bottom:24px;padding:0 10px;font-weight:500;display:inline-flex}@media (min-width:1024px){.resume-peek-head{grid-column:1/span 6}.resume-peek-facts{top:calc(var(--header) + 32px);grid-column:1/span 4;grid-template-columns:1fr;align-self:start;gap:24px;position:sticky}.resume-peek-facts>div,.resume-peek-facts>div:last-child{grid-column:auto}.resume-peek-sheet{grid-column:5/span 8}}.resume-gate-copy{color:var(--ink);grid-column:1/-1;gap:16px;display:grid}.resume-gate-copy h1{font-size:var(--t-3xl);letter-spacing:-.05em;line-height:.95}.resume-gate-copy p{max-width:36ch;color:var(--muted);font-size:var(--t-lg);line-height:1.4}.resume-gate-panel{background:var(--mist);border-radius:20px;grid-column:1/-1;padding:clamp(20px,3vw,32px)}.resume-gate-form{gap:8px;display:grid}.resume-gate-form label{color:var(--ink);font-size:var(--t-sm);font-weight:500}.resume-gate-row{flex-wrap:wrap;gap:8px;display:flex}.resume-gate-row input{border:1px solid var(--line-strong);background:var(--bg);min-height:40px;color:var(--ink);font:inherit;border-radius:999px;flex:200px;padding:0 16px;font-size:16px}.resume-gate-row input:focus{border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 35%, transparent);outline:none}.resume-gate-form [role=status]{min-height:24px;color:var(--muted);font-size:var(--t-sm);margin-top:4px}.resume-gate-form [role=status] a,.resume-gate-note a{color:var(--ink);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.resume-gate-form .is-error{color:var(--accent-ink);font-weight:500}.resume-gate-note{color:var(--muted);font-size:var(--t-sm);grid-column:1/-1}@media (min-width:1024px){.resume-gate-copy{grid-column:1/span 6}.resume-gate-panel{grid-column:7/span 6}}.resume-page{padding-bottom:var(--section);background:linear-gradient(var(--bg) 0 160px, var(--mist) 160px)}.resume-bar{align-items:center;row-gap:16px;padding-block:clamp(32px,4vw,56px) 32px}.resume-bar>p{grid-column:1/-1;gap:2px;display:grid}.resume-bar b{color:var(--ink);font-size:var(--t-xl);letter-spacing:-.035em;font-weight:500}.resume-bar span{color:var(--muted);font-size:var(--t-sm)}.resume-actions{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:8px 16px;display:flex}@media (min-width:640px){.resume-bar>p{grid-column:1/span 4}.resume-actions{grid-column:5/-1;justify-content:end}}@media (min-width:1024px){.resume-bar>p{grid-column:1/span 6}.resume-actions{grid-column:7/-1}}:is(.resume-sheet,.resume-peek-sheet){max-width:920px;margin:0 var(--margin);background:var(--raise);box-shadow:0 0 0 1px var(--line), var(--shadow);border-radius:8px;padding:clamp(24px,5vw,64px)}@media (min-width:1000px){:is(.resume-sheet,.resume-peek-sheet){margin-inline:auto}}.resume-heading{border-bottom:2px solid var(--accent);flex-wrap:wrap;justify-content:space-between;align-items:end;gap:24px;padding-bottom:24px;display:flex}.resume-heading h1{letter-spacing:-.05em;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:500;line-height:1}.resume-heading p{color:var(--muted);margin-top:8px;font-size:17px}.resume-contact{text-align:right;font-size:13px;line-height:1.8}.resume-contact a:hover{color:var(--accent-ink)}@media screen{.resume-contact a{position:relative}.resume-contact a:after{content:"";position:absolute;inset:-4px 0}}.resume-summary{max-width:64ch;color:var(--ink);margin:24px 0 8px;font-size:16px;line-height:1.55}.resume-section{border-top:1px solid var(--line);gap:8px 32px;margin-top:24px;padding-top:24px;display:grid}.resume-section h2{color:var(--ink);letter-spacing:0;font-size:13px;font-weight:600;line-height:1.6}:is(.resume-sheet,.resume-peek-sheet) .experience-row{border-top:0;grid-template-columns:minmax(0,1fr) auto;gap:4px 24px;padding-block:0 20px}:is(.resume-sheet,.resume-peek-sheet) .experience-row:last-child{padding-bottom:0}:is(.resume-sheet,.resume-peek-sheet) .experience-row>span{white-space:nowrap;grid-area:1/2;font-size:13px}:is(.resume-sheet,.resume-peek-sheet) .experience-row>div{grid-area:1/1}:is(.resume-sheet,.resume-peek-sheet) .experience-row h3{letter-spacing:-.02em;font-size:17px;font-weight:600}:is(.resume-sheet,.resume-peek-sheet) .experience-role{color:var(--muted);margin:0 0 6px;font-size:14px;font-weight:500}:is(.resume-sheet,.resume-peek-sheet) .experience-row p{max-width:none;font-size:14px;line-height:1.55}.resume-projects{font-size:14px;line-height:1.6}.resume-projects a{color:var(--ink);font-weight:600}.resume-projects a:hover{color:var(--accent-ink)}@media (min-width:720px){.resume-section{grid-template-columns:160px minmax(0,1fr)}}@media (max-width:639px){:is(.resume-sheet,.resume-peek-sheet) .experience-row{grid-template-columns:minmax(0,1fr)}:is(.resume-sheet,.resume-peek-sheet) .experience-row>span{grid-area:2/1}.resume-contact{text-align:left}}@media (prefers-reduced-motion:no-preference){html.js:not(.motion-paused) .hero-guides span{animation:draw-down 1.4s var(--ease-out) both;animation-delay:calc(var(--i) * 45ms)}html.js:not(.motion-paused) .hero-title .line>span{animation:rise 1.1s var(--ease-out) both;animation-delay:.25s}html.js:not(.motion-paused) .hero-title .line+.line>span{animation-delay:.36s}html.js:not(.motion-paused) .hero-name,html.js:not(.motion-paused) .hero-role,html.js:not(.motion-paused) .hero-intro,html.js:not(.motion-paused) .hero-xray{animation:fade-up .9s var(--ease-out) both;animation-delay:.55s}html.js:not(.motion-paused) .filmstrip{animation:fade-up 1.2s var(--ease-out) .6s both}html.js:not(.motion-paused) .hidden-name>[aria-hidden]{animation:3.2s linear infinite ghost-shimmer;-webkit-mask-image:linear-gradient(100deg,#000 30%,#00000059 50%,#000 70%);mask-image:linear-gradient(100deg,#000 30%,#00000059 50%,#000 70%);-webkit-mask-size:300% 100%;mask-size:300% 100%}html.js:not(.motion-paused) [data-reveal]{transition:opacity .8s var(--ease-out), translate .8s var(--ease-out);transition-delay:calc(var(--i,0) * 70ms)}html.js:not(.motion-paused) [data-reveal]:not(.in){opacity:0;translate:0 24px}html.js:not(.motion-paused) .section-head[data-reveal]>p{transition:opacity .8s var(--ease-out) .14s, translate .8s var(--ease-out) .14s}html.js:not(.motion-paused) .section-head[data-reveal]:not(.in)>p{opacity:0;translate:0 16px}html.js .icon-button,html.js .decision-filters button,html.js .gallery-switch button,html.js .motion-toggle,html.js .text-button,html.js .button{transition-property:background-color,border-color,color,translate,scale,box-shadow}html.js .gallery-switch button,html.js .motion-toggle{transition-duration:.2s;transition-timing-function:var(--ease)}html.js :is(.icon-button,.decision-filters button,.gallery-switch button,.motion-toggle,.text-button,.button):active{transition-duration:80ms;scale:.96}html.js:not(.motion-paused) .gantt-row .gantt-bar{transition:scale 1.1s var(--ease-out);transition-delay:calc(var(--i,0) * 90ms + .15s)}html.js:not(.motion-paused) .gantt-row:not(.in) .gantt-bar{scale:0 1}@supports (animation-timeline:view()){html:not(.motion-paused) .film-row{animation:linear both drift-left;animation-timeline:--film;animation-range:cover}html:not(.motion-paused) .film-row.r1{animation-name:drift-right}html:not(.motion-paused) .study-stage .stage,html:not(.motion-paused) .work-card-stage .stage{animation:linear both settle;animation-timeline:view();animation-range:entry cover 35%}html:not(.motion-paused) .stage .stage-third{animation:linear both float-up;animation-timeline:view();animation-range:cover}html:not(.motion-paused) .case-main{animation:linear both tilt-flat;animation-timeline:--stage;animation-range:cover cover 50%}html:not(.motion-paused) .case-float{animation:linear both float-up;animation-timeline:--stage;animation-range:cover}html:not(.motion-paused) .case-float.c1{animation-name:float-up-more}html:not(.motion-paused) .loop-line span{animation:linear both grow-x;animation-timeline:--loop;animation-range:entry 80% cover 60%}html:not(.motion-paused) .loop-node{animation:linear both node-on;animation-timeline:--loop}html:not(.motion-paused) .loop-steps li:first-child .loop-node{animation-range:entry 80% entry 82%}html:not(.motion-paused) .loop-steps li:nth-child(2) .loop-node{animation-range:cover 22% cover 24%}html:not(.motion-paused) .loop-steps li:nth-child(3) .loop-node{animation-range:cover 30% cover 32%}html:not(.motion-paused) .loop-steps li:nth-child(4) .loop-node{animation-range:cover 38% cover 40%}html:not(.motion-paused) .loop-steps li:nth-child(5) .loop-node{animation-range:cover 46% cover 48%}html:not(.motion-paused) .loop-steps li:nth-child(6) .loop-node{animation-range:cover 54% cover 56%}html:not(.motion-paused) .workflow-line{animation:linear both grow-y;animation-timeline:--flow;animation-range:entry 60% cover 50%}html:not(.motion-paused) .next-shot .mock{animation:linear both settle;animation-timeline:view();animation-range:entry cover 40%}html:not(.motion-paused) .cta>*,html:not(.motion-paused) .footer-bottom>*{animation:linear both footer-rise;animation-timeline:var(--rise-timeline)}html:not(.motion-paused) .cta-kicker{animation-range:var(--rise-kicker)}html:not(.motion-paused) .cta h2{animation-range:var(--rise-title)}html:not(.motion-paused) .cta-actions{animation-range:var(--rise-actions)}html:not(.motion-paused) .footer-bottom>*{animation-range:var(--rise-bottom)}@media (min-width:1024px){html:not(.motion-paused) .workflow-line{animation-name:grow-x}}}html.js:not(.motion-paused,.just-unlocked,.settled) :is(.page-hero:not(.archive-hero),.case-hero,.contact-page,.not-found,.resume-gate)>*,html.js:not(.motion-paused,.settled) .archive-hero>:not(h1){animation:intro-rise .7s var(--ease-out) both}html.js:not(.motion-paused) :is(.page-hero,.case-hero,.contact-page,.not-found,.resume-gate)>:nth-child(2){animation-delay:70ms}html.js:not(.motion-paused) :is(.page-hero,.case-hero,.contact-page,.not-found,.resume-gate)>:nth-child(3){animation-delay:.14s}html.js:not(.motion-paused) :is(.page-hero,.case-hero,.contact-page,.not-found,.resume-gate)>:nth-child(n+4){animation-delay:.21s}html.js:not(.motion-paused) .chapter-shot{transition:translate .5s var(--ease-out)}html.js:not(.motion-paused) .chapter-card:is(:hover,:focus-visible) .chapter-shot{translate:0 -6px}html.js:not(.motion-paused) .gantt-row .gantt-milestone{transition:opacity .6s var(--ease-out), translate .6s var(--ease-out);transition-delay:calc(var(--i,0) * 90ms + .75s)}html.js:not(.motion-paused) .gantt-row:not(.in) .gantt-milestone{opacity:0;translate:0 6px}@supports (animation-timeline:view()){html:not(.motion-paused) .hero-title{animation:linear both hero-hand-off;animation-timeline:view();animation-range:exit}html:not(.motion-paused) :is(.chapter-shot,.sketchbook-shot) img{animation:linear both shot-pan;animation-timeline:view();animation-range:cover;transform:scale(1.08)}html:not(.motion-paused) :is(.proof-head,.career-archive h3,.about-facts>div,.case-tldr h2,.workflow-title){border-top-color:#0000;position:relative}html:not(.motion-paused) :is(.proof-head,.career-archive h3,.about-facts>div,.case-tldr h2,.workflow-title):before{content:"";background:var(--ink);transform-origin:0;height:1px;animation:linear both grow-x;animation-timeline:view();animation-range:entry cover 30%;position:absolute;top:-1px;left:0;right:0}@media (max-width:1023px){html:not(.motion-paused) .loop-steps li:before{animation:linear both grow-x;animation-timeline:view();animation-range:cover 10% cover 40%}html:not(.motion-paused) .loop-steps li:nth-child(n) .loop-node{animation-timeline:view();animation-range:cover 6% cover 10%}}}}@media (prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine){html.js:not(.motion-paused) :is(.button,.nav-pill,.cta-email){translate:var(--mx,0px) var(--my,0px)}html.js:not(.motion-paused) :is(.button,.nav-pill,.cta-email):not(:active){transition-property:background-color,border-color,color,translate,scale;transition-duration:.25s,.25s,.25s,.6s,.25s;transition-timing-function:var(--ease), var(--ease), var(--ease), cubic-bezier(.34, 1.56, .64, 1), var(--ease)}}@keyframes intro-rise{0%{opacity:.55;translate:0 12px}}@keyframes hero-hand-off{to{opacity:.3;translate:0 -40px}}@keyframes shot-pan{0%{translate:0 -3%}to{translate:0 3%}}@keyframes draw-down{0%{opacity:0;scale:1 0}}@keyframes rise{0%{translate:0 105%}}@keyframes fade-up{0%{opacity:0;translate:0 24px}}@keyframes footer-rise{0%{opacity:0;translate:0 56px}}@keyframes drift-left{0%{translate:0}to{translate:-24%}}@keyframes drift-right{0%{translate:-30%}to{translate:-6%}}@keyframes settle{0%{translate:0 48px;scale:.94}}@keyframes float-up{0%{translate:0 48px}to{translate:0 -48px}}@keyframes float-up-more{0%{translate:0 96px}to{translate:0 -64px}}@keyframes tilt-flat{0%{transform:rotateX(16deg)scale(.94)}}@keyframes grow-x{0%{scale:0 1}}@keyframes grow-y{0%{scale:1 0}}@keyframes node-on{0%{background:var(--line-strong)}}html.xray:not(.xr-no-wires) main *,html.xray:not(.xr-no-wires) .site-header *,html.xray:not(.xr-no-wires) .site-footer *{outline:1px solid var(--xr-wire);outline-offset:-1px}html.xray main svg *,html.xray .site-header svg *,html.xray .site-footer svg *{outline:0}html.xray :focus-visible{outline:2px solid var(--accent)!important;outline-offset:2px!important}html.xray:not(.xr-no-wires) main img{opacity:.3;filter:grayscale()}html.xray:not(.xr-no-wires) .mock:after{content:attr(data-size);z-index:2;background:var(--xr);color:#000;font:600 11px/1.4 var(--body);font-variant-numeric:tabular-nums;border-radius:4px;padding:2px 6px;position:absolute;bottom:8px;right:8px}html.xray:not(.xr-no-wires) [data-component]{position:relative}html.xray:not(.xr-no-wires) [data-component]:before{content:"<" attr(data-component) " />";top:0;left:var(--margin);z-index:30;background:var(--xr);color:#000;font:600 11px/1.5 var(--body);border-radius:0 0 6px 6px;padding:2px 8px;position:absolute}.xr-baseline{z-index:58;pointer-events:none;background:repeating-linear-gradient(to bottom, transparent 0 7px, var(--xr-base) 7px 8px);width:100%;position:absolute;top:0;left:0}.xr-cols{z-index:59;pointer-events:none;position:fixed;inset:0}.xr-cols .grid{height:100%;position:relative}.xr-cols .grid:before,.xr-cols .grid:after{content:"";width:var(--margin);background:repeating-linear-gradient(-45deg, var(--xr-col) 0 1px, transparent 1px 6px);background-color:color-mix(in srgb, var(--xr) 4%, transparent);position:absolute;top:0;bottom:0}.xr-cols .grid:before{left:0}.xr-cols .grid:after{right:0}.xr-cols span{border-inline:1px solid color-mix(in srgb, var(--xr) 30%, transparent);background:var(--xr-col);transform-origin:top;position:relative}.xr-cols i{top:calc(var(--header) + 8px);color:var(--accent-ink);font:600 10px/1 var(--body);font-variant-numeric:tabular-nums;font-style:normal;position:absolute;left:50%;translate:-50%}.xr-ruler{z-index:70;pointer-events:none;background-color:color-mix(in srgb, var(--bg) 90%, transparent);color:var(--muted);font:500 9px/1 var(--body);font-variant-numeric:tabular-nums;position:fixed;overflow:hidden}.xr-ruler-x{border-bottom:1px solid var(--line-strong);background-image:repeating-linear-gradient(to right, var(--line-strong) 0 1px, transparent 1px 64px), repeating-linear-gradient(to right, var(--line) 0 1px, transparent 1px 8px);background-position:0 0,0 100%;background-repeat:no-repeat;background-size:100% 100%,100% 5px;height:18px;top:0;left:0;right:0}.xr-ruler-y{border-right:1px solid var(--line-strong);background-image:repeating-linear-gradient(to bottom, var(--line-strong) 0 1px, transparent 1px 64px), repeating-linear-gradient(to bottom, var(--line) 0 1px, transparent 1px 8px);background-position:0 0,100% 0;background-repeat:no-repeat;background-size:100% 100%,5px 100%;width:18px;top:0;bottom:0;left:0}.xr-ruler span{position:absolute}.xr-ruler-x span{margin-left:3px;top:3px}.xr-ruler-y span{writing-mode:vertical-rl;margin-top:-3px;left:3px;translate:0 -100%;rotate:180deg}.xr-ruler-y span:first-child{display:none}.xr-ruler b{background:color-mix(in srgb, var(--xr) 28%, transparent);position:absolute}.xr-ruler-x b{top:0;bottom:0}.xr-ruler-y b{left:0;right:0}.xr-cross{z-index:69;pointer-events:none;position:fixed}.xr-cross-x{border-top:1px dashed color-mix(in srgb, var(--xr) 70%, transparent);left:0;right:0}.xr-cross-y{border-left:1px dashed color-mix(in srgb, var(--xr) 70%, transparent);top:0;bottom:0}.xr-box>span{z-index:66;pointer-events:none;position:fixed}.xr-m{border-style:solid;border-color:var(--xr-m)}.xr-p{border-style:solid;border-color:var(--xr-p);background:var(--xr-c);background-clip:padding-box}.xr-b{outline:1px solid var(--xr)}.xr-box .xr-tip{z-index:85;color:#e9eaec;width:max-content;max-width:292px;font:500 12px/1.45 var(--body);font-variant-numeric:tabular-nums;background:#000;border-radius:8px;gap:2px;padding:8px 10px;display:grid;box-shadow:0 8px 24px #00000040}.xr-tip b{color:#ff8a57;font-weight:600}.xr-tip em{color:#fff;font-style:normal}.xr-tip span{color:#a9adb3;align-items:center;gap:6px;display:flex}.xr-tip i,.xr-panel i{border-radius:2px;width:10px;height:10px;display:inline-block}.sw-m{background:#ffa600b3}.sw-p{background:#2eb85cb3}.sw-c,.sw-grid{background:#ff4d0059}.sw-baseline{background:#2e7dff80}.sw-wires{border:1px solid var(--xr)}.sw-boxes{background:#2e7dff59}.xr-panel{z-index:80;background:var(--bg);width:288px;color:var(--text);box-shadow:0 0 0 1px var(--line-strong), 0 24px 48px -16px #0000004d;border-radius:16px;gap:12px;padding:16px;font-size:13px;line-height:1.45;display:grid;position:fixed;bottom:16px;left:28px}.xr-panel header{justify-content:space-between;align-items:center;display:flex}.xr-panel header b{color:var(--ink);align-items:center;gap:8px;font-size:15px;font-weight:600;display:inline-flex}.xr-panel header b:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px}.xr-panel header .icon-button{width:32px;height:32px}.xr-panel>p{color:var(--muted)}.xr-panel fieldset{border:0;flex-wrap:wrap;gap:4px;margin:0;padding:0;display:flex}.xr-panel label{border:1px solid var(--line-strong);height:28px;color:var(--ink);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-weight:500;display:inline-flex;position:relative}.xr-panel label:has(input:not(:checked)){color:var(--muted);border-style:dashed}.xr-panel label:has(input:not(:checked)) i{opacity:.3}.xr-panel label:has(:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.xr-panel input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.xr-panel dl{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;padding-top:12px;display:grid}.xr-panel dl div{display:grid}.xr-panel dt{color:var(--muted);font-size:11px}.xr-panel dd{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:500}.xr-legend{color:var(--muted);flex-wrap:wrap;gap:12px;font-size:12px;display:flex}.xr-legend span{align-items:center;gap:6px;display:inline-flex}html.xr-no-grid .xr-cols,html.xr-no-baseline .xr-baseline{display:none}@media (max-width:639px){.xr-panel{left:max(8px, env(safe-area-inset-left));right:max(8px, env(safe-area-inset-right));bottom:max(8px, env(safe-area-inset-bottom));gap:8px;width:auto;padding:8px 12px 12px}.xr-panel>p,.xr-legend,.xr-panel dl div:nth-child(n+5){display:none}.xr-panel dl{grid-template-columns:repeat(4,minmax(0,1fr));padding-top:8px}}.xr-layer{z-index:59;pointer-events:none;position:fixed;inset:0}@media (prefers-reduced-motion:no-preference){.xr-layer{animation:xr-open .75s var(--ease-out) both}.xr-layer.out{animation:.5s cubic-bezier(.7,0,.84,0) both xr-close}.xr-cols span{animation:xr-column .8s var(--ease-out) both;animation-delay:calc(var(--i) * 35ms + .1s)}.xr-baseline{animation:xr-fade .6s .2s var(--ease-out) both}.xr-baseline.out,.xr-panel.out{animation:.35s ease-in reverse both xr-fade}.xr-panel{animation:fade-up .5s .25s var(--ease-out) both}html.xr-anim:not(.xr-no-wires) main *,html.xr-anim:not(.xr-no-wires) .site-header *,html.xr-anim:not(.xr-no-wires) .site-footer *{outline-offset:-1px;transition:outline-color .6s var(--ease-out);outline:1px solid #0000}html.xr-anim main img{transition:opacity .6s var(--ease-out), filter .6s var(--ease-out)}html.xray:not(.xr-no-wires) [data-component]:before,html.xray:not(.xr-no-wires) .mock:after{animation:xr-fade .5s .3s var(--ease-out) both}}@keyframes xr-open{0%{clip-path:circle(0 at var(--xr-x) var(--xr-y))}to{clip-path:circle(var(--xr-r) at var(--xr-x) var(--xr-y))}}@keyframes xr-close{0%{clip-path:circle(var(--xr-r) at var(--xr-x) var(--xr-y))}to{clip-path:circle(0 at var(--xr-x) var(--xr-y))}}@keyframes xr-column{0%{clip-path:inset(0 0 100%)}to{clip-path:inset(0)}}@keyframes xr-fade{0%{opacity:0}}.hero-xray-actions{flex-wrap:wrap;gap:8px;display:flex}.story-bar{--story-inset:max(8px, env(safe-area-inset-left), env(safe-area-inset-right));left:50%;bottom:max(8px, env(safe-area-inset-bottom));z-index:90;width:min(720px, calc(100% - 2 * var(--story-inset)));background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(16px)saturate(1.4);backdrop-filter:blur(16px)saturate(1.4);box-shadow:0 0 0 1px var(--line-strong), 0 24px 48px -16px #0000004d;border-radius:24px;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"nav caption tools";align-items:center;column-gap:8px;padding:6px;display:grid;position:fixed;overflow:hidden;translate:-50%}.story-progress{background:var(--line);height:2px;position:absolute;inset:0 0 auto}.story-progress span{background:var(--accent);transform-origin:0;position:absolute;inset:0}.story-controls{align-items:center;gap:4px;display:flex}.story-nav{grid-area:nav}.story-tools{grid-area:tools}.story-controls .icon-button{width:36px;height:36px}.story-controls .icon-button:disabled{opacity:.35;cursor:default}.story-controls .icon-button:disabled:hover{background:0 0}.story-play{border-color:var(--ink)}.story-bar .tool-label{display:none}.story-caption{grid-area:caption;min-width:0;line-height:1.3;display:grid}.story-caption span{color:var(--muted);font-size:var(--t-xs);font-variant-numeric:tabular-nums;white-space:nowrap}.story-caption b{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:500;overflow:hidden}@media (min-width:640px){.story-bar .sound-toggle{grid-auto-flow:column;gap:6px;width:auto;min-width:108px;padding:0 14px 0 10px}.story-bar .tool-label{display:inline}.story-bar .sound-toggle:not([aria-pressed=true]){border-color:var(--line-strong)}}@media (max-width:639px){.story-bar{border-radius:20px;grid-template-areas:"caption caption caption""nav.tools";row-gap:2px;padding:8px 6px 6px}.story-caption{align-items:baseline;gap:8px;padding-inline:10px;display:flex}.story-caption span{flex:none}}html.story .xr-panel,html.story .decision-follow,html.xray .decision-follow{display:none}@media (prefers-reduced-motion:no-preference){.story-bar{animation:story-in .5s var(--ease-out) both}}@keyframes story-in{0%{opacity:0;translate:-50% 24px}}html.vt-theme::view-transition-old(root){mix-blend-mode:normal;animation:none}html.vt-theme::view-transition-new(root){mix-blend-mode:normal;animation:none}html.vt-theme::view-transition-new(root){animation:theme-wipe .75s var(--ease-out)}@keyframes theme-wipe{0%{clip-path:circle(0 at var(--vt-x,100%) var(--vt-y,0))}to{clip-path:circle(var(--vt-r,150vmax) at var(--vt-x,100%) var(--vt-y,0))}}html.story-warm{--bg:#fbf6ee;--mist:#f3ebdf;--raise:#fffaf3;--text:#2e2a25;--muted:#6b6359;--line:#e8ddcf;--line-strong:#cfc0ad}html[data-theme=dark].story-warm{--bg:#1a1612;--mist:#241f19;--raise:#241f19;--text:#ddd5ca;--muted:#a59a8c;--line:#352e26;--line-strong:#4a4137}html.story-warm body:after{content:"";z-index:40;pointer-events:none;background:radial-gradient(120% 90% at 50% 45%, transparent 55%, color-mix(in srgb, var(--accent) 7%, transparent));position:fixed;inset:0}@media (prefers-reduced-motion:no-preference){html.story-warm:not(.motion-paused) body:after{animation:vt-in 1.4s var(--ease-out) both}}html.vt-story-on::view-transition-old(root){mix-blend-mode:normal;animation:none}html.vt-story-on::view-transition-new(root){mix-blend-mode:normal;animation:none}html.vt-story-off::view-transition-old(root){mix-blend-mode:normal;animation:none}html.vt-story-off::view-transition-new(root){mix-blend-mode:normal;animation:none}html.vt-story-on::view-transition-new(root){animation:story-lamp .95s var(--ease-out)}html.vt-story-off::view-transition-old(root){z-index:1;animation:story-lamp .7s var(--ease) reverse both}@keyframes story-lamp{0%{clip-path:circle(0 at var(--st-x,50%) var(--st-y,100%))}to{clip-path:circle(var(--st-r,150vmax) at var(--st-x,50%) var(--st-y,100%))}}::view-transition{pointer-events:none}html:not(.vt-theme,.vt-story-on,.vt-story-off) .site-header{view-transition-name:site-header}html:not(.vt-theme,.vt-story-on,.vt-story-off) .nav-mark{view-transition-name:nav-mark}@media (max-width:1023px){html:not(.vt-theme,.vt-story-on,.vt-story-off) .dock{view-transition-name:dock}}::view-transition-group(dock){z-index:100;animation:none}::view-transition-old(dock){display:none}::view-transition-new(dock){animation:none}::view-transition-group(nav-mark){z-index:101;mix-blend-mode:darken;animation-duration:.44s;animation-timing-function:var(--ease-out)}html[data-theme=dark]::view-transition-group(nav-mark){mix-blend-mode:lighten}::view-transition-group(site-header){z-index:100;animation:none}::view-transition-old(site-header){display:none}::view-transition-new(site-header){animation:none}html:not(.vt-theme,.vt-story-on,.vt-story-off)::view-transition-old(root){animation-duration:.14s}html:not(.vt-theme,.vt-story-on,.vt-story-off)::view-transition-new(root){animation-duration:.14s}::view-transition-old(.page-exit){animation:vt-out .11s var(--ease) both}::view-transition-new(.page-enter){animation:vt-rise .38s var(--ease-out) both}::view-transition-group(.shot-morph){animation-duration:.56s;animation-timing-function:var(--ease-out)}::view-transition-group(.title-morph){animation-duration:.56s;animation-timing-function:var(--ease-out)}::view-transition-group(.shot-morph){border-radius:8px;overflow:clip}::view-transition-old(.shot-morph){object-fit:cover;object-position:top;width:100%;height:100%}::view-transition-new(.shot-morph){object-fit:cover;object-position:top;width:100%;height:100%}::view-transition-old(.title-morph){animation:90ms linear both vt-out}::view-transition-new(.title-morph){animation:.2s linear both vt-in}.decision-feed.filtering .decision{view-transition-name:var(--vt);view-transition-class:decision}::view-transition-group(.decision){animation-duration:.42s;animation-timing-function:var(--ease-out)}::view-transition-old(.decision):only-child{animation:vt-out .16s var(--ease) both}::view-transition-new(.decision):only-child{animation:vt-rise .36s var(--ease-out) 60ms both}@keyframes vt-out{to{opacity:0}}@keyframes vt-in{0%{opacity:0}}@keyframes vt-rise{0%{opacity:.4;translate:0 10px}}html.motion-paused::view-transition-group(*){animation-duration:0s!important;animation-delay:0s!important}html.motion-paused::view-transition-old(*){animation-duration:0s!important;animation-delay:0s!important}html.motion-paused::view-transition-new(*){animation-duration:0s!important;animation-delay:0s!important}@media (prefers-reduced-motion:reduce){::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}@media print{.site-header,.site-footer,.scroll-progress,.skip-link,.resume-bar,.story-bar,.xr-panel,.xr-cols,.xr-baseline,.xr-ruler{display:none!important}html,html[data-theme=dark]{--bg:#fff;--raise:#fff;--mist:#fff;--ink:#111;--text:#222;--muted:#555;--line:#ddd;--accent:#d64516;--accent-ink:#b8340b;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{color:#222;background:#fff;font-size:10pt}.resume-page{background:0 0;padding:0}.resume-sheet{max-width:none;box-shadow:none;border-radius:0;margin:0;padding:0}.resume-heading{padding-bottom:12pt}.resume-heading h1{font-size:26pt}.resume-heading p{margin-top:4pt;font-size:11pt}.resume-contact{font-size:8pt}.resume-summary{margin:10pt 0 0;font-size:9pt;line-height:1.5}.resume-section{grid-template-columns:30mm minmax(0,1fr);gap:0 6mm;margin-top:10pt;padding-top:10pt}.resume-section h2{font-size:9pt}.resume-sheet .experience-row{break-inside:avoid;padding-bottom:9pt}.resume-sheet .experience-row h3{font-size:10.5pt}.resume-sheet .experience-role{margin-bottom:2pt;font-size:8.5pt}.resume-sheet .experience-row p{font-size:8.5pt;line-height:1.45}.resume-sheet .experience-row>span{font-size:8pt}.resume-projects{font-size:8.5pt;line-height:1.5}.resume-sheet a{text-decoration:none}@page{size:A4;margin:14mm 16mm}}.footer-tools{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:8px;display:flex}.footer-tools .motion-toggle{grid-column:auto;justify-self:auto}@media (min-width:640px){.footer-tools{grid-column:3/-1}}@media (min-width:1024px){.footer-bottom nav{grid-column:4/span 4}.footer-tools{grid-column:8/span 3}}.shortcuts-button{border:1px solid var(--line-strong);height:32px;color:var(--muted);font-size:var(--t-xs);white-space:nowrap;background:0 0;border-radius:999px;align-items:center;gap:8px;padding:0 12px;font-weight:500;display:inline-flex}.shortcuts-button:hover{color:var(--ink);border-color:var(--ink)}:is(.shortcuts-button,.motion-toggle) .kb-hint{border-bottom-width:1px;border-radius:4px;min-width:18px;height:18px;margin-right:-6px;padding:0 4px;font-size:11px}@media not ((hover:hover) and (pointer:fine)){.kb-hint,.tool-label kbd,.hint-button kbd,.shortcuts-button{display:none!important}}html[data-shortcuts=off] :is(.kb-hint,.tool-label kbd,.hint-button kbd){display:none!important}@media (min-width:1024px) and (hover:hover) and (pointer:fine){html:not([data-shortcuts=off]) .tools .story-toggle .tool-label:not(:has(kbd)):after{content:"P";border:1px solid color-mix(in srgb, var(--bg) 35%, transparent);border-radius:4px;place-items:center;min-width:18px;height:18px;padding:0 4px;font-size:11px;display:inline-grid}}.story-bar .tool-label kbd{display:none!important}.kb-toast{z-index:95;pointer-events:none;position:fixed;bottom:24px;left:50%;translate:-50%}.kb-toast-body{background:var(--ink);width:max-content;max-width:calc(100vw - 32px);color:var(--bg);font-size:var(--t-sm);box-shadow:var(--shadow);border-radius:20px;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 10px;padding:8px 14px 8px 8px;font-weight:500;line-height:1.2;display:inline-flex}.kb-toast kbd{border-color:color-mix(in srgb, var(--bg) 35%, transparent);min-width:24px;height:24px;color:inherit;border-bottom-width:1px}.kb-toast-body>kbd:first-child{border-color:var(--accent)}.kb-toast-places{border-left:1px solid color-mix(in srgb, var(--bg) 25%, transparent);color:color-mix(in srgb, var(--bg) 75%, var(--ink));font-size:var(--t-xs);flex-wrap:wrap;gap:6px 12px;padding-left:12px;display:inline-flex}.kb-toast-places>span{white-space:nowrap}.kb-toast-places kbd{min-width:18px;height:18px;margin-right:2px;font-size:11px}@media (max-width:1023px){.kb-toast{bottom:calc(96px + env(safe-area-inset-bottom))}}@media (max-width:639px){.kb-toast-places{border-left:0;border-top:1px solid color-mix(in srgb, var(--bg) 25%, transparent);flex-basis:100%;justify-content:center;padding:8px 0 0}}html.story .kb-toast{bottom:96px}.kb-dialog{overscroll-behavior:contain;border:1px solid var(--line-strong);background:var(--bg);width:min(760px,100vw - 24px);max-width:none;max-height:min(760px,100dvh - 48px);color:var(--text);border-radius:16px;margin:auto;padding:0;overflow:auto;box-shadow:0 2px 6px #1418200f,0 40px 80px -24px #14182059}.kb-dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0c0d0f52}html:has(.kb-dialog[open]){overflow:hidden}.kb-sheet{--kb-pad:clamp(20px, 3vw, 32px);padding:var(--kb-pad);gap:24px;display:grid}.kb-head{z-index:1;margin:calc(-1 * var(--kb-pad)) calc(-1 * var(--kb-pad)) 0;padding:var(--kb-pad) var(--kb-pad) 12px;background:var(--bg);justify-content:space-between;align-items:start;gap:16px;display:flex;position:sticky;top:0}.kb-head h2{color:var(--ink);font-size:var(--t-xl);letter-spacing:-.035em;font-weight:500;line-height:1.05}.kb-head h2:after{content:"*";color:var(--accent)}.kb-head .icon-button{margin:-6px -6px 0 0}.kb-note{color:var(--muted);font-size:var(--t-sm);margin-top:-24px}.kb-groups{grid-template-columns:minmax(0,1fr);gap:24px 32px;display:grid}.kb-col{align-content:start;gap:24px;display:grid}@media (min-width:640px){.kb-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}.kb-groups h3{border-bottom:1px solid var(--ink);color:var(--ink);font-size:var(--t-xs);letter-spacing:.04em;text-transform:uppercase;padding-bottom:8px;font-weight:500}.kb-groups dl{margin:0}.kb-groups dl>div{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:40px;padding-block:6px;display:flex}.kb-groups dt{color:var(--text);font-size:var(--t-sm);line-height:1.3}.kb-groups dd{flex:none;align-items:center;gap:6px;margin:0;display:flex}.kb-groups kbd{color:var(--ink)}.kb-or{color:var(--muted);font-size:var(--t-xs)}.kb-foot{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px 24px;padding-top:16px;display:flex}.kb-foot p{color:var(--muted);font-size:var(--t-xs);flex:240px}.kb-switch{min-height:40px;color:var(--ink);font-size:var(--t-sm);cursor:pointer;align-items:center;gap:10px;font-weight:500;display:inline-flex}.kb-switch input{appearance:none;border:1px solid var(--line-strong);background:var(--mist);cursor:pointer;width:36px;height:20px;transition:background-color .2s var(--ease), border-color .2s var(--ease);border-radius:999px;flex:none;margin:0;position:relative}.kb-switch input:before{content:"";background:var(--muted);width:14px;height:14px;transition:translate .2s var(--ease-out), background-color .2s var(--ease);border-radius:50%;position:absolute;top:2px;left:2px}.kb-switch input:checked{border-color:var(--ink);background:var(--ink)}.kb-switch input:checked:before{background:var(--bg);translate:16px}@media (prefers-reduced-motion:no-preference){html:not(.motion-paused) .kb-dialog[open]{animation:kb-in .28s var(--ease-out)}html:not(.motion-paused) .kb-dialog[open]::backdrop{animation:kb-fade .2s var(--ease)}html:not(.motion-paused) .kb-toast-body{animation:kb-rise .24s var(--ease-out)}}@media (prefers-reduced-motion:reduce){.kb-switch input,.kb-switch input:before{transition:none}}@keyframes kb-in{0%{opacity:0;translate:0 12px;scale:.98}}@keyframes kb-fade{0%{opacity:0}}@keyframes kb-rise{0%{opacity:0;translate:0 8px}}@media print{.kb-toast,.footer-tools{display:none!important}}.lightbox{width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--ink);background:0 0;border:0;margin:0;padding:clamp(16px,3vw,48px)}.lightbox[open]{grid-template-rows:minmax(0,1fr) auto;place-items:center;gap:16px;display:grid}.lightbox::backdrop{background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(14px)saturate(1.1);backdrop-filter:blur(14px)saturate(1.1)}.lightbox-figure{grid-template-rows:minmax(0,1fr) auto;place-items:center;gap:12px;width:100%;height:100%;min-height:0;display:grid}.lightbox-figure img{object-fit:contain;background:var(--raise);width:auto;max-width:100%;height:auto;max-height:100%;box-shadow:0 0 0 1px color-mix(in srgb, var(--ink) 9%, transparent), 0 40px 80px -32px #14182066;border-radius:12px}.lightbox-figure figcaption{color:var(--text);font-size:var(--t-sm);gap:12px;display:flex}.lightbox-figure figcaption span{color:var(--accent-ink);font-variant-numeric:tabular-nums}.lightbox-bar{gap:8px;display:flex}.lightbox-bar button{border:1px solid var(--ink);background:var(--bg);min-width:40px;height:40px;color:var(--ink);font-size:var(--t-sm);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding-inline:14px;display:inline-flex}.lightbox-bar button:hover{background:var(--ink);color:var(--bg)}.lightbox-bar kbd{font:inherit;font-size:var(--t-xs);opacity:.6}@media (prefers-reduced-motion:no-preference){html:not(.motion-paused) .lightbox[open]{animation:lightbox-in .35s var(--ease-out)}html:not(.motion-paused) .lightbox[open]::backdrop{animation:lightbox-fade .35s var(--ease-out)}html:not(.motion-paused) .lightbox-figure img{animation:lightbox-img .45s var(--ease-out)}}@keyframes lightbox-in{0%{opacity:0;scale:.97}}@keyframes lightbox-fade{0%{opacity:0}}@keyframes lightbox-img{0%{opacity:0;translate:0 12px}}
