.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}.theme-toggle[data-astro-cid-l6lhmie6]{border:1px solid var(--line);width:2.25rem;height:2.25rem;color:var(--ink);cursor:pointer;background:0 0;border-radius:50%;place-items:center;display:inline-grid}.theme-toggle[data-astro-cid-l6lhmie6]:hover{border-color:var(--lamp);color:var(--lamp)}.icon-sun[data-astro-cid-l6lhmie6]{display:none}html.dark .icon-sun[data-astro-cid-l6lhmie6]{display:block}html.dark .icon-moon[data-astro-cid-l6lhmie6]{display:none}.site-header[data-astro-cid-nen7h5rs]{border-bottom:1px solid var(--line);background:var(--bg);z-index:4;position:relative}.bar[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-5);grid-template-columns:1fr auto auto;min-height:4.25rem;display:grid}.name[data-astro-cid-nen7h5rs]{font-weight:700;font-size:var(--step-1);letter-spacing:-.03em;color:var(--ink);white-space:nowrap;text-decoration:none}ul[data-astro-cid-nen7h5rs]{gap:var(--space-5);padding:0;list-style:none;display:flex}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{color:var(--ink-2);white-space:nowrap;padding-block:var(--space-2);font-weight:500;text-decoration:none}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover{color:var(--ink)}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--lamp-glow)}.tools[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-2);display:flex}.menu-toggle[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-2);min-height:2.5rem;padding-inline:var(--space-3);border:1px solid var(--line);color:var(--ink);font:inherit;font-weight:600;font-size:var(--step--1);cursor:pointer;background:0 0;border-radius:999px;display:none}.menu-toggle[data-astro-cid-nen7h5rs]:hover{border-color:var(--lamp)}.cross[data-astro-cid-nen7h5rs]{display:none}.menu-open[data-astro-cid-nen7h5rs] .cross[data-astro-cid-nen7h5rs]{display:inline}.menu-open[data-astro-cid-nen7h5rs] .bars[data-astro-cid-nen7h5rs]{display:none}@media (width<=860px){.bar[data-astro-cid-nen7h5rs]{gap:var(--space-3);grid-template-columns:1fr auto}nav[data-astro-cid-nen7h5rs]{padding-bottom:var(--space-3);grid-area:2/1/auto/-1}ul[data-astro-cid-nen7h5rs]{gap:var(--space-1) var(--space-4);flex-wrap:wrap}html.js .menu-toggle[data-astro-cid-nen7h5rs]{display:inline-flex}html.js nav[data-astro-cid-nen7h5rs]{padding:var(--space-2) clamp(var(--space-4), 5vw, var(--space-6)) var(--space-5);background:var(--bg);border-bottom:1px solid var(--line);box-shadow:0 16px 24px -16px color-mix(in srgb, var(--ink) 35%, transparent);display:none;position:absolute;inset:100% 0 auto}html.js .menu-open[data-astro-cid-nen7h5rs] nav[data-astro-cid-nen7h5rs]{display:block}html.js ul[data-astro-cid-nen7h5rs]{flex-direction:column;gap:0}html.js nav[data-astro-cid-nen7h5rs] li[data-astro-cid-nen7h5rs]+li[data-astro-cid-nen7h5rs]{border-top:1px solid var(--line)}html.js nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{padding-block:var(--space-4);font-size:var(--step-1);color:var(--ink);font-weight:600;display:block}html.js nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{box-shadow:none;color:var(--lamp)}}.ridgeline[data-astro-cid-3q35wp2v]{width:100%;height:clamp(96px,15vw,220px);display:block;overflow:visible}.hero[data-astro-cid-3q35wp2v]{--sky-far:color-mix(in srgb, var(--sky) 82%, var(--sky-ink));--sky-mid:color-mix(in srgb, var(--sky) 68%, var(--sky-ink));--ground:var(--bg)}.footer[data-astro-cid-3q35wp2v]{--sky-far:color-mix(in srgb, var(--bg) 76%, var(--footer-band));--sky-mid:color-mix(in srgb, var(--bg) 48%, var(--footer-band));--ground:var(--footer-band)}html.dark .footer[data-astro-cid-3q35wp2v]{--sky-far:color-mix(in srgb, var(--footer-band) 90%, var(--sky-ink));--sky-mid:color-mix(in srgb, var(--footer-band) 80%, var(--sky-ink))}.far[data-astro-cid-3q35wp2v]{fill:var(--sky-far)}.mid[data-astro-cid-3q35wp2v]{fill:var(--sky-mid)}.near[data-astro-cid-3q35wp2v]{fill:var(--ground)}.cat-body[data-astro-cid-3q35wp2v]{fill:var(--cat)}.cat-tail[data-astro-cid-3q35wp2v]{fill:none;stroke:var(--cat);stroke-width:7px;stroke-linecap:round;transform-box:fill-box;transform-origin:100% 85%;animation:5s ease-in-out infinite alternate tail-sway}.moon[data-astro-cid-3q35wp2v]{fill:var(--celestial)}.moon-halo[data-astro-cid-3q35wp2v]{fill:var(--celestial);opacity:.14}@keyframes tail-sway{0%{rotate:-7deg}to{rotate:6deg}}.site-footer[data-astro-cid-jo6i4kqk]{margin-top:var(--space-9);font-size:var(--step--1)}.night[data-astro-cid-jo6i4kqk]{background:var(--footer-band);color:var(--night-ink);padding-block:var(--space-6) var(--space-6);margin-top:-1px}.grid[data-astro-cid-jo6i4kqk]{gap:var(--space-6);grid-template-columns:2fr 1fr 1fr;display:grid}.lead[data-astro-cid-jo6i4kqk]{font-size:var(--step-1);letter-spacing:-.015em;max-width:22ch;font-weight:600;line-height:1.3}.mail[data-astro-cid-jo6i4kqk]{margin-top:var(--space-3);font-size:var(--step-0);color:var(--lamp-glow);display:inline-block}h2[data-astro-cid-jo6i4kqk]{font-size:var(--step--1);color:var(--night-ink-2);letter-spacing:0;margin-bottom:var(--space-3);font-weight:600}ul[data-astro-cid-jo6i4kqk]{gap:var(--space-2);padding:0;list-style:none;display:grid}nav[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--night-ink);text-decoration:none}nav[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--lamp-glow)}a[data-astro-cid-jo6i4kqk]:focus-visible{outline-color:var(--lamp-glow)}.legal[data-astro-cid-jo6i4kqk]{color:var(--night-ink-2);padding-top:var(--space-5);border-top:1px solid var(--night-line);grid-column:1/-1}.legal[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:inherit}@media (width<=760px){.grid[data-astro-cid-jo6i4kqk]{grid-template-columns:1fr 1fr}.say-hi[data-astro-cid-jo6i4kqk]{grid-column:1/-1}}.oneko[data-astro-cid-vwikbwb3]{pointer-events:none;width:32px;height:32px;image-rendering:pixelated;z-index:5;background-image:url(/oneko.gif);position:fixed;top:calc(100vh - 48px);left:16px}@media (width<=640px),(prefers-reduced-motion:reduce){.oneko[data-astro-cid-vwikbwb3]{display:none}}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-vietnamese-wght-normal.Czsa-EzN.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:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-ext-wght-normal.C-3rgBeH.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:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-wght-normal.CCVVNp6i.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:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-vietnamese-wght-italic.xAqemagA.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:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-ext-wght-italic.DFS986qL.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:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-wght-italic.Bxi8ein9.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{color-scheme:light;--bg:#edf1f2;--surface:#f8fafa;--ink:#0f212c;--ink-2:#4a5a63;--line:#c9d3d7;--lamp:#8f5400;--lamp-glow:#f5a524;--night:#0b1c26;--night-ink:#e4ecef;--night-ink-2:#93a6b0;--night-line:#23404f;--sky:#cfe3ec;--sky-ink:#0f212c;--sky-ink-2:#3f5866;--sky-line:#9bb5c1;--sky-accent:#7a4700;--celestial:#f5a524;--light-talk:#e5484d;--cat:#0f212c;--footer-band:#1e3440;--font-ui:"Bricolage Grotesque Variable", ui-sans-serif, system-ui, sans-serif;--font-serif:"Newsreader Variable", Georgia, "Times New Roman", serif;--font-code:"JetBrains Mono Variable", ui-monospace, "SFMono-Regular", Menlo, monospace;--step--1:.85rem;--step-0:1.0625rem;--step-1:1.33rem;--step-2:1.66rem;--step-3:2.07rem;--step-4:2.59rem;--step-5:3.24rem;--display:clamp(3.25rem, 11vw, 8.5rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2.25rem;--space-7:3.5rem;--space-8:5rem;--space-9:8rem;--wrap:72rem;--measure-tech:42rem;--measure-serif:36rem;--radius:4px}html.dark{color-scheme:dark;--bg:#0b1c26;--surface:#10283a;--ink:#e4ecef;--ink-2:#93a6b0;--line:#23404f;--lamp:#ffb547;--lamp-glow:#ffb547;--night:#071621;--sky:#071621;--sky-ink:#e4ecef;--sky-ink-2:#93a6b0;--sky-line:#23404f;--sky-accent:#ffb547;--celestial:#e4ecef;--light-talk:#ff7a70;--cat:#03101a;--footer-band:#071621}*,:before,:after{box-sizing:border-box}*{margin:0}html{text-size-adjust:100%;background:var(--bg)}body{background:var(--bg);min-height:100dvh;color:var(--ink);font-family:var(--font-ui);font-size:var(--step-0);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;flex-direction:column;line-height:1.6;display:flex}main{flex:1}img,svg,video{max-width:100%;height:auto;display:block}h1,h2,h3,h4{font-family:var(--font-ui);letter-spacing:-.02em;text-wrap:balance;font-weight:650;line-height:1.15}h1{font-size:var(--step-4)}h2{font-size:var(--step-2)}h3{font-size:var(--step-1)}p,li{text-wrap:pretty}a{color:var(--lamp);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--lamp);outline-offset:3px;border-radius:2px}::selection{background:var(--lamp-glow);color:#0f212c}.wrap{width:100%;max-width:var(--wrap);padding-inline:clamp(var(--space-4), 5vw, var(--space-6));margin-inline:auto}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.skip-link{left:var(--space-4);padding:var(--space-2) var(--space-3);background:var(--ink);color:var(--bg);z-index:10;position:absolute;top:-3rem}.skip-link:focus{top:var(--space-4)}.page-head{padding-block:var(--space-7) var(--space-6)}.page-head h1{font-size:var(--step-5);letter-spacing:-.035em}.page-head p{margin-top:var(--space-3);color:var(--ink-2);max-width:var(--measure-tech);font-size:var(--step-1);line-height:1.45}.rows{border-top:1px solid var(--line);padding:0;list-style:none}.rows>li{border-bottom:1px solid var(--line)}.prose{max-width:var(--measure-tech)}.prose>*+*{margin-top:1.1em}.prose h2{margin-top:2em}.prose h3{margin-top:1.6em}.prose ul,.prose ol{padding-left:1.25em}.prose li+li{margin-top:.4em}.prose blockquote{border-left:2px solid var(--lamp-glow);padding-left:var(--space-4);color:var(--ink-2)}.prose hr{border:0;border-top:1px solid var(--line);margin-block:var(--space-6)}.prose img{border-radius:var(--radius)}.prose code{font-family:var(--font-code);font-size:.9em}.prose :not(pre)>code{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.05em .3em}.prose pre{padding:var(--space-4);border-radius:var(--radius);border:1px solid var(--line);font-size:var(--step--1);line-height:1.55;overflow-x:auto}.prose table{border-collapse:collapse;width:100%;font-size:var(--step--1)}.prose th,.prose td{border-bottom:1px solid var(--line);padding:var(--space-2);text-align:left}.prose pre.astro-code{background-color:var(--surface)!important}html.dark .astro-code span,html.dark .astro-code{color:var(--shiki-dark)!important}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
