: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}}body.page{background:rgb(var(--c-white));height:auto;min-height:100%;overflow:auto}body.page:before{display:none}.page-header{z-index:10;background:rgb(var(--c-white)/.86);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgb(var(--c-grey-100));justify-content:space-between;align-items:center;gap:2rem;height:7.2rem;padding:0 4.8rem;display:flex;position:sticky;top:0}@media (width<=37.5em){.page-header{padding:0 2rem}}.page-header__back{color:rgb(var(--c-grey-700));align-items:center;gap:.8rem;font-size:1.45rem;display:inline-flex}.page-header__back:hover{color:rgb(var(--c-black))}.page-footer{border-top:1px solid rgb(var(--c-grey-200));justify-content:space-between;gap:2rem;max-width:76rem;margin:0 auto;padding:4rem 2.4rem 6rem;font-size:1.5rem;display:flex}.page-footer a{color:rgb(var(--c-grey-700));align-items:center;gap:.8rem;display:inline-flex}.page-footer a:hover{color:rgb(var(--c-black))}.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}}
/*# sourceMappingURL=marketplace.117903f8.css.map */
