@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}}.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}@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 Pixel;src:url(/_astro/GeistPixel-Square.B0mEoKr8.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{color-scheme:light;--ground:oklch(100% 0 0);--tile:oklch(97.4% .001 60);--tile-line:oklch(94.8% .002 60);--rule:oklch(20% .006 60/.1);--hatch:oklch(20% .006 60/.08);--tick:oklch(20% .006 60/.22);--ink-soft:oklch(52% .006 60);--ink:oklch(17% .006 60);--accent:oklch(86.7% .293 142.7);--accent-deep:oklch(62% .21 142.7);--select:oklch(95% .08 142);--sel-line:oklch(76% .085 262);--sel-knob:oklch(98.5% 0 0);--sel-ink:oklch(24% .07 262);--sans:"Geist Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--pixel:"Geist Pixel", "Geist Variable", ui-monospace, monospace;--text-h1:32px;--text-h2:20px;--text-h3:16px;--text-prose:15px;--text-body:14px;--text-label:11px;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--gutter:16px;--pad:16px;--band:72px;--side:0px;--cell:calc(100vw - var(--gutter) * 2);--hit:32px;--ease-out:cubic-bezier(.23, 1, .32, 1);--z-skip:100;--cursor:auto;--cursor-hand:pointer;--hatch-fill:repeating-linear-gradient(-45deg, var(--hatch) 0 1px, transparent 1px 6px)}@media (pointer:coarse){:root{--hit:44px}}@media (width>=960px){:root{--gutter:48px;--pad:24px;--band:96px;--side:296px;--cell:min(560px, calc((100vw - var(--side) - var(--gutter) * 2) / 2))}}@supports (width:round(down, 1.5px, 1px)){@media (width>=960px){:root{--cell:round(down, min(560px, calc((100vw - var(--side) - var(--gutter) * 2) / 2)), 1px)}}}*,:before,:after{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;text-size-adjust:100%;font-synthesis:none;cursor:var(--cursor);-webkit-tap-highlight-color:transparent}a[href],button,summary,label[for],[role=button]{cursor:var(--cursor-hand);touch-action:manipulation}body{padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background-color:var(--ground);color:var(--ink);font-family:var(--sans);font-size:var(--text-body);margin:0;line-height:20px}img,video{max-width:100%;height:auto;display:block}h1,h2,h3{font-family:var(--pixel);letter-spacing:0;text-wrap:balance;margin:0;font-weight:400}[id]{scroll-margin-block-start:24px}p{margin:0}a{color:inherit;text-decoration-line:underline;text-decoration-color:var(--rule);text-underline-position:from-font;text-decoration-skip-ink:auto;text-decoration-thickness:from-font;transition:text-decoration-color .15s ease-out}@media (hover:hover) and (pointer:fine){a:hover{text-decoration-color:currentColor}}::selection{background:var(--select);color:var(--ink)}:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:0}.row{position:relative}.row:before{content:"";background:var(--rule);pointer-events:none;height:1px;position:absolute;inset-block-end:-1px;inset-inline:-100vw}.ticks{--x:linear-gradient(var(--tick), var(--tick));--tl:var(--x);--tr:var(--x);--bl:var(--x);--br:var(--x);--edge:none}.ticks:after{content:"";pointer-events:none;background-image:var(--tl), var(--tl), var(--tr), var(--tr), var(--bl), var(--bl), var(--br), var(--br), var(--edge);background-position:0 3px,3px 0,right 0 top 3px,right 3px top 0,left 0 bottom 3px,left 3px bottom 0,right 0 bottom 3px,right 3px bottom 0,left 3px bottom 3px;background-repeat:no-repeat;background-size:7px 1px,1px 7px,7px 1px,1px 7px,7px 1px,1px 7px,7px 1px,1px 7px,calc(100% - 7px) 1px;position:absolute;inset:-3px -4px -3px -3px}.sel{--sel-gap:4px;position:relative}.sel:after{content:"";inset:calc((var(--sel-gap) + 2px) * -1);pointer-events:none;opacity:0;--l:linear-gradient(var(--sel-line), var(--sel-line));--k:linear-gradient(var(--sel-knob), var(--sel-knob));background: var(--k) left 1px top 1px / 3px 3px no-repeat, var(--k) right 1px top 1px / 3px 3px no-repeat, var(--k) left 1px bottom 1px / 3px 3px no-repeat, var(--k) right 1px bottom 1px / 3px 3px no-repeat, var(--l) left 0 top 0 / 5px 5px no-repeat, var(--l) right 0 top 0 / 5px 5px no-repeat, var(--l) left 0 bottom 0 / 5px 5px no-repeat, var(--l) right 0 bottom 0 / 5px 5px no-repeat, var(--l) left 2px top 2px / calc(100% - 4px) 1px no-repeat, var(--l) left 2px bottom 2px / calc(100% - 4px) 1px no-repeat, var(--l) left 2px top 2px / 1px calc(100% - 4px) no-repeat, var(--l) right 2px top 2px / 1px calc(100% - 4px) no-repeat;transition:opacity .15s ease-out;position:absolute}.sel[aria-current=page]:after{opacity:1}.sel:active:after{opacity:1;transition-duration:.1s}@media (hover:hover) and (pointer:fine){.sel:hover:after{opacity:1}}.label{font-size:var(--text-label);font-weight:var(--weight-medium);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);line-height:16px}.roll{vertical-align:top;display:inline-block;position:relative;overflow:hidden}.roll>span{transition:transform .22s var(--ease-out);display:block;position:relative}.roll>span:after{content:attr(data-t) / "";position:absolute;inset-block-start:100%;inset-inline-start:0}@media (hover:hover) and (pointer:fine){a:hover .roll>span{transform:translateY(-100%)}}@keyframes page-out{to{opacity:0}}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{z-index:var(--z-skip);min-height:var(--hit);background:var(--ink);color:var(--ground);font-size:var(--text-body);align-items:center;padding:0 14px;text-decoration:none;display:inline-flex;position:absolute;inset-block-start:-100px;inset-inline-start:16px}.skip:focus{inset-block-start:12px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.icon[data-astro-cid-ccg5yoga]{shape-rendering:crispedges;flex:none}.mark[data-astro-cid-wjl56pkl]{width:32px;height:32px;color:var(--accent-deep);flex:none}.sidebar[data-astro-cid-wv7whodv]{padding:24px var(--gutter);border-block-end:1px solid var(--rule);flex-direction:column;gap:24px;display:flex}.head[data-astro-cid-wv7whodv]{align-items:center;gap:12px;display:flex}.name[data-astro-cid-wv7whodv]{min-height:var(--hit);margin-block:calc((var(--hit) - 24px) / -2);font-family:var(--pixel);color:var(--ink);align-items:center;font-size:20px;line-height:24px;text-decoration:none;display:inline-flex}.role[data-astro-cid-wv7whodv]{color:var(--ink-soft);margin-block-start:4px}nav[data-astro-cid-wv7whodv]{margin-block-start:40px}nav[data-astro-cid-wv7whodv] .label[data-astro-cid-wv7whodv]{margin-block-end:8px}ul[data-astro-cid-wv7whodv]{gap:8px;margin:0;padding:0;list-style:none;display:grid}.more[data-astro-cid-wv7whodv]{margin-block-start:8px}li[data-astro-cid-wv7whodv] a[data-astro-cid-wv7whodv]{min-height:var(--hit);color:var(--ink-soft);cursor:var(--cursor);align-items:center;gap:10px;text-decoration:none;transition:color .15s ease-out;display:flex;position:relative}.t[data-astro-cid-wv7whodv]{white-space:nowrap;flex:1;min-width:0}li[data-astro-cid-wv7whodv] a[data-astro-cid-wv7whodv][aria-current=page]{color:var(--ink)}li[data-astro-cid-wv7whodv] a[data-astro-cid-wv7whodv].sel{--sel-gap:2px;margin-inline:-6px;padding-inline:6px}li[data-astro-cid-wv7whodv] a[data-astro-cid-wv7whodv]:active{color:var(--ink);transition-duration:.1s}@media (hover:hover) and (pointer:fine){li[data-astro-cid-wv7whodv] a[data-astro-cid-wv7whodv]:hover{color:var(--ink)}}nav[data-astro-cid-wv7whodv] a[data-astro-cid-wv7whodv]{-webkit-user-select:none;user-select:none}.bottom[data-astro-cid-wv7whodv]{gap:12px;display:grid}.now[data-astro-cid-wv7whodv],.bio[data-astro-cid-wv7whodv]{color:var(--ink-soft);text-wrap:pretty;max-width:32ch}.now[data-astro-cid-wv7whodv]{color:var(--ink)}.now[data-astro-cid-wv7whodv] .logo[data-astro-cid-wv7whodv]{vertical-align:-.3em;width:auto;height:1.25em;display:inline-block}.contact[data-astro-cid-wv7whodv]{flex-wrap:wrap;column-gap:20px;margin-block-end:calc((var(--hit) - 20px) / -2);display:flex}.contact[data-astro-cid-wv7whodv] a[data-astro-cid-wv7whodv].sel{--sel-gap:0px;margin-inline:-6px;padding-inline:6px}.swap[data-astro-cid-wv7whodv]{align-items:center;display:inline-grid}.swap[data-astro-cid-wv7whodv]>*{grid-area:1/1;transition:opacity .3s cubic-bezier(.25,.1,0,1),scale .3s cubic-bezier(.25,.1,0,1),translate .3s cubic-bezier(.25,.1,0,1),filter .3s cubic-bezier(.25,.1,0,1)}.swap[data-astro-cid-wv7whodv]>.done,[data-astro-cid-wv7whodv][data-copied] .swap[data-astro-cid-wv7whodv]>.idle{opacity:0;filter:blur(3px);scale:.3}[data-astro-cid-wv7whodv][data-copied] .swap[data-astro-cid-wv7whodv]>.done{opacity:1;filter:none;scale:1}.word[data-astro-cid-wv7whodv]>.done[data-astro-cid-wv7whodv]{filter:blur(2px);translate:0 4px;scale:1}[data-astro-cid-wv7whodv][data-copied] .word[data-astro-cid-wv7whodv]>.idle[data-astro-cid-wv7whodv]{filter:blur(2px);translate:0 -4px;scale:1}[data-astro-cid-wv7whodv][data-copied] .word[data-astro-cid-wv7whodv]>.done[data-astro-cid-wv7whodv]{translate:0}[data-astro-cid-wv7whodv][data-copied] .roll[data-astro-cid-wv7whodv]>span[data-astro-cid-wv7whodv]{transform:none}@media (prefers-reduced-motion:reduce){.swap[data-astro-cid-wv7whodv]>*{transition:none}}.contact[data-astro-cid-wv7whodv] a[data-astro-cid-wv7whodv]{min-height:var(--hit);align-items:center;gap:8px;text-decoration:none;display:inline-flex}@media (width<=959.98px){.sidebar[data-astro-cid-wv7whodv]{padding-block-start:calc(24px + env(safe-area-inset-top,0px))}nav[data-astro-cid-wv7whodv]{margin-block-start:20px}ul[data-astro-cid-wv7whodv]{flex-wrap:wrap;gap:8px 28px;display:flex}}@media (width>=960px){.sidebar[data-astro-cid-wv7whodv]{height:100dvh;padding:40px 32px 32px var(--gutter);border-block-end:0;border-inline-end:1px solid var(--rule);justify-content:space-between;position:sticky;inset-block-start:0}}.step[data-astro-cid-s7lacxyx]{inset-inline:0;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:80;width:max-content;max-width:calc(100vw - var(--gutter) * 2);background:var(--ground);-webkit-user-select:none;user-select:none;opacity:0;visibility:hidden;border:1px solid oklch(20% .006 60/.12);align-items:center;margin-inline:auto;transition:opacity .15s cubic-bezier(.4,0,1,1),translate .15s cubic-bezier(.4,0,1,1),scale .15s cubic-bezier(.4,0,1,1),visibility 0s linear .15s;display:flex;position:fixed;translate:0 8px;scale:.96;box-shadow:0 1px 2px oklch(20% .006 60/.06),0 4px 8px oklch(20% .006 60/.04),0 12px 24px oklch(20% .006 60/.06)}html[data-step-away] .step[data-astro-cid-s7lacxyx]{opacity:1;visibility:visible;transition:opacity .2s var(--ease-out), translate .2s var(--ease-out), scale .2s var(--ease-out), visibility 0s;translate:0;scale:1}.arrow[data-astro-cid-s7lacxyx]{width:44px;height:44px;color:var(--ink);flex:none;place-items:center;transition:scale .15s ease-out;display:grid}.arrow[data-astro-cid-s7lacxyx][data-off]{opacity:.25}.arrow[data-astro-cid-s7lacxyx]:active{transition-duration:.1s;scale:.96}.mid[data-astro-cid-s7lacxyx]{border:0;border-inline:1px solid var(--rule);min-width:0;min-height:44px;color:var(--ink);font:inherit;white-space:nowrap;background:0 0;align-items:center;gap:8px;padding:0 12px 0 10px;transition:background-color .1s ease-out;display:flex}[data-astro-cid-s7lacxyx][data-step-current]{text-overflow:ellipsis;overflow:hidden}.mid[data-astro-cid-s7lacxyx]:active{background:var(--tile)}.sheet[data-astro-cid-s7lacxyx]{border:0;border-block-start:1px solid var(--rule);background:var(--ground);width:100%;max-width:none;max-height:80dvh;color:var(--ink);overscroll-behavior:contain;transition:translate .2s cubic-bezier(.4, 0, 1, 1), overlay .2s allow-discrete, display .2s allow-discrete;margin:0;padding:0;position:fixed;inset:auto 0 0;translate:0 100%}.sheet[data-astro-cid-s7lacxyx][open]{transition:translate .3s var(--ease-out), overlay .3s allow-discrete, display .3s allow-discrete;translate:0}@starting-style{.sheet[data-astro-cid-s7lacxyx][open]{translate:0 100%}}.sheet[data-astro-cid-s7lacxyx]:focus{outline:none}.sheet[data-astro-cid-s7lacxyx]::backdrop{opacity:0;transition:opacity .2s cubic-bezier(.4, 0, 1, 1), overlay .2s allow-discrete, display .2s allow-discrete;background:oklch(17% .006 60/.24)}.sheet[data-astro-cid-s7lacxyx][open]::backdrop{opacity:1;transition:opacity .3s var(--ease-out), overlay .3s allow-discrete, display .3s allow-discrete}@starting-style{.sheet[data-astro-cid-s7lacxyx][open]::backdrop{opacity:0}}html:has(.sheet[open]){overflow:hidden}.sheet-in[data-astro-cid-s7lacxyx]{padding:16px var(--gutter) calc(16px + env(safe-area-inset-bottom,0px))}.close[data-astro-cid-s7lacxyx]{width:100%;min-height:var(--hit);border:0;border-block-start:1px solid var(--rule);color:var(--ink-soft);font:inherit;text-align:start;-webkit-user-select:none;user-select:none;background:0 0;align-items:center;gap:8px;margin-block-start:16px;padding:8px 0 0;transition:color .15s ease-out;display:flex}.close[data-astro-cid-s7lacxyx]:active{color:var(--ink);transition-duration:.1s}.list[data-astro-cid-s7lacxyx] ul[data-astro-cid-s7lacxyx]{gap:8px;margin:0;padding:0;list-style:none;display:grid}.list[data-astro-cid-s7lacxyx] .more[data-astro-cid-s7lacxyx]{margin-block-start:8px}.list[data-astro-cid-s7lacxyx] li[data-astro-cid-s7lacxyx] a[data-astro-cid-s7lacxyx]{min-height:var(--hit);color:var(--ink-soft);-webkit-user-select:none;user-select:none;align-items:center;gap:10px;text-decoration:none;transition:color .15s ease-out;display:flex;position:relative}.list[data-astro-cid-s7lacxyx] .t[data-astro-cid-s7lacxyx]{white-space:nowrap;flex:1;min-width:0}.list[data-astro-cid-s7lacxyx] li[data-astro-cid-s7lacxyx] a[data-astro-cid-s7lacxyx][aria-current=page]{color:var(--ink)}.list[data-astro-cid-s7lacxyx] li[data-astro-cid-s7lacxyx] a[data-astro-cid-s7lacxyx].sel{--sel-gap:2px;margin-inline:-6px;padding-inline:6px}.list[data-astro-cid-s7lacxyx] li[data-astro-cid-s7lacxyx] a[data-astro-cid-s7lacxyx]:active{color:var(--ink);transition-duration:.1s}@media (width>=960px){.step[data-astro-cid-s7lacxyx],.sheet[data-astro-cid-s7lacxyx]{display:none}}@media (prefers-reduced-motion:reduce){.sheet[data-astro-cid-s7lacxyx],.sheet[data-astro-cid-s7lacxyx]::backdrop{transition:none}}@keyframes step-out-next{to{opacity:0;transform:translate(-16px)}}@keyframes step-in-next{0%{opacity:0;transform:translate(24px)}}@keyframes step-out-prev{to{opacity:0;transform:translate(16px)}}@keyframes step-in-prev{0%{opacity:0;transform:translate(-24px)}}@keyframes step-pill-out{0%{opacity:1}to{opacity:0;transform:translateY(8px)scale(.96)}}@media (prefers-reduced-motion:no-preference){html[data-step-dir=next]::view-transition-old(main){animation:.14s cubic-bezier(.4,0,1,1) both step-out-next}html[data-step-dir=next]::view-transition-new(main){animation:.32s cubic-bezier(.23,1,.32,1) 60ms both step-in-next}html[data-step-dir=prev]::view-transition-old(main){animation:.14s cubic-bezier(.4,0,1,1) both step-out-prev}html[data-step-dir=prev]::view-transition-new(main){animation:.32s cubic-bezier(.23,1,.32,1) 60ms both step-in-prev}html::view-transition-old(step-nav){animation:.15s cubic-bezier(.4,0,1,1) both step-pill-out}}.frame[data-astro-cid-e6xjdcgf]{min-height:100dvh;display:grid}.main[data-astro-cid-e6xjdcgf]{min-width:0;position:relative;overflow-x:clip}.main[data-astro-cid-e6xjdcgf]:after{content:"Loading…";z-index:1;padding:calc(var(--band) - 28px) var(--gutter) 0;background:linear-gradient(var(--rule), var(--rule)) 0 var(--band) / 100% 1px no-repeat, var(--ground);font-size:var(--text-label);font-weight:var(--weight-medium);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s var(--ease-out), visibility 0s linear .15s;line-height:16px;position:absolute;inset:0}html[data-loading] .main[data-astro-cid-e6xjdcgf]:after{opacity:1;visibility:visible;transition-delay:0s}.edge[data-astro-cid-e6xjdcgf]{z-index:50;pointer-events:none;height:0;position:sticky}.edge[data-astro-cid-e6xjdcgf].top{top:0}.edge[data-astro-cid-e6xjdcgf].bottom{bottom:0}.edge[data-astro-cid-e6xjdcgf]:before{content:"";inset-inline:calc(var(--gutter) + 1px) var(--gutter);opacity:0;height:32px;transition:opacity .2s;position:absolute}.edge[data-astro-cid-e6xjdcgf].top:before{background:linear-gradient(var(--ground), transparent);top:0}.edge[data-astro-cid-e6xjdcgf].bottom:before{background:linear-gradient(transparent, var(--ground));bottom:0}html[data-edge-top] .edge[data-astro-cid-e6xjdcgf].top:before,html[data-edge-bottom] .edge[data-astro-cid-e6xjdcgf].bottom:before{opacity:1;transition:opacity .15s var(--ease-out)}@media (prefers-reduced-motion:reduce){.edge[data-astro-cid-e6xjdcgf]:before,html[data-edge-top] .edge[data-astro-cid-e6xjdcgf]:before,html[data-edge-bottom] .edge[data-astro-cid-e6xjdcgf]:before{transition:none}}@media (width<=959.98px){.main[data-astro-cid-e6xjdcgf]{padding-block-end:76px}}@media (width>=960px){.frame[data-astro-cid-e6xjdcgf]{grid-template-columns:var(--side) minmax(0, 1fr)}.edge[data-astro-cid-e6xjdcgf]:before{--L:calc(50% - var(--cell));inset-inline:auto;left:calc(var(--L) + 1px);width:calc(var(--cell) * 2 - 1px);height:48px}@supports (width:round(down, 1.5px, 1px)){.edge[data-astro-cid-e6xjdcgf]:before{--L:round(down, 50% - var(--cell), 1px)}}}
