@font-face{font-family:Albert Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/albert-sans-latin-ext-wght-normal.BAo4qCk1.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:Albert Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/albert-sans-latin-wght-normal.BJ0ssN8N.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:Albert Sans Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/albert-sans-latin-ext-wght-italic.B2T1u01T.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:Albert Sans Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/albert-sans-latin-wght-italic.CPqP8Wwp.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.woff2) 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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2) format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-vietnamese-wght-normal.DadHysG0.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-ext-wght-normal.Bwz-egvJ.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.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{--bg: #0C0E11;--surface: #14171C;--ink: #ECEEF1;--ink-2: #B7BDC6;--muted: #8B929C;--line: #21252B;--line-2: #2E333B;--hover: #1A1D23;--code-bg: #121519;--panel: #07080A;--panel-edge: rgba(255, 255, 255, .07);--shadow: rgba(0, 0, 0, .55);--accent-light: #A65A00;--accent-dark: #FFB547;--accent: var(--accent-dark);--led: #FFAE3A;--syn-kw: #FF7AB2;--syn-ty: #8FC1FF;--syn-str: #9BD69B;--syn-num: #E8C26E;--syn-com: #7D858F;--syn-fn: #C9A6FF;--font-sans: "Albert Sans Variable", "Albert Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "Geist Mono Variable", "Geist Mono", ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--fs-name: clamp(3rem, 1.1rem + 7.8vw, 8.5rem);--fs-title: clamp(2.125rem, 1.35rem + 2.9vw, 3.5rem);--fs-display: clamp(2.25rem, 1.4rem + 3.4vw, 3.75rem);--fs-lede: clamp(1.1875rem, 1.04rem + .6vw, 1.4375rem);--fs-body: 1.0625rem;--fs-small: .9375rem;--fs-meta: .75rem;--max: 1120px;--gutter: clamp(16px, 4vw, 40px);--rail: 11rem;--rail-gap: 2.5rem;--nav-h: 76px;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-ios: cubic-bezier(.32, .72, 0, 1);--ease-spring: cubic-bezier(.34, 1.32, .64, 1);color-scheme:dark}@supports (transition-timing-function: linear(0,1)){:root{--ease-spring: linear(0, .023, .073, .141, .219, .303, .388, .471, .55, .624, .69, .743, .796, .842, .881, .914, .941, .963, .98, .994, 1.004, 1.011, 1.016, 1.019, 1.021, 1.022, 1.021, 1.02, 1.019, 1.017, 1.016, 1.014, 1.012, 1.01, 1.009, 1.007, 1.006, 1.005, 1.004, 1.003, 1)}}:root[data-theme=light]{--bg: #F6F7F9;--surface: #FFFFFF;--ink: #14171C;--ink-2: #454B55;--muted: #626974;--line: #E3E6EA;--line-2: #D0D5DB;--hover: #ECEEF2;--code-bg: #EFF1F4;--panel: #101318;--panel-edge: rgba(255, 255, 255, .06);--shadow: rgba(16, 19, 24, .18);--accent: var(--accent-light);--syn-kw: #A3245E;--syn-ty: #2B5FA8;--syn-str: #2F7A3E;--syn-num: #8A5A00;--syn-com: #6B727D;--syn-fn: #6B3FA0;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--nav-h) + 16px)}body{margin:0;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--fs-body);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:clip}main{flex:1}::selection{background:color-mix(in srgb,var(--accent) 26%,transparent)}a{color:inherit}button{font:inherit;color:inherit}img,svg,video,canvas{max-width:100%}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:8px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:100;top:12px;left:12px;padding:10px 16px;border-radius:999px;background:var(--ink);color:var(--bg);font-weight:500;text-decoration:none;transform:translateY(-200%);transition:transform .4s var(--ease-ios)}.skip-link:focus{transform:none}.wrap{width:100%;max-width:calc(var(--max) + 2 * var(--gutter));margin-inline:auto;padding-left:max(var(--gutter),env(safe-area-inset-left,0px));padding-right:max(var(--gutter),env(safe-area-inset-right,0px))}.section{padding-top:clamp(88px,11vw,152px)}.sec{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}.sec-label{margin:0;font-size:var(--fs-small);font-weight:600;letter-spacing:-.005em;color:var(--ink)}@media(min-width:900px){.sec{grid-template-columns:var(--rail) minmax(0,1fr);column-gap:var(--rail-gap)}.sec-label,.rail{position:sticky;top:calc(var(--nav-h) + 28px);align-self:start}.sec-label{padding-top:2px}}.ph{color:var(--muted);text-decoration:underline dashed var(--line-2);text-decoration-thickness:1px;text-underline-offset:4px}.u-link{position:relative;text-decoration:none;background:linear-gradient(var(--line-2),var(--line-2)) 0 100% / 100% 1px no-repeat}.u-link:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease-ios)}.u-link:hover:after{transform:scaleX(1);transform-origin:left}.arrow-link{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-weight:500;text-decoration:none;color:var(--ink)}.arrow-link .al-t{position:relative}.arrow-link .al-t:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease-ios)}.arrow-link:hover .al-t:after{transform:scaleX(1);transform-origin:left}.arrow-link svg{width:14px;height:14px;flex:none;color:var(--muted);transition:transform .5s var(--ease-spring),color .2s}.arrow-link:hover svg{transform:translate(3px);color:var(--accent)}.arrow-link.ext:hover svg{transform:translate(2px,-2px)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--line-2);background:transparent;color:var(--ink);font-size:var(--fs-small);font-weight:500;text-decoration:none;cursor:pointer;transition:background-color .2s,border-color .2s,transform .5s var(--ease-spring)}.btn:hover{background:var(--hover)}.btn:active{transform:scale(.96)}.btn svg{width:16px;height:16px;flex:none}.icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;flex:none;border:0;border-radius:999px;background:transparent;color:var(--ink-2);cursor:pointer;transition:background-color .2s,color .2s,transform .5s var(--ease-spring)}.icon-btn:hover{background:var(--hover);color:var(--ink)}.icon-btn:active{transform:scale(.9)}::view-transition-group(*){animation-duration:.55s;animation-timing-function:var(--ease-ios)}@keyframes vt-out{to{opacity:0;transform:translateY(-6px);filter:blur(3px)}}@keyframes vt-in{0%{opacity:0;transform:translateY(16px);filter:blur(3px)}}html.vt-theme,html.vt-filter{view-transition-name:root}html.vt-theme::view-transition-old(root),html.vt-theme::view-transition-new(root){animation:none;mix-blend-mode:normal}html.vt-theme *{view-transition-name:none!important}html.vt-filter::view-transition-old(root),html.vt-filter::view-transition-new(root){animation:none}html.vt-filter .foot{view-transition-name:site-foot}[data-reveal]{transition:opacity .8s var(--ease-out),transform 1s var(--ease-ios);transition-delay:var(--reveal-delay, 0ms)}[data-reveal].pre{opacity:0;transform:translateY(18px)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0ms!important;scroll-behavior:auto!important}}.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}.foot[data-astro-cid-sz7xmlte]{margin-top:clamp(96px,12vw,168px)}.foot-inner[data-astro-cid-sz7xmlte]{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 28px;padding-block:26px max(28px,env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);font-size:.875rem;color:var(--muted)}p[data-astro-cid-sz7xmlte]{margin:0}a[data-astro-cid-sz7xmlte]{color:var(--ink-2)}.coords[data-astro-cid-sz7xmlte]{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.02em}.mark[data-astro-cid-iifiznic]{display:block;width:18px;height:18px;flex:none}circle[data-astro-cid-iifiznic]{fill:var(--line-2)}circle[data-astro-cid-iifiznic].on{fill:var(--ink)}a:hover>.mark[data-astro-cid-iifiznic] circle[data-astro-cid-iifiznic].on{animation:mark-blink .9s var(--ease-out) both;animation-delay:calc(var(--k) * 45ms)}@keyframes mark-blink{0%,20%{fill:var(--accent)}to{fill:var(--ink)}}.tt[data-astro-cid-x3pjskd3]{width:20px;height:20px;overflow:visible}.tt-core[data-astro-cid-x3pjskd3]{transform-origin:12px 12px;transition:transform .7s var(--ease-spring)}.tt-cut[data-astro-cid-x3pjskd3]{transform:translate(7px,-7px);transition:transform .7s var(--ease-ios)}.tt-rays[data-astro-cid-x3pjskd3]{transform-origin:12px 12px;transition:transform .7s var(--ease-ios),opacity .35s}.theme-toggle[data-astro-cid-x3pjskd3][data-mode=dark] .tt-core[data-astro-cid-x3pjskd3]{transform:scale(1.55)}.theme-toggle[data-astro-cid-x3pjskd3][data-mode=dark] .tt-cut[data-astro-cid-x3pjskd3]{transform:translate(-3px,3px)}.theme-toggle[data-astro-cid-x3pjskd3][data-mode=dark] .tt-rays[data-astro-cid-x3pjskd3]{transform:rotate(-40deg) scale(.4);opacity:0}.nav[data-astro-cid-dmqpwcec]{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;padding-block:12px;padding-left:max(var(--gutter),env(safe-area-inset-left,0px));padding-right:max(var(--gutter),env(safe-area-inset-right,0px));pointer-events:none}.nav-shell[data-astro-cid-dmqpwcec]{pointer-events:auto;position:relative;display:flex;align-items:center;gap:4px;height:52px;max-width:var(--max);margin-inline:auto;padding-inline:0;border-radius:999px;border:1px solid transparent;transition:max-width .8s var(--ease-ios),padding .8s var(--ease-ios),background-color .4s,border-color .4s,box-shadow .6s}.nav[data-astro-cid-dmqpwcec][data-compact=true] .nav-shell[data-astro-cid-dmqpwcec]{max-width:600px;padding-inline:8px 6px;background:color-mix(in srgb,var(--surface) 74%,transparent);border-color:var(--line);box-shadow:0 12px 32px -16px var(--shadow);-webkit-backdrop-filter:blur(18px) saturate(1.6);backdrop-filter:blur(18px) saturate(1.6)}.brand[data-astro-cid-dmqpwcec]{display:inline-flex;align-items:center;gap:10px;height:44px;padding-inline:6px 10px;border-radius:999px;text-decoration:none;font-size:1.0625rem;font-weight:650;letter-spacing:-.02em;white-space:nowrap}.tld[data-astro-cid-dmqpwcec]{color:var(--muted);font-weight:500}.nav-links-wrap[data-astro-cid-dmqpwcec]{position:relative;margin-left:auto}.nav-links[data-astro-cid-dmqpwcec]{display:flex;gap:2px;margin:0;padding:0;list-style:none}.nav-links[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec]{position:relative;z-index:1;display:inline-flex;align-items:center;height:40px;padding:0 13px;border-radius:999px;font-size:.9063rem;font-weight:500;color:var(--ink-2);text-decoration:none;transition:color .2s}.nav-links[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec]:hover,.nav-links[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec][aria-current]{color:var(--ink)}.nav-pill[data-astro-cid-dmqpwcec]{position:absolute;z-index:0;top:0;left:0;width:0;height:40px;border-radius:999px;background:var(--hover);opacity:0;pointer-events:none;transition:transform .6s var(--ease-spring),width .6s var(--ease-spring),opacity .25s}.nav[data-astro-cid-dmqpwcec][data-compact=true] .nav-pill[data-astro-cid-dmqpwcec]{background:color-mix(in srgb,var(--ink) 7%,transparent)}.ring[data-astro-cid-dmqpwcec]{width:0;height:24px;flex:none;opacity:0;overflow:visible;transition:width .6s var(--ease-ios),opacity .3s,margin .6s var(--ease-ios)}html[data-page=post] .ring[data-astro-cid-dmqpwcec]{width:24px;opacity:1;margin-inline:8px 4px}.ring[data-astro-cid-dmqpwcec] circle[data-astro-cid-dmqpwcec]{fill:none;stroke-width:2.2}.ring-bg[data-astro-cid-dmqpwcec]{stroke:var(--line-2)}.ring-fg[data-astro-cid-dmqpwcec]{stroke:var(--accent);stroke-linecap:round;stroke-dasharray:50.27;stroke-dashoffset:50.27;transform:rotate(-90deg);transform-origin:12px 12px}@media(max-width:640px){.word[data-astro-cid-dmqpwcec]{display:none}.brand[data-astro-cid-dmqpwcec]{padding-inline:10px}.nav-links[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec]{padding:0 10px;font-size:.875rem}html[data-page=post] .nl-optional[data-astro-cid-dmqpwcec]{display:none}}@media(max-width:374px){.nl-optional[data-astro-cid-dmqpwcec]{display:none}}@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(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
