@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}:root{--bg:#f8f9f8;--panel:#eff1ef;--fg:#111316;--fg-2:#596069;--line:#d6d9d7;--accent:#2646d4;--accent-soft:#2646d41a;--alert:#bf331d;--alert-soft:#bf331d17;--tile:#fff;--sans:"Geist Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"Geist Mono Variable", ui-monospace, Menlo, Consolas, monospace;--col:40rem;--margin:14rem;--gap:3rem;--wide:calc(var(--col) + var(--gap) + var(--margin));color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0f1113;--panel:#171a1d;--fg:#e8eaec;--fg-2:#9aa1a9;--line:#2c3035;--accent:#8ea4ff;--accent-soft:#8ea4ff24;--alert:#ff8a73;--alert-soft:#ff8a731f;--tile:#fff;color-scheme:dark}}:root[data-tone=notes]{--accent:#0f7a6c;--accent-soft:#0f7a6c1a}:root[data-tone=work]{--accent:#6b3fd4;--accent-soft:#6b3fd41a}:root[data-tone=about]{--accent:#b4520f;--accent-soft:#b4520f1a}@media (prefers-color-scheme:dark){:root[data-tone=notes]{--accent:#5fd3c0;--accent-soft:#5fd3c021}:root[data-tone=work]{--accent:#b49cff;--accent-soft:#b49cff24}:root[data-tone=about]{--accent:#f5a764;--accent-soft:#f5a76421}}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}:target,[id]{scroll-margin-top:88px}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--bg);color:var(--fg);font:400 1.125rem/1.7 var(--sans);-webkit-font-smoothing:antialiased;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));margin:0}h1,h2,h3,p,figure,ol,ul,dl,dd{margin:0}h1,h2,h3{text-wrap:balance;letter-spacing:-.02em;font-weight:600}p,li{text-wrap:pretty}img,canvas,svg{max-width:100%}a{color:inherit;text-underline-offset:.2em;text-decoration:underline 1px;text-decoration-color:var(--line)}a:hover{text-decoration-color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}code{font-family:var(--mono);font-size:.85em}button{font:inherit;color:inherit}.vh{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{z-index:10;background:var(--fg);color:var(--bg);font:500 .9375rem/1 var(--sans);border-radius:6px;padding:10px 14px;text-decoration:none;position:absolute;top:8px;left:16px;transform:translateY(-200%)}.skip:focus{transform:none}.col,.wide{margin-inline:auto}.col{max-width:var(--col)}.wide{max-width:var(--wide)}@media (width>=1080px){.col{margin-left:max(0px, calc(50% - var(--wide) / 2))}}.meta{font:400 .8125rem/1.6 var(--mono);color:var(--fg-2)}.label{font:500 .75rem/1.4 var(--mono);color:var(--accent);text-transform:uppercase;letter-spacing:.08em;margin-bottom:16px}.btn{border:1px solid var(--fg);background:var(--fg);min-height:44px;color:var(--bg);font:500 .9375rem/1 var(--sans);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 20px;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.btn:hover{background:var(--accent);border-color:var(--accent);color:var(--bg)}.btn--ghost{color:var(--fg);border-color:var(--line);background:0 0}.btn--ghost:hover{color:var(--fg);border-color:var(--fg-2);background:0 0}.btn--sm{min-height:36px;padding:0 14px;font-size:.875rem}.block{margin-top:80px}.list{border-top:1px solid var(--line);padding:0;list-style:none}.list li{border-bottom:1px solid var(--line);grid-template-columns:7.5rem minmax(0,1fr);align-items:baseline;gap:2px 16px;padding-block:14px;display:grid}.list .meta{font-variant-numeric:tabular-nums}.list a{font-weight:500;text-decoration:none}.list a:hover{text-decoration:underline;text-decoration-color:var(--accent)}@media (width<=520px){.list li{grid-template-columns:1fr}}.page-head{gap:14px;padding-block:48px;display:grid}.page-head h1{font-size:clamp(1.875rem,1.3rem + 2vw,2.5rem);line-height:1.15}.back{font:400 .875rem/1 var(--mono);color:var(--fg-2);justify-self:start;align-items:center;min-height:44px;text-decoration:none;display:inline-flex}.back:hover{color:var(--fg)}.prose{display:flow-root}.prose>*+*{margin-top:1.2em}.prose h2{margin-top:2.6em;font-size:1.5rem;line-height:1.25}.prose h3{margin-top:2em;font-size:1.1875rem;line-height:1.3}.prose ul,.prose ol{padding-left:1.2em}.prose li+li{margin-top:.4em}.prose li::marker{color:var(--fg-2)}.prose :not(pre)>code{background:var(--panel);border-radius:4px;padding:.1em .35em}.prose pre{font:400 .875rem/1.7 var(--mono);border-radius:10px;margin-block:1.6em;padding:16px 18px;overflow-x:auto}.prose pre code{font-size:inherit}.prose pre.astro-code{background-color:var(--panel)!important}@media (prefers-color-scheme:dark){.prose pre.astro-code span{color:var(--shiki-dark)!important}}.prose figure{margin-block:1.8em}.prose img{border-radius:10px;height:auto}.prose blockquote{border-left:2px solid var(--line);color:var(--fg-2);margin-inline:0;padding-left:16px}.stage{background:var(--panel);border-radius:14px;gap:14px;padding:12px clamp(14px,3vw,28px) 22px;display:grid}.stage-bar{justify-content:space-between;align-items:center;gap:12px;min-height:40px;display:flex}.stage-bar>.meta{min-width:0}.replay{border:1px solid var(--line);background:var(--bg);width:36px;height:36px;color:var(--fg-2);cursor:pointer;border-radius:50%;flex:none;place-items:center;margin-left:auto;display:inline-grid}.replay:hover{color:var(--fg);border-color:var(--fg-2)}.replay svg{width:16px;height:16px}.cap{font:400 .8125rem/1.5 var(--mono);color:var(--fg-2);margin-top:10px}.tile{background:var(--tile);border:1px solid var(--line);border-radius:9px;flex:none;justify-content:center;align-items:center;height:44px;padding:7px 10px;display:inline-flex}.tile img{width:auto;height:100%;display:block}.tile--icon{background:0 0;border:0;width:44px;padding:0}.foot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;margin-top:112px;padding-block:24px 48px;display:flex}.foot ul{flex-wrap:wrap;gap:0 20px;padding:0;list-style:none;display:flex}.foot a{font:400 .875rem/1 var(--mono);color:var(--fg-2);align-items:center;min-height:44px;text-decoration:none;display:inline-flex}.foot a:hover{color:var(--fg)}::view-transition-group(*){animation-duration:.45s;animation-timing-function:cubic-bezier(.2,.8,.2,1)}::view-transition-old(root){animation:.12s ease-in both vt-out}::view-transition-new(root){animation:.42s cubic-bezier(.2,.8,.2,1) 60ms both vt-in}@keyframes vt-out{to{opacity:0}}@keyframes vt-in{0%{opacity:0;transform:translateY(14px)}}::view-transition-old(backdrop),::view-transition-new(backdrop){animation-duration:.6s}::view-transition-old(*.title),::view-transition-new(*.title){object-fit:none;object-position:left top;width:auto;height:100%;overflow:clip}::view-transition-old(*.title){animation:.16s ease-in both vt-out}::view-transition-new(*.title){animation:.35s ease-out .1s both vt-fade}@keyframes vt-fade{0%{opacity:0}}@supports (animation-timeline:view()){.reveal{animation-name:reveal;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range:entry entry 40%}@keyframes reveal{0%{opacity:0;transform:translateY(24px)}}}@media (prefers-reduced-motion:reduce){.reveal{animation:none}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.backdrop[data-astro-cid-nlnhp4nu]{height:var(--h);z-index:-1;pointer-events:none;view-transition-name:backdrop;background-image:radial-gradient(circle at center, color-mix(in srgb, var(--fg) 16%, transparent) 1px, transparent 1.5px);background-position:top;background-size:24px 24px;position:absolute;inset:0 0 auto;overflow:hidden;mask-image:radial-gradient(80% 75% at 50% 0,#000 25%,#0000 100%)}.backdrop[data-astro-cid-nlnhp4nu]:before{content:"";background:radial-gradient(circle, color-mix(in srgb, var(--accent) 16%, transparent), transparent 65%);border-radius:50%;width:70vmax;height:70vmax;position:absolute;top:-42vmax;left:30%}.backdrop[data-astro-cid-nlnhp4nu].live{background-image:none}.backdrop[data-astro-cid-nlnhp4nu]{--gain:1}@media (prefers-color-scheme:dark){.backdrop[data-astro-cid-nlnhp4nu]{--gain:1.5}}canvas[data-astro-cid-nlnhp4nu]{width:100%;height:100%;position:absolute;inset:0}.top[data-astro-cid-hkbrpulz]{--side:max(16px, env(safe-area-inset-left,0px));z-index:5;margin-inline:calc(-1 * var(--side));padding-inline:var(--side);padding-top:env(safe-area-inset-top,0px);border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg) 84%, transparent);backdrop-filter:blur(14px)saturate(1.4);position:sticky;top:0}@supports (animation-timeline:scroll()){.top[data-astro-cid-hkbrpulz]{backdrop-filter:none;background:0 0;border-bottom-color:#0000;animation-name:frost;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:scroll();animation-range:0 48px}@keyframes frost{to{border-bottom-color:var(--line);background:color-mix(in srgb, var(--bg) 84%, transparent);backdrop-filter:blur(14px)saturate(1.4)}}}.bar[data-astro-cid-hkbrpulz]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:0 24px;padding-block:10px;display:flex}.name[data-astro-cid-hkbrpulz]{letter-spacing:-.01em;align-items:center;min-height:44px;font-weight:600;text-decoration:none;display:inline-flex}nav[data-astro-cid-hkbrpulz]{flex-wrap:wrap;align-items:center;gap:4px 20px;font-size:.9375rem;display:flex}nav[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz]:not(.btn){color:var(--fg-2);align-items:center;min-height:44px;text-decoration:none;display:inline-flex}nav[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz]:not(.btn):hover,nav[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz][aria-current=page]{color:var(--fg)}nav[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz]:not(.btn){position:relative}nav[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz][aria-current=page]:after{content:"";background:var(--accent);view-transition-name:nav-current;border-radius:2px;height:2px;position:absolute;bottom:8px;left:0;right:0}@media (width<=420px){nav[data-astro-cid-hkbrpulz]{gap:4px 14px}nav[data-astro-cid-hkbrpulz] .btn[data-astro-cid-hkbrpulz]{display:none}}
