.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}.nav-link[data-astro-cid-5blmo7yk]{color:var(--text-3);transition:color .2s ease}.nav-link[data-astro-cid-5blmo7yk]:hover,.nav-link[data-astro-cid-5blmo7yk]:focus-visible{color:var(--accent-h)}.mobile-nav-wrap[data-astro-cid-37bvxqo4]{display:none}@media(max-width:768px){.mobile-nav-wrap[data-astro-cid-37bvxqo4]{display:block}.mobile-backdrop[data-astro-cid-37bvxqo4]{display:none;position:fixed;inset:0;z-index:20}.mobile-panel[data-astro-cid-37bvxqo4]{position:fixed;bottom:5rem;right:1.25rem;z-index:30;display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease}.mobile-panel[data-astro-cid-37bvxqo4].open{opacity:1;pointer-events:auto;transform:translateY(0)}.mobile-link[data-astro-cid-37bvxqo4]{font-family:var(--font-display);font-size:13px;letter-spacing:.08em;padding:.5rem 1rem;border-radius:4px;background:var(--bg);border:1px solid var(--border);color:var(--text-3);text-decoration:none;transition:color .2s ease,border-color .2s ease;white-space:nowrap}.mobile-link[data-astro-cid-37bvxqo4].active{color:var(--accent);border-color:var(--accent-d);cursor:default}.mobile-link[data-astro-cid-37bvxqo4]:not(.active):hover{color:var(--accent);border-color:var(--border-h)}.mobile-toggle[data-astro-cid-37bvxqo4]{position:fixed;bottom:1.25rem;right:1.25rem;z-index:40;width:42px;height:42px;border-radius:4px;background:var(--bg);border:1px solid var(--border);color:var(--text-2);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:color .2s ease,border-color .2s ease}.mobile-toggle[data-astro-cid-37bvxqo4]:hover{color:var(--accent);border-color:var(--border-h)}.toggle-icon[data-astro-cid-37bvxqo4]{display:flex;align-items:center;justify-content:center}}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/onest-cyrillic-wght-normal.DXI_y_WF.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/onest-latin-ext-wght-normal.CnNj8hVb.woff2) format("woff2-variations");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:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/onest-latin-wght-normal.CUIqqgP9.woff2) format("woff2-variations");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:Zalando Sans Expanded Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/zalando-sans-expanded-vietnamese-wght-normal.CAVmYqB1.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Zalando Sans Expanded Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/zalando-sans-expanded-latin-ext-wght-normal.wpa9ygOW.woff2) format("woff2-variations");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:Zalando Sans Expanded Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/zalando-sans-expanded-latin-wght-normal.Bh3oSOW8.woff2) format("woff2-variations");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}:root{--font-sans: "Onest Variable", system-ui, sans-serif;--font-display: "Zalando Sans Expanded Variable", sans-serif}html.dark{--bg: #181818;--text-1: #F7F6F6;--text-2: #8E8E93;--text-3: #636366;--accent: #5B8DB8;--accent-h: #80AECE;--accent-d: #1A2430;--border: #2A2A2A;--border-h: #383838;--code-bg: #1F1F1F;--selection-bg: #1A2430;--selection-text: #F7F6F6;--coming-soon: #4A7A9B;--coming-soon-border: #1A2D3E;--nav-bg: rgba(24, 24, 24, .82)}html.light{--bg: #F7F6F6;--text-1: #121212;--text-2: #3D3D40;--text-3: #8E8E93;--accent: #2E6B9E;--accent-h: #5B8DB8;--accent-d: #D0E4F0;--border: #D9D9D9;--border-h: #C0C0C4;--code-bg: #EDECEA;--selection-bg: #D0E4F0;--selection-text: #121212;--coming-soon: #2E6B9E;--coming-soon-border: #C0DCF0;--nav-bg: rgba(247, 246, 246, .82)}::-moz-selection{background-color:var(--selection-bg);color:var(--selection-text)}::selection{background-color:var(--selection-bg);color:var(--selection-text)}html{scroll-behavior:smooth}h1{font-family:var(--font-display)}*,*:before,*:after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html.theme-switching *,html.theme-switching *:before,html.theme-switching *:after{transition:background-color .4s ease,color .4s ease,border-color .4s ease!important}.skip-link{position:fixed;top:-100%;left:1rem;z-index:9999;padding:.5rem .9rem;background:var(--bg);color:var(--accent);border:1px solid var(--border-h);border-radius:4px;font-size:13px;font-family:var(--font-display);letter-spacing:.04em}.skip-link:focus{top:1rem}body:before{content:"";position:fixed;top:-50%;left:-50%;width:200%;height:200%;pointer-events:none;z-index:9990;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='256' height='256'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='256' height='256' filter='url(%23n)'/%3E%3C/svg%3E");background-size:256px 256px;opacity:.035;will-change:transform;animation:grain .8s steps(2) infinite}@keyframes grain{0%{transform:translate(0)}20%{transform:translate(-2%,1%)}40%{transform:translate(1%,-2%)}60%{transform:translate(-1%,2%)}80%{transform:translate(2%,-1%)}to{transform:translate(0)}}@media(prefers-reduced-motion:reduce){body:before{animation:none}}@media(max-width:768px){body:before{animation:none}}.sr.sr-visible{opacity:1!important;transform:translateY(0)!important}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}:focus:not(:focus-visible){outline:none}.link-accent{color:var(--accent);transition:color .2s ease}.link-accent:hover,.link-accent:focus-visible{color:var(--accent-h)}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}::view-transition-old(root){animation:.35s ease both fade-out}::view-transition-new(root){animation:.35s ease both fade-in}@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}html.dark .astro-code,html.light .astro-code{background-color:var(--code-bg)!important}html.dark .astro-code span{color:var(--shiki-dark)!important;background-color:transparent!important}html.light .astro-code span{color:var(--shiki-light)!important;background-color:transparent!important}
