:root{--c-black:10 10 10;--c-grey-900:23 23 23;--c-grey-800:38 38 38;--c-grey-700:64 64 64;--c-grey-500:115 115 115;--c-grey-400:163 163 163;--c-grey-300:212 212 212;--c-grey-200:229 229 229;--c-grey-100:244 244 244;--c-white:255 255 255;color-scheme:light}:root[data-theme=dark]{--c-black:242 242 242;--c-grey-900:232 232 232;--c-grey-800:214 214 214;--c-grey-700:190 190 190;--c-grey-500:150 150 150;--c-grey-400:112 112 112;--c-grey-300:64 64 64;--c-grey-200:44 44 44;--c-grey-100:28 28 28;--c-white:12 12 12;color-scheme:dark}:root[data-theme=light] .slide--contact{--c-black:242 242 242;--c-grey-900:232 232 232;--c-grey-800:214 214 214;--c-grey-700:190 190 190;--c-grey-500:150 150 150;--c-grey-400:112 112 112;--c-grey-300:64 64 64;--c-grey-200:44 44 44;--c-grey-100:28 28 28;--c-white:12 12 12}:root[data-theme=dark] .slide--contact{--c-black:10 10 10;--c-grey-900:23 23 23;--c-grey-800:38 38 38;--c-grey-700:64 64 64;--c-grey-500:115 115 115;--c-grey-400:163 163 163;--c-grey-300:212 212 212;--c-grey-200:229 229 229;--c-grey-100:244 244 244;--c-white:255 255 255}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{height:100%;font-size:62.5%}body{height:100%;color:rgb(var(--c-black));background:var(--page-bg);-webkit-font-smoothing:antialiased;--page-bg:rgb(var(--c-white));--glow:#0000000d;font-family:Google Sans Flex,Google Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:1.6rem;line-height:1.6;transition:background-color .8s;overflow:hidden}[data-theme=dark] body{--glow:#ffffff0f}.backdrop{pointer-events:none;transform:translate3d(var(--parallax,0px),0,0);will-change:transform;transition:transform 1.1s cubic-bezier(.77,0,.18,1),filter .8s,opacity .8s;position:fixed;top:0;left:0}[data-theme=dark] .backdrop{filter:invert()}body:before{content:"";background:radial-gradient(circle,var(--glow)0%,transparent 65%);pointer-events:none;will-change:transform;border-radius:50%;width:70vw;height:70vw;animation:26s ease-in-out infinite alternate drift;position:fixed;top:-30vh;left:-20vw}@keyframes drift{0%{transform:translate(0,0)}50%{transform:translate(70vw,30vh)}to{transform:translate(30vw,60vh)}}[hidden]{display:none!important}img,video{max-width:100%;display:block}ul,ol{list-style:none}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}:focus-visible{outline-offset:3px;outline:2px solid}::selection{background:rgb(var(--c-black));color:rgb(var(--c-white))}.eyebrow,.label{letter-spacing:.08em;text-transform:uppercase;color:rgb(var(--c-grey-500));margin-bottom:2rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.3rem;font-weight:500}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}body[data-slide=about] .backdrop,body[data-slide=blog] .backdrop{opacity:.5}.btn{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:1rem;padding:1.5rem 2.8rem;font-size:1.6rem;font-weight:500;line-height:1;transition:background .25s,color .25s,border-color .25s,transform .25s;display:inline-flex}.btn:active{transform:scale(.97)}.btn--sm{padding:1.1rem 2rem;font-size:1.45rem}.btn--dark{background:rgb(var(--c-black));color:rgb(var(--c-white))}.btn--dark:hover{background:rgb(var(--c-grey-700))}.btn--ghost{background:rgb(var(--c-grey-100));color:rgb(var(--c-black))}.btn--ghost:hover{background:rgb(var(--c-grey-200))}.btn--light{background:rgb(var(--c-white));color:rgb(var(--c-black))}.btn--light:hover{background:rgb(var(--c-grey-200))}.btn--outline-light{border-color:rgb(var(--c-grey-700));color:rgb(var(--c-white))}.btn--outline-light:hover{border-color:rgb(var(--c-white))}.resume-pick{background:rgb(var(--c-grey-100));border-radius:999px;align-items:center;gap:.4rem;padding:.5rem .5rem .5rem 2.2rem;font-size:1.6rem;font-weight:500;line-height:1;display:inline-flex}.resume-pick__label{white-space:nowrap;align-items:center;gap:1rem;margin-right:.8rem;display:inline-flex}.resume-pick__opt{background:rgb(var(--c-white));border-radius:999px;place-items:center;min-width:3.8rem;height:3.8rem;padding:0 1rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.3rem;transition:background .25s,color .25s;display:grid}.resume-pick__opt:hover,.resume-pick__opt:focus-visible{background:rgb(var(--c-black));color:rgb(var(--c-white))}.theme-toggle{background:rgb(var(--c-grey-100));width:3.8rem;height:3.8rem;color:rgb(var(--c-black));cursor:pointer;border:0;border-radius:50%;flex-shrink:0;place-items:center;font-size:1.6rem;transition:background .25s,color .25s,transform .4s;display:grid}.theme-toggle:hover{background:rgb(var(--c-black));color:rgb(var(--c-white));transform:rotate(-20deg)}.theme-toggle:focus-visible{outline:2px solid rgb(var(--c-black));outline-offset:3px}.site-header .theme-toggle{margin-left:auto}.site-header .theme-toggle+.btn{margin-left:-2.8rem}.page-header .theme-toggle{margin-left:auto}.page-header .theme-toggle+*{margin-left:-1rem}.bot{--bot-skin:#ffe1c2;--bot-line:#0a0a0a;width:100%;height:100%;display:block;overflow:visible}.bot *{transform-box:fill-box;transform-origin:50%}.bot__face,.bot__ear{fill:var(--bot-skin);stroke:var(--bot-line);stroke-width:2.2px}.bot__shine{fill:none;stroke:#fff;stroke-width:2.4px;stroke-linecap:round;opacity:.9}.bot__brow,.bot__mouth{fill:none;stroke:var(--bot-line);stroke-width:2px;stroke-linecap:round}.bot__white{fill:#fff;stroke:var(--bot-line);stroke-width:2px}.bot__pupil{fill:var(--bot-line)}.bot__eye{animation:4.6s infinite bot-blink}.bot__eyes{animation:7s ease-in-out infinite bot-look}.bot__drop{fill:#bfe3ff;stroke:var(--bot-line);stroke-width:1.2px;opacity:0}.bot__head{transform-origin:50% 90%}.bot--launcher{animation:3.2s ease-in-out infinite bot-float}.chat.is-thinking .bot .bot__eyes{animation:1.1s ease-in-out infinite bot-scan}.chat.is-thinking .bot .bot__brow{transition:transform .2s;transform:translateY(-1.5px)}.chat.is-thinking .bot .bot__drop{animation:1.6s ease-in infinite bot-sweat}.chat.is-talking .bot .bot__mouth{animation:.24s ease-in-out infinite bot-talk}.chat.is-sad .bot .bot__eye{animation:none;transform:scaleY(.6)}.chat.is-sad .bot .bot__brow:first-of-type{transform:rotate(14deg)}.chat.is-sad .bot .bot__brow:last-of-type{transform:rotate(-14deg)}.chat{z-index:20;font-size:1.4rem;position:fixed;bottom:9.2rem;right:4.8rem}@media (width<=56.25em){.chat{right:2.4rem}}@media (width<=37.5em),(height<=31.25em){.chat{bottom:8.8rem;right:1.6rem}}.chat__toggle{background:rgb(var(--c-white));width:6.4rem;height:6.4rem;color:rgb(var(--c-black));cursor:pointer;box-shadow:0 1rem 3rem #00000038,0 0 0 1.5px rgb(var(--c-black));-webkit-tap-highlight-color:transparent;border:0;border-radius:50%;place-items:center;padding:.5rem;transition:transform .35s cubic-bezier(.2,1.15,.35,1),box-shadow .3s,opacity .3s,background .4s;display:grid;position:relative}.chat__toggle .bot{transition:transform .35s cubic-bezier(.2,1.15,.35,1),opacity .2s}.chat__toggle:hover{transform:translateY(-3px)scale(1.04);box-shadow:0 1.4rem 3.6rem #00000047}.chat__toggle:hover .bot__head{animation:.9s ease-in-out bot-wave}.chat__toggle:active{transform:scale(.94)}.chat__toggle:focus-visible{outline:2px solid rgb(var(--c-black));outline-offset:4px}@media (width<=37.5em),(height<=31.25em){.chat__toggle{width:5.6rem;height:5.6rem;padding:.4rem}}.chat__toggle-close{opacity:0;place-items:center;font-size:2rem;transition:transform .35s cubic-bezier(.2,1.15,.35,1),opacity .2s;display:grid;position:absolute;inset:0;transform:rotate(-90deg)scale(.5)}.chat.is-open .chat__toggle .bot{opacity:0;transform:scale(.4)rotate(20deg)}.chat.is-open .chat__toggle .chat__toggle-close{opacity:1;transform:none}@media (width<=37.5em),(height<=31.25em){.chat.is-open .chat__toggle{opacity:0;pointer-events:none;transform:scale(.6)}}.chat__teaser{background:rgb(var(--c-white));width:max-content;max-width:22rem;color:rgb(var(--c-black));box-shadow:0 .8rem 2.4rem #00000024,0 0 0 1px rgb(var(--c-grey-200));pointer-events:none;opacity:0;transform-origin:100% 100%;border-radius:1.4rem 1.4rem .4rem;padding:.8rem 1.4rem;font-weight:500;transition:opacity .25s,transform .4s cubic-bezier(.2,1.15,.35,1);position:absolute;bottom:1.4rem;right:calc(100% + 1.2rem);transform:translate(1rem)scale(.8)}.chat__teaser.is-shown{opacity:1;transform:none}.chat__panel{background:rgb(var(--c-white));width:38rem;height:min(60rem,100dvh - 20rem);color:rgb(var(--c-black));box-shadow:0 2.4rem 6rem #0000003d,0 0 0 1px rgb(var(--c-grey-200));transform-origin:calc(100% - 3.2rem) calc(100% + 4rem);opacity:0;visibility:hidden;border-radius:2.2rem;flex-direction:column;transition:opacity .2s,transform .3s,visibility 0s linear .3s;display:flex;position:absolute;bottom:calc(100% + 1.4rem);right:0;overflow:hidden;transform:translateY(1.6rem)scale(.9)}.chat.is-open .chat__panel{opacity:1;visibility:visible;transition:opacity .25s,transform .45s cubic-bezier(.2,1.15,.35,1),visibility;transform:none}@media (width<=56.25em){.chat__panel{width:min(42rem,100vw - 4.8rem)}}@media (width<=37.5em),(height<=31.25em){.chat__panel{inset:var(--chat-top,0)0 auto 0;width:100%;height:100vh;height:var(--chat-vh,100dvh);box-shadow:none;z-index:60;opacity:1;border-radius:0;transition:transform .4s cubic-bezier(.32,.72,0,1),visibility 0s linear .4s;position:fixed;transform:translateY(100%)}.chat.is-open .chat__panel{transform:translateY(var(--drag,0px));transition:transform .5s cubic-bezier(.32,.72,0,1),visibility}.chat__panel.is-dragging{transition:none!important}}.chat__head{border-bottom:1px solid rgb(var(--c-grey-200));align-items:center;gap:1.2rem;padding:1.4rem 1.4rem 1.4rem 1.6rem;display:flex;position:relative}@media (width<=37.5em),(height<=31.25em){.chat__head{padding-top:calc(2rem + env(safe-area-inset-top));touch-action:none}}.chat__grip{display:none}@media (width<=37.5em),(height<=31.25em){.chat__grip{top:calc(.8rem + env(safe-area-inset-top));background:rgb(var(--c-grey-300));border-radius:999px;width:4rem;height:.4rem;margin-left:-2rem;display:block;position:absolute;left:50%}}.chat__avatar{background:rgb(var(--c-grey-100));border-radius:50%;flex-shrink:0;width:4.4rem;height:4.4rem;padding:.2rem}.chat__title{flex:1;min-width:0}.chat__title strong{font-size:1.6rem;line-height:1.3;display:block}.chat__status{color:rgb(var(--c-grey-500));align-items:center;gap:.6rem;font-size:1.25rem;display:flex}.chat__status:before{content:"";background:#22c55e;border-radius:50%;width:.7rem;height:.7rem;transition:background .3s}.chat.is-thinking .chat__status:before,.chat.is-talking .chat__status:before{background:#f59e0b;animation:.8s ease-in-out infinite bot-pulse}.chat.is-sad .chat__status:before{background:#ef4444}.chat__close{background:rgb(var(--c-grey-100));width:3.6rem;height:3.6rem;color:rgb(var(--c-grey-700));cursor:pointer;border:0;border-radius:50%;flex-shrink:0;place-items:center;font-size:1.5rem;transition:background .2s,color .2s,transform .3s cubic-bezier(.2,1.15,.35,1);display:grid}.chat__close:hover{background:rgb(var(--c-black));color:rgb(var(--c-white));transform:rotate(90deg)}.chat__log{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;flex-direction:column;flex:1;gap:1rem;padding:1.6rem;display:flex;overflow-y:auto}.chat__row{align-items:flex-end;gap:.8rem;animation:.4s cubic-bezier(.2,1.15,.35,1) both chat-in;display:flex}.chat__row--user{justify-content:flex-end}.chat__mini{flex-shrink:0;width:3.2rem;height:3.2rem;margin-bottom:.1rem}.chat__mini .bot__eye{animation-delay:1.3s}.chat__row:not(:last-child) .chat__mini .bot .bot__eyes,.chat__row:not(:last-child) .chat__mini .bot .bot__drop,.chat__row:not(:last-child) .chat__mini .bot .bot__mouth{animation:none}.chat__quick{flex-wrap:wrap;gap:.6rem;padding-left:4rem;animation:.4s cubic-bezier(.2,1.15,.35,1) .15s both chat-in;display:flex}.chat__chip{border:1px solid rgb(var(--c-grey-300));color:rgb(var(--c-grey-800));font:inherit;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:.6rem;padding:.6rem 1.2rem;font-size:1.3rem;line-height:1.4;transition:background .2s,color .2s,border-color .2s;display:inline-flex}.chat__chip:hover,.chat__chip:focus-visible{background:rgb(var(--c-black));border-color:rgb(var(--c-black));color:rgb(var(--c-white))}.chat__chip i{font-size:1.15rem}.chat__msg{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:1.8rem;max-width:80%;padding:1rem 1.4rem;line-height:1.55}.chat__msg--user{background:rgb(var(--c-black));color:rgb(var(--c-white));border-bottom-right-radius:.6rem}.chat__msg--bot{background:rgb(var(--c-grey-100));border-bottom-left-radius:.6rem}.chat__msg--error{color:#b42318;background:#fef2f2}.chat__dots{gap:.5rem;padding:.4rem 0;display:inline-flex}.chat__dots i{background:rgb(var(--c-grey-500));border-radius:50%;width:.7rem;height:.7rem;animation:1.1s ease-in-out infinite chat-dot}.chat__dots i:nth-child(2){animation-delay:.15s}.chat__dots i:nth-child(3){animation-delay:.3s}.chat__form{background:rgb(var(--c-grey-100));border-radius:2.4rem;align-items:flex-end;gap:.8rem;margin:0 1.2rem;padding:.6rem .6rem .6rem 1.4rem;transition:box-shadow .2s,background .2s;display:flex}.chat__form:focus-within{background:rgb(var(--c-white));box-shadow:0 0 0 1.5px rgb(var(--c-black))}.chat__form textarea{resize:none;min-width:0;font:inherit;color:inherit;background:0 0;border:0;outline:0;flex:1;padding:.8rem 0;font-size:1.6rem;line-height:1.4}.chat__form button{background:rgb(var(--c-black));width:3.8rem;height:3.8rem;color:rgb(var(--c-white));cursor:pointer;border:0;border-radius:50%;flex-shrink:0;place-items:center;font-size:1.5rem;transition:transform .3s cubic-bezier(.2,1.15,.35,1),opacity .2s;display:grid}.chat__form button:hover:not(:disabled){transform:translateY(-2px)}.chat__form button:disabled{opacity:.35;cursor:wait}.chat__note{color:rgb(var(--c-grey-400));text-align:center;padding:.8rem 1.6rem 1.2rem;font-size:1.1rem}@media (width<=37.5em),(height<=31.25em){.chat__note{padding-bottom:calc(1rem + env(safe-area-inset-bottom))}}@keyframes bot-float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes bot-blink{0%,93%,to{transform:scaleY(1)}96%{transform:scaleY(.1)}}@keyframes bot-wave{0%,to{transform:rotate(0)}20%{transform:rotate(-12deg)}45%{transform:rotate(10deg)}70%{transform:rotate(-5deg)}}@keyframes bot-scan{0%,to{transform:translate(0)}25%{transform:translate(-2.5px,-1.5px)}50%{transform:translate(2.5px,-1.5px)}75%{transform:translateY(1px)}}@keyframes bot-look{0%,40%,to{transform:translate(0)}48%,60%{transform:translate(-2px,-1px)}68%,80%{transform:translate(2px,.5px)}}@keyframes bot-sweat{0%{opacity:0;transform:translateY(-2px)}25%{opacity:1}to{opacity:0;transform:translateY(8px)}}@keyframes bot-pulse{50%{opacity:.3}}@keyframes bot-talk{0%,to{transform:scaleY(1)}50%{transform:scaleY(-1.6)}}@keyframes chat-in{0%{opacity:0;transform:translateY(1rem)scale(.96)}}@keyframes chat-dot{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-.5rem)}}@media (prefers-reduced-motion:reduce){.chat *,.chat :before{transition-duration:.01ms!important;animation:none!important}}[data-theme=dark] .chat__toggle{color:#0a0a0a;background:#fff;box-shadow:0 1rem 3rem #0009,0 0 0 1.5px #ffffff40}[data-theme=dark] .chat__avatar{background:#f4f4f4}[data-theme=dark] .chat__mini{background:#f4f4f4;border-radius:50%;padding:.15rem}body.page .chat{bottom:2.4rem}@media (width<=37.5em),(height<=31.25em){body.page .chat{bottom:1.6rem}}.site-header{z-index:10;background:linear-gradient(var(--page-bg)65%,transparent);align-items:center;gap:4rem;height:8rem;padding:0 4.8rem;transition:color .4s;display:flex;position:fixed;inset:0 0 auto}@media (width<=37.5em){.site-header{justify-content:space-between;height:6.4rem;padding:0 2rem}}.site-header .btn{margin-left:auto}.brand{letter-spacing:-.02em;align-items:center;gap:1rem;font-size:1.8rem;font-weight:500;display:flex}.brand__photo{object-fit:cover;background:rgb(var(--c-grey-200));width:3.6rem;height:3.6rem;box-shadow:0 0 0 1px rgb(var(--c-grey-200));border-radius:50%;transition:box-shadow .4s,transform .3s}.brand:hover .brand__photo{transform:scale(1.06)}@media (width<=56.25em){.brand__name{display:none}}.site-nav{gap:3.2rem;display:flex}.site-nav__link{color:rgb(var(--c-grey-700));font-size:1.5rem;transition:color .25s;position:relative}.site-nav__link:after{content:"";background:currentColor;border-radius:50%;width:4px;height:4px;transition:transform .3s;position:absolute;bottom:-.9rem;left:50%;transform:translate(-50%)scale(0)}.site-nav__link:hover,.site-nav__link.is-active{color:rgb(var(--c-black))}.site-nav__link.is-active:after{transform:translate(-50%)scale(1)}@media (width<=56.25em){.site-nav{gap:2rem}}@media (width<=37.5em){.site-nav{display:none}}.controls{z-index:10;pointer-events:none;background:linear-gradient(to top,var(--page-bg)65%,transparent);align-items:center;gap:3rem;height:8rem;padding:0 4.8rem;transition:color .4s;display:flex;position:fixed;inset:auto 0 0}.controls>*{pointer-events:auto}.controls__arrows{gap:1rem;margin-left:2rem;display:flex}@media (width<=37.5em){.controls{gap:1rem;height:6.4rem;padding:0 1.2rem}.controls__arrows{margin-left:auto}}.arrow{background:rgb(var(--c-grey-100));border-radius:50%;place-items:center;width:4.8rem;height:4.8rem;font-size:1.5rem;transition:background .25s,color .25s,opacity .25s;display:grid}.arrow:hover{background:rgb(var(--c-black));color:rgb(var(--c-white))}.hint{color:rgb(var(--c-grey-500));border-radius:999px;align-items:center;gap:1.2rem;padding:.8rem 1.6rem .8rem .8rem;font-size:1.4rem;transition:color .4s,background .25s,transform .4s cubic-bezier(.77,0,.18,1);display:inline-flex}.hint:hover{background:rgb(var(--c-grey-500)/.1)}.hint b{color:rgb(var(--c-black));font-weight:500;transition:color .4s}.hint__icon{place-items:center;width:3.6rem;height:3.6rem;transition:width .4s cubic-bezier(.77,0,.18,1),opacity .3s;display:grid;position:relative}.hint__icon>*{opacity:0;transition:opacity .3s;position:absolute}.hint[data-mode=wheel] .hint__mouse,.hint[data-mode=touch] .hint__swipe,.hint[data-mode=keys] .hint__keys{opacity:1}.hint__mouse{border:1.5px solid rgb(var(--c-grey-400));border-radius:1rem;width:1.8rem;height:2.8rem}.hint__mouse i{background:rgb(var(--c-black));border-radius:2px;width:2px;height:.6rem;margin-left:-1px;animation:1.6s ease-in-out infinite hint-wheel;position:absolute;top:.5rem;left:50%}.hint__swipe{width:3.6rem;height:1.2rem}.hint__swipe i{background:rgb(var(--c-black));border-radius:50%;width:1.2rem;height:1.2rem;margin-top:-.6rem;animation:1.8s cubic-bezier(.5,0,.2,1) infinite hint-swipe;position:absolute;top:50%;right:.2rem}.hint__keys{gap:2px;display:flex}.hint__keys kbd{border:1.5px solid rgb(var(--c-grey-300));border-radius:.4rem;place-items:center;width:1.7rem;height:1.9rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1rem;line-height:1;display:grid}.hint__keys kbd:last-child{animation:1.6s ease-in-out infinite hint-key}.hint__arrow{color:rgb(var(--c-black));font-size:1.2rem;transition:transform .25s,color .4s}.hint:hover .hint__arrow{transform:translate(3px)}.hint.is-compact{padding-left:1.6rem}.hint.is-compact .hint__icon{opacity:0;width:0}.hint.is-compact .hint__action,.hint.is-compact .hint__for{display:none}.hint.is-nudging{transform:translate(.8rem)}@keyframes hint-wheel{0%{opacity:1;transform:translateY(0)}70%{opacity:0;transform:translateY(.9rem)}to{opacity:0;transform:translateY(0)}}@keyframes hint-swipe{0%{opacity:0;transform:translate(0)scale(.6)}15%{opacity:1;transform:translate(0)scale(1)}70%{opacity:1;transform:translate(-2.2rem)scale(1)}to{opacity:0;transform:translate(-2.6rem)scale(.6)}}@keyframes hint-key{0%,60%,to{transform:none}70%{transform:translateY(2px)}}.dots{align-items:center;gap:.8rem;margin-left:auto;display:flex}.dots__dot{background:rgb(var(--c-grey-300));border-radius:999px;width:.8rem;height:.8rem;transition:width .5s cubic-bezier(.77,0,.18,1),background .4s;position:relative}.dots__dot.is-active{background:rgb(var(--c-black));width:2.8rem}.dots__dot:after{content:attr(data-label);white-space:nowrap;color:rgb(var(--c-grey-500));opacity:0;pointer-events:none;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.1rem;transition:opacity .2s,transform .2s;position:absolute;bottom:1.8rem;left:50%;transform:translate(-50%,.4rem)}.dots__dot:hover:after{opacity:1;transform:translate(-50%)}@media (width<=37.5em){.dots{display:none}}.deck{position:fixed;inset:0;overflow:hidden}.deck__track{will-change:transform;width:max-content;height:100%;transition:transform .8s cubic-bezier(.77,0,.18,1),opacity .35s;display:flex}.deck__track.is-wrapping{opacity:0;transition:opacity .28s}.deck__track.no-transition{transition:none}.deck__track.is-peeking{animation:1.4s cubic-bezier(.77,0,.18,1) deck-peek}@keyframes deck-peek{0%,to{translate:0}40%,55%{translate:-6vw}}.slide{scrollbar-width:thin;flex:0 0 100vw;width:100vw;height:100%;padding:10rem 4.8rem;display:flex;overflow:hidden auto}.slide .slide__inner>*{opacity:0;transition:opacity .7s,transform .8s cubic-bezier(.77,0,.18,1);transform:translate(4rem)}.slide.is-active .slide__inner>*{opacity:1;transform:none}.slide.is-active .slide__inner>:first-child{transition-delay:.23s}.slide.is-active .slide__inner>:nth-child(2){transition-delay:.31s}.slide.is-active .slide__inner>:nth-child(3){transition-delay:.39s}.slide.is-active .slide__inner>:nth-child(4){transition-delay:.47s}.slide.is-active .slide__inner>:nth-child(5){transition-delay:.55s}.slide.is-active .slide__inner>:nth-child(6){transition-delay:.63s}@media (width<=37.5em){.slide{padding:8.4rem 2rem}}.slide__inner{width:100%;max-width:128rem;margin:auto}.slide__title{letter-spacing:-.035em;margin-bottom:2.4rem;font-size:clamp(3.6rem,4.6vw,6rem);font-weight:400;line-height:1.05}.caret{vertical-align:-.1em;background:linear-gradient(180deg,rgb(var(--c-black)),rgb(var(--c-grey-400)));border-radius:2px;width:.08em;min-width:2px;height:.95em;margin-left:.06em;animation:1s step-end infinite caret-blink;display:inline-block}@keyframes caret-blink{50%{opacity:0}}.hero{text-align:center;flex-direction:column;align-items:center;display:flex}.hero__brand{letter-spacing:-.02em;align-items:center;gap:1.2rem;margin-bottom:3.6rem;font-size:2.2rem;font-weight:500;display:inline-flex}.hero__avatar{object-fit:cover;object-position:center 30%;filter:grayscale();border-radius:50%;width:4rem;height:4rem}.hero__title{letter-spacing:-.05em;margin-bottom:2.8rem;font-size:clamp(4.4rem,6.6vw,9.6rem);font-weight:400;line-height:1.02}.hero__type{min-height:1.4em;color:rgb(var(--c-grey-500));letter-spacing:-.01em;margin-bottom:4.4rem;font-size:clamp(1.8rem,1.8vw,2.4rem)}.hero__type .typer{color:rgb(var(--c-black))}.hero__actions{flex-wrap:wrap;justify-content:center;gap:1.2rem;display:flex}.hero__links{flex-wrap:wrap;justify-content:center;gap:.4rem 2.4rem;margin-top:2.4rem;font-size:1.45rem;display:flex}.hero__links a{min-height:4.4rem;color:rgb(var(--c-grey-500));align-items:center;gap:.7rem;transition:color .2s;display:inline-flex}.hero__links a:hover,.hero__links a:focus-visible{color:rgb(var(--c-black))}@media (width<=37.5em){.hero__title br{display:none}}.arc{height:21rem;margin-bottom:1.6rem;position:relative}@media (width<=56.25em){.arc{height:12rem}}.arc__ring{width:0;height:0;position:absolute;top:4.4rem;left:50%}.arc__ring li{will-change:transform,opacity;width:7.2rem;height:7.2rem;position:absolute;top:-3.6rem;left:-3.6rem}@media (width<=37.5em){.arc__ring li{width:5.2rem;height:5.2rem;top:-2.6rem;left:-2.6rem}}.arc__ring span{background:rgb(var(--c-grey-100));width:100%;height:100%;color:rgb(var(--c-grey-700));border-radius:50%;place-items:center;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.2rem;display:grid}@media (width<=37.5em){.arc__ring span{font-size:1rem}}.arc__ring li.is-focus span,.arc__ring li:hover span{background:rgb(var(--c-black));color:rgb(var(--c-white));box-shadow:0 12px 28px -10px #00000073}.slide .arc__ring li span{opacity:0;transition:opacity .5s,transform .6s cubic-bezier(.34,1.56,.64,1),background .4s,color .4s,box-shadow .4s;transform:translateY(1.2rem)scale(.6)}.slide.is-active .arc__ring li span{opacity:1;transform:none}.slide.is-active .arc__ring li:first-child span{transition-delay:.24s}.slide.is-active .arc__ring li:nth-child(2) span{transition-delay:.28s}.slide.is-active .arc__ring li:nth-child(3) span{transition-delay:.32s}.slide.is-active .arc__ring li:nth-child(4) span{transition-delay:.36s}.slide.is-active .arc__ring li:nth-child(5) span{transition-delay:.4s}.slide.is-active .arc__ring li:nth-child(6) span{transition-delay:.44s}.slide.is-active .arc__ring li:nth-child(7) span{transition-delay:.48s}.slide.is-active .arc__ring li:nth-child(8) span{transition-delay:.52s}.slide.is-active .arc__ring li:nth-child(9) span{transition-delay:.56s}.slide.is-active .arc__ring li:nth-child(10) span{transition-delay:.6s}.slide.is-active .arc__ring li:nth-child(11) span{transition-delay:.64s}.slide.is-active .arc__ring li:nth-child(12) span{transition-delay:.68s}.slide.is-active .arc__ring li:nth-child(13) span{transition-delay:.72s}.slide.is-active .arc__ring li:nth-child(14) span{transition-delay:.76s}.slide.is-active .arc__ring li:nth-child(15) span{transition-delay:.8s}.slide.is-active .arc__ring li:nth-child(16) span{transition-delay:.84s}.about__statement{letter-spacing:-.035em;max-width:96rem;margin-bottom:4.8rem;font-size:clamp(2.8rem,3.4vw,4.6rem);line-height:1.15}.about__now{max-width:96rem;color:rgb(var(--c-grey-700));align-items:baseline;gap:1.2rem;margin:-2.4rem 0 4rem;font-size:1.6rem;display:flex}.about__now span{background:rgb(var(--c-black));color:rgb(var(--c-white));text-transform:uppercase;letter-spacing:.06em;border-radius:999px;flex:none;padding:.3rem 1rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.1rem}.about__row{grid-template-columns:16rem 1fr 1fr;align-items:start;gap:4rem;display:grid}@media (width<=56.25em){.about__row{grid-template-columns:1fr;gap:2.4rem}}.about__photo{aspect-ratio:1;object-fit:cover;object-position:center 30%;filter:grayscale();border-radius:2.4rem;width:16rem}.about__text{color:rgb(var(--c-grey-700));font-size:1.6rem;line-height:1.65}.edu{gap:1.6rem;display:grid}.edu li{border-bottom:1px solid rgb(var(--c-grey-200));color:rgb(var(--c-grey-700));gap:.2rem;padding-bottom:1.6rem;font-size:1.5rem;display:grid}.edu li:last-child{border-bottom:0;padding-bottom:0}.edu strong{color:rgb(var(--c-black));font-size:1.7rem;font-weight:500}.edu__period{color:rgb(var(--c-grey-500));font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.15rem}.projects{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6rem;display:grid}@media (width<=56.25em){.projects{grid-template-columns:1fr;justify-items:center;gap:2.4rem}}.projects__intro{max-width:48rem}.projects__intro .btn{margin-top:3.2rem}@media (width<=56.25em){.projects__intro{text-align:center;width:100%;max-width:none}.projects__intro .slide__title{margin-bottom:0}.projects__intro .eyebrow,.projects__intro .projects__lead,.projects__intro .btn{display:none}}.projects__lead{color:rgb(var(--c-grey-700));margin-bottom:3.2rem;font-size:1.7rem;line-height:1.6}.story-picker{gap:2.4rem;display:flex}@media (width<=56.25em){.story-picker{display:none}}.story-picker__item{flex-direction:column;align-items:center;gap:.8rem;display:flex}.story-picker__ring{--p:0;background:rgb(var(--c-black));border-radius:50%;place-items:center;width:6.8rem;height:6.8rem;padding:3px;transition:transform .25s;display:grid}.story-picker__ring span{border:3px solid rgb(var(--c-white));background:rgb(var(--c-grey-100));border-radius:50%;place-items:center;width:100%;height:100%;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.4rem;font-weight:500;display:grid}.story-picker__item:hover .story-picker__ring{transform:scale(1.06)}.story-picker__item.is-seen .story-picker__ring{background:rgb(var(--c-grey-300))}.story-picker__item.is-active .story-picker__ring{background:conic-gradient(rgb(var(--c-black))calc(var(--p)*360deg),rgb(var(--c-grey-300))0)}.story-picker__item.is-active .story-picker__ring span{background:rgb(var(--c-black));color:rgb(var(--c-white))}.story-picker__name{color:rgb(var(--c-grey-700));font-size:1.3rem}.stories{outline-offset:8px;align-items:center;gap:2rem;display:flex;position:relative}@media (width<=56.25em){.stories{justify-content:center;width:100%}}.stories__ambient{background:radial-gradient(closest-side,rgb(var(--c-black)/.28),transparent);filter:blur(30px);pointer-events:none;z-index:0;border-radius:50%;width:130%;height:84%;position:absolute;top:8%;left:50%;transform:translate(-50%)}.stories__arrow{z-index:1;background:rgb(var(--c-white)/.85);border:1px solid rgb(var(--c-grey-200));border-radius:50%;place-items:center;width:4.8rem;height:4.8rem;font-size:2.4rem;transition:background .25s,transform .25s;display:grid;position:relative}.stories__arrow:hover{background:rgb(var(--c-white));transform:scale(1.08)}@media (width<=56.25em){.stories__arrow{display:none}}.stories__frame{z-index:1;aspect-ratio:9/16;background:radial-gradient(120% 60% at 50% 0%,rgb(var(--c-grey-800))0%,rgb(var(--c-black))60%);height:min(100svh - 24rem,68rem);min-height:46rem;color:rgb(var(--c-white));touch-action:pan-y;user-select:none;-webkit-touch-callout:none;cursor:pointer;border-radius:2.8rem;position:relative;overflow:hidden;box-shadow:0 40px 80px -30px #0000008c}@media (width<=56.25em){.stories__frame{aspect-ratio:auto;width:min(100%,44rem);height:calc(100svh - 26rem);min-height:34rem}}@media (width<=37.5em){.stories__frame{height:calc(100svh - 23.4rem)}}.stories__bars{z-index:2;gap:.5rem;display:flex;position:absolute;top:1.4rem;left:1.4rem;right:1.4rem}.stories__bar{background:rgb(var(--c-white)/.25);border-radius:3px;flex:1;height:3px;overflow:hidden}.stories__bar i{background:rgb(var(--c-white));transform-origin:0;height:100%;display:block;transform:scaleX(0)}.stories.is-paused .stories__bar i{opacity:.55}.story{opacity:0;pointer-events:none;flex-direction:column;padding-top:3.2rem;transition:opacity .45s,transform .6s cubic-bezier(.77,0,.18,1);display:flex;position:absolute;inset:0;transform:translate(14%)scale(.94)}.story.is-before{transform:translate(-14%)scale(.94)}.story.is-active{opacity:1;pointer-events:auto;transform:none}.story__head{align-items:center;gap:1rem;padding:0 1.8rem 1.4rem;font-size:1.35rem;display:flex}.story__avatar{object-fit:cover;background:rgb(var(--c-grey-800));width:3.2rem;height:3.2rem;box-shadow:0 0 0 2px rgb(var(--c-white)/.85);border-radius:50%;flex:none}.story__handle{font-weight:500}.story__kind{color:rgb(var(--c-grey-400));margin-left:auto;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.1rem}.story__media{background:rgb(var(--c-grey-900));border-radius:1.6rem;flex:auto;min-height:8rem;margin:0 1.2rem;position:relative;overflow:hidden}.story__media--diagram{background:radial-gradient(120% 90% at 50% 30%,rgb(var(--c-grey-800))0%,rgb(var(--c-grey-900))70%)}.story__body{flex-direction:column;flex:none;padding:2rem 2rem 2.2rem;display:flex}.story__title{letter-spacing:-.03em;font-size:3rem;font-weight:400;line-height:1.1}.story__tagline{letter-spacing:.04em;text-transform:uppercase;color:rgb(var(--c-grey-400));margin:.6rem 0 1.4rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.2rem}.story__desc{color:rgb(var(--c-grey-300));font-size:1.45rem;line-height:1.55;overflow:hidden}.story__tags{flex-wrap:wrap;gap:.6rem;margin:1.6rem 0;display:flex}.story__tags li{border:1px solid rgb(var(--c-grey-700));color:rgb(var(--c-grey-300));border-radius:999px;padding:.4rem 1rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.1rem}.story__links{gap:1rem;display:flex}@media (height<=56.25em){.story__desc{font-size:1.35rem}.story__tags{margin:1.2rem 0}}@media (width<=56.25em) and (height<=800px){.story__head{padding-bottom:1rem}.story__body{padding:1.4rem 1.8rem 1.8rem}.story__title{font-size:2.4rem}.story__tagline{display:none}.story__desc{-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:.6rem;font-size:1.35rem;display:-webkit-box}.story__tags{flex-wrap:nowrap;margin:1.2rem 0 1.4rem;overflow:hidden;mask-image:linear-gradient(90deg,#000 85%,#0000)}.story__tags li{flex:none}}body[data-slide=projects] .backdrop{opacity:.35}.arch{width:calc(100% - 1.6rem);height:calc(100% - 1.6rem);position:absolute;inset:.8rem}.arch__links path{fill:none;stroke:rgb(var(--c-white)/.22);stroke-width:1px}.arch__dashed{stroke-dasharray:3 3}.arch__nodes rect{fill:rgb(var(--c-grey-900));stroke:rgb(var(--c-white)/.35);stroke-width:1px}.arch__nodes text{fill:rgb(var(--c-grey-200));text-anchor:middle;dominant-baseline:central;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8.5px}.arch rect.arch__key{fill:rgb(var(--c-white));stroke:rgb(var(--c-white))}.arch text.arch__key-text{fill:rgb(var(--c-black));font-weight:500}.arch rect.arch__aux{fill:rgb(var(--c-white)/.04);stroke:rgb(var(--c-white)/.2)}.arch rect.arch__bus{fill:rgb(var(--c-white)/.08);stroke:rgb(var(--c-white)/.3)}.arch text.arch__small{fill:rgb(var(--c-grey-400));font-size:7.5px}.arch text.arch__bus-text{fill:rgb(var(--c-grey-300))}.arch__flow circle{fill:rgb(var(--c-white));filter:drop-shadow(0 0 3px rgb(var(--c-white)/.9))}@media (prefers-reduced-motion:reduce){.arch__flow{display:none}}.arena__wall{fill:rgb(var(--c-white)/.32)}.arena__block{fill:rgb(var(--c-white)/.12)}.arena__player,.arena__bomb{fill:rgb(var(--c-white))}.arena__fire rect{fill:rgb(var(--c-white));filter:drop-shadow(0 0 3px rgb(var(--c-white)/.9))}.blog__head{justify-content:space-between;align-items:flex-end;gap:3rem;margin-bottom:2.4rem;display:flex}.blog__head .slide__title{margin-bottom:1.2rem}@media (width<=56.25em){.blog__head{flex-direction:column;align-items:stretch;gap:2rem}}.blog__lead{color:rgb(var(--c-grey-700));font-size:1.7rem}.blog__search{background:rgb(var(--c-grey-100));width:min(100%,32rem);color:rgb(var(--c-grey-500));border-radius:999px;align-items:center;gap:1rem;padding:1.1rem 1.8rem;transition:background .25s,box-shadow .25s;display:flex}.blog__search:focus-within{background:rgb(var(--c-white));box-shadow:0 0 0 1px rgb(var(--c-black))}.blog__search input{min-width:0;font:inherit;color:rgb(var(--c-black));background:0 0;border:0;outline:0;flex:1;font-size:1.5rem}@media (width<=56.25em){.blog__search{width:100%}}.chip{border:1px solid rgb(var(--c-grey-200));color:rgb(var(--c-grey-700));white-space:nowrap;border-radius:999px;padding:.6rem 1.4rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.2rem;transition:background .25s,color .25s,border-color .25s}.chip:hover{border-color:rgb(var(--c-black))}.chip.is-active{background:rgb(var(--c-black));border-color:rgb(var(--c-black));color:rgb(var(--c-white))}.blog__tags{flex-wrap:wrap;gap:.8rem;margin-bottom:2rem;display:flex}@media (width<=37.5em){.blog__tags{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}}.blog__list{border-top:1px solid rgb(var(--c-grey-200))}.post-card{border-bottom:1px solid rgb(var(--c-grey-200));grid-template-columns:19rem 1fr;align-items:start;gap:2.4rem;padding:2.2rem .4rem;transition:padding .35s cubic-bezier(.77,0,.18,1),background .35s;display:grid}.post-card:hover{background:rgb(var(--c-grey-100)/.7);padding-left:1.6rem;padding-right:1.6rem}.post-card__meta{white-space:nowrap;color:rgb(var(--c-grey-500));padding-top:.6rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.2rem}.post-card__main{gap:.6rem;display:grid}.post-card__title{letter-spacing:-.02em;font-size:2.2rem;line-height:1.25}.post-card__summary{color:rgb(var(--c-grey-700));font-size:1.5rem;line-height:1.55}.post-card__tags{color:rgb(var(--c-grey-500));flex-wrap:wrap;gap:1.2rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.15rem;display:flex}.post-card__more{background:rgb(var(--c-black));color:rgb(var(--c-white));border-radius:999px;justify-self:start;align-items:center;gap:.8rem;margin-top:.8rem;padding:.7rem 1.6rem;font-size:1.35rem;font-weight:500;transition:background .25s;display:inline-flex}.post-card__more i{font-size:1.1rem;transition:transform .3s}.post-card:hover .post-card__more{background:rgb(var(--c-grey-700))}.post-card:hover .post-card__more i{transform:translate(4px)}@media (width<=56.25em){.post-card{grid-template-columns:1fr;gap:.8rem}.post-card__meta{grid-column:1/-1;padding-top:0}}.blog__status{color:rgb(var(--c-grey-500));padding:3.2rem 0;font-size:1.6rem}.blog__retry{color:rgb(var(--c-black));text-underline-offset:3px;font-weight:500;text-decoration:underline}.blog__more{margin-top:2.4rem}.slide--contact{color:rgb(var(--c-white))}.slide--contact .eyebrow{color:rgb(var(--c-grey-500))}.slide--contact ::selection{background:rgb(var(--c-white));color:rgb(var(--c-black))}.contact__title{letter-spacing:-.05em;margin-bottom:2.8rem;font-size:clamp(4.8rem,7.6vw,11rem);font-weight:400;line-height:1}.contact__lead{color:rgb(var(--c-grey-400));margin-bottom:4rem;font-size:1.9rem}.contact__actions{flex-wrap:wrap;gap:1.2rem;margin-bottom:6rem;display:flex}.contact__actions .btn{word-break:break-all;white-space:normal}.contact__email{align-items:center;gap:.6rem;display:inline-flex}.contact__copy{border:1px solid rgb(var(--c-grey-700));width:4.4rem;height:4.4rem;color:rgb(var(--c-grey-300));cursor:pointer;background:0 0;border-radius:50%;flex:none;place-items:center;font-size:1.5rem;transition:background .25s,color .25s;display:grid;position:relative}.contact__copy:hover,.contact__copy:focus-visible{background:rgb(var(--c-white));color:rgb(var(--c-black))}.contact__copied{background:rgb(var(--c-white));color:rgb(var(--c-black));white-space:nowrap;pointer-events:none;border-radius:.6rem;padding:.3rem .8rem;font-size:1.2rem;position:absolute;bottom:calc(100% + .6rem);left:50%;transform:translate(-50%)}.contact__copied:empty{display:none}.contact__bottom{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2rem;display:flex}.contact__footer{color:rgb(var(--c-grey-500));font-size:1.3rem}.socials{gap:1rem;display:flex}.socials a{background:rgb(var(--c-grey-900));width:4.8rem;height:4.8rem;color:rgb(var(--c-grey-300));border-radius:50%;place-items:center;font-size:1.8rem;transition:background .25s,color .25s;display:grid}.socials a:hover{background:rgb(var(--c-white));color:rgb(var(--c-black))}.cv{max-width:96rem;color:rgb(var(--c-grey-700));margin:0 auto;padding:6.4rem 2.4rem 6rem;font-size:1.6rem;line-height:1.6}@media (width<=37.5em){.cv{padding-top:4rem}}.cv b{color:rgb(var(--c-black));font-weight:500}.cv__top{align-items:center;gap:2.4rem;margin-bottom:2.8rem;display:flex}@media (width<=37.5em){.cv__top{flex-direction:column;align-items:flex-start}}.cv__photo{object-fit:cover;filter:grayscale();border-radius:50%;flex:none;width:9.6rem;height:9.6rem}.cv__name{letter-spacing:-.035em;color:rgb(var(--c-black));font-size:clamp(3.4rem,5vw,5.2rem);font-weight:400;line-height:1.05}.cv__role{letter-spacing:.06em;text-transform:uppercase;color:rgb(var(--c-grey-500));margin-top:.6rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.35rem}.cv__status{align-items:baseline;gap:.8rem;margin-top:1.2rem;font-size:1.5rem;display:flex}.cv__dot{background:#22c55e;border-radius:50%;flex:none;width:.9rem;height:.9rem;transform:translateY(-.1rem);box-shadow:0 0 0 .35rem #22c55e33}.cv__actions{border-bottom:1px solid rgb(var(--c-grey-200));flex-wrap:wrap;gap:.8rem;padding-bottom:4rem;display:flex}.cv__print-contact{display:none}.cv__section{border-bottom:1px solid rgb(var(--c-grey-200));padding:4rem 0}.cv__section:last-child{border-bottom:0}.cv__h{letter-spacing:.1em;text-transform:uppercase;color:rgb(var(--c-black));margin-bottom:2rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.3rem;font-weight:500}.cv__summary{font-size:1.8rem;line-height:1.65}.cv__entry+.cv__entry{margin-top:3.2rem}.cv__entry-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.4rem 2rem;display:flex}.cv__entry-head h3{color:rgb(var(--c-black));font-size:1.9rem;font-weight:500}.cv__date{color:rgb(var(--c-grey-500));font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.25rem}.cv__org{color:rgb(var(--c-grey-500));margin:.2rem 0 1rem;font-size:1.45rem}.cv__points{padding-left:2rem}.cv__points li+li{margin-top:.4rem}.cv__stack{color:rgb(var(--c-grey-500));margin-top:1rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.2rem}.cv__grid{grid-template-columns:repeat(auto-fill,minmax(26rem,1fr));gap:1.6rem;display:grid}.cv__card{border:1px solid rgb(var(--c-grey-200));border-radius:1.6rem;flex-direction:column;padding:2rem;font-size:1.5rem;display:flex}.cv__card h3{color:rgb(var(--c-black));margin-bottom:.8rem;font-size:1.8rem;font-weight:500}.cv__card h3 i{color:rgb(var(--c-grey-400));font-size:1.2rem}.cv__card a:hover i{color:rgb(var(--c-black))}.cv__card .cv__stack{margin-top:auto;padding-top:1.2rem}.cv__two{grid-template-columns:3fr 2fr;gap:4rem;display:grid}@media (width<=37.5em){.cv__two{grid-template-columns:1fr}}.cv__skills{grid-template-columns:max-content 1fr;gap:.8rem 2rem;font-size:1.5rem;display:grid}.cv__skills dt{color:rgb(var(--c-black));font-weight:500}@media (width<=37.5em){.cv__skills{grid-template-columns:1fr;gap:.2rem}.cv__skills dd{margin-bottom:1rem}}.cv__edu{margin-bottom:3.2rem;font-size:1.5rem;list-style:none}.cv__edu li{display:grid}.cv__edu li+li{margin-top:1.4rem}.cv__langs{font-size:1.5rem}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.fit{scroll-margin-top:7.2rem}.fit__lead{color:rgb(var(--c-grey-500));margin-bottom:1.6rem;font-size:1.5rem}.fit textarea{border:1px solid rgb(var(--c-grey-200));background:rgb(var(--c-grey-100));width:100%;min-height:14rem;color:rgb(var(--c-black));font:inherit;resize:vertical;border-radius:1.2rem;padding:1.4rem 1.6rem;font-size:1.5rem;line-height:1.5;display:block}.fit textarea:focus{border-color:rgb(var(--c-grey-500));outline:none}.fit__buttons{flex-wrap:wrap;gap:.8rem;margin-top:1.2rem;display:flex}.fit__result:not(:empty){margin-top:2.8rem}.fit__score{margin-bottom:1.4rem;font-size:2rem}.fit__list{gap:.2rem;font-size:1.5rem;list-style:none;display:grid}.fit__row{border-bottom:1px solid rgb(var(--c-grey-100));grid-template-columns:2rem minmax(14rem,max-content) 1fr;align-items:baseline;gap:1.2rem;padding:.7rem 0;display:grid}.fit__row span:last-child{color:rgb(var(--c-grey-500))}@media (width<=37.5em){.fit__row{grid-template-columns:2rem 1fr;gap:.2rem 1.2rem}.fit__row span:last-child{grid-column:2}}.fit__mark:before{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:500}.fit__row--has .fit__mark:before{content:"✓";color:#16a34a}.fit__row--close .fit__mark:before{content:"≈";color:#d97706}.fit__row--missing .fit__mark:before{content:"–";color:rgb(var(--c-grey-400))}.fit__row--missing b{color:rgb(var(--c-grey-500))}.fit__note,.fit__empty{margin-top:1.6rem;font-size:1.5rem}.fit__cta{margin-top:2rem;font-size:1.6rem}.fit__cta a{color:rgb(var(--c-black));text-underline-offset:.3rem;text-decoration:underline}.case{max-width:96rem;color:rgb(var(--c-grey-700));margin:0 auto;padding:6.4rem 2.4rem 6rem;font-size:1.65rem;line-height:1.7}@media (width<=37.5em){.case{padding-top:4rem}}.case b{color:rgb(var(--c-black));font-weight:500}.case code{background:rgb(var(--c-grey-100));color:rgb(var(--c-black));border-radius:.4rem;padding:.1em .35em;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.86em}.case__eyebrow{letter-spacing:.1em;text-transform:uppercase;color:rgb(var(--c-grey-500));margin-bottom:1.2rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.25rem}.case__title{letter-spacing:-.04em;color:rgb(var(--c-black));margin-bottom:2rem;font-size:clamp(4rem,6vw,6.4rem);font-weight:400;line-height:1.02}.case__lead{max-width:72rem;margin-bottom:2.8rem;font-size:1.95rem;line-height:1.6}.case__meta{border-top:1px solid rgb(var(--c-grey-200));border-bottom:1px solid rgb(var(--c-grey-200));grid-template-columns:repeat(3,minmax(0,1fr));gap:1.6rem;margin-bottom:2.4rem;padding:2rem 0;display:grid}@media (width<=37.5em){.case__meta{grid-template-columns:1fr}}.case__meta dt{letter-spacing:.08em;text-transform:uppercase;color:rgb(var(--c-grey-500));font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.2rem}.case__meta dd{color:rgb(var(--c-black));font-size:1.5rem}.case__links{flex-wrap:wrap;gap:.8rem;display:flex}.case__toc{z-index:2;background:rgb(var(--c-white));border-bottom:1px solid rgb(var(--c-grey-100));scrollbar-width:none;gap:.4rem 2rem;margin:4rem -2.4rem 0;padding:1.2rem 2.4rem;font-size:1.4rem;display:flex;position:sticky;top:7.2rem;overflow-x:auto}.case__toc a{color:rgb(var(--c-grey-500));flex:none;padding:.6rem 0}.case__toc a:hover,.case__toc a:focus-visible{color:rgb(var(--c-black))}.case__section{max-width:76rem;padding:4.8rem 0 0;scroll-margin-top:13rem}.case__section--wide{max-width:none}.case__section h2{letter-spacing:-.02em;color:rgb(var(--c-black));margin-bottom:1.6rem;font-size:2.8rem;font-weight:400}.case__section h3{color:rgb(var(--c-black));margin:3.2rem 0 .8rem;font-size:1.9rem;font-weight:500}.case__section p+p{margin-top:1.2rem}.case__list{padding-left:2rem}.case__list li+li{margin-top:.8rem}.case__code{background:rgb(var(--c-grey-100));border-radius:1.2rem;margin:1.6rem 0;padding:1.6rem 2rem;font-size:1.35rem;line-height:1.6;overflow-x:auto}.case__code code{background:0 0;padding:0}.case__pipeline{counter-reset:step;grid-template-columns:repeat(5,minmax(0,1fr));gap:.8rem;margin:2rem 0 2.4rem;list-style:none;display:grid}@media (width<=56.25em){.case__pipeline{grid-template-columns:1fr}}.case__pipeline li{counter-increment:step;border:1px solid rgb(var(--c-grey-200));border-radius:1.2rem;flex-direction:column;gap:.4rem;padding:1.4rem;font-size:1.35rem;line-height:1.45;display:flex}.case__pipeline li b:before{content:counter(step)". ";color:rgb(var(--c-grey-500));font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.case__note,.case__noscript{color:rgb(var(--c-grey-500));margin-top:1.6rem;font-size:1.4rem}.cv-sheet .case__toc{top:0}.cv-sheet .case__section{scroll-margin-top:6rem}.ax{margin-top:2.4rem}.ax__stage{border:1px solid rgb(var(--c-grey-200));background:rgb(var(--c-grey-100));border-radius:1.6rem;overflow:hidden}.ax__scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.ax__svg{width:100%;min-width:62rem;height:auto;font-family:Google Sans Flex,Google Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;display:block}.ax__legend{color:rgb(var(--c-grey-500));flex-wrap:wrap;gap:.6rem 2rem;margin:1.2rem 0;font-size:1.3rem;list-style:none;display:flex}.ax__legend li{align-items:center;gap:.8rem;display:inline-flex}.ax__picker{flex-wrap:wrap;gap:.6rem;margin-bottom:1.6rem;display:flex}.ax__chip{border:1px solid rgb(var(--c-grey-300));min-height:3.6rem;color:rgb(var(--c-grey-700));font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:.5rem 1.2rem;font-size:1.3rem}.ax__chip:hover{border-color:rgb(var(--c-grey-500));color:rgb(var(--c-black))}.ax__chip[aria-pressed=true]{background:rgb(var(--c-black));border-color:rgb(var(--c-black));color:rgb(var(--c-white))}.ax__panel,.ax .ax-steps__card{border:1px solid rgb(var(--c-grey-200));border-radius:1.6rem;padding:2rem 2.4rem;font-size:1.5rem;line-height:1.6}.ax__hint{color:rgb(var(--c-grey-500))}.ax__name{color:rgb(var(--c-black));margin-bottom:.8rem;font-size:2rem;font-weight:500}.ax__name span{color:rgb(var(--c-grey-500));margin-left:.6rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.25rem;font-weight:400}.ax__facts{grid-template-columns:14rem 1fr;gap:.8rem 2rem;margin-top:1.6rem;display:grid}@media (width<=37.5em){.ax__facts{grid-template-columns:1fr;gap:.2rem}.ax__facts dd{margin-bottom:1rem}}.ax__facts dt{color:rgb(var(--c-black));font-weight:500}.ax__facts ul{padding-left:1.8rem}.ax__link{color:rgb(var(--c-black));text-underline-offset:.3rem;align-items:center;gap:.8rem;margin-top:1.6rem;text-decoration:underline;display:inline-flex}.ax-edge{fill:none;stroke:rgb(var(--c-grey-400));stroke-width:1.4px;transition:stroke .25s,stroke-width .25s,opacity .25s}.ax-edge--kafka{stroke-dasharray:5 4}.ax-edge--discovery{stroke-dasharray:1.5 3;stroke-linecap:round}.ax-edge--external{stroke-dasharray:9 3 2 3}.ax-edge--db{stroke:rgb(var(--c-grey-300))}.ax-arrow path{fill:rgb(var(--c-grey-400))}.ax-edge__label{fill:rgb(var(--c-grey-500));paint-order:stroke;stroke:rgb(var(--c-grey-100));stroke-width:4px;stroke-linejoin:round;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9.5px}.ax-node{cursor:pointer;outline:none;transition:opacity .25s}.ax-node rect{fill:rgb(var(--c-white));stroke:rgb(var(--c-grey-300));stroke-width:1.2px;transition:fill .25s,stroke .25s}.ax-node--edge rect,.ax-node--bus rect{stroke:rgb(var(--c-grey-500))}.ax-node--external rect{stroke-dasharray:4 3}.ax-node--data rect{fill:rgb(var(--c-grey-100))}.ax-node__label{fill:rgb(var(--c-black));text-anchor:middle;dominant-baseline:middle;pointer-events:none;font-size:12.5px;font-weight:500}.ax-node__sub{fill:rgb(var(--c-grey-500));text-anchor:middle;dominant-baseline:middle;pointer-events:none;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8.5px}.ax-node:hover rect{stroke:rgb(var(--c-black))}.ax-node:focus-visible rect{stroke:rgb(var(--c-black));stroke-width:2.4px}.ax-node[aria-pressed=true] rect{fill:rgb(var(--c-black));stroke:rgb(var(--c-black))}.ax-node[aria-pressed=true] .ax-node__label,.ax-node[aria-pressed=true] .ax-node__sub{fill:rgb(var(--c-white))}.ax__svg.is-focused .ax-node:not(.is-lit){opacity:.3}.ax__svg.is-focused .ax-edge:not(.is-lit){opacity:.15}.ax__svg.is-focused .ax-edge.is-lit{stroke:rgb(var(--c-black));stroke-width:2px}.ax__svg.is-focused .ax-node.is-lit rect{stroke:rgb(var(--c-black))}.ax-steps{margin-top:3.2rem}.ax-steps__head{justify-content:space-between;align-items:center;gap:1.6rem;margin-bottom:1.2rem;display:flex}.ax-steps__title{color:rgb(var(--c-black));font-size:2rem;font-weight:500}.ax-steps__nav{color:rgb(var(--c-grey-500));align-items:center;gap:1rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.25rem;display:flex}.ax-steps__btn{border:1px solid rgb(var(--c-grey-300));width:4.4rem;height:4.4rem;color:rgb(var(--c-black));cursor:pointer;background:0 0;border-radius:50%;place-items:center;display:grid}.ax-steps__btn:hover,.ax-steps__btn:focus-visible{background:rgb(var(--c-black));color:rgb(var(--c-white))}.ax-steps__list{flex-wrap:wrap;gap:.6rem;margin-bottom:1.6rem;list-style:none;display:flex}.ax-steps__item{border:1px solid rgb(var(--c-grey-300));min-height:3.6rem;color:rgb(var(--c-grey-700));font:inherit;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:.8rem;padding:.5rem 1.2rem .5rem .6rem;font-size:1.3rem;display:inline-flex}.ax-steps__item span{background:rgb(var(--c-grey-100));width:2.4rem;height:2.4rem;color:rgb(var(--c-black));border-radius:50%;place-items:center;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.1rem;display:grid}.ax-steps__item:hover{border-color:rgb(var(--c-grey-500))}.ax-steps__item[aria-pressed=true]{background:rgb(var(--c-black));border-color:rgb(var(--c-black));color:rgb(var(--c-white))}.ax-steps__item[aria-pressed=true] span{background:rgb(var(--c-white))}.ax-steps__who{letter-spacing:.06em;text-transform:uppercase;color:rgb(var(--c-grey-500));font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.2rem}.ax-steps__card h4{color:rgb(var(--c-black));margin:.4rem 0 .8rem;font-size:1.8rem;font-weight:500}@media (prefers-reduced-motion:reduce){.ax-edge,.ax-node,.ax-node rect{transition:none}}.cv-sheet{background:rgb(var(--c-white));width:100%;max-width:none;height:100%;max-height:none;color:rgb(var(--c-grey-700));border:0;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.cv-sheet[open]{flex-direction:column;animation:.45s cubic-bezier(.77,0,.18,1) both cv-sheet-in;display:flex}.cv-sheet::backdrop{background:rgb(var(--c-black)/.4)}.cv-sheet__bar{border-bottom:1px solid rgb(var(--c-grey-100));flex:none;justify-content:space-between;align-items:center;gap:2rem;height:7.2rem;padding:0 4.8rem;display:flex}@media (width<=37.5em){.cv-sheet__bar{padding:0 2rem}}.cv-sheet__page{color:rgb(var(--c-grey-700));align-items:center;gap:.8rem;font-size:1.45rem;display:inline-flex}.cv-sheet__page:hover{color:rgb(var(--c-black))}.cv-sheet__close{background:rgb(var(--c-grey-100));width:4.4rem;height:4.4rem;color:rgb(var(--c-black));cursor:pointer;border:0;border-radius:50%;place-items:center;font-size:1.8rem;transition:background .2s,color .2s;display:grid}.cv-sheet__close:hover,.cv-sheet__close:focus-visible{background:rgb(var(--c-black));color:rgb(var(--c-white))}.cv-sheet__body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.cv-sheet__body[aria-busy=true]{min-height:50vh}.cv-sheet .fit{scroll-margin-top:0}@keyframes cv-sheet-in{0%{opacity:0;transform:translateY(3rem)}}@media (prefers-reduced-motion:reduce){.cv-sheet[open]{animation:none}}
/*# sourceMappingURL=MyPortfolio.4567c9f3.css.map */
