:root{--surface-0: #0a0c10;--surface-1: #11141a;--surface-2: #1a1f28;--surface-3: #252b36;--ink-0: #f5f7fa;--ink-1: #cdd3dd;--ink-2: #8b94a3;--ink-3: #5a6371;--accent: #62e2ff;--accent-dim: #2b8aa3;--accent-glow: rgba(98, 226, 255, .15);--warn: #ffb648;--danger: #ff6b6b;--ok: #5cd29a;--font-sans: "Inter", "InterVariable", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--font-display: "Roboto Flex", "Inter", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Monaco", "Cascadia Mono", Menlo, Consolas, monospace;--font-serif: "Source Serif Pro", "Charter", "Iowan Old Style", Cambria, Georgia, serif;--size-xs: .75rem;--size-sm: .875rem;--size-base: 1rem;--size-md: 1.125rem;--size-lg: 1.375rem;--size-xl: 1.75rem;--size-2xl: 2.25rem;--size-3xl: 3rem;--size-4xl: 4rem;--line-tight: 1.2;--line-snug: 1.4;--line-normal: 1.6;--tracking-tight: -.02em;--tracking-normal: 0;--tracking-wide: .06em;--tracking-caps: .12em;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 1.75rem;--space-8: 2rem;--space-12: 3rem;--space-16: 4rem;--space-24: 6rem;--space-32: 8rem;--content-narrow: 38rem;--content-regular: 56rem;--content-wide: 72rem;--content-full: 88rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--border-hairline: 1px solid var(--surface-3);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--duration-fast: .12s;--duration-normal: .24s;--duration-slow: .48s}@font-face{font-family:Roboto Flex;font-style:normal;font-weight:100 1000;font-stretch:25% 151%;font-display:swap;src:url(/fonts/RobotoFlex-latin.woff2) format("woff2-variations"),url(/fonts/RobotoFlex-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Roboto Flex;font-style:normal;font-weight:100 1000;font-stretch:25% 151%;font-display:swap;src:url(/fonts/RobotoFlex-latin-ext.woff2) format("woff2-variations"),url(/fonts/RobotoFlex-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto Flex;font-style:normal;font-weight:100 1000;font-stretch:25% 151%;font-display:swap;src:url(/fonts/RobotoFlex-cyrillic.woff2) format("woff2-variations"),url(/fonts/RobotoFlex-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@property --head-grad{syntax: "<number>"; inherits: false; initial-value: 0;}@property --head-wdth{syntax: "<number>"; inherits: false; initial-value: 100;}@property --head-opsz{syntax: "<number>"; inherits: false; initial-value: 80;}@property --head-wght{syntax: "<number>"; inherits: false; initial-value: 500;}h1,.case-head__title,.post-head__title,.page-head h1{font-family:var(--font-display);--head-grad: 50;--head-wdth: 100;--head-opsz: 80;--head-wght: 600;font-variation-settings:"GRAD" var(--head-grad),"wdth" var(--head-wdth),"opsz" var(--head-opsz),"wght" var(--head-wght);letter-spacing:-.015em}@keyframes headline-breathe{0%{--head-grad: -150;--head-wdth: 88;--head-opsz: 16;--head-wght: 320}50%{--head-grad: 130;--head-wdth: 108;--head-opsz: 130;--head-wght: 780}to{--head-grad: -150;--head-wdth: 88;--head-opsz: 16;--head-wght: 320}}h1,.case-head__title,.post-head__title,.page-head h1{animation:headline-breathe linear both;animation-timeline:view();animation-range:cover 0% cover 100%}@media(prefers-reduced-motion:reduce){h1,.case-head__title,.post-head__title,.page-head h1{animation:none}}@property --pf-count{syntax: "<number>"; inherits: false; initial-value: 0;}@property --pf-progress{syntax: "<number>"; inherits: false; initial-value: 0;}@property --pf-arc-end{syntax: "<angle>"; inherits: true; initial-value: 0deg;}.prim{container-type:inline-size;margin:var(--space-6) 0;font-family:var(--font-sans);color:var(--ink-1)}.prim:first-child{margin-top:0}.prim:last-child{margin-bottom:0}.prim__caption{font-family:var(--font-mono);font-size:var(--size-xs);color:var(--ink-3);margin-top:var(--space-2);letter-spacing:.02em}.prim__title{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);font-family:var(--font-mono);font-size:var(--size-xs);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--ink-2);padding-bottom:var(--space-2);border-bottom:var(--border-hairline);margin-bottom:var(--space-4)}.prim__title .prim__title-meta{color:var(--ink-3);text-transform:none;letter-spacing:.04em;font-size:.92em}@media(prefers-reduced-motion:reduce){.prim *,.prim *:before,.prim *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}*,*:before,*:after{box-sizing:border-box}html{background:var(--surface-0);color:var(--ink-0);font-family:var(--font-sans);font-size:16px;line-height:var(--line-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:clip}body{margin:0;min-height:100vh;position:relative;isolation:isolate}::selection{background:var(--accent-glow);color:var(--ink-0)}a{color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;transition:border-color var(--duration-fast) var(--ease-out)}a:hover{border-bottom-color:var(--accent-dim)}h2,h3,h4,h5,h6{font-family:var(--font-sans);font-weight:600;letter-spacing:var(--tracking-tight);line-height:var(--line-tight);margin:0}h1{font-weight:600;letter-spacing:var(--tracking-tight);line-height:var(--line-tight);margin:0}code,pre,kbd,samp{font-family:var(--font-mono);font-size:.9em}.section-label{font-family:var(--font-mono);font-size:var(--size-xs);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--ink-2);font-weight:500}.metric-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-8) var(--space-6);margin:var(--space-8) 0 var(--space-12) 0;padding:var(--space-6) var(--space-6) var(--space-6) var(--space-6);border-left:3px solid var(--accent-dim);background:linear-gradient(90deg,color-mix(in srgb,var(--accent-glow) 25%,transparent),transparent 60%);border-radius:0 var(--radius-md) var(--radius-md) 0;align-items:start}.metric-row>.prim,.metric-row>.prim:first-child,.metric-row>.prim:last-child{margin:0}@view-transition{navigation:auto}::view-transition-old(*),::view-transition-new(*){animation-duration:.48s;animation-timing-function:cubic-bezier(.16,1,.3,1)}::view-transition-old(root),::view-transition-new(root){animation-duration:.32s;animation-timing-function:var(--ease-out)}@media(prefers-reduced-motion:reduce){@view-transition{navigation:none}}.check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4) var(--space-6);margin:var(--space-4) 0 var(--space-8) 0;padding:0}.check-grid>div{padding-left:var(--space-3);border-left:2px solid var(--accent-dim)}.check-grid dt{font-family:var(--font-sans);font-size:var(--size-base);font-weight:600;color:var(--ink-0);letter-spacing:-.01em}.check-grid dd{font-family:var(--font-mono);font-size:var(--size-xs);color:var(--ink-2);line-height:var(--line-snug);margin:4px 0 0}.chip{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:var(--size-xs);padding:.15em .5em;background:var(--surface-2);border:1px solid var(--surface-3);border-radius:var(--radius-sm);color:var(--ink-1)}.chip:hover{border-color:var(--accent-dim);color:var(--ink-0)}.page-stars[data-astro-cid-tmd6rnhz]{position:fixed;top:0;left:0;width:100vw;height:200vh;z-index:-1;pointer-events:none;overflow:hidden;will-change:transform}.page-stars[data-astro-cid-tmd6rnhz] svg[data-astro-cid-tmd6rnhz]{display:block;width:100%;height:100%}@keyframes stars-parallax{0%{transform:translateZ(0)}to{transform:translate3d(0,-100vh,0)}}.page-stars__layer[data-astro-cid-tmd6rnhz]{width:100%;height:100%;animation:stars-parallax linear both;animation-timeline:scroll(root);will-change:transform}@media(prefers-reduced-motion:reduce){.page-stars__layer[data-astro-cid-tmd6rnhz]{animation:none}}@keyframes star-shimmer-slow{0%,to{opacity:var(--peak, .7)}50%{opacity:calc(var(--peak, .7) * .3)}}@keyframes star-shimmer-fast{0%,to{opacity:var(--peak, .7)}50%{opacity:calc(var(--peak, .7) * .55)}}.page-stars[data-astro-cid-tmd6rnhz] circle[data-astro-cid-tmd6rnhz].shimmer-slow{animation:star-shimmer-slow var(--dur, 12s) ease-in-out infinite;animation-delay:var(--delay, 0s);will-change:opacity}.page-stars[data-astro-cid-tmd6rnhz] circle[data-astro-cid-tmd6rnhz].shimmer-fast{animation:star-shimmer-fast var(--dur, 4s) ease-in-out infinite;animation-delay:var(--delay, 0s);will-change:opacity}@media(prefers-reduced-motion:reduce){.page-stars[data-astro-cid-tmd6rnhz] circle[data-astro-cid-tmd6rnhz].shimmer-slow,.page-stars[data-astro-cid-tmd6rnhz] circle[data-astro-cid-tmd6rnhz].shimmer-fast{animation:none}}.prim-telemetry[data-astro-cid-2ofxkkbz]{position:fixed;bottom:var(--space-4);right:var(--space-4);z-index:9999;font-family:var(--font-mono);font-size:.7rem;color:var(--ink-2);pointer-events:none}.prim-telemetry[data-astro-cid-2ofxkkbz]>[data-astro-cid-2ofxkkbz]{pointer-events:auto}.prim-telemetry__toggle[data-astro-cid-2ofxkkbz]{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:color-mix(in srgb,var(--surface-1) 85%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--surface-3);border-radius:var(--radius-sm);color:inherit;font-family:inherit;font-size:inherit;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.prim-telemetry__toggle[data-astro-cid-2ofxkkbz]:hover,.prim-telemetry--open[data-astro-cid-2ofxkkbz] .prim-telemetry__toggle[data-astro-cid-2ofxkkbz]{border-color:var(--accent-dim);color:var(--ink-0);background:color-mix(in srgb,var(--surface-1) 95%,transparent)}.prim-telemetry__toggle[data-astro-cid-2ofxkkbz]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.prim-telemetry__dot[data-astro-cid-2ofxkkbz]{width:6px;height:6px;border-radius:50%;background:var(--accent-dim);box-shadow:0 0 6px color-mix(in srgb,var(--accent) 60%,transparent);animation:tm-pulse 3s ease-in-out infinite}.prim-telemetry--open[data-astro-cid-2ofxkkbz] .prim-telemetry__dot[data-astro-cid-2ofxkkbz]{background:var(--accent)}@keyframes tm-pulse{0%,to{opacity:.6}50%{opacity:1}}.prim-telemetry__compact[data-astro-cid-2ofxkkbz]{display:inline-flex;align-items:center;gap:var(--space-2);letter-spacing:.02em}.prim-telemetry__sep[data-astro-cid-2ofxkkbz]{color:var(--ink-3)}.prim-telemetry__commit[data-astro-cid-2ofxkkbz]{color:var(--ink-1);font-family:inherit}.prim-telemetry__detail[data-astro-cid-2ofxkkbz]{margin-bottom:var(--space-2);padding:var(--space-3) var(--space-4);background:color-mix(in srgb,var(--surface-1) 96%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--surface-3);border-radius:var(--radius-md);min-width:18rem;max-width:min(24rem,calc(100vw - 2rem));animation:tm-reveal var(--duration-normal) var(--ease-out)}@keyframes tm-reveal{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.prim-telemetry__dl[data-astro-cid-2ofxkkbz]{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-1) var(--space-3);margin:0}.prim-telemetry__dl[data-astro-cid-2ofxkkbz] dt[data-astro-cid-2ofxkkbz]{color:var(--ink-3);text-transform:uppercase;letter-spacing:var(--tracking-caps)}.prim-telemetry__dl[data-astro-cid-2ofxkkbz] dd[data-astro-cid-2ofxkkbz]{margin:0;color:var(--ink-1);word-break:break-word}.prim-telemetry[data-astro-cid-2ofxkkbz]{display:flex;flex-direction:column;align-items:flex-end}@media(max-width:600px){.prim-telemetry__route[data-astro-cid-2ofxkkbz],.prim-telemetry__sep[data-astro-cid-2ofxkkbz]{display:none}}@media(max-width:480px){.prim-telemetry[data-astro-cid-2ofxkkbz]{bottom:var(--space-2);right:var(--space-2);font-size:.65rem}.prim-telemetry__detail[data-astro-cid-2ofxkkbz]{min-width:0;max-width:calc(100vw - 1rem)}}@media(prefers-reduced-motion:reduce){.prim-telemetry__dot[data-astro-cid-2ofxkkbz],.prim-telemetry__detail[data-astro-cid-2ofxkkbz]{animation:none}}
