@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-cyrillic-400-normal.DZqxrq2p.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-400-normal.BTotfTJu.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-cyrillic-500-normal.CocWQlwt.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-500-normal.ByOcLdNv.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-400-normal.CYLoc0-x.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-latin-500-normal.6ng42L7E.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-500-normal.BgVn5rGT.woff)format("woff")}@font-face{font-family:IBM Plex Serif;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-serif-cyrillic-400-normal.CPQ8oqB-.woff2)format("woff2"),url(/_astro/ibm-plex-serif-cyrillic-400-normal.C7IY3oUc.woff)format("woff")}@font-face{font-family:IBM Plex Serif;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-serif-cyrillic-400-italic.C_ad97oI.woff2)format("woff2"),url(/_astro/ibm-plex-serif-cyrillic-400-italic.CygxzOWU.woff)format("woff")}@font-face{font-family:IBM Plex Serif;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-serif-latin-400-normal.BIGslYFI.woff2)format("woff2"),url(/_astro/ibm-plex-serif-latin-400-normal.BB-zNvJB.woff)format("woff")}@font-face{font-family:IBM Plex Serif;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-serif-latin-400-italic.BCf4TsCA.woff2)format("woff2"),url(/_astro/ibm-plex-serif-latin-400-italic.Dd68USph.woff)format("woff")}:root{--paper:#faf9f6;--asset-revision:2;--ink:#242923;--muted:#74786e;--red:#b64b32;--yellow:#d9ad48;--blue:#7a9eb6;--green:#8b9d72;--line:#dedfd5}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font:17px/1.65 IBM Plex Sans,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--red);outline-offset:7px}button{touch-action:manipulation}a{color:inherit}main{max-width:840px;margin:auto;padding:38px 38px 70px}header{justify-content:space-between;align-items:center;margin-bottom:94px;display:flex}.brand{align-items:center;gap:10px;font-weight:500;text-decoration:none;display:flex}.brand-mark{background:var(--ink);border-radius:3px;width:12px;height:12px;transform:rotate(-8deg)}nav{gap:28px;padding-bottom:20px;display:flex;position:relative}header nav a{cursor:pointer;background:0 0;border:0;padding:8px 0;font-size:15px;text-decoration:none}header nav a[aria-current=page]{color:var(--red)}.token{background:var(--red);pointer-events:none;border-radius:4px;width:13px;height:13px;position:absolute;bottom:0;left:0;box-shadow:0 3px #873a2a}.token-shadow{pointer-events:none;background:#25292016;border-radius:50%;width:15px;height:3px;position:absolute;bottom:-5px;left:0}h1{letter-spacing:-1.4px;margin:0 0 22px;font-size:42px;font-weight:500;line-height:1.2}.intro{max-width:650px;color:var(--muted);margin:0 0 16px}.text-link{color:var(--red);cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:8px 0;font-size:15px;text-decoration:none;display:inline-flex}.text-link .runner{display:inline-block}.text-link:hover .runner,.text-link:focus-visible .runner{animation:.65s both dash}@keyframes dash{0%,to{transform:translate(0)}20%{transform:translate(-5px)scaleX(.75)}55%{transform:translate(12px)scaleX(1.3)}78%{transform:translate(-2px)}}.divider{width:100%;height:32px;margin:45px 0 38px;display:block;overflow:visible}.divider path{stroke:var(--line);stroke-width:1.2px;fill:none}.divider .divider-block{pointer-events:none}.divider .bumper{stroke:var(--line);stroke-width:1.5px;fill:none}.section-head{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.eyebrow{letter-spacing:1.6px;text-transform:uppercase;color:var(--muted);font-size:12px}.hint{color:#909387;font-size:12px}.post{border:0;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;width:100%;margin-bottom:18px;padding:24px 0 32px 62px;display:block;position:relative}.meta{color:var(--muted);align-items:center;gap:12px;font-size:12px;display:flex}.dot{background:var(--green);border-radius:50%;width:5px;height:5px}.end{justify-content:space-between;align-items:center;gap:20px;margin-top:48px;display:flex}.links{gap:24px;display:flex}.external{align-items:center;gap:6px;padding:8px 0;font-size:15px;text-decoration:none;display:inline-flex;position:relative}.launch-slot{flex:none;width:15px;height:18px;display:inline-block;position:relative;overflow:hidden}.launch-slot svg{width:11px;height:11px;stroke:var(--red);stroke-width:1.4px;fill:none;position:absolute;top:3px;left:2px}.external:hover svg,.external:focus-visible svg{animation:.6s both launch}@keyframes launch{0%{transform:translate(0)}22%{transform:translate(-2px,2px)rotate(-12deg)scale(.9)}48%{transform:translate(14px,-14px)rotate(5deg)}49%{transform:translate(-12px,12px)}78%{transform:translate(1px,-1px)}to{transform:translate(0)}}.copyright{color:var(--muted);font-size:12px}body.reduced *,body.reduced :before{transition:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media (width<=600px){main{padding:24px 22px 40px}header{margin-bottom:64px}nav{gap:20px}.brand{font-size:14px}h1{font-size:34px}.post{padding-left:48px}.hint{display:none}.end{flex-direction:column;align-items:flex-start}.links{gap:20px}.intro{font-size:17px}.divider{margin:30px 0 22px}}.post{color:inherit;text-decoration:none}.post-title{letter-spacing:-.5px;margin-bottom:12px;font-size:27px;font-weight:500;line-height:1.3;display:block}.post-summary{color:var(--muted);margin-bottom:12px;font-size:16px;display:block}.post:hover .post-title,.post:focus-visible .post-title{color:var(--red)}.topic-sign{width:40px;height:40px;position:absolute;top:24px;left:2px}.topic-sign svg{width:40px;height:40px;overflow:visible}.scene-part{transform-box:fill-box;transform-origin:50%}.bomb-body{transform-origin:20px 31px}.fuse-glow{opacity:0}.read-mark{color:var(--green);margin-left:auto;font-size:11px}.article{max-width:720px;margin:auto}.article h1{margin:24px 0;font-size:48px}.article .lead{color:var(--muted);font:23px/1.65 IBM Plex Serif,serif}.prose{margin-top:46px;font:20px/1.8 IBM Plex Serif,serif}.prose h2{margin:40px 0 18px;font:500 27px/1.3 IBM Plex Sans,sans-serif}.draft-note{color:var(--muted);border-left:2px solid var(--yellow);margin:28px 0;padding-left:16px;font:13px/1.6 IBM Plex Sans,sans-serif}.code-block{border:1px solid var(--line);background:#eeefe9;border-radius:7px;margin:28px 0;position:relative;overflow:hidden}.code-toolbar{border-bottom:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;padding:8px 16px;font:12px/1.6 IBM Plex Sans,sans-serif;display:flex}.copy-code{cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:8px;font-size:13px;display:flex}.copy-glyph{color:var(--red);display:inline-block}pre{color:var(--ink);margin:0;padding:22px;font:14px/1.8 monospace;overflow:auto}.copy-status{color:var(--muted);min-height:20px;font:13px/1.5 IBM Plex Sans,sans-serif}.article-sign{width:40px;height:40px;margin-top:24px;display:block;position:relative}.article-sign .topic-sign{top:0;left:0}.next-post{border-top:1px solid var(--line);margin-top:50px;padding-top:24px}.next-post a{text-decoration:none;display:block}.next-post strong{font:500 24px/1.4 IBM Plex Sans,sans-serif}.next-post a:hover strong{color:var(--red)}@media (width<=600px){.post-title{font-size:23px}.article h1{font-size:35px}.article .lead{font-size:21px}.prose{font-size:19px}.article header{margin-bottom:36px}}@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}.brand-mark{transform-origin:50% 90%;width:18px;height:18px;rotate:var(--brand-lean,0deg);pointer-events:none;border-radius:4px;flex:none;transition:translate .25s ease-out;animation:4.8s ease-in-out infinite brand-rock;display:inline-block;position:relative;translate:0}.brand-mark:before,.brand-mark:after{content:"";background:var(--paper);width:3px;height:4px;transform:translate(var(--eye-x,0px),var(--eye-y,0px)) scaleY(var(--eye-open,1));transform-origin:50%;border-radius:2px;position:absolute;top:6px}.brand-mark:before{left:4px}.brand-mark:after{right:4px}.brand:hover .brand-mark,.brand:focus-visible .brand-mark{translate:0 -2px}@keyframes brand-rock{0%,to{transform:rotate(-8deg)}24%{transform:rotate(5deg)translateY(-1px)}48%{transform:rotate(-4deg)}70%{transform:rotate(7deg)translateY(-1px)}}@keyframes brand-curious{0%,to{transform:rotate(-9deg)translateY(-2px)}40%{transform:rotate(10deg)translateY(-4px)}70%{transform:rotate(-3deg)translateY(-2px)}}@media (prefers-reduced-motion:reduce){.brand-mark{animation:none!important;rotate:0deg!important}.brand-mark:before,.brand-mark:after{transform:none!important}}body.reduced .brand-mark{animation:none!important;rotate:0deg!important}body.reduced .brand-mark:before,body.reduced .brand-mark:after{transform:none!important}.about-cv>h2{letter-spacing:-.3px;margin:48px 0 22px;font-size:22px;font-weight:500}.about-cv>p{max-width:660px}.cv-project{margin:0 0 26px}.cv-project h3{margin:0 0 6px;font-size:20px;font-weight:500}.cv-project p{max-width:650px;color:var(--muted);margin:0;font-size:16px}.cv-history{margin:0}.cv-history>div{border-bottom:1px solid var(--line);grid-template-columns:1fr 1.2fr;gap:28px;padding:21px 0;display:grid}.cv-history dt{font-size:18px;font-weight:500}.cv-history dt span{color:var(--muted);margin-top:5px;font-size:12px;font-weight:400;display:block}.cv-history dd{margin:0;font-size:15px}.cv-history dd strong{font-weight:400}.cv-history dd p{color:var(--muted);margin:5px 0 0}.about-cv>p a{text-underline-offset:4px}.about-cv>#back-link{margin-top:32px}@media (width<=600px){.cv-history>div{grid-template-columns:1fr;gap:9px}.about-cv>h2{margin-top:36px}}.reading-route{border-left:1px solid var(--line);margin:32px 0;padding:18px 22px;font:14px/1.5 IBM Plex Sans,sans-serif}.reading-route :is(a,button){text-align:left;cursor:pointer;color:var(--muted);background:0 0;border:0;padding:10px 0 10px 18px;font-size:13px;display:block;position:relative}.reading-route :is(a,button):before{content:"";border:1px solid var(--muted);background:var(--paper);border-radius:50%;width:7px;height:7px;position:absolute;top:17px;left:-26px}.reading-route :is(a,button)[aria-current]{color:var(--red)}.reading-route :is(a,button)[aria-current]:before{background:var(--red);border-color:var(--red);animation:.3s route-land}@keyframes route-land{0%{transform:scale(.5)}60%{transform:scale(1.35)}to{transform:scale(1)}}@media (width>=1150px){.reading-route{width:190px;margin:0;padding-right:0;position:fixed;top:150px;left:calc(50% + 360px)}.reading-route :is(a,button){font-size:12px}}@media (prefers-reduced-motion:reduce){.arena-cell.fired,.reading-route :is(a,button)[aria-current]:before{animation:none}}.post-media{border-radius:6px;width:100%;height:auto;margin:28px 0;display:block}.prose a{color:var(--red);overflow-wrap:anywhere;text-underline-offset:3px}.prose p code,.prose li code{overflow-wrap:anywhere;background:#eeefe9;padding:2px 4px;font:.78em/1.5 monospace}.prose li{margin-bottom:14px}.prose pre{max-height:650px}.code-block .copy-status{padding:0 16px;font-size:12px}.reading-route{max-height:72vh;overflow:auto}.prose hr{border:0;border-top:1px solid var(--line);margin:40px 0}.article h1{font-size:42px;line-height:1.22}@media (width<=600px){.article h1{font-size:32px}.prose pre{padding:16px;font-size:12px}}.article{max-width:800px}.article header{margin-bottom:62px}.article h1{text-wrap:balance;letter-spacing:-1.1px}.article>.prose,.prose{font-size:20px;line-height:1.78}.prose>p{margin:0 0 1.25em}.prose>h2{text-wrap:balance;margin:2.2em 0 .85em}.prose>p:first-child{color:var(--muted);font-size:18px}.prose ul{margin:1.25em 0;padding-left:1.3em}.prose li{padding-left:.2em}.prose li::marker{color:var(--muted)}.prose p code,.prose li code{-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:4px}.prose pre{tab-size:4;overscroll-behavior-x:contain;scrollbar-width:thin;line-height:1.65}.code-toolbar{gap:12px}.copy-code{flex-shrink:0;min-height:40px}.code-block .copy-status{min-height:0}.code-block .copy-status:not(:empty){padding:8px 16px}.post-media{object-fit:contain;margin:32px 0}.reading-route{scrollbar-width:thin;scrollbar-gutter:stable;padding-left:20px}.reading-route :is(a,button){padding-left:14px}.reading-route :is(a,button):before{width:5px;height:5px;top:16px;left:-4px}.reading-route :is(a,button)[aria-current]:before{animation:none}.reading-route :is(a,button):focus-visible{outline-offset:0}.reading-route .eyebrow{margin:0 0 12px;font-size:11px;display:block}.prose a:focus-visible{outline-offset:2px}.prose pre:focus-visible{outline:2px solid var(--red);outline-offset:-2px}@media (width>=1200px){.reading-route{width:min(210px,50vw - 390px);padding-right:8px;left:calc(50% + 365px)}}@media (width<=1199px){.reading-route{width:auto;max-height:none;margin:32px 0 38px;padding:0 0 0 18px;position:static}.reading-route :is(a,button){padding:7px 0 7px 14px}.reading-route :is(a,button):before{top:14px}}@media (width<=600px){.article header{margin-bottom:38px}.article h1{letter-spacing:-.65px;font-size:32px}.prose{font-size:18px;line-height:1.75}.prose>h2{font-size:25px}.reading-route{margin:26px 0 32px}.prose pre{font-size:12px}.post-media{border-radius:3px}.article footer{margin-top:32px}}@media (width<=1199px){.reading-route .toc-toggle{color:var(--ink);padding:10px 0;font-size:14px;display:block}.reading-route .toc-toggle:before,.toc-collapsed>.eyebrow,.toc-collapsed>:is(a,button):not(.toc-toggle),.reading-route:has(.toc-toggle)>.eyebrow{display:none}.reading-route{margin:24px 0 28px}}.syn-keyword{color:#97513f}.syn-type{color:#4e6d57}.syn-function{color:#386579}.syn-string{color:#65753d}.syn-number{color:#8663a3}.syn-comment{color:#7c8275;font-style:italic}.syn-addition{color:#356a45;background:#e0eddf}.syn-deletion{color:#9b4338;background:#f2e2dd}.image-zoom{cursor:zoom-in;background:0 0;border:0;border-radius:6px;width:100%;margin:32px 0;padding:0;display:block}.image-zoom .post-media{margin:0}.image-zoom:focus-visible{outline:2px solid var(--red);outline-offset:5px}.image-viewer{background:0 0;border:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:64px 28px 28px;position:fixed;inset:0;overflow:auto}.image-viewer[open]{justify-content:center;align-items:center;display:flex}.image-viewer::backdrop{backdrop-filter:blur(5px);background:#20251fef}.viewer-image{object-fit:contain;border-radius:4px;width:auto;max-width:100%;height:auto;max-height:calc(100dvh - 100px);display:block}.viewer-close{color:#faf9f6;cursor:pointer;z-index:1;background:#ffffff15;border:1px solid #ffffff35;border-radius:5px;min-height:44px;padding:8px 16px;font-size:14px;position:fixed;top:16px;right:24px}.viewer-close:focus-visible{outline-offset:3px;outline:2px solid #faf9f6}@media (width<=600px){.image-viewer{padding:64px 10px 20px}.viewer-close{right:12px}.image-zoom{margin:24px 0}}[hidden]{display:none!important}.prose h2,.prose h3{scroll-margin-top:28px}.prose img,.prose video{max-width:100%;height:auto}.reading-route a{text-decoration:none;display:block}.reading-route .toc-toggle{display:block}@media (width>=1200px){.reading-route .toc-toggle{display:none}.reading-route.toc-collapsed>:is(a,button):not(.toc-toggle),.reading-route.toc-collapsed>.eyebrow{display:block}}@media (width<=1199px){.reading-route.toc-collapsed>a{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.skip-link{background:var(--ink);color:var(--paper);z-index:100;padding:10px 16px;position:fixed;top:8px;left:8px;transform:translateY(-150%)}.skip-link:focus{transform:none}.prose .astro-code{background:#f0f0e9!important}.prose img{border-radius:6px;width:100%;display:block}.prose table{border-collapse:collapse;margin:28px 0;font:15px/1.6 IBM Plex Sans,sans-serif;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--line);text-align:left;padding:10px 14px}.prose blockquote{border-left:2px solid var(--line);color:var(--muted);margin:28px 0;padding:0 22px}.prose :is(h2,h3,h4){text-wrap:balance;scroll-margin-top:28px}::selection{color:var(--ink);background:#e8d39b}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.copy-code{justify-content:center;align-items:center;gap:9px;min-width:132px;display:inline-flex}.copy-symbol{flex:none;width:18px;height:18px;display:inline-block;position:relative}.copy-sheet{border:1.3px solid;border-radius:2px;width:10px;height:12px;position:absolute}.copy-sheet.rear{opacity:.5;top:4px;left:2px}.copy-sheet.front{background:#f0f0e9;top:1px;left:6px}.copy-check{opacity:0;color:var(--green);font-size:18px;line-height:18px;position:absolute;inset:0}.copied .copy-sheet{opacity:0}.copied .copy-check{opacity:1}.prose :is(h2,h3){position:relative}.heading-copy{vertical-align:middle;width:32px;height:32px;color:var(--muted);cursor:pointer;opacity:0;background:0 0;border:0;justify-content:center;align-items:center;margin-left:8px;padding:6px;display:inline-flex}.heading-copy svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px;overflow:visible}.prose :is(h2,h3):hover .heading-copy,.heading-copy:focus-visible{opacity:1}.heading-copy:hover{color:var(--red)}.download-symbol{vertical-align:middle;width:20px;height:20px;margin-left:5px;display:inline-flex}.download-symbol svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%;overflow:visible}.download-tray{transform-origin:bottom}.reading-route{position:relative}.reading-route.has-runner a[aria-current]:before{background:var(--paper);border-color:var(--muted)}.toc-runner{background:var(--red);pointer-events:none;border-radius:50%;width:7px;height:7px;position:absolute;left:16px}.reading-route a{position:relative}@media (width>=1200px){.reading-route{position:fixed}}@media (hover:none){.heading-copy{opacity:.7}}[data-topic=kedra]{--project-color:var(--green)}[data-topic=boomrivals]{--project-color:var(--yellow)}.project-mark,.post .meta .dot{background:var(--project-color,var(--ink));border-radius:1.5px;flex:none;width:7px;height:7px;display:inline-block}.article-topics{align-items:center;gap:10px;display:flex}.prose .story-opening{display:flow-root}.prose .story-opening:first-letter{float:left;color:var(--ink);margin:.09em .13em 0 0;font-family:IBM Plex Serif,serif;font-size:3.35em;line-height:.87}.prose .story-ending:after{content:"";background:var(--project-color,var(--ink));vertical-align:baseline;border-radius:1.5px;width:8px;height:8px;margin-left:10px;display:inline-block}.cv-project h3:before{content:"";vertical-align:middle;background:var(--project-color,var(--ink));border-radius:1px;width:6px;height:6px;margin-right:10px;display:inline-block}.post,.cv-history>div{position:relative}.post:after,.cv-history>div:after{content:"";background:var(--line);width:1px;height:7px;position:absolute;bottom:-3px;left:0}.code-toolbar{position:relative}.code-toolbar:before{content:"";background:var(--muted);opacity:.45;width:1px;height:7px;position:absolute;bottom:-3px;left:-1px}.prose p code,.prose li code{-webkit-box-decoration-break:clone;box-decoration-break:clone;background:#e9ebe34a;border-radius:3px;padding:.08em .2em;font-size:.79em}.prose a:not(.image-zoom),.about-cv>p a{text-underline-offset:.19em;text-decoration-thickness:1px;text-decoration-color:color-mix(in srgb,currentColor 50%,transparent)}.prose a:not([download])[href^="https://"]:after,.about-cv>p a[href^="https://"]:after{content:"↗";vertical-align:.12em;margin-left:.22em;font:.7em/1 IBM Plex Sans,sans-serif;text-decoration:none;display:inline-block}@media (width<=600px){.prose .story-opening:first-letter{margin-top:.08em;font-size:2.9em;line-height:.92}}.prose .has-animated-cap:first-letter{float:none;font-size:inherit;line-height:inherit;margin:0}.story-cap{float:left;transform-origin:50% 85%;color:var(--ink);margin:.09em .13em 0 0;font-family:IBM Plex Serif,serif;font-size:3.35em;line-height:.87}.project-mark,.meta .dot{transform-origin:bottom}@media (width<=600px){.story-cap{margin-top:.08em;font-size:2.9em;line-height:.92}}@view-transition{navigation:none}::view-transition-old(root){opacity:0;animation:none}::view-transition-new(root){opacity:1;animation:none}::view-transition-group(*){animation-duration:.34s;animation-timing-function:cubic-bezier(.2,.75,.25,1)}::view-transition-old(*),::view-transition-new(*){mix-blend-mode:normal}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}::view-transition-old(brand-name),::view-transition-new(brand-name),::view-transition-old(brand-cube),::view-transition-new(brand-cube){object-fit:fill;width:100%;height:100%;animation:none}::view-transition-old(brand-name),::view-transition-old(brand-cube){opacity:0}::view-transition-new(brand-name),::view-transition-new(brand-cube){opacity:1}::view-transition-group(brand-name),::view-transition-group(brand-cube){animation-duration:.52s}::view-transition-image-pair(brand-cube){transform-origin:50% 90%;animation:.52s cubic-bezier(.25,.65,.3,1) both brand-travel-hop;overflow:visible}@keyframes brand-travel-hop{0%{transform:translateY(0)scale(1)}14%{transform:translateY(1px)scale(1.2,.75)}43%{transform:translateY(-18px)rotate(-18deg)scale(.95,1.05)}70%{transform:translateY(0)rotate(5deg)scale(1.2,.78)}86%{transform:translateY(-3px)rotate(-3deg)scale(.95,1.05)}to{transform:none}}@media (prefers-reduced-motion:reduce){::view-transition-image-pair(brand-cube){animation:none}}.footer-scene{--gaze:1px;contain:layout paint;width:100%;height:105px;position:relative;overflow:hidden}.scene-floor{border-bottom:1px solid var(--line);position:absolute;bottom:14px;left:0;right:0}.scene-cubes{will-change:transform;align-items:flex-end;gap:5px;width:110px;height:32px;display:flex;position:absolute;bottom:15px;left:0}.scene-cube{transform-origin:bottom;border-radius:5px;width:30px;height:30px;display:block;position:relative;box-shadow:inset 0 -3px #00000012}.cube-green{background:var(--green)}.cube-blue{background:var(--blue);width:25px;height:25px}.cube-yellow{background:var(--yellow);width:33px;height:33px}.cube-eyes:before,.cube-eyes:after{content:"";background:var(--ink);width:3px;height:5px;translate:var(--gaze) 0;border-radius:2px;position:absolute;top:9px}.scene-worker{will-change:transform;position:absolute;bottom:14px;left:0;overflow:visible}.worker-arm,.worker-leg{fill:none;stroke:var(--ink);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.leg-back{opacity:.55}.scene-pause{background:var(--paper);border:1px solid var(--line);color:var(--muted);cursor:pointer;z-index:1;border-radius:4px;padding:5px 9px;font-size:11px;position:absolute;top:5px;right:20px}@media (prefers-reduced-motion:reduce){.scene-pause{display:none}.scene-cubes,.scene-worker{will-change:auto}}.footer-scene{z-index:20;background:linear-gradient(to bottom,transparent 0%,var(--paper) 54%);pointer-events:none;contain:layout paint;height:116px;position:fixed;bottom:0;left:0;right:0}.footer-scene .end{background:var(--paper);border-top:1px solid var(--line);pointer-events:auto;flex-flow:row;justify-content:space-between;align-items:center;height:43px;margin:0;padding:0 28px;display:flex;position:absolute;bottom:0;left:0;right:0}.footer-scene .links{gap:22px}.footer-scene .external{font-size:13px}.scene-floor{bottom:43px}.scene-cubes{bottom:44px}.scene-worker{bottom:43px}.scene-pause{pointer-events:auto;opacity:.65;top:3px;right:16px}.scene-pause:hover,.scene-pause:focus-visible{opacity:1}@media (width<=600px){body{padding-bottom:132px}.footer-scene .end{gap:8px;padding:0 12px}.footer-scene .copyright{font-size:10px}.footer-scene .links{gap:12px}.footer-scene .external{font-size:12px}.footer-scene .launch-slot{display:none}.scene-pause{right:12px}}body{padding-bottom:104px}.footer-scene{background:linear-gradient(to bottom,transparent,var(--paper) 62%);height:88px}.scene-cubes{width:100%;height:16px;display:block;bottom:44px;transform:none!important}.scene-cube,.cube-blue,.cube-yellow{transform-origin:50%;will-change:transform;border-radius:3px;width:16px;height:16px;position:absolute;bottom:0;left:0;box-shadow:inset 0 -1px #00000012}.cube-eyes{transform:rotate(var(--eye-turn,0deg));position:absolute;inset:0}.cube-eyes:before,.cube-eyes:after{border-radius:1px;width:2px;height:3px;top:6px}.cube-eyes:before{left:4px}.cube-eyes:after{right:4px}.scene-worker{width:24px;height:30px}.worker-facing{transform-origin:12px 15px}.worker-arm,.worker-leg,.worker-body{fill:none;stroke:var(--ink);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.worker-leg{transform-origin:14px 20px}.scene-pause{opacity:.45;padding:2px 6px;font-size:10px;top:0}@media (width<=600px){body{padding-bottom:104px}}@media (prefers-reduced-motion:reduce){.scene-cube{will-change:auto}}.scene-cubes{z-index:1}.scene-worker{z-index:2}.footer-scene .end{z-index:3}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}
