@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-normal.6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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 Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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+460-52F,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+301,U+400-45F,U+490-491,U+4B0-4B1,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+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,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+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:none;text-size-adjust:none}body{min-height:100dvh}img,picture,video,canvas,svg{max-width:100%;display:block}img{height:auto}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul[role=list],ol[role=list]{padding:0;list-style:none}dialog{border:0;padding:0}:root{color-scheme:light dark;--color-bg:light-dark(oklch(98.4% .003 247),oklch(16.5% .008 260));--color-surface:light-dark(oklch(96.2% .004 247),oklch(20.5% .009 260));--color-surface-strong:light-dark(oklch(93.2% .006 250),oklch(24.5% .011 260));--color-text:light-dark(oklch(19.5% .012 258),oklch(95.5% .004 255));--color-text-muted:light-dark(oklch(45% .013 258),oklch(74% .01 255));--color-text-subtle:light-dark(oklch(52% .012 258),oklch(64% .011 255));--color-border:light-dark(oklch(90.5% .005 255),oklch(27.5% .01 260));--color-border-strong:light-dark(oklch(82% .008 255),oklch(37% .012 260));--color-accent:light-dark(oklch(51% .19 259),oklch(73% .13 255));--color-accent-hover:light-dark(oklch(44% .18 259),oklch(80% .11 255));--color-on-accent:light-dark(oklch(99% 0 0),oklch(16.5% .02 260));--color-accent-soft:light-dark(oklch(92.5% .035 258),oklch(31% .07 258));--color-brand-surface:#091329;--font-sans:"Geist Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"Geist Mono Variable", ui-monospace, "SFMono-Regular", Consolas, monospace;--text-xs:.8125rem;--text-sm:.9375rem;--text-base:clamp(1rem, .97rem + .15vw, 1.0625rem);--text-lg:clamp(1.125rem, 1.06rem + .3vw, 1.3125rem);--text-xl:clamp(1.25rem, 1.14rem + .5vw, 1.5rem);--text-2xl:clamp(1.875rem, 1.5rem + 1.6vw, 2.75rem);--text-3xl:clamp(2.25rem, 1.65rem + 2.6vw, 3.75rem);--text-display:clamp(2.625rem, 1.55rem + 4.6vw, 5.25rem);--leading-tight:1.04;--leading-snug:1.18;--leading-body:1.65;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--space-section:clamp(5rem, 3.4rem + 6.5vw, 9.5rem);--container-max:76rem;--gutter:clamp(1.25rem, .4rem + 3.6vw, 3rem);--measure:64ch;--header-height:4.25rem;--ratio-project-media:4 / 3;--radius-sm:.375rem;--radius-md:.625rem;--radius-lg:.875rem;--radius-pill:999px;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--duration-press:.14s;--duration-fast:.18s;--duration-reveal:.82s;--z-header:50;--z-skip-link:100}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}html{background-color:var(--color-bg);scroll-padding-top:calc(var(--header-height) + var(--space-5));scrollbar-color:var(--color-border-strong) var(--color-bg);hanging-punctuation:first last}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-body);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-optical-sizing:auto;caret-color:var(--color-accent)}h1,h2,h3,h4{font-weight:600;line-height:var(--leading-snug);letter-spacing:-.02em;text-wrap:balance}p,li,dd{text-wrap:pretty}a{color:inherit;text-underline-offset:.24em;text-decoration-thickness:1px}a,button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}strong{font-weight:600}::selection{background-color:var(--color-accent-soft);color:var(--color-text)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:var(--radius-sm)}.container{width:100%;max-width:calc(var(--container-max) + 2 * var(--gutter));padding-inline:max(var(--gutter), env(safe-area-inset-left)) max(var(--gutter), env(safe-area-inset-right));margin-inline:auto}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.icon-button{border-radius:var(--radius-pill);width:2.75rem;height:2.75rem;color:var(--color-text);-webkit-tap-highlight-color:transparent;transition:background-color var(--duration-fast) ease, transform var(--duration-press) var(--ease-out);place-items:center;display:inline-grid}.icon-button:active{transform:scale(.94)}@media (hover:hover) and (pointer:fine){.icon-button:hover{background-color:var(--color-surface-strong)}}.wordmark{letter-spacing:-.02em;color:var(--color-text);white-space:nowrap;font-size:1.0625rem;font-weight:600;text-decoration:none}.dev-badge{align-items:center;gap:var(--space-1);border-radius:var(--radius-pill);background-color:var(--color-accent-soft);color:var(--color-text);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:0;vertical-align:middle;padding:.125rem .5rem;font-weight:400;display:inline-flex}.text-link{color:var(--color-accent);text-decoration-line:underline;text-decoration-color:color-mix(in oklch, currentColor 35%, transparent);transition:text-decoration-color var(--duration-fast) ease, color var(--duration-fast) ease}.text-link:hover{color:var(--color-accent-hover);text-decoration-color:currentColor}@media (prefers-reduced-motion:no-preference){html.js [data-reveal]:not(.is-revealed),html.js [data-reveal-group]:not(.is-revealed)>*{opacity:0;transform:translateY(1.25rem)}html.js [data-reveal],html.js [data-reveal-group]>*{transition:opacity var(--duration-reveal) var(--ease-out), transform var(--duration-reveal) var(--ease-out)}html.js [data-reveal-group]>:nth-child(2){transition-delay:70ms}html.js [data-reveal-group]>:nth-child(3){transition-delay:.14s}html.js [data-reveal-group]>:nth-child(4){transition-delay:.21s}html.js [data-reveal-group]>:nth-child(5){transition-delay:.28s}html.js [data-reveal-group]>:nth-child(n+6){transition-delay:.35s}}::view-transition-old(root),::view-transition-new(root){animation-duration:.36s;animation-timing-function:var(--ease-out)}.skip-link[data-astro-cid-an2y5orl]{top:var(--space-3);left:var(--space-3);z-index:var(--z-skip-link);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background-color:var(--color-text);color:var(--color-bg);font-size:var(--text-sm);transform:translateY(calc(-100% - var(--space-5)));font-weight:500;text-decoration:none;position:fixed}.skip-link[data-astro-cid-an2y5orl]:focus-visible{transform:none}.lang-switch[data-astro-cid-3yci74kx]{border-radius:var(--radius-pill);box-shadow:inset 0 0 0 1px var(--color-border);align-items:center;padding:.1875rem;display:inline-flex}.lang-switch__item[data-astro-cid-3yci74kx]{min-width:2.25rem;height:2rem;padding-inline:var(--space-2);border-radius:var(--radius-pill);font-size:var(--text-xs);color:var(--color-text-muted);transition:color var(--duration-fast) ease, background-color var(--duration-fast) ease;place-items:center;font-weight:500;line-height:1;text-decoration:none;display:inline-grid}.lang-switch__item[data-astro-cid-3yci74kx].is-current{background-color:var(--color-surface-strong);color:var(--color-text)}a[data-astro-cid-3yci74kx].lang-switch__item:active{transform:scale(.96)}@media (hover:hover) and (pointer:fine){a[data-astro-cid-3yci74kx].lang-switch__item:hover{color:var(--color-text)}}.theme-toggle[data-astro-cid-6lp36acm]{display:grid}.theme-toggle[data-astro-cid-6lp36acm] .theme-toggle__icon{transition:opacity var(--duration-fast) ease, transform .26s var(--ease-out);grid-area:1/1}:root[data-theme=dark] .theme-toggle[data-astro-cid-6lp36acm] .theme-toggle__icon--moon,:root:not([data-theme=dark]) .theme-toggle[data-astro-cid-6lp36acm] .theme-toggle__icon--sun{opacity:0;transform:rotate(-60deg)scale(.7)}@media (prefers-reduced-motion:reduce){.theme-toggle[data-astro-cid-6lp36acm] .theme-toggle__icon{transform:none!important}}.mobile-nav-toggle[data-astro-cid-4ifsodmk]{display:inline-grid}@media (width>=56rem){.mobile-nav-toggle[data-astro-cid-4ifsodmk]{display:none}}.mobile-nav[data-astro-cid-4ifsodmk]{width:100%;max-width:none;height:100dvh;max-height:none;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);background-color:var(--color-bg);color:var(--color-text);overscroll-behavior:contain;opacity:0;transition:opacity .22s var(--ease-out), overlay .22s allow-discrete, display .22s allow-discrete;flex-direction:column;margin:0;position:fixed;inset:0;overflow-y:auto}.mobile-nav[data-astro-cid-4ifsodmk][open]{opacity:1;display:flex}@starting-style{.mobile-nav[data-astro-cid-4ifsodmk][open]{opacity:0}}.mobile-nav[data-astro-cid-4ifsodmk]::backdrop{background-color:#0000}html:has(.mobile-nav[open]){overflow:hidden}.mobile-nav__bar[data-astro-cid-4ifsodmk]{height:var(--header-height);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.mobile-nav__bar[data-astro-cid-4ifsodmk] .icon-button[data-astro-cid-4ifsodmk]{margin-inline-end:calc(var(--space-2) * -1)}.mobile-nav__body[data-astro-cid-4ifsodmk]{padding-block:var(--space-6);flex:1}.mobile-nav__list[data-astro-cid-4ifsodmk]{gap:var(--space-1);display:grid}.mobile-nav__link[data-astro-cid-4ifsodmk]{padding-block:var(--space-2);letter-spacing:-.03em;color:var(--color-text);font-size:clamp(2rem,1.5rem + 3vw,2.75rem);font-weight:600;line-height:1.15;text-decoration:none;display:block}.mobile-nav__link[data-astro-cid-4ifsodmk]:active{color:var(--color-accent)}.mobile-nav__footer[data-astro-cid-4ifsodmk]{gap:var(--space-2) var(--space-5);padding-block:var(--space-6);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.mobile-nav__meta-link[data-astro-cid-4ifsodmk]{min-height:2.75rem;font-size:var(--text-sm);color:var(--color-text-muted);align-items:center;text-decoration:none;display:inline-flex}@media (prefers-reduced-motion:no-preference){.mobile-nav__list[data-astro-cid-4ifsodmk] li[data-astro-cid-4ifsodmk]{transition:opacity .42s var(--ease-out), transform .42s var(--ease-out)}.mobile-nav__list[data-astro-cid-4ifsodmk] li[data-astro-cid-4ifsodmk]:nth-child(2){transition-delay:40ms}.mobile-nav__list[data-astro-cid-4ifsodmk] li[data-astro-cid-4ifsodmk]:nth-child(3){transition-delay:80ms}.mobile-nav__list[data-astro-cid-4ifsodmk] li[data-astro-cid-4ifsodmk]:nth-child(4){transition-delay:.12s}.mobile-nav__list[data-astro-cid-4ifsodmk] li[data-astro-cid-4ifsodmk]:nth-child(5){transition-delay:.16s}@starting-style{.mobile-nav[data-astro-cid-4ifsodmk][open] .mobile-nav__list[data-astro-cid-4ifsodmk] li[data-astro-cid-4ifsodmk]{opacity:0;transform:translateY(.75rem)}}}.header-sentinel[data-astro-cid-isef26zo]{width:1px;height:1px;position:absolute;top:0}.site-header[data-astro-cid-isef26zo]{z-index:var(--z-header);padding-top:env(safe-area-inset-top);background-color:var(--color-bg);transition:box-shadow var(--duration-fast) ease;position:sticky;top:0;box-shadow:0 1px #0000}.site-header[data-astro-cid-isef26zo][data-scrolled]{box-shadow:0 1px 0 var(--color-border)}.site-header__inner[data-astro-cid-isef26zo]{justify-content:space-between;align-items:center;gap:var(--space-5);height:var(--header-height);display:flex}.site-nav[data-astro-cid-isef26zo]{margin-inline-start:auto;display:none;position:relative}.site-nav__list[data-astro-cid-isef26zo]{gap:var(--space-1);display:flex}.site-nav__link[data-astro-cid-isef26zo]{height:2.75rem;padding-inline:var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted);transition:color var(--duration-fast) ease;align-items:center;font-weight:450;text-decoration:none;display:inline-flex}.site-nav__link[data-astro-cid-isef26zo]:hover,.site-nav__link[data-astro-cid-isef26zo][aria-current]{color:var(--color-text)}.site-nav__indicator[data-astro-cid-isef26zo]{background-color:var(--color-accent);transform-origin:0;opacity:0;pointer-events:none;width:1px;height:1.5px;transition:transform .42s var(--ease-in-out), opacity var(--duration-fast) ease;position:absolute;bottom:.4375rem;left:0}.site-nav__indicator[data-astro-cid-isef26zo].is-visible{opacity:1}.site-header__actions[data-astro-cid-isef26zo]{align-items:center;gap:var(--space-1);margin-inline-end:calc(var(--space-2) * -1);display:flex}@media (width>=56rem){.site-nav[data-astro-cid-isef26zo]{display:block}}@media (prefers-reduced-motion:reduce){.site-nav__indicator[data-astro-cid-isef26zo]{transition:opacity var(--duration-fast) ease}}.site-footer__inner[data-astro-cid-oenwriqq]{align-items:center;gap:var(--space-2) var(--space-6);padding-block:var(--space-6) max(var(--space-6), env(safe-area-inset-bottom));font-size:var(--text-sm);color:var(--color-text-muted);flex-wrap:wrap;display:flex;position:relative}.site-footer__inner[data-astro-cid-oenwriqq]:before{content:"";inset-inline:var(--gutter);background-color:var(--color-border);height:1px;position:absolute;top:0}.site-footer__links[data-astro-cid-oenwriqq]{gap:var(--space-5);display:flex}.site-footer__link[data-astro-cid-oenwriqq]{min-height:2.75rem;color:var(--color-text-muted);transition:color var(--duration-fast) ease;align-items:center;text-decoration:none;display:inline-flex}.site-footer__link[data-astro-cid-oenwriqq]:hover{color:var(--color-text)}@media (width>=48rem){.site-footer__links[data-astro-cid-oenwriqq]{margin-inline-start:auto}}main[data-astro-cid-z4jru4n3]:focus{outline:none}
