:root{--r-xs: 2px;--r-s: 6px;--r-sm: 8px;--r-m: 12px;--r-n: 17px;--r-l: 23px;--r-xl: 30px;--r-full: 999px;--mo-effect: .2s;--mo-spatial: .35s;--ease: cubic-bezier(.2, 0, 0, 1);--mono: "Roboto Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--sans: "Roboto Flex", Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}:root,:root[data-theme=dark]{--surface: #141313;--surface-container-lowest: #0f0e0e;--surface-container-low: #1c1b1c;--surface-container: #232223;--surface-container-high: #2d2b2e;--surface-container-highest: #383639;--on-surface: #e6e1e1;--on-surface-variant: #cbc5ca;--outline: #948f94;--outline-variant: #49464a;--primary: #cbc4cb;--on-primary: #322f34;--primary-container: #2d2a2f;--on-primary-container: #bcb6bc;--secondary-container: #4d4b4d;--on-secondary-container: #ece6e9;--tertiary-container: #31292b;--on-tertiary-container: #c1b4b7;--scrim: #000;--accent: #3ddc84;--on-accent: #00391c;--accent-container: #0e1a13;--accent-outline: #1d3a2a;--sev-crash: #f87171;--sev-crash-bg: #2a1214;--sev-perf: #60a5fa;--sev-perf-bg: #0f1c2e;--sev-behaviour: #c084fc;--sev-behaviour-bg: #1e1330;--sev-build: #fbbf24;--sev-build-bg: #241d0c}:root[data-theme=light]{--surface: #fdf8fd;--surface-container-lowest: #ffffff;--surface-container-low: #f4edf4;--surface-container: #ede5ee;--surface-container-high: #e5dce6;--surface-container-highest: #ddd3de;--on-surface: #1d1b1e;--on-surface-variant: #49454b;--outline: #7a757e;--outline-variant: #d5ced6;--primary: #615d63;--on-primary: #ffffff;--primary-container: #e6dee6;--on-primary-container: #1d1b1f;--secondary-container: #e3dbe2;--on-secondary-container: #1c1b1d;--tertiary-container: #ebd6db;--on-tertiary-container: #31111d;--scrim: #000;--accent: #0f6b3c;--on-accent: #ffffff;--accent-container: #c6f2d8;--accent-outline: #8fd6ae;--sev-crash: #a4232a;--sev-crash-bg: #ffdad6;--sev-perf: #0b4a8f;--sev-perf-bg: #d8e6ff;--sev-behaviour: #6b21a8;--sev-behaviour-bg: #f0dcff;--sev-build: #7a4f00;--sev-build-bg: #ffe8b0}@media(prefers-color-scheme:light){:root:not([data-theme=dark]){--surface: #fdf8fd;--surface-container-lowest: #ffffff;--surface-container-low: #f4edf4;--surface-container: #ede5ee;--surface-container-high: #e5dce6;--surface-container-highest: #ddd3de;--on-surface: #1d1b1e;--on-surface-variant: #49454b;--outline: #7a757e;--outline-variant: #d5ced6;--primary: #615d63;--on-primary: #ffffff;--primary-container: #e6dee6;--on-primary-container: #1d1b1f;--secondary-container: #e3dbe2;--on-secondary-container: #1c1b1d;--tertiary-container: #ebd6db;--on-tertiary-container: #31111d;--accent: #0f6b3c;--on-accent: #ffffff;--accent-container: #c6f2d8;--accent-outline: #8fd6ae;--sev-crash: #a4232a;--sev-crash-bg: #ffdad6;--sev-perf: #0b4a8f;--sev-perf-bg: #d8e6ff;--sev-behaviour: #6b21a8;--sev-behaviour-bg: #f0dcff;--sev-build: #7a4f00;--sev-build-bg: #ffe8b0}}*{box-sizing:border-box;margin:0;padding:0}html{color-scheme:dark light}body{background:var(--surface);color:var(--on-surface);font-family:var(--sans);font-variation-settings:"opsz" 14;line-height:1.6;font-size:15px;-webkit-font-smoothing:antialiased}.wrap{max-width:920px;margin:0 auto;padding:0 24px}a{color:inherit}.bar{background:var(--surface-container);position:sticky;top:0;z-index:20}.bar .wrap{display:flex;align-items:center;gap:18px;height:64px}.brand{font-family:var(--mono);font-size:13px;color:var(--on-surface-variant)}.bar nav{margin-left:auto;display:flex;gap:24px;font-size:14px;color:var(--on-surface-variant)}.bar nav a{text-decoration:none}.bar nav a:hover{color:var(--on-surface)}.avail{font-size:13px;color:var(--on-secondary-container);background:var(--secondary-container);height:32px;display:inline-flex;align-items:center;padding:0 14px;border-radius:var(--r-sm);white-space:nowrap}.icon{width:40px;height:40px;border:0;border-radius:var(--r-full);background:transparent;color:var(--on-surface-variant);cursor:pointer;display:grid;place-items:center;flex:none}header{padding:56px 0 44px}.idrow{display:flex;align-items:center;gap:22px;margin-bottom:22px}.photo{width:88px;height:88px;border-radius:var(--r-full);object-fit:cover;flex-shrink:0}h1{font-size:44px;line-height:1.1;letter-spacing:-1px;font-weight:500;color:var(--on-surface);font-variation-settings:"opsz" 144,"wdth" 100}.role{font-size:14px;color:var(--on-surface-variant);margin-top:8px;letter-spacing:.1px}.lede{font-size:16px;color:var(--on-surface-variant);max-width:64ch;margin-bottom:14px}.lede:first-of-type{font-size:21px;line-height:1.45;color:var(--on-surface);margin-bottom:18px;font-variation-settings:"opsz" 32}.lede b{color:var(--on-surface);font-weight:500}.links{display:flex;gap:8px;flex-wrap:wrap;margin-top:28px}.btn{height:40px;display:inline-flex;align-items:center;justify-content:center;padding:0 24px;border-radius:var(--r-full);font-size:14px;font-weight:500;letter-spacing:.1px;line-height:1;text-decoration:none;border:1px solid var(--outline);color:var(--primary);background:transparent;transition:background var(--mo-effect) var(--ease)}.btn.p{background:var(--primary);color:var(--on-primary);border-color:transparent}.impact{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:40px 0 8px}.impact div{background:var(--surface-container);padding:20px 18px;border-radius:var(--r-m);display:flex;flex-direction:column;gap:8px}.impact .n{font-size:28px;font-weight:400;color:var(--on-surface);letter-spacing:-.5px;line-height:1.05}.impact .l{font-size:12.5px;color:var(--on-surface-variant);line-height:1.4}section{padding:44px 0}section+section{border-top:1px solid var(--outline-variant)}h2{font-size:24px;line-height:1.2;font-weight:600;letter-spacing:-.3px;color:var(--on-surface);text-transform:none;margin-bottom:8px;display:flex;align-items:baseline;gap:8px}h2>span{letter-spacing:-.3px}.sub{color:var(--on-surface-variant);font-size:15px;line-height:1.55;margin-bottom:26px;max-width:62ch}.job{background:var(--surface-container);border-radius:var(--r-n);padding:22px 24px;margin-bottom:10px}.job-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:2px}.job-h h3{font-size:18.5px;font-weight:600;letter-spacing:-.2px;color:var(--on-surface)}.scale,.owner{height:26px;display:inline-flex;align-items:center;padding:0 11px;border-radius:var(--r-sm);font-size:12px;font-weight:500;letter-spacing:.1px}.scale{color:var(--on-tertiary-container);background:var(--tertiary-container)}.owner{margin-left:auto;color:var(--on-surface-variant);border:1px solid var(--outline-variant)}.owner.built{color:var(--on-secondary-container);background:var(--secondary-container);border-color:transparent}.owner.inherit{color:var(--on-surface-variant);background:var(--surface-container-high);border-color:transparent}.job p{color:var(--on-surface-variant);font-size:14.5px;margin:10px 0 0}.job .res{color:var(--on-surface)}.job .res b{color:var(--on-surface);font-weight:500}.stack{font-family:var(--mono);font-size:11.5px;color:var(--outline);margin-top:14px}.jl{display:flex;gap:18px;margin-top:12px;font-size:13.5px;font-weight:500}.jl{gap:6px}.jl-a{color:var(--primary);text-decoration:none;display:inline-flex;align-items:center;gap:5px;padding:7px 10px;margin:-7px -4px;border-radius:var(--r-s)}.prob{background:var(--surface-container-low);border-radius:var(--r-m);padding:18px 20px;margin-bottom:10px}.prob h4{font-size:16px;font-weight:600;color:var(--on-surface);margin-bottom:8px}.prob p{color:var(--on-surface-variant);font-size:14px}.prob .tag{font-family:var(--mono);font-size:11px;color:var(--outline);margin-top:10px}.sk{display:grid;grid-template-columns:150px 1fr;gap:14px 24px;font-size:14px;align-items:baseline}.sk dt{font-size:11.5px;color:var(--outline);text-align:right;font-weight:600;text-transform:uppercase;letter-spacing:.8px;line-height:1.7}.sk dd{color:var(--on-surface)}footer{padding:36px 0 64px;color:var(--on-surface-variant);font-size:13.5px;border-top:1px solid var(--outline-variant);line-height:1.7}footer .wrap>*{max-width:70ch}.tokline{font-size:12.5px;color:var(--outline);margin-top:18px;line-height:1.6}.foot-note{color:var(--outline)}footer p+p{margin-top:2px}h1{font-size:clamp(28px,6.2vw,44px);letter-spacing:clamp(-1px,-.12vw,-.4px)}h2{font-size:clamp(20px,3.8vw,24px)}.lede:first-of-type{font-size:clamp(17px,2.4vw,21px)}.impact .n{font-size:clamp(22px,3.4vw,28px)}.stack,.spec span,.jl-a,code{overflow-wrap:anywhere}img,svg{max-width:100%;height:auto}.wrap{padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}@media(max-width:900px){.avail{display:none}}@media(max-width:760px){.impact{grid-template-columns:repeat(2,1fr)}.sk{grid-template-columns:1fr;gap:2px 0}.sk dt{text-align:left;margin-top:10px}section{padding:34px 0}.owner{margin-left:0}}@media(max-width:640px){.bar .wrap{gap:12px}.bar nav{gap:18px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;white-space:nowrap;margin-left:auto;-webkit-overflow-scrolling:touch}.bar nav::-webkit-scrollbar{display:none}.brand{flex:none}.job,.app-card{padding:18px 16px}.prob{padding:16px}.wrap{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}header{padding:36px 0 32px}}@media(max-width:520px){.idrow{flex-direction:column;align-items:flex-start;gap:14px}.photo{width:64px;height:64px}.impact{grid-template-columns:1fr 1fr;gap:8px}.links{gap:6px}.btn{padding:0 18px}}@media(max-width:380px){.impact{grid-template-columns:1fr}.btn{width:100%}}@media(pointer:coarse){.bar nav a{padding:14px 0;display:inline-block}.jl-a{padding:11px 12px;margin:-11px -6px}.faq summary{padding:18px 0}}@media(min-width:1600px){.wrap{max-width:1000px}}.faq{background:var(--surface-container);border-radius:var(--r-m);padding:0 20px;margin-bottom:8px}.faq summary{list-style:none;cursor:pointer;padding:16px 0;font-size:15.5px;font-weight:500;color:var(--on-surface);display:flex;align-items:center;gap:12px}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"";margin-left:auto;flex:none;width:9px;height:9px;border-right:1.8px solid var(--on-surface-variant);border-bottom:1.8px solid var(--on-surface-variant);transform:rotate(45deg) translate(-2px,-2px);transition:transform var(--mo-effect) var(--ease)}.faq[open] summary:after{transform:rotate(225deg) translate(-2px,-2px)}.faq p{color:var(--on-surface-variant);font-size:14.5px;padding:0 0 18px;max-width:70ch}.ar{font-style:normal;font-size:.88em;line-height:1;display:inline-block;margin-left:4px;transition:transform var(--dur-fast,.35s) var(--curve-expressive,cubic-bezier(.38,1.21,.22,1))}.jl-a:hover .ar,.btn:hover .ar,.raise:hover .ar{transform:translate(2px,-2px)}.gh a{border:1px solid var(--outline-variant);background:var(--surface-container)}.gh a:hover{background:var(--surface-container-high)}:root{--curve-standard: cubic-bezier(.2, 0, 0, 1);--curve-standard-accel: cubic-bezier(.3, 0, 1, 1);--curve-standard-decel: cubic-bezier(0, 0, 0, 1);--curve-emphasized-accel:cubic-bezier(.3, 0, .8, .15);--curve-emphasized-decel:cubic-bezier(.05, .7, .1, 1);--curve-expressive: cubic-bezier(.38, 1.21, .22, 1);--curve-expressive-fast: cubic-bezier(.42, 1.67, .21, .9);--curve-effects: cubic-bezier(.34, .8, .34, 1);--dur-effects: .2s;--dur-fast: .35s;--dur-default: .5s;--dur-enter: .4s;--dur-exit: .2s;--dur-resize: .3s;--state-hover: .08;--state-focus: .1;--state-press: .1;--state-drag: .16}.state{position:relative;isolation:isolate}.state:after{content:"";position:absolute;inset:0;border-radius:inherit;background:currentColor;opacity:0;pointer-events:none;transition:opacity var(--dur-effects) var(--curve-effects);z-index:1}.state:hover:after{opacity:var(--state-hover)}.state:focus-visible:after{opacity:var(--state-focus)}.state:active:after{opacity:var(--state-press)}.state[data-dragging]:after{opacity:var(--state-drag)}.raise{border:1px solid var(--outline-variant);box-shadow:0 1px 3px color-mix(in srgb,var(--scrim) 6%,transparent);transition:border-color var(--dur-effects) var(--curve-effects),box-shadow var(--dur-effects) var(--curve-effects),transform var(--dur-fast) var(--curve-expressive);will-change:transform}.raise:hover,.raise:focus-within{border-color:var(--outline);transform:translateY(-2px);box-shadow:0 4px 12px color-mix(in srgb,var(--scrim) 14%,transparent)}.raise:active{transform:translateY(0);box-shadow:0 1px 2px color-mix(in srgb,var(--scrim) 20%,transparent);transition-duration:var(--dur-exit)}.raise.clickable{cursor:pointer}@media(prefers-reduced-motion:reduce){.raise:hover,.raise:focus-within,.raise:active{transform:none}}.rowstate{border:1px solid transparent;border-radius:var(--r-s);transition:border-color var(--dur-effects) var(--curve-effects)}.rowstate:hover{border-color:var(--outline-variant)}.state>*{position:relative;z-index:2}:where(a,button,[tabindex]):focus-visible{outline:3px solid var(--primary);outline-offset:2px;border-radius:inherit}.btn,.icon{transition:transform var(--dur-enter) var(--curve-expressive)}.btn:active,.icon:active{transform:scale(.96)}@keyframes elementMoveEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.reveal{animation:elementMoveEnter var(--dur-enter) var(--curve-emphasized-decel) both}.resizes{transition:height var(--dur-resize) var(--curve-standard),max-height var(--dur-resize) var(--curve-standard)}body{transition:background-color var(--dur-effects) var(--curve-effects),color var(--dur-effects) var(--curve-effects)}.elev-1{box-shadow:0 1px 2px color-mix(in srgb,var(--scrim) 30%,transparent)}.elev-2{box-shadow:0 2px 4px color-mix(in srgb,var(--scrim) 30%,transparent)}.elev-3{box-shadow:0 4px 8px color-mix(in srgb,var(--scrim) 30%,transparent)}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.btn:active,.icon:active{transform:none}}:root{--fade-size: 40px}:root[data-theme=light]{--fade-size: 20px}@media(prefers-color-scheme:light){:root:not([data-theme=dark]){--fade-size: 20px}}.scrollfade{position:relative}.scrollfade:before,.scrollfade:after{content:"";position:absolute;left:0;right:0;height:var(--fade-size);pointer-events:none;z-index:3;opacity:0;transition:opacity var(--dur-exit) var(--curve-effects)}.scrollfade:before{top:0;background:linear-gradient(to bottom,var(--surface) 0%,transparent 100%)}.scrollfade:after{bottom:0;background:linear-gradient(to top,var(--surface) 0%,transparent 100%)}.scrollfade[data-top="1"]:before{opacity:1}.scrollfade[data-bottom="1"]:after{opacity:1}.scrollfade>.scroller{max-height:62vh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--outline-variant) transparent;padding-right:4px}.scrollfade>.scroller::-webkit-scrollbar{width:8px}.scrollfade>.scroller::-webkit-scrollbar-thumb{background:var(--outline-variant);border-radius:var(--r-full)}.scrollfade>.scroller::-webkit-scrollbar-track{background:transparent}
