@font-face{font-family:Mona Sans Variable;font-style:normal;font-display:swap;font-weight:200 900;font-stretch:75% 125%;src:url(/build/assets/mona-sans-vietnamese-wdth-normal-Rd0aZl9c.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:Mona Sans Variable;font-style:normal;font-display:swap;font-weight:200 900;font-stretch:75% 125%;src:url(/build/assets/mona-sans-latin-ext-wdth-normal-CQ1tG6In.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:Mona Sans Variable;font-style:normal;font-display:swap;font-weight:200 900;font-stretch:75% 125%;src:url(/build/assets/mona-sans-latin-wdth-normal-BMVx8nn_.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}@layer components{.mk{--wide: 76rem;--bg: #07080a;--bg-raised: #090a0d;--surface: #0e1013;--ink: #f4f5f6;--muted: #9ba1a9;--muted-strong: #6f757d;--subtle: #5d636b;--line: rgb(255 255 255 / .06);--ok: #4ade9a;--warn: #f5b544;--err: #ff6b5e;--accent: #3ee6c1;--accent-ink: #04130f;--accent-rgb: 62 230 193;--ease: cubic-bezier(.22, 1, .36, 1);--font-body: "Mona Sans Variable", ui-sans-serif, system-ui, sans-serif;--font-mono: "Monaspace Neon", ui-monospace, "SF Mono", Menlo, monospace;--ac-ink: var(--ink);--ac-body: #c4c9cf;--ac-muted: var(--muted);--ac-faint: var(--subtle);--ac-line: rgb(255 255 255 / .08);--ac-line-strong: rgb(255 255 255 / .16);--ac-surface: rgb(255 255 255 / .025);--ac-surface-subtle: rgb(255 255 255 / .04);--ac-accent: var(--accent);--ac-accent-strong: var(--accent);--ac-accent-bright: var(--accent);--ac-accent-soft: rgb(var(--accent-rgb) / .07);--ac-accent-line: rgb(var(--accent-rgb) / .35);--ac-accent-ink: var(--ink);--ac-code-bg: rgb(255 255 255 / .08);--ac-code-ink: var(--ink);--ac-step-bg: rgb(var(--accent-rgb) / .15);--ac-step-ink: var(--accent);--ac-tip-bg: rgb(56 189 248 / .07);--ac-tip-line: rgb(56 189 248 / .3);--ac-tip-ink: var(--ink);--ac-tip-accent: #7dd3fc;--ac-warn-bg: rgb(245 181 68 / .07);--ac-warn-line: rgb(245 181 68 / .3);--ac-warn-ink: var(--ink);--ac-warn-accent: var(--warn);--ac-ok-bg: rgb(74 222 154 / .07);--ac-ok-line: rgb(74 222 154 / .3);--ac-ok-ink: var(--ink);--ac-ok-accent: var(--ok);--ac-beginner: var(--ok);--ac-adv-bg: rgb(167 139 250 / .1);--ac-adv-accent: #c4b5fd;min-height:100vh;overflow-x:clip;background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased}.mk :focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mk ::selection{background:rgb(var(--accent-rgb) / .3)}.mk .display{font-weight:600;font-stretch:108%;letter-spacing:-.03em}.mk .display-xl{font-size:clamp(2.6rem,1.1rem + 6.4vw,5.75rem);line-height:.98;letter-spacing:-.045em}.mk .headline{font-size:clamp(1.9rem,1.15rem + 3vw,3.5rem);line-height:1.03;letter-spacing:-.04em;text-wrap:balance}.mk .title{font-size:clamp(1.15rem,1.05rem + .4vw,1.375rem);line-height:1.25;font-weight:600;letter-spacing:-.015em}.mk .lead{font-size:clamp(1.0625rem,1rem + .35vw,1.25rem);line-height:1.6;text-wrap:pretty}.mk .eyebrow{color:var(--accent);font-size:.875rem}.mk .mono{font-family:var(--font-mono);font-stretch:100%}.mk sup{margin-left:.1em;color:var(--subtle);font-size:.7em}.mk .panel{background:linear-gradient(180deg,#ffffff0b,#ffffff04),var(--surface);box-shadow:inset 0 1px #ffffff12,0 0 0 1px #ffffff12,0 40px 80px -30px #000c}.mk .panel-hero{box-shadow:inset 0 1px #ffffff14,0 0 0 1px #ffffff17,0 60px 120px -40px #000000e6,0 0 80px -30px rgb(var(--accent-rgb) / .35)}.mk .panel-accent{box-shadow:inset 0 1px #ffffff14,0 0 0 1px rgb(var(--accent-rgb) / .45),0 0 60px -20px rgb(var(--accent-rgb) / .45),0 40px 80px -30px #000c}.mk .tile{background:#ffffff06;box-shadow:inset 0 0 0 1px #ffffff0d}.mk .chip{background:#ffffff0a;box-shadow:inset 0 0 0 1px #ffffff14}.mk .hairline{border-color:var(--line)}.mk .light-top,.mk .light-bottom{position:absolute;inset:0;z-index:-1;pointer-events:none}.mk .light-top{background:radial-gradient(40% 45% at 50% 0%,rgb(var(--accent-rgb) / .2),transparent 70%),radial-gradient(60% 55% at 50% 10%,rgb(var(--accent-rgb) / .07),transparent 75%)}.mk .light-bottom{background:radial-gradient(45% 60% at 50% 100%,rgb(var(--accent-rgb) / .18),transparent 70%)}.mk .grid-fade{position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(to right,rgb(255 255 255 / .035) 1px,transparent 1px),linear-gradient(to bottom,rgb(255 255 255 / .035) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(60% 70% at 50% 15%,black,transparent 75%);mask-image:radial-gradient(60% 70% at 50% 15%,black,transparent 75%)}.mk .rich{color:#c4c9cf;font-size:1rem;line-height:1.75}.mk .rich :is(h2,h3,h4){color:var(--ink);font-weight:600;letter-spacing:-.015em;line-height:1.25;scroll-margin-top:6rem}.mk .rich h2{margin-top:3rem;font-size:1.5rem}.mk .rich h3{margin-top:2rem;font-size:1.15rem}.mk .rich h4{margin-top:1.75rem;font-size:1.05rem}.mk .rich>:first-child{margin-top:0}.mk .rich :is(p,ul,ol,table,pre,blockquote,img){margin-top:1.1rem}.mk .rich ul{list-style:disc;padding-left:1.5rem}.mk .rich ol{list-style:decimal;padding-left:1.5rem}.mk .rich li+li{margin-top:.4rem}.mk .rich li::marker{color:var(--subtle)}.mk .rich strong{color:var(--ink);font-weight:600}.mk .rich a{color:var(--accent);font-weight:500;text-decoration:underline;text-decoration-color:rgb(var(--accent-rgb) / .35);text-underline-offset:3px}.mk .rich a:hover{text-decoration-color:var(--accent)}.mk .rich code{border-radius:.3rem;background:#ffffff14;padding:.1rem .4rem;color:var(--ink);font-family:var(--font-mono);font-size:.85em}.mk .rich pre{overflow-x:auto;border-radius:.75rem;background:#ffffff0a;box-shadow:inset 0 0 0 1px var(--line);padding:1rem;font-size:.875rem;line-height:1.6}.mk .rich pre code{background:transparent;padding:0}.mk .rich blockquote{border-left:2px solid rgb(var(--accent-rgb) / .5);padding-left:1rem;color:var(--muted)}.mk .rich hr{margin-block:2.5rem;border-color:var(--line)}.mk .rich img{border-radius:.75rem}.mk .rich table{width:100%;border-collapse:collapse;font-size:.875rem}.mk .rich :is(th,td){border:1px solid rgb(255 255 255 / .08);padding:.6rem .75rem;text-align:left;vertical-align:top}.mk .rich th{background:#ffffff08;color:var(--ink);font-weight:600}.mk .rich button{cursor:pointer;border-radius:999px;box-shadow:inset 0 0 0 1px #ffffff24;padding:.5rem 1rem;color:var(--ink);font-size:.875rem;font-weight:600}.mk .rich button:hover{background:#ffffff0d}.mk .btn-accent,.mk .btn-light,.mk .btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border-radius:999px;font-weight:600;white-space:nowrap;transition:filter .2s,opacity .2s,background-color .2s,box-shadow .2s}.mk .btn-accent{background:var(--accent);color:var(--accent-ink);box-shadow:inset 0 1px #ffffff59}.mk .btn-accent:hover{filter:brightness(1.08)}.mk .btn-accent:disabled{opacity:.7;cursor:default;filter:none}.mk .btn-light{background:var(--ink);color:var(--bg)}.mk .btn-light:hover{opacity:.88}.mk .btn-ghost{color:var(--ink);box-shadow:inset 0 0 0 1px #ffffff24}.mk .btn-ghost:hover{background:#ffffff0d}.mk .input-shell{background:#ffffff0d;box-shadow:inset 0 1px #ffffff0f,0 0 0 1px #ffffff1a,0 20px 40px -20px #000c;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:box-shadow .25s var(--ease)}.mk .input-shell:focus-within{box-shadow:inset 0 1px #ffffff0f,0 0 0 1.5px var(--accent),0 0 40px -10px rgb(var(--accent-rgb) / .6)}.mk .live-dot{display:inline-block;width:6px;height:6px;border-radius:999px;background:currentColor;box-shadow:0 0 0 3px color-mix(in oklab,currentColor 22%,transparent)}@media(prefers-reduced-motion:no-preference){.mk .caret{animation:mk-blink 1s step-end infinite}}@supports (animation-timeline: view()){@media(prefers-reduced-motion:no-preference){.mk .settle{animation:mk-settle linear both;animation-timeline:view();animation-range:entry 0% cover 35%}.mk .rise{animation:mk-rise linear both;animation-timeline:view();animation-range:entry 0% entry 60%}}}@keyframes mk-blink{50%{opacity:0}}@keyframes mk-settle{0%{transform:perspective(1600px) rotateX(10deg) scale(.94);opacity:.6}to{transform:none;opacity:1}}@keyframes mk-rise{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}}
