:root{color-scheme:dark;--lk-font-sans: "Inter", system-ui, -apple-system, sans-serif;--lk-font-display: "Inter Tight", "Inter", system-ui, sans-serif;--lk-font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--lk-page: #010101;--lk-chrome: #060607;--lk-panel: #0b0b0c;--lk-panel-head: #0f0f11;--lk-raised: #111113;--lk-well: #000000;--lk-hover: rgb(255 255 255 / .035);--lk-active: rgb(190 210 99 / .1);--lk-scrim: rgb(1 1 1 / .76);--lk-rule: rgb(223 225 230 / .08);--lk-rule-strong: rgb(223 225 230 / .16);--lk-line: #424b1d;--lk-line-hover: #7a9147;--lk-line-selected: #bed263;--lk-line-input: #66704a;--lk-fg-strong: #fbfbfd;--lk-fg: #dfe1e6;--lk-fg-meta: #cdd2d9;--lk-fg-muted: #9aa1ad;--lk-fg-faint: #5a5f6b;--lk-lime: #bed263;--lk-lime-bright: #d9ff6d;--lk-lime-ink: #010101;--lk-lime-08: rgb(190 210 99 / .08);--lk-lime-12: rgb(190 210 99 / .12);--lk-lime-30: rgb(190 210 99 / .3);--lk-pass: #10b981;--lk-fail: #ef4444;--lk-pass-text: #34d399;--lk-fail-text: #f87171;--lk-syntax-num: #5e9fe6;--lk-hatch-face: #111708;--lk-hatch: repeating-linear-gradient(45deg, rgb(190 210 99 / .2) 0 1px, transparent 1px 5px);--lk-shadow-pop: 0 12px 32px rgb(0 0 0 / .55);--lk-ease: cubic-bezier(.16, 1, .3, 1);--lk-dur-1: .12s;--lk-dur-2: .2s}::-moz-selection{background:var(--lk-lime);color:var(--lk-lime-ink)}::selection{background:var(--lk-lime);color:var(--lk-lime-ink)}svg.lucide{stroke-width:1.5;stroke-linecap:square;stroke-linejoin:miter}.lk-eyebrow{display:inline-flex;align-items:center;gap:8px;font:500 .75rem/1 var(--lk-font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--lk-lime)}.lk-eyebrow:before{content:"";width:6px;height:6px;flex:none;background:var(--lk-lime)}.lk-label{font:500 .75rem/1rem var(--lk-font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--lk-fg-muted)}.lk-cursor{display:inline-block;width:.5em;height:.82em;margin-left:.12em;vertical-align:-.06em;background:var(--lk-lime);animation:lk-blink 1s steps(1) infinite}@keyframes lk-blink{50%{opacity:.15}}.lk-link{display:inline-flex;align-items:center;gap:4px;font-weight:500;color:var(--lk-lime);transition:color var(--lk-dur-1) linear}.lk-link:hover{color:var(--lk-lime-bright)}.lk-link svg{width:14px;height:14px;transition:transform var(--lk-dur-1) linear}.lk-link:hover svg{transform:translate(2px)}.lk-btn{--h: 32px;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--h);padding:0 12px;border:1px solid transparent;background:transparent;font:600 .875rem/1 var(--lk-font-sans);color:var(--lk-fg);white-space:nowrap;text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background-color var(--lk-dur-1) linear,border-color var(--lk-dur-1) linear,color var(--lk-dur-1) linear,transform var(--lk-dur-1) linear}.lk-btn:active:not([disabled]){transform:translateY(1px)}.lk-btn[disabled]{opacity:.38;cursor:not-allowed}.lk-btn svg{width:16px;height:16px;flex:none}.lk-btn--primary{background:var(--lk-lime);border-color:var(--lk-lime);color:var(--lk-lime-ink)}.lk-btn--primary:hover:not([disabled]){background:var(--lk-lime-bright);border-color:var(--lk-lime-bright);color:var(--lk-lime-ink)}.lk-btn--secondary{border-color:var(--lk-lime);color:var(--lk-lime)}.lk-btn--secondary:hover:not([disabled]){background:var(--lk-lime-08);border-color:var(--lk-lime-bright);color:var(--lk-lime-bright)}.lk-btn--neutral{background:var(--lk-panel);border-color:var(--lk-rule-strong);color:var(--lk-fg)}.lk-btn--neutral:hover:not([disabled]){border-color:var(--lk-fg-muted);color:var(--lk-fg-strong)}.lk-btn--ghost{color:var(--lk-fg-meta)}.lk-btn--ghost:hover:not([disabled]){background:var(--lk-hover);color:var(--lk-fg-strong)}.lk-btn--inverse{background:var(--lk-fg-strong);border-color:var(--lk-fg-strong);color:var(--lk-lime-ink)}.lk-btn--inverse:hover:not([disabled]){background:#fff;border-color:#fff}.lk-btn--sm{--h: 24px;padding:0 8px;gap:6px;font-size:.75rem}.lk-btn--sm svg{width:14px;height:14px}.lk-btn--lg{--h: 40px;padding:0 16px}.lk-btn--icon{width:var(--h);padding:0}.lk-btn--block{width:100%}.lk-chip{--tone: var(--lk-fg-muted);display:inline-flex;align-items:center;gap:6px;width:-moz-fit-content;width:fit-content;height:20px;padding:0 6px;font:600 .75rem/1 var(--lk-font-mono);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;color:var(--tone);background:color-mix(in srgb,var(--tone) 14%,transparent);border:1px solid color-mix(in srgb,var(--tone) 32%,transparent)}.lk-chip:before{content:"";width:6px;height:6px;flex:none;background:currentColor}.lk-chip--lime{--tone: var(--lk-lime)}.lk-tag{display:inline-flex;align-items:center;gap:6px;width:-moz-fit-content;width:fit-content;height:20px;padding:0 6px;font:500 .75rem/1 var(--lk-font-mono);color:var(--lk-fg-meta);white-space:nowrap;border:1px solid var(--lk-rule-strong)}.lk-seg{display:inline-flex;flex-wrap:wrap;border:1px solid var(--lk-line-input);background:var(--lk-well)}.lk-seg__item{height:28px;padding:0 10px;border:0;background:none;font:500 .75rem/1 var(--lk-font-mono);color:var(--lk-fg-meta);white-space:nowrap;cursor:pointer;transition:background-color var(--lk-dur-1) linear,color var(--lk-dur-1) linear}.lk-seg__item+.lk-seg__item{box-shadow:inset 1px 0 0 var(--lk-rule)}.lk-seg__item:hover{background:var(--lk-hover);color:var(--lk-fg-strong)}.lk-seg__item.is-active{background:var(--lk-lime-12);color:var(--lk-lime);box-shadow:inset 0 0 0 1px var(--lk-lime)}.lk-input{width:100%;height:32px;padding:0 10px;background:var(--lk-well);border:1px solid var(--lk-line-input);color:var(--lk-fg-strong);font:400 .875rem/1 var(--lk-font-sans);transition:border-color var(--lk-dur-1) linear,box-shadow var(--lk-dur-1) linear}.lk-input::-moz-placeholder{color:var(--lk-fg-muted);opacity:.8}.lk-input::placeholder{color:var(--lk-fg-muted);opacity:.8}.lk-input:hover{border-color:var(--lk-line-hover)}.lk-input:focus,.lk-input:focus-visible{outline:none;border-color:var(--lk-lime);box-shadow:0 0 0 3px var(--lk-lime-12)}.lk-input:disabled{color:var(--lk-fg-muted);border-color:var(--lk-rule-strong);background-color:var(--lk-panel);cursor:not-allowed}.lk-panel{position:relative;min-width:0;background:var(--lk-panel);border:1px solid var(--lk-line)}.lk-panel--interactive{transition:border-color var(--lk-dur-1) linear}.lk-panel--interactive:hover{border-color:var(--lk-line-hover)}.lk-ticks:after{--c: var(--lk-lime);--t: 8px;--w: 2px;content:"";position:absolute;inset:-1px;pointer-events:none;background:linear-gradient(var(--c),var(--c)) top left / var(--t) var(--w) no-repeat,linear-gradient(var(--c),var(--c)) top left / var(--w) var(--t) no-repeat,linear-gradient(var(--c),var(--c)) top right / var(--t) var(--w) no-repeat,linear-gradient(var(--c),var(--c)) top right / var(--w) var(--t) no-repeat,linear-gradient(var(--c),var(--c)) bottom left / var(--t) var(--w) no-repeat,linear-gradient(var(--c),var(--c)) bottom left / var(--w) var(--t) no-repeat,linear-gradient(var(--c),var(--c)) bottom right / var(--t) var(--w) no-repeat,linear-gradient(var(--c),var(--c)) bottom right / var(--w) var(--t) no-repeat}.lk-extrude{--d: 6px;position:relative;isolation:isolate}.lk-extrude:before{content:"";position:absolute;z-index:-1;top:-1px;left:-1px;right:calc(-1px - var(--d));bottom:calc(-1px - var(--d));pointer-events:none;background:var(--lk-hatch),var(--lk-hatch-face);border:1px solid var(--lk-line);clip-path:polygon(calc(100% - var(--d)) 0,100% var(--d),100% 100%,var(--d) 100%,0 calc(100% - var(--d)),calc(100% - var(--d)) calc(100% - var(--d)))}.lk-extrude--sm{--d: 4px}.lk-menu{min-width:240px;padding:4px 0;background:var(--lk-raised);border:1px solid var(--lk-line);box-shadow:var(--lk-shadow-pop);font-size:.875rem}.lk-menu__item{display:flex;align-items:center;gap:10px;height:32px;padding:0 12px;border:0;background:none;font:400 .875rem/1.25rem var(--lk-font-sans);color:var(--lk-fg);cursor:pointer}.lk-menu__item:hover{background:var(--lk-hover);color:var(--lk-fg-strong);box-shadow:inset 2px 0 0 var(--lk-lime)}.lk-menu__item[aria-current]{color:var(--lk-lime);box-shadow:inset 2px 0 0 var(--lk-lime)}.lk-scrim{background:var(--lk-scrim)}.lk-modal{width:min(560px,100%);background:var(--lk-raised);border:1px solid var(--lk-line);box-shadow:var(--lk-shadow-pop)}.lk-loader{display:inline-grid;grid-template-columns:repeat(3,4px);gap:2px}.lk-loader i{width:4px;height:4px;background:currentColor;animation:lk-step .9s steps(1) infinite}.lk-loader i:nth-child(2){animation-delay:.3s}.lk-loader i:nth-child(3){animation-delay:.6s}@keyframes lk-step{0%,to{opacity:.2}33%{opacity:1}}.lk-empty{display:grid;justify-items:center;gap:10px;padding:64px 24px;text-align:center;border:1px dashed var(--lk-line-input)}.lk-empty__title{font:600 1rem/1.5rem var(--lk-font-sans);color:var(--lk-fg-strong)}.lk-empty__text{max-width:380px;font-size:.875rem;line-height:1.25rem;color:var(--lk-fg-meta)}.lk-mnav{display:flex;align-items:center;gap:32px;height:64px;padding:0 40px;background:#010101e0;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--lk-rule);font-family:var(--lk-font-sans)}.lk-mnav__logo{display:inline-flex;flex:none}.lk-mnav__logo img{display:block;height:28px;width:auto;max-width:none}.lk-mnav__links{display:none;align-items:center;gap:20px}.lk-mnav__links a{font:500 .875rem/1.25rem var(--lk-font-sans);color:var(--lk-fg);white-space:nowrap;transition:color var(--lk-dur-1) linear}.lk-mnav__links a:hover{color:var(--lk-lime)}.lk-mnav__end{margin-left:auto;display:flex;align-items:center;gap:12px}.lk-mnav__group{display:flex;align-items:center;gap:12px}.lk-lang{gap:6px;padding:0 8px;font-weight:500}.lk-lang svg:last-child{width:14px;height:14px}.lk-lang[aria-expanded=true]{background:var(--lk-hover);color:var(--lk-fg-strong)}.lk-msheet{position:absolute;top:calc(100% + 1px);left:0;right:0;max-height:calc(100vh - 64px);max-height:calc(100dvh - 64px);overflow-y:auto;background:var(--lk-chrome);border-bottom:1px solid var(--lk-rule);opacity:0;visibility:hidden;transition:opacity var(--lk-dur-2) linear,visibility 0s linear var(--lk-dur-2)}.lk-msheet.is-open{opacity:1;visibility:visible;transition:opacity var(--lk-dur-2) linear}.lk-msheet__row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;height:48px;padding:0 24px;border:0;border-bottom:1px solid var(--lk-rule);background:none;font:500 1rem/1.5rem var(--lk-font-sans);color:var(--lk-fg);text-align:left;cursor:pointer;transition:background-color var(--lk-dur-1) linear,color var(--lk-dur-1) linear}.lk-msheet__row:hover,.lk-msheet__row:focus-visible{background:var(--lk-hover);color:var(--lk-fg-strong)}.lk-msheet__row:focus-visible{outline-offset:-2px}.lk-msheet__row svg{width:16px;height:16px;flex:none;color:var(--lk-fg-muted)}.lk-msheet__row-label{display:inline-flex;align-items:center;gap:8px}.lk-msheet__cta{display:grid;gap:8px;padding:16px 24px}@media(min-width:1200px){.lk-mnav__links{display:flex}.lk-msheet{display:none}}@media(min-width:1440px){.lk-mnav__links{gap:28px}}@media(max-width:1199.98px){.lk-mnav{padding:0 24px}}@media(max-width:639.98px){.lk-mnav{padding:0 16px}.lk-mnav__logo img{height:24px}.lk-msheet__row{padding:0 16px}.lk-msheet__cta{padding:16px}.lk-mnav__menu:after{content:"";position:absolute;inset:-6px}}.lk-mfooter{padding:40px;border-top:1px solid var(--lk-rule);background:var(--lk-page)}.lk-mfooter__inner{display:grid;grid-template-columns:auto 1fr auto;gap:24px 40px;align-items:center;max-width:1440px;margin:0 auto}.lk-mfooter__logo{display:inline-flex;width:-moz-fit-content;width:fit-content}.lk-mfooter__logo img{display:block;height:24px;width:auto}.lk-mfooter__links{display:flex;flex-wrap:wrap;gap:8px 24px}.lk-mfooter__links a{font:400 .875rem/1.25rem var(--lk-font-sans);color:var(--lk-fg-meta);transition:color var(--lk-dur-1) linear}.lk-mfooter__links a:hover{color:var(--lk-fg-strong)}.lk-mfooter__legal{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;padding-top:20px;border-top:1px solid var(--lk-rule);font:500 .75rem/1 var(--lk-font-mono);color:var(--lk-fg-muted)}.lk-mfooter__legal-link{padding:0;border:0;background:none;font:inherit;color:inherit;cursor:pointer;transition:color var(--lk-dur-1) linear}.lk-mfooter__legal-link:hover{color:var(--lk-fg-strong)}.lk-mfooter__social{display:flex;gap:4px;margin-left:auto}.lk-mfooter__social .lk-btn{color:var(--lk-fg-muted)}.lk-news{display:grid;gap:6px;justify-items:end}.lk-news__row{display:flex;align-items:center;gap:12px}.lk-news__label{margin:0;font:500 .75rem/1 var(--lk-font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--lk-fg-muted);white-space:nowrap}.lk-news__form{display:flex;min-width:0}.lk-news__form .lk-input{position:relative;width:220px;min-width:0}.lk-news__form .lk-input:focus{z-index:1}.lk-news__form .lk-btn{margin-left:-1px}.lk-news__form .lk-btn svg{color:var(--lk-pass-text)}.lk-news__help{margin:0;font:400 .75rem/1rem var(--lk-font-sans);color:var(--lk-fg-muted)}@media(max-width:899.98px){.lk-mfooter{padding:32px 16px}.lk-mfooter__inner{grid-template-columns:minmax(0,1fr);align-items:start}.lk-news{justify-items:stretch}.lk-news__row{flex-wrap:wrap}.lk-news__form{flex:1 1 100%}.lk-news__form .lk-input{flex:1;width:auto}.lk-mfooter__social{gap:12px}.lk-mfooter__social .lk-btn:after{content:"";position:absolute;inset:-6px}}@media(prefers-reduced-motion:reduce){.lk-cursor,.lk-loader i{animation:none}.lk-msheet,.lk-msheet.is-open,.lk-link svg{transition:none}.lk-link:hover svg{transform:none}}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,Fira Code,Monaco,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1300px){.container{max-width:1300px}}@media(min-width:1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.bottom-4{bottom:1rem}.left-4{left:1rem}.left-\[2px\]{left:2px}.right-0{right:0}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-2{top:.5rem}.top-\[2px\]{top:2px}.top-full{top:100%}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[60\]{z-index:60}.mx-auto{margin-left:auto;margin-right:auto}.mb-4{margin-bottom:1rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-14{margin-top:3.5rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-3{margin-top:.75rem}.mt-3\.5{margin-top:.875rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-\[0\.55em\]{margin-top:.55em}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-16{height:4rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-9{height:2.25rem}.h-\[18px\]{height:18px}.min-h-screen{min-height:100vh}.w-1\.5{width:.375rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-44{width:11rem}.w-9{width:2.25rem}.w-\[34px\]{width:34px}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[140px\]{min-width:140px}.max-w-2xl{max-width:42rem}.max-w-\[1440px\]{max-width:1440px}.max-w-\[720px\]{max-width:720px}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-lg{max-width:32rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.origin-center{transform-origin:center}.translate-x-4{--tw-translate-x: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-crtContent{animation:fadeIn .2s ease-out .25s both}@keyframes crtOff{0%{transform:scaleY(1) scaleX(1)}40%{transform:scaleY(.01) scaleX(1)}to{transform:scaleY(.01) scaleX(0);opacity:0}}.animate-crtOff{animation:crtOff .3s ease-in both}@keyframes crtOn{0%{transform:scaleY(.01) scaleX(0)}40%{transform:scaleY(.01) scaleX(1)}to{transform:scaleY(1) scaleX(1)}}.animate-crtOn{animation:crtOn .3s cubic-bezier(.2,.8,.2,1) both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fadeInFast{animation:fadeIn .2s ease-out}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-\[48px_132px_minmax\(0\,1fr\)_120px\]{grid-template-columns:48px 132px minmax(0,1fr) 120px}.grid-cols-\[minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1fr)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.self-start{align-self:flex-start}.overflow-hidden{overflow:hidden}.break-words{overflow-wrap:break-word}.\!rounded-none{border-radius:0!important}.rounded,.rounded-none{border-radius:0}.\!border{border-width:1px!important}.\!border-0{border-width:0px!important}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-r-0{border-right-width:0px}.border-t{border-top-width:1px}.\!border-lk-lime{border-color:var(--lk-lime)!important}.\!border-lk-line{border-color:var(--lk-line)!important}.\!border-lk-rule-strong{border-color:var(--lk-rule-strong)!important}.border-\[color\:var\(--lk-lime-30\)\]{border-color:var(--lk-lime-30)}.border-lk-lime{border-color:var(--lk-lime)}.border-lk-line{border-color:var(--lk-line)}.border-lk-line-input{border-color:var(--lk-line-input)}.border-lk-rule{border-color:var(--lk-rule)}.border-lk-rule-strong{border-color:var(--lk-rule-strong)}.\!bg-lk-raised{background-color:var(--lk-raised)!important}.\!bg-transparent{background-color:transparent!important}.bg-\[var\(--lk-lime-08\)\]{background-color:var(--lk-lime-08)}.bg-\[var\(--lk-lime-12\)\]{background-color:var(--lk-lime-12)}.bg-lk-head{background-color:var(--lk-panel-head)}.bg-lk-lime{background-color:var(--lk-lime)}.bg-lk-muted{background-color:var(--lk-fg-muted)}.bg-lk-page{background-color:var(--lk-page)}.bg-lk-raised{background-color:var(--lk-raised)}.bg-lk-well{background-color:var(--lk-well)}.object-cover{-o-object-fit:cover;object-fit:cover}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-px{padding-top:1px;padding-bottom:1px}.pb-12{padding-bottom:3rem}.pb-20{padding-bottom:5rem}.pb-8{padding-bottom:2rem}.pr-4{padding-right:1rem}.pr-8{padding-right:2rem}.pt-12{padding-top:3rem}.pt-14{padding-top:3.5rem}.pt-5{padding-top:1.25rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-display{font-family:Inter Tight,Inter,system-ui,sans-serif}.font-mono{font-family:JetBrains Mono,Fira Code,Monaco,monospace}.font-sans{font-family:Inter,system-ui,sans-serif}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[0\.85em\]{font-size:.85em}.text-\[3rem\]{font-size:3rem}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-5{line-height:1.25rem}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-\[-0\.015em\]{letter-spacing:-.015em}.tracking-\[-0\.01em\]{letter-spacing:-.01em}.tracking-\[-0\.03em\]{letter-spacing:-.03em}.\!text-lk-lime{color:var(--lk-lime)!important}.\!text-lk-meta{color:var(--lk-fg-meta)!important}.\!text-lk-strong{color:var(--lk-fg-strong)!important}.text-lk-fg{color:var(--lk-fg)}.text-lk-lime{color:var(--lk-lime)}.text-lk-meta{color:var(--lk-fg-meta)}.text-lk-muted{color:var(--lk-fg-muted)}.text-lk-strong{color:var(--lk-fg-strong)}.underline{text-decoration-line:underline}.decoration-\[color\:var\(--lk-lime-30\)\]{text-decoration-color:var(--lk-lime-30)}.decoration-1{text-decoration-thickness:1px}.underline-offset-\[3px\]{text-underline-offset:3px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-40{opacity:.4}.outline{outline-style:solid}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-\[transform\,background-color\]{transition-property:transform,background-color;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-\[120ms\]{transition-duration:.12s}.ease-\[cubic-bezier\(0\.16\,1\,0\.3\,1\)\]{transition-timing-function:cubic-bezier(.16,1,.3,1)}.\[box-decoration-break\:clone\]{-webkit-box-decoration-break:clone;box-decoration-break:clone}.\[box-shadow\:var\(--lk-shadow-pop\)\]{box-shadow:var(--lk-shadow-pop)}.\[view-transition-name\:lk-site-footer\]{view-transition-name:lk-site-footer}.\[view-transition-name\:lk-site-header\]{view-transition-name:lk-site-header}:root{--color-latchkey-green: 190 210 99;--color-primary-50: 247 250 232;--color-primary-100: 238 245 209;--color-primary-200: 221 235 163;--color-primary-300: 205 225 117;--color-primary-400: var(--color-latchkey-green);--color-primary-500: var(--color-latchkey-green);--color-primary-600: 168 188 80;--color-primary-700: 138 157 66;--color-primary-800: 108 125 52;--color-primary-900: 78 94 38;--color-accent-400: 217 255 109;--color-accent-500: 217 255 109;--color-accent-600: 195 230 90;--color-secondary-blue: 74 144 226;--color-secondary-orange: 255 145 83;--color-secondary-purple: 124 111 242;--color-secondary-navy: 0 13 53;--color-dashboard-bg-primary: 5 5 7;--color-dashboard-bg-secondary: 14 14 17;--color-dashboard-bg-surface: 20 20 24;--color-dashboard-bg-input: 10 10 13;--color-dashboard-border: 30 30 36;--color-dashboard-border-subtle: 18 18 22;--color-dashboard-hover: 28 28 34;--color-dashboard-toggle: 56 56 64;--color-dashboard-text-primary: 240 242 246;--color-dashboard-text-secondary: 251 251 253;--color-dashboard-text-tertiary: 240 242 246;--color-dashboard-text-subtle: 232 233 238;--color-dashboard-text-muted: 223 225 230;--color-text-primary: 240 242 246;--color-text-secondary: 232 233 238;--color-text-tertiary: 223 225 230;--color-success-50: 236 253 245;--color-success-100: 209 250 229;--color-success-200: 167 243 208;--color-success-300: 110 231 183;--color-success-400: 52 211 153;--color-success-500: 16 185 129;--color-success-600: 5 150 105;--color-success-700: 4 120 87;--color-success-800: 6 95 70;--color-success-900: 6 78 59;--color-warning-50: 255 251 235;--color-warning-100: 254 243 199;--color-warning-200: 253 230 138;--color-warning-300: 252 211 77;--color-warning-400: 251 191 36;--color-warning-500: 245 158 11;--color-warning-600: 217 119 6;--color-warning-700: 180 83 9;--color-warning-800: 146 64 14;--color-warning-900: 120 53 15;--color-error-50: 254 242 242;--color-error-100: 254 226 226;--color-error-200: 254 202 202;--color-error-300: 252 165 165;--color-error-400: 248 113 113;--color-error-500: 239 68 68;--color-error-600: 220 38 38;--color-error-700: 185 28 28;--color-error-800: 153 27 27;--color-error-900: 127 29 29;--color-info-50: 239 246 255;--color-info-100: 219 234 254;--color-info-200: 191 219 254;--color-info-300: 147 197 253;--color-info-400: 96 165 250;--color-info-500: 59 130 246;--color-info-600: 37 99 235;--color-info-700: 29 78 216;--color-info-800: 30 64 175;--color-info-900: 30 58 138;--color-latchkey-50: 246 248 244;--color-latchkey-100: 234 240 224;--color-latchkey-200: 214 225 195;--color-latchkey-300: 187 203 153;--color-latchkey-400: 158 176 106;--color-latchkey-500: 122 145 71;--color-latchkey-600: 100 120 56;--color-latchkey-700: 79 94 47;--color-latchkey-800: 65 76 41;--color-latchkey-900: 56 64 36;--color-latchkey-olive: 172 190 91;--color-secondary-purple-light: 167 139 250;--color-secondary-purple-medium: 155 89 182;--color-dashboard-border-strong: 45 45 53;--color-white: 255 255 255;--color-black: 0 0 0}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0;overflow-x:clip}html,body,#root{scrollbar-width:none}html::-webkit-scrollbar,body::-webkit-scrollbar,#root::-webkit-scrollbar{display:none}body{font-family:var(--lk-font-sans);font-feature-settings:"cv11","ss01";background:var(--lk-page);color:var(--lk-fg);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#dfe1e629}::-webkit-scrollbar-thumb:hover,::-webkit-scrollbar-thumb:active{background:var(--lk-fg-muted)}:focus:not(:focus-visible){outline:none}:focus-visible{outline:2px solid var(--lk-lime-bright);outline-offset:2px}*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}@view-transition{navigation:auto}@keyframes lk-vt-out{to{opacity:0;transform:translateY(-6px)}}@keyframes lk-vt-in{0%{opacity:0;transform:translateY(14px)}}::view-transition-old(root){animation:lk-vt-out .26s cubic-bezier(.4,0,1,1) both}::view-transition-new(root){animation:lk-vt-in .48s cubic-bezier(.22,1,.36,1) 60ms both}::view-transition-group(lk-site-header),::view-transition-group(lk-site-footer){animation-duration:.6s;animation-timing-function:cubic-bezier(.22,1,.36,1)}@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}.first\:mt-0:first-child{margin-top:0}.last\:border-b-0:last-child{border-bottom-width:0px}.hover\:border-lk-line-hover:hover{border-color:var(--lk-line-hover)}.hover\:\!bg-\[var\(--lk-lime-08\)\]:hover{background-color:var(--lk-lime-08)!important}.hover\:\!text-lk-strong:hover{color:var(--lk-fg-strong)!important}.hover\:text-lk-lime-bright:hover{color:var(--lk-lime-bright)}.hover\:text-lk-strong:hover{color:var(--lk-fg-strong)}.hover\:decoration-current:hover{text-decoration-color:currentColor}@media(prefers-reduced-motion:reduce){.motion-reduce\:transition-none{transition-property:none}}@media(min-width:640px){.sm\:block{display:block}.sm\:flex{display:flex}.sm\:inline-flex{display:inline-flex}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:h-\[52px\]{height:52px}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-\[48px_132px_minmax\(0\,1fr\)_120px\]{grid-template-columns:48px 132px minmax(0,1fr) 120px}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:p-6{padding:1.5rem}.sm\:p-8{padding:2rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:text-right{text-align:right}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-base{font-size:1rem;line-height:1.5rem}}@media(min-width:768px){.md\:right-auto{right:auto}.md\:w-\[340px\]{width:340px}}@media(min-width:1200px){.min-\[1200px\]\:hidden{display:none}}.\[\&_\[data-icon\]\]\:\!text-\[var\(--lk-fail-text\)\] [data-icon]{color:var(--lk-fail-text)!important}.\[\&_\[data-icon\]\]\:\!text-\[var\(--lk-pass-text\)\] [data-icon]{color:var(--lk-pass-text)!important}.blog-terminal{--lk-attention: #fbbf24;background-color:var(--lk-page);color:var(--lk-fg)}.blog-head-tex{position:absolute;left:0;right:0;top:0;height:640px;background:url(/bg.svg) center top / 1440px auto no-repeat;opacity:.45;pointer-events:none;z-index:0;-webkit-mask-image:linear-gradient(#000 40%,transparent);mask-image:linear-gradient(#000 40%,transparent)}.blog-hero-title{display:flex;align-items:baseline;font:500 3rem/1.05 var(--lk-font-display);letter-spacing:-.03em;color:var(--lk-fg-strong)}.blog-hero-prompt{font-family:var(--lk-font-mono);letter-spacing:0;color:var(--lk-lime)}@media(max-width:640px){.blog-hero-title{font-size:2.25rem}}.blog-list-head{background:var(--lk-panel-head);border-bottom:1px solid var(--lk-rule-strong)}.blog-row{position:relative;border-top:1px solid var(--lk-rule);transition:background-color var(--lk-dur-1) linear}.blog-row:first-child{border-top:0}.blog-row:hover{background:var(--lk-hover);box-shadow:inset 2px 0 0 var(--lk-lime)}.blog-row-title{transition:color var(--lk-dur-1) linear}.blog-row:hover .blog-row-title,.blog-featured:hover .blog-row-title,.blog-related:hover .blog-row-title{color:var(--lk-lime)}.blog-prose{font-family:var(--lk-font-sans);font-size:18px;line-height:1.75;color:var(--lk-fg);overflow-wrap:anywhere}.blog-prose>:first-child,.blog-prose>:first-child>:first-child{margin-top:0}.blog-prose p{margin:0 0 1.4em}.blog-prose h1,.blog-prose h2,.blog-prose h3,.blog-prose h4{font-family:var(--lk-font-display);font-weight:600;line-height:1.2;letter-spacing:-.02em;color:var(--lk-fg-strong);margin:2em 0 .7em}.blog-prose h1{font-size:34px}.blog-prose h2{font-size:27px}.blog-prose h3{font-size:21px}.blog-prose h4{font-size:18px}.blog-prose a:not(.lk-btn){color:var(--lk-lime);font-weight:500;text-decoration:underline;text-decoration-color:var(--lk-lime-30);text-decoration-thickness:1px;text-underline-offset:3px;transition:color var(--lk-dur-1) linear,text-decoration-color var(--lk-dur-1) linear}.blog-prose a:not(.lk-btn):hover{color:var(--lk-lime-bright);text-decoration-color:currentColor}.blog-prose strong{color:var(--lk-fg-strong);font-weight:600}.blog-prose em{font-style:normal;color:var(--lk-fg-meta)}.blog-prose ul,.blog-prose ol{margin:0 0 1.4em;padding-left:1.4em}.blog-prose li{margin:.4em 0}.blog-prose ol>li::marker{font-family:var(--lk-font-mono);font-size:.8em;font-weight:500;color:var(--lk-lime)}.blog-prose ul{list-style:none;padding-left:1.6em}.blog-prose ul>li{position:relative}.blog-prose ul>li:before{content:"";position:absolute;left:-1.2em;top:.62em;width:6px;height:6px;background-color:var(--lk-fg-muted)}.blog-prose blockquote{margin:1.6em 0;padding:.2em 0 .2em 1em;box-shadow:inset 2px 0 0 var(--lk-lime);color:var(--lk-fg);font-style:normal}.blog-prose blockquote>:last-child{margin-bottom:0}.blog-prose code,.blog-conv code,.blog-banner code{-webkit-box-decoration-break:clone;box-decoration-break:clone}.blog-prose code{font-family:var(--lk-font-mono);font-size:.8em;font-weight:500;color:var(--lk-lime);background-color:var(--lk-lime-08);border:1px solid var(--lk-lime-30);padding:.1em .35em}.blog-prose pre{margin:0 0 1.6em;padding:12px 16px;overflow-x:auto;border:1px solid var(--lk-rule-strong);background:var(--lk-well);font:400 13px/20px var(--lk-font-mono);color:var(--lk-fg)}.blog-prose pre code{background:none;border:0;padding:0;font-size:inherit;font-weight:400;white-space:pre;color:inherit}.blog-prose .lk-code{margin:0 0 1.6em;border:1px solid var(--lk-rule-strong);background:var(--lk-well)}.blog-prose .lk-code-head{display:flex;align-items:center;gap:10px;min-height:36px;padding:0 6px 0 14px;background:var(--lk-panel-head);border-bottom:1px solid var(--lk-rule);font:500 .75rem/1 var(--lk-font-mono);letter-spacing:.04em;color:var(--lk-fg-muted)}.blog-prose .lk-code-head .lk-code-lang{flex:1}.blog-prose .lk-copy{height:24px;padding:0 8px;background:transparent;border:1px solid var(--lk-rule-strong);color:var(--lk-fg-meta);font:500 .75rem/1 var(--lk-font-mono);cursor:pointer;transition:color var(--lk-dur-1) linear,border-color var(--lk-dur-1) linear}.blog-prose .lk-copy:hover{color:var(--lk-fg-strong);border-color:var(--lk-fg-muted)}.blog-prose .lk-copy.ok{color:var(--lk-lime);border-color:var(--lk-lime)}.blog-prose .lk-copy.fail{color:var(--lk-attention);border-color:var(--lk-attention)}.blog-prose .lk-code pre{margin:0;border:0;background:none}.blog-prose .lk-code pre.n{padding-left:0;counter-reset:ln}.blog-prose .lk-code pre.n .l:before{counter-increment:ln;content:counter(ln);display:inline-block;width:42px;padding-right:14px;text-align:right;color:var(--lk-fg-faint);-webkit-user-select:none;-moz-user-select:none;user-select:none}.blog-prose .lk-code.diff pre .l{display:block;position:relative;margin:0 -16px;padding:0 16px 0 22px}.blog-prose .lk-code.diff pre .l:before{content:" ";position:absolute;left:8px;color:var(--lk-fg-muted)}.blog-prose .lk-code.diff pre .l.add{background:#10b9811a;box-shadow:inset 2px 0 0 var(--lk-pass)}.blog-prose .lk-code.diff pre .l.add:before{content:"+";color:var(--lk-pass-text)}.blog-prose .lk-code.diff pre .l.del{background:#ef44441a;box-shadow:inset 2px 0 0 var(--lk-fail)}.blog-prose .lk-code.diff pre .l.del:before{content:"−";color:var(--lk-fail-text)}.blog-prose .lk-code.diff pre .l.meta{color:var(--lk-fg-muted)}.blog-prose .lk-code .yk,.blog-prose .lk-code .jk{color:var(--lk-lime)}.blog-prose .lk-code .yp,.blog-prose .lk-code .tpn{color:var(--lk-fg-muted)}.blog-prose .lk-code .yc,.blog-prose .lk-code .tc{color:var(--lk-fg-muted);font-style:normal}.blog-prose .lk-code .yv,.blog-prose .lk-code .yflow,.blog-prose .lk-code .ystr,.blog-prose .lk-code .ts,.blog-prose .lk-code .ta{color:var(--lk-fg)}.blog-prose .lk-code .ylk,.blog-prose .lk-code .tcmd{color:var(--lk-fg-strong);font-weight:600}.blog-prose .lk-code .yn,.blog-prose .lk-code .yb{color:var(--lk-syntax-num)}.blog-prose .lk-code .yexpr,.blog-prose .lk-code .tf{color:var(--lk-fg-meta)}.blog-prose .lk-code .tp{color:var(--lk-lime)}.blog-prose .lk-code .to{color:var(--lk-fg-meta)}.blog-prose .lk-code .terr{color:var(--lk-fail-text)}.blog-prose .lk-code .tok{color:var(--lk-pass-text)}.blog-prose img{max-width:100%;height:auto;border:1px solid var(--lk-line)}.blog-prose p:has(>img:first-child)>img{display:block}.blog-prose img+em,.blog-prose p:has(>img:only-child)+p>em:only-child{display:block;padding:10px 14px;border:1px solid var(--lk-line);border-top:0;background-color:var(--lk-panel-head);font-size:.875rem;line-height:1.25rem;color:var(--lk-fg-meta)}.blog-prose p:has(>img:only-child):has(+p>em:only-child){margin-bottom:0}.blog-prose table{width:100%;border-collapse:separate;border-spacing:0;margin:0 0 1.6em;font-size:15px;line-height:1.5;font-variant-numeric:tabular-nums;background:var(--lk-panel);border:1px solid var(--lk-line)}.blog-prose th,.blog-prose td{padding:10px 12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--lk-rule)}.blog-prose th{padding-top:12px;padding-bottom:11px;background-color:var(--lk-panel-head);border-bottom-color:var(--lk-rule-strong);font:500 .75rem/1rem var(--lk-font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--lk-fg-muted)}.blog-prose tbody tr:last-child td{border-bottom:0}.blog-prose tbody tr:hover td{background:var(--lk-hover)}.blog-prose :is(th,td)[align=right],.blog-prose :is(th,td)[style*=right]{text-align:right}.blog-prose :is(th,td)[align=center],.blog-prose :is(th,td)[style*=center]{text-align:center}.blog-prose hr{border:0;border-top:1px solid var(--lk-rule);margin:2.4em 0}.blog-post-title{font:500 3rem/1.05 var(--lk-font-display);letter-spacing:-.03em;color:var(--lk-fg-strong);text-wrap:balance}@media(max-width:640px){.blog-post-title{font-size:2.25rem;line-height:1.1}}.blog-cta-inline{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin:32px 0;padding:16px 20px;background-color:var(--lk-panel);border:1px solid var(--lk-line);box-shadow:inset 2px 0 0 var(--lk-lime)}.blog-prose .blog-cta-inline p{flex:1 1 320px;margin:0;font-size:15px;line-height:1.55;color:var(--lk-fg)}.blog-conv,.blog-banner{position:relative;background:var(--lk-panel);border:1px solid var(--lk-line)}.blog-conv{margin:48px 0 0;padding:32px 34px}.blog-conv h2,.blog-banner h2{margin:0 0 10px;font:600 1.5rem/2rem var(--lk-font-display);letter-spacing:-.02em;color:var(--lk-fg-strong)}.blog-conv>p,.blog-banner-text>p:not(.blog-banner-kicker){margin:0 0 20px;max-width:62ch;font-size:16px;line-height:1.6;color:var(--lk-fg)}.blog-conv strong,.blog-banner strong,.blog-cta-inline strong{color:var(--lk-fg-strong);font-weight:600}.blog-conv code,.blog-banner code{font-family:var(--lk-font-mono);font-size:.8em;font-weight:500;padding:.1em .35em;color:var(--lk-lime);background-color:var(--lk-lime-08);border:1px solid var(--lk-lime-30)}.blog-conv .row,.blog-banner .row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.blog-conv .fine,.blog-banner .fine{margin:14px 0 0;max-width:none;font:500 .75rem/1.5 var(--lk-font-mono);color:var(--lk-fg-muted)}.blog-conv .fine strong{color:var(--lk-fg)}.blog-conv .fine.rating{margin-top:6px}.blog-conv .fine.rating a{color:var(--lk-lime);text-decoration:underline;text-decoration-color:var(--lk-lime-30);text-underline-offset:3px}.blog-conv .fine.rating a:hover{color:var(--lk-lime-bright);text-decoration-color:currentColor}.blog-banner{display:flex;align-items:center;justify-content:space-between;gap:32px;margin-top:64px;padding:36px 40px}.blog-banner-text{flex:1 1 380px;min-width:0}.blog-banner-text>p:last-child{margin-bottom:0}.blog-banner-kicker{margin:0 0 14px}.blog-banner-actions{flex:0 0 auto}@media(max-width:900px){.blog-banner{flex-direction:column;align-items:flex-start;padding:28px 24px}.blog-banner-text{flex-basis:auto}}@media(max-width:600px){.blog-cta-inline{flex-direction:column;align-items:flex-start}.blog-conv{padding:24px 20px}.blog-conv .row,.blog-banner .row{flex-direction:column;align-items:stretch}}.blog-prose img.blog-lightbox-target{cursor:zoom-in;transition:border-color var(--lk-dur-1) linear}.blog-prose img.blog-lightbox-target:hover{border-color:var(--lk-line-hover)}.blog-lightbox{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;background:#010101eb;cursor:zoom-out;animation:blog-lightbox-in var(--lk-dur-2) var(--lk-ease)}.blog-lightbox[hidden]{display:none}.blog-lightbox img{max-width:min(100%,1400px);max-height:calc(100vh - 48px);width:auto;height:auto;-o-object-fit:contain;object-fit:contain;border:1px solid var(--lk-line);background:var(--lk-page);box-shadow:var(--lk-shadow-pop);cursor:default}.blog-lightbox-close{position:absolute;top:16px;right:16px;width:48px;height:48px;display:grid;place-items:center;background:var(--lk-raised);border:1px solid var(--lk-rule-strong);color:var(--lk-fg-meta);font:400 28px/1 var(--lk-font-sans);cursor:pointer;transition:color var(--lk-dur-1) linear,border-color var(--lk-dur-1) linear}.blog-lightbox-close:hover{color:var(--lk-fg-strong);border-color:var(--lk-fg-muted)}@keyframes blog-lightbox-in{0%{opacity:0}}@media(prefers-reduced-motion:reduce){.blog-lightbox{animation:none}}.dx-brand{display:flex;align-items:center;flex:none}.dx-navt{display:none}@media(min-width:1200px){.dx-brand{position:relative;display:flex;align-items:center;flex:none}.lk-top .lk-brand{overflow:hidden;width:140px;transition:width .45s cubic-bezier(.22,1,.36,1)}.lk-top:not(.dx-open) .lk-brand{width:32px}.dx-navt{display:inline-flex;position:absolute;top:50%;left:calc(100% + 4px);align-items:center;justify-content:center;width:24px;height:24px;margin-top:-12px;padding:0;background:none;border:0;font:500 .875rem/1.25rem var(--lk-font-sans);color:var(--lk-fg-meta);cursor:pointer;pointer-events:auto;transition:color .2s,left .45s cubic-bezier(.22,1,.36,1)}.lk-top:not(.dx-open) .dx-navt{left:100%}.dx-navt:hover{color:var(--lk-lime)}.dx-navt:focus{outline:none}.dx-navt:focus-visible{color:var(--lk-lime);outline:2px solid var(--lk-lime-bright);outline-offset:2px}.dx-navt svg.lucide{width:12px;height:12px;stroke-width:2;transition:transform .45s cubic-bezier(.22,1,.36,1)}.lk-top.dx-open .dx-navt svg{transform:rotate(180deg)}.lk-top{transition:background-color .5s cubic-bezier(.22,1,.36,1),border-color .5s cubic-bezier(.22,1,.36,1),backdrop-filter .5s cubic-bezier(.22,1,.36,1)}.lk-top:not(.dx-open){background-color:transparent;border-bottom-color:transparent;backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);pointer-events:none}.lk-top:not(.dx-open) .lk-brand{pointer-events:auto}.lk-top .lk-nav>*,.lk-top .lk-top-right>*{--out: calc((var(--n, 9) - 1 - var(--i, 0)) * 15ms);opacity:0;visibility:hidden;transform:translate(-24px);transition:opacity .2s ease var(--out),transform .25s cubic-bezier(.4,0,1,1) var(--out),visibility 0s linear calc(var(--out) + .25s)}.lk-top.dx-open .lk-nav>*,.lk-top.dx-open .lk-top-right>*{opacity:1;visibility:visible;transform:none;transition:opacity .3s ease calc(var(--i, 0) * .02s),transform .4s cubic-bezier(.22,1,.36,1) calc(var(--i, 0) * .02s),visibility 0s}}@media(prefers-reduced-motion:reduce){.lk-top,.lk-top .lk-nav>*,.lk-top .lk-top-right>*,.lk-top .dx-navt,.dx-navt svg,.lk-top .lk-brand{transition:none!important}}.blog-post-grid{display:grid;grid-template-columns:220px minmax(0,1fr) 200px;gap:72px;align-items:start;max-width:1392px;margin-inline:auto}.blog-post-grid>*{min-width:0}.blog-prose :is(h2,h3)[id]{scroll-margin-top:81px}.blog-side,.blog-toc{position:sticky;top:96px;max-height:calc(100vh - 128px);overflow:auto;scrollbar-width:thin;scrollbar-color:var(--lk-rule-strong) transparent}.blog-side{font-size:14px;line-height:1.5;padding-right:8px}.blog-side .side-title{display:block;margin:0 0 12px;font:600 1rem/1.5rem var(--lk-font-display);letter-spacing:-.01em;color:var(--lk-fg-strong)}.blog-side .side-title:hover{color:var(--lk-lime)}.blog-side h4{margin:18px 0 8px;font:500 .75rem/1rem var(--lk-font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--lk-fg-muted)}.blog-side ul{list-style:none;margin:0 0 6px;padding:0}.blog-side li{margin:1px 0}.blog-side li a{position:relative;display:block;padding:6px 12px 6px 14px;font-weight:500;color:var(--lk-fg-meta);transition:color var(--lk-dur-1) linear,background-color var(--lk-dur-1) linear}.blog-side li a .d{display:block;margin-bottom:1px;font:500 .75rem/1.25 var(--lk-font-mono);color:var(--lk-fg-muted)}.blog-side li a:hover{color:var(--lk-fg-strong);background:var(--lk-hover)}.blog-side li a.cur{color:var(--lk-fg-strong);background:var(--lk-active);font-weight:600}.blog-side li a.cur:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--lk-lime)}.blog-side li a.cur .d{color:var(--lk-lime)}.blog-side .side-all{display:block;padding:8px 12px;font:500 .75rem/1 var(--lk-font-mono);color:var(--lk-fg-muted);transition:color var(--lk-dur-1) linear}.blog-side .side-all:hover{color:var(--lk-fg-strong)}.blog-toc{font-size:13px}.blog-toc .tt{margin:0 0 10px;font:500 .75rem/1rem var(--lk-font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--lk-fg-muted)}.blog-toc ul{list-style:none;margin:0;padding:0}.blog-toc a{display:flex;gap:8px;padding:5px 0;line-height:1.35;color:var(--lk-fg-meta);transition:color var(--lk-dur-1) linear}.blog-toc a:hover,.blog-toc a.cur{color:var(--lk-fg-strong)}.blog-toc a span{flex:none;min-width:22px;padding-top:1px;font:500 .75rem/1.35 var(--lk-font-mono);color:var(--lk-fg-muted)}.blog-toc a.cur span{color:var(--lk-lime)}.blog-toc li.sub a{padding-left:30px;font-size:13px}.blog-ai{margin-top:26px;padding-top:18px;border-top:1px solid var(--lk-rule)}.blog-ai a,.blog-ai button{display:block;width:100%;padding:5px 0;background:none;border:0;font:inherit;font-size:13px;line-height:1.35;text-align:left;color:var(--lk-fg-meta);cursor:pointer;transition:color var(--lk-dur-1) linear}.blog-ai a:hover,.blog-ai button:hover{color:var(--lk-fg-strong)}.blog-ai button.ok{color:var(--lk-lime)}@media(max-width:1200px){.blog-post-grid{grid-template-columns:190px minmax(0,1fr);gap:56px}.blog-toc{display:none}}@media(max-width:900px){.blog-post-grid{display:block}.blog-side{display:none}}.blog-404-code{font:600 4.5rem/1 var(--lk-font-display);letter-spacing:-.03em;color:var(--lk-fg-faint)}
