@layer theme{:root{--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-family-sans);--default-font-feature-settings:var(--font-family-sans--font-feature-settings);--default-font-variation-settings:var(--font-family-sans--font-variation-settings);--default-mono-font-family:var(--font-family-mono);--default-mono-font-feature-settings:var(--font-family-mono--font-feature-settings);--default-mono-font-variation-settings:var(--font-family-mono--font-variation-settings);--breakpoint-sm:640px;--breakpoint-md:768px;--breakpoint-lg:1024px;--breakpoint-xl:1280px;--breakpoint-2xl:1536px;--color-black:#000;--color-white:#fff;--color-slate-50:#f8fafc;--color-slate-100:#f1f5f9;--color-slate-200:#e2e8f0;--color-slate-300:#cbd5e1;--color-slate-400:#94a3b8;--color-slate-500:#64748b;--color-slate-600:#475569;--color-slate-700:#334155;--color-slate-800:#1e293b;--color-slate-900:#0f172a;--color-slate-950:#020617;--color-gray-50:#f9fafb;--color-gray-100:#f3f4f6;--color-gray-200:#e5e7eb;--color-gray-300:#d1d5db;--color-gray-400:#9ca3af;--color-gray-500:#6b7280;--color-gray-600:#4b5563;--color-gray-700:#374151;--color-gray-800:#1f2937;--color-gray-900:#111827;--color-gray-950:#030712;--color-zinc-50:#fafafa;--color-zinc-100:#f4f4f5;--color-zinc-200:#e4e4e7;--color-zinc-300:#d4d4d8;--color-zinc-400:#a1a1aa;--color-zinc-500:#71717a;--color-zinc-600:#52525b;--color-zinc-700:#3f3f46;--color-zinc-800:#27272a;--color-zinc-900:#18181b;--color-zinc-950:#09090b;--color-neutral-50:#fafafa;--color-neutral-100:#f5f5f5;--color-neutral-200:#e5e5e5;--color-neutral-300:#d4d4d4;--color-neutral-400:#a3a3a3;--color-neutral-500:#737373;--color-neutral-600:#525252;--color-neutral-700:#404040;--color-neutral-800:#262626;--color-neutral-900:#171717;--color-neutral-950:#0a0a0a;--color-stone-50:#fafaf9;--color-stone-100:#f5f5f4;--color-stone-200:#e7e5e4;--color-stone-300:#d6d3d1;--color-stone-400:#a8a29e;--color-stone-500:#78716c;--color-stone-600:#57534e;--color-stone-700:#44403c;--color-stone-800:#292524;--color-stone-900:#1c1917;--color-stone-950:#0c0a09;--color-red-50:#fef2f2;--color-red-100:#fee2e2;--color-red-200:#fecaca;--color-red-300:#fca5a5;--color-red-400:#f87171;--color-red-500:#ef4444;--color-red-600:#dc2626;--color-red-700:#b91c1c;--color-red-800:#991b1b;--color-red-900:#7f1d1d;--color-red-950:#450a0a;--color-orange-50:#fff7ed;--color-orange-100:#ffedd5;--color-orange-200:#fed7aa;--color-orange-300:#fdba74;--color-orange-400:#fb923c;--color-orange-500:#f97316;--color-orange-600:#ea580c;--color-orange-700:#c2410c;--color-orange-800:#9a3412;--color-orange-900:#7c2d12;--color-orange-950:#431407;--color-amber-50:#fffbeb;--color-amber-100:#fef3c7;--color-amber-200:#fde68a;--color-amber-300:#fcd34d;--color-amber-400:#fbbf24;--color-amber-500:#f59e0b;--color-amber-600:#d97706;--color-amber-700:#b45309;--color-amber-800:#92400e;--color-amber-900:#78350f;--color-amber-950:#451a03;--color-yellow-50:#fefce8;--color-yellow-100:#fef9c3;--color-yellow-200:#fef08a;--color-yellow-300:#fde047;--color-yellow-400:#facc15;--color-yellow-500:#eab308;--color-yellow-600:#ca8a04;--color-yellow-700:#a16207;--color-yellow-800:#854d0e;--color-yellow-900:#713f12;--color-yellow-950:#422006;--color-lime-50:#f7fee7;--color-lime-100:#ecfccb;--color-lime-200:#d9f99d;--color-lime-300:#bef264;--color-lime-400:#a3e635;--color-lime-500:#84cc16;--color-lime-600:#65a30d;--color-lime-700:#4d7c0f;--color-lime-800:#3f6212;--color-lime-900:#365314;--color-lime-950:#1a2e05;--color-green-50:#f0fdf4;--color-green-100:#dcfce7;--color-green-200:#bbf7d0;--color-green-300:#86efac;--color-green-400:#4ade80;--color-green-500:#22c55e;--color-green-600:#16a34a;--color-green-700:#15803d;--color-green-800:#166534;--color-green-900:#14532d;--color-green-950:#052e16;--color-emerald-50:#ecfdf5;--color-emerald-100:#d1fae5;--color-emerald-200:#a7f3d0;--color-emerald-300:#6ee7b7;--color-emerald-400:#34d399;--color-emerald-500:#10b981;--color-emerald-600:#059669;--color-emerald-700:#047857;--color-emerald-800:#065f46;--color-emerald-900:#064e3b;--color-emerald-950:#022c22;--color-teal-50:#f0fdfa;--color-teal-100:#ccfbf1;--color-teal-200:#99f6e4;--color-teal-300:#5eead4;--color-teal-400:#2dd4bf;--color-teal-500:#14b8a6;--color-teal-600:#0d9488;--color-teal-700:#0f766e;--color-teal-800:#115e59;--color-teal-900:#134e4a;--color-teal-950:#042f2e;--color-cyan-50:#ecfeff;--color-cyan-100:#cffafe;--color-cyan-200:#a5f3fc;--color-cyan-300:#67e8f9;--color-cyan-400:#22d3ee;--color-cyan-500:#06b6d4;--color-cyan-600:#0891b2;--color-cyan-700:#0e7490;--color-cyan-800:#155e75;--color-cyan-900:#164e63;--color-cyan-950:#083344;--color-sky-50:#f0f9ff;--color-sky-100:#e0f2fe;--color-sky-200:#bae6fd;--color-sky-300:#7dd3fc;--color-sky-400:#38bdf8;--color-sky-500:#0ea5e9;--color-sky-600:#0284c7;--color-sky-700:#0369a1;--color-sky-800:#075985;--color-sky-900:#0c4a6e;--color-sky-950:#082f49;--color-blue-50:#eff6ff;--color-blue-100:#dbeafe;--color-blue-200:#bfdbfe;--color-blue-300:#93c5fd;--color-blue-400:#60a5fa;--color-blue-500:#3b82f6;--color-blue-600:#2563eb;--color-blue-700:#1d4ed8;--color-blue-800:#1e40af;--color-blue-900:#1e3a8a;--color-blue-950:#172554;--color-indigo-50:#eef2ff;--color-indigo-100:#e0e7ff;--color-indigo-200:#c7d2fe;--color-indigo-300:#a5b4fc;--color-indigo-400:#818cf8;--color-indigo-500:#6366f1;--color-indigo-600:#4f46e5;--color-indigo-700:#4338ca;--color-indigo-800:#3730a3;--color-indigo-900:#312e81;--color-indigo-950:#1e1b4b;--color-violet-50:#f5f3ff;--color-violet-100:#ede9fe;--color-violet-200:#ddd6fe;--color-violet-300:#c4b5fd;--color-violet-400:#a78bfa;--color-violet-500:#8b5cf6;--color-violet-600:#7c3aed;--color-violet-700:#6d28d9;--color-violet-800:#5b21b6;--color-violet-900:#4c1d95;--color-violet-950:#2e1065;--color-purple-50:#faf5ff;--color-purple-100:#f3e8ff;--color-purple-200:#e9d5ff;--color-purple-300:#d8b4fe;--color-purple-400:#c084fc;--color-purple-500:#a855f7;--color-purple-600:#9333ea;--color-purple-700:#7e22ce;--color-purple-800:#6b21a8;--color-purple-900:#581c87;--color-purple-950:#3b0764;--color-fuchsia-50:#fdf4ff;--color-fuchsia-100:#fae8ff;--color-fuchsia-200:#f5d0fe;--color-fuchsia-300:#f0abfc;--color-fuchsia-400:#e879f9;--color-fuchsia-500:#d946ef;--color-fuchsia-600:#c026d3;--color-fuchsia-700:#a21caf;--color-fuchsia-800:#86198f;--color-fuchsia-900:#701a75;--color-fuchsia-950:#4a044e;--color-pink-50:#fdf2f8;--color-pink-100:#fce7f3;--color-pink-200:#fbcfe8;--color-pink-300:#f9a8d4;--color-pink-400:#f472b6;--color-pink-500:#ec4899;--color-pink-600:#db2777;--color-pink-700:#be185d;--color-pink-800:#9d174d;--color-pink-900:#831843;--color-pink-950:#500724;--color-rose-50:#fff1f2;--color-rose-100:#ffe4e6;--color-rose-200:#fecdd3;--color-rose-300:#fda4af;--color-rose-400:#fb7185;--color-rose-500:#f43f5e;--color-rose-600:#e11d48;--color-rose-700:#be123c;--color-rose-800:#9f1239;--color-rose-900:#881337;--color-rose-950:#4c0519;--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0,0,.2,1)infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--animate-bounce:bounce 1s infinite;--blur:8px;--blur-sm:4px;--blur-md:12px;--blur-lg:16px;--blur-xl:24px;--blur-2xl:40px;--blur-3xl:64px;--radius:.25rem;--radius-sm:.125rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--shadow-xs:0 1px #0000000d;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--shadow-2xl:0 25px 50px -12px #00000040;--shadow-inner:inset 0 2px 4px 0 #0000000d;--inset-shadow-xs:inset 0 1px #0000000d;--inset-shadow-sm:inset 0 1px 1px #0000000d;--inset-shadow:inset 0 2px 4px #0000000d;--drop-shadow:0 1px 2px #0000001a,0 1px 1px #0000000f;--drop-shadow-sm:0 1px 1px #0000000d;--drop-shadow-md:0 4px 3px #00000012,0 2px 2px #0000000f;--drop-shadow-lg:0 10px 8px #0000000a,0 4px 3px #0000001a;--drop-shadow-xl:0 20px 13px #00000008,0 8px 5px #00000014;--drop-shadow-2xl:0 25px 25px #00000026;--spacing-px:1px;--spacing-0:0px;--spacing-0_5:.125rem;--spacing-1:.25rem;--spacing-1_5:.375rem;--spacing-2:.5rem;--spacing-2_5:.625rem;--spacing-3:.75rem;--spacing-3_5:.875rem;--spacing-4:1rem;--spacing-5:1.25rem;--spacing-6:1.5rem;--spacing-7:1.75rem;--spacing-8:2rem;--spacing-9:2.25rem;--spacing-10:2.5rem;--spacing-11:2.75rem;--spacing-12:3rem;--spacing-14:3.5rem;--spacing-16:4rem;--spacing-20:5rem;--spacing-24:6rem;--spacing-28:7rem;--spacing-32:8rem;--spacing-36:9rem;--spacing-40:10rem;--spacing-44:11rem;--spacing-48:12rem;--spacing-52:13rem;--spacing-56:14rem;--spacing-60:15rem;--spacing-64:16rem;--spacing-72:18rem;--spacing-80:20rem;--spacing-96:24rem;--width-3xs:16rem;--width-2xs:18rem;--width-xs:20rem;--width-sm:24rem;--width-md:28rem;--width-lg:32rem;--width-xl:36rem;--width-2xl:42rem;--width-3xl:48rem;--width-4xl:56rem;--width-5xl:64rem;--width-6xl:72rem;--width-7xl:80rem;--width-prose:65ch;--font-family-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-serif:ui-serif,Georgia,Cambria,"Times New Roman",Times,serif;--font-family-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--font-size-xs:.75rem;--font-size-xs--line-height:1rem;--font-size-sm:.875rem;--font-size-sm--line-height:1.25rem;--font-size-base:1rem;--font-size-base--line-height:1.5rem;--font-size-lg:1.125rem;--font-size-lg--line-height:1.75rem;--font-size-xl:1.25rem;--font-size-xl--line-height:1.75rem;--font-size-2xl:1.5rem;--font-size-2xl--line-height:2rem;--font-size-3xl:1.875rem;--font-size-3xl--line-height:2.25rem;--font-size-4xl:2.25rem;--font-size-4xl--line-height:2.5rem;--font-size-5xl:3rem;--font-size-5xl--line-height:1;--font-size-6xl:3.75rem;--font-size-6xl--line-height:1;--font-size-7xl:4.5rem;--font-size-7xl--line-height:1;--font-size-8xl:6rem;--font-size-8xl--line-height:1;--font-size-9xl:8rem;--font-size-9xl--line-height:1;--letter-spacing-tighter:-.05em;--letter-spacing-tight:-.025em;--letter-spacing-normal:0em;--letter-spacing-wide:.025em;--letter-spacing-wider:.05em;--letter-spacing-widest:.1em;--line-height-none:1;--line-height-tight:1.25;--line-height-snug:1.375;--line-height-normal:1.5;--line-height-relaxed:1.625;--line-height-loose:2;--line-height-3:.75rem;--line-height-4:1rem;--line-height-5:1.25rem;--line-height-6:1.5rem;--line-height-7:1.75rem;--line-height-8:2rem;--line-height-9:2.25rem;--line-height-10:2.5rem;--perspective-dramatic:100px;--perspective-near:300px;--perspective-normal:500px;--perspective-midrange:800px;--perspective-distant:1200px;--transition-timing-function-linear:linear;--transition-timing-function-in:cubic-bezier(.4,0,1,1);--transition-timing-function-out:cubic-bezier(0,0,.2,1);--transition-timing-function-in-out:cubic-bezier(.4,0,.2,1)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{color:inherit;border-top-width:1px;height:0}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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;background:0 0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;background:0 0}input:where(:not([type=button],[type=reset],[type=submit])),select,textarea{border:1px solid}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}summary{display:list-item}ol,ul,menu{list-style:none}textarea{resize:vertical}::placeholder{opacity:1;color:color-mix(in srgb,currentColor 50%,transparent)}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]{display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.fixed{position:fixed}.relative{position:relative}.static{position:static}.m-1{margin:var(--spacing-1,.25rem)}.mt-8{margin-top:var(--spacing-8,2rem)}.mb-16{margin-bottom:var(--spacing-16,4rem)}.mb-4{margin-bottom:var(--spacing-4,1rem)}.mb-8{margin-bottom:var(--spacing-8,2rem)}.-ml-\[8px\]{margin-left:-8px}.ml-2{margin-left:var(--spacing-2,.5rem)}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.inline{display:inline}.table{display:table}.h-7{height:var(--spacing-7,1.75rem)}.h-full{height:100%}.w-full{width:100%}.scroll-pr-6{scroll-padding-right:var(--spacing-6,1.5rem)}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}:where(.space-y-2>:not([hidden])~:not([hidden])){margin-bottom:calc(var(--spacing-2,.5rem)*var(--tw-space-y-reverse));margin-top:calc(var(--spacing-2,.5rem)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-0>:not([hidden])~:not([hidden])){margin-inline-start:calc(var(--spacing-0,0px)*calc(1 - var(--tw-space-x-reverse)));margin-inline-end:calc(var(--spacing-0,0px)*var(--tw-space-x-reverse))}.rounded-lg{border-radius:var(--radius-lg,.5rem)}.bg-white{background-color:var(--color-white,#fff)}.p-8{padding:var(--spacing-8,2rem)}.py-1{padding-top:var(--spacing-1,.25rem);padding-bottom:var(--spacing-1,.25rem)}.py-12{padding-top:var(--spacing-12,3rem);padding-bottom:var(--spacing-12,3rem)}.px-0{padding-left:var(--spacing-0,0px);padding-right:var(--spacing-0,0px)}.px-2{padding-left:var(--spacing-2,.5rem);padding-right:var(--spacing-2,.5rem)}.px-4{padding-left:var(--spacing-4,1rem);padding-right:var(--spacing-4,1rem)}.pr-10{padding-right:var(--spacing-10,2.5rem)}.pb-0{padding-bottom:var(--spacing-0,0px)}.text-left{text-align:left}.align-middle{vertical-align:middle}.text-2xl{font-size:var(--font-size-2xl,1.5rem);line-height:var(--font-size-2xl--line-height,2rem)}.text-4xl{font-size:var(--font-size-4xl,2.25rem);line-height:var(--font-size-4xl--line-height,2.5rem)}.font-bold{font-weight:700}.font-semibold{font-weight:600}.italic{font-style:italic}.tracking-tight{letter-spacing:var(--letter-spacing-tight,-.025em)}.tracking-tighter{letter-spacing:var(--letter-spacing-tighter,-.05em)}.text-neutral-600{color:var(--color-neutral-600,#525252)}.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-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\:text-neutral-800:hover{color:var(--color-neutral-800,#262626)}@media (min-width:768px){.md\:relative{position:relative}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}:where(.md\:space-y-0>:not([hidden])~:not([hidden])){margin-bottom:calc(var(--spacing-0,0px)*var(--tw-space-y-reverse));margin-top:calc(var(--spacing-0,0px)*calc(1 - var(--tw-space-y-reverse)))}:where(.md\:space-x-4>:not([hidden])~:not([hidden])){margin-inline-start:calc(var(--spacing-4,1rem)*calc(1 - var(--tw-space-x-reverse)));margin-inline-end:calc(var(--spacing-4,1rem)*var(--tw-space-x-reverse))}.md\:overflow-auto{overflow:auto}}@media (min-width:1024px){.lg\:sticky{position:sticky}.lg\:top-20{top:var(--spacing-20,5rem)}}@media (prefers-color-scheme:dark){.dark\:text-neutral-300{color:var(--color-neutral-300,#d4d4d4)}.dark\:hover\:text-neutral-100:hover{color:var(--color-neutral-100,#f5f5f5)}.dark\:hover\:text-neutral-200:hover{color:var(--color-neutral-200,#e5e5e5)}}}:root{--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--text-primary:#1b1b1b;--text-secondary:#6b6b6b;--text-tertiary:#b5b5b5;--text-muted:#9b9b9b;--text-body:#2f2f2f;--border-subtle:#0000000d;--border-ring:#0000001a;--border-line:#f0f0f0;--bg-page:#fcfcfc;--bg-hover:#f7f7f7;--bg-surface:#fff;--selection-bg:#f2edfe;--ease-out:cubic-bezier(.215,.61,.355,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--sh-class:#2d5e9d;--sh-identifier:#354150;--sh-sign:#8996a3;--sh-string:#007f7a;--sh-keyword:#e02518;--sh-comment:#a19595;--sh-jsxliterals:#6266d1;--sh-property:#e25a1c;--sh-entity:#e25a1c}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--text-primary:#f2f2f2;--text-secondary:#a2a2a2;--text-tertiary:#777;--text-muted:#8d8d8d;--text-body:#d6d6d6;--border-subtle:#ffffff14;--border-ring:#ffffff2e;--border-line:#2c2c2c;--bg-page:#111;--bg-hover:#1b1b1b;--bg-surface:#181818;--selection-bg:#332449;--sh-class:#93c5fd;--sh-identifier:#e5e7eb;--sh-sign:#9ca3af;--sh-string:#86efac;--sh-keyword:#fca5a5;--sh-comment:#737373;--sh-jsxliterals:#c4b5fd;--sh-property:#fdba74;--sh-entity:#fdba74}::selection{color:var(--text-primary);background:var(--selection-bg)}*{box-sizing:border-box}html{background:var(--bg-page);scroll-behavior:smooth;min-width:320px}body{color:var(--text-primary);background:var(--bg-page);font-family:var(--font-geist-sans),ui-sans-serif,system-ui,sans-serif;-webkit-font-smoothing:antialiased;transition:color .2s var(--ease-in-out),background-color .2s var(--ease-in-out);min-height:100vh;margin:0}a{color:inherit}.site-main{width:100%;min-width:0;max-width:640px;margin:0 auto;padding:0 32px}.theme-toggle{color:var(--text-secondary);cursor:pointer;transition:color .15s var(--ease-in-out);background:0 0;border:0;border-radius:0;flex:none;place-items:center;width:20px;height:20px;padding:0;display:inline-grid}.theme-toggle:hover{color:var(--text-primary)}.theme-toggle:focus-visible{outline:2px solid var(--border-ring);outline-offset:3px}.theme-toggle svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6px;width:18px;height:18px}.page-fade-in{animation:.2s ease-out page-fade-in}@keyframes page-fade-in{0%{opacity:0}to{opacity:1}}.home-page{padding:96px 0 88px}.intro-section{flex-direction:column;gap:32px;font-size:14px;line-height:24px;display:flex}.intro-header,.article-header{flex-direction:column;gap:0;display:flex}.intro-name-line,.page-heading__title,.article-title-line{align-items:center;gap:8px;min-width:0;display:flex}.intro-name-line{justify-content:space-between}.article-title-line{align-items:flex-start}.intro-name,.article-header h1{margin:0;font-weight:500}.intro-updated,.article-header time{color:var(--text-tertiary);margin:0}.intro-copy{flex-direction:column;gap:12px;display:flex}.intro-copy p{margin:0}.intro-copy a,.prose a{text-decoration:underline;-webkit-text-decoration-color:var(--text-tertiary);-webkit-text-decoration-color:var(--text-tertiary);text-decoration-color:var(--text-tertiary);text-underline-offset:2px;transition:text-decoration-color .15s var(--ease-in-out);text-decoration-thickness:1px}.intro-copy a:hover,.prose a:hover{-webkit-text-decoration-color:var(--text-primary);-webkit-text-decoration-color:var(--text-primary);text-decoration-color:var(--text-primary)}.inline-highlight-reveal{text-wrap:pretty;display:grid;position:relative}.inline-highlight-reveal__layer{font:inherit;line-height:inherit;grid-area:1/1;margin:0}.inline-highlight-reveal__layer--reveal{opacity:0;pointer-events:none;transition:opacity .22s var(--ease-in-out)}.inline-highlight-reveal[data-open=true] .inline-highlight-reveal__layer--reveal{opacity:1;pointer-events:auto}.inline-highlight-reveal__text{transition:opacity .54s var(--ease-in-out),filter .54s var(--ease-in-out);display:inline}.inline-highlight-reveal[data-open=true] .inline-highlight-reveal__layer--original .inline-highlight-reveal__text{opacity:.18;filter:blur(4px)}.inline-highlight-reveal__trigger{color:var(--text-primary);background:var(--inline-highlight-color,#f2edfe);font:inherit;line-height:inherit;cursor:pointer;border:0;border-radius:.08em;padding:0 .12em;text-decoration:none;display:inline-block;box-shadow:inset 0 -1px #0000000f}[data-theme=dark] .inline-highlight-reveal__trigger{background:color-mix(in srgb,var(--inline-highlight-color,#f2edfe)38%,var(--bg-surface));box-shadow:inset 0 -1px #ffffff14}.inline-highlight-reveal__trigger:focus-visible{outline:2px solid color-mix(in srgb,var(--inline-highlight-color,#f2edfe)60%,transparent);outline-offset:2px}.inline-highlight-reveal__word{opacity:0}.inline-highlight-reveal[data-open=true] .inline-highlight-reveal__word{animation:word-appear .5s ease-out calc(var(--word-index)*55ms)both}@keyframes word-appear{0%{opacity:0}to{opacity:1}}.writing-section{margin-top:64px}.section-heading{border-bottom:1px solid var(--border-line);padding-bottom:8px}.section-heading h2,.page-heading h1{margin:0;font-size:14px;font-weight:400;line-height:24px}.section-heading h2{color:var(--text-secondary)}.writing-list ul{margin:0;padding:0;list-style:none}.writing-row{border-bottom:1px solid var(--border-subtle)}.writing-row[lang^=zh]{font-family:Microsoft YaHei,Microsoft YaHei UI,微软雅黑,Noto Sans SC,PingFang SC,Hiragino Sans GB,ui-sans-serif,system-ui,sans-serif}.writing-row__link,.writing-row--draft{grid-template-columns:56px minmax(0,1fr) 48px;align-items:center;gap:16px;min-height:44px;padding:10px 0;font-size:14px;line-height:20px;display:grid}.writing-row__link{text-decoration:none;transition:opacity .2s ease-out}.writing-list__published:hover .writing-row__link{opacity:.4}.writing-list__published .writing-row:hover .writing-row__link,.writing-row__link:focus-visible{opacity:1}.writing-row--draft{color:var(--text-primary);opacity:.6}.writing-year,.writing-date{color:var(--text-secondary);font-variant-numeric:tabular-nums}.writing-date{text-align:right;width:48px}.writing-title{align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.writing-title__text{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.writing-arrow{color:var(--text-secondary);opacity:0;flex:none;transition:opacity .15s ease-out,transform .15s ease-out;transform:translate(-4px)}.writing-row:hover .writing-arrow,.writing-row__link:focus-visible .writing-arrow{opacity:1;transform:translate(0)}.draft-badge{color:var(--text-secondary);text-transform:uppercase;box-shadow:0 0 0 1px var(--border-subtle);border-radius:6px;flex:none;padding:0 6px;font-size:10px;line-height:18px}.page-stack{padding:96px 0 88px}.back-link,.toc-home{color:var(--text-secondary);align-items:center;gap:4px;font-size:14px;line-height:24px;text-decoration:none;transition:color .15s ease-out;display:inline-flex}.back-link:hover,.toc-home:hover{color:var(--text-primary)}.page-heading{flex-direction:column;gap:4px;margin:48px 0 32px;display:flex}.page-heading .eyebrow{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:12px}.page-heading h1{font-size:20px;font-weight:500}.page-heading__title h1,.article-title-line h1{min-width:0}.article-title-line h1{flex:auto;font-weight:600}.page-heading>p:last-child{color:var(--text-secondary);margin:0;font-size:14px}.article-page{position:relative}.article-page[lang^=zh]{font-family:Microsoft YaHei,Microsoft YaHei UI,微软雅黑,Noto Sans SC,PingFang SC,Hiragino Sans GB,ui-sans-serif,system-ui,sans-serif}.article-page[lang^=zh] h1,.article-page[lang^=zh] h2,.article-page[lang^=zh] h3,.article-page[lang^=zh] h4,.article-page[lang^=zh] h5,.article-page[lang^=zh] h6{font-family:Source Han Serif SC,Source Han Serif SC Heavy,思源宋体,Noto Serif SC,Noto Serif CJK SC,Songti SC,STSong,SimSun,serif}.article-content{min-width:0}.article-toc{display:none}.mobile-back{margin-bottom:32px}.article-header h1{font-size:14px;line-height:24px}.article-subtitle{color:var(--text-secondary);max-width:560px;margin:4px 0 0;font-size:14px;line-height:24px}.article-header time{font-size:14px;line-height:18px}.article-rule{background:var(--border-subtle);height:1px;margin:24px 0}.prose{color:var(--text-body);overflow-wrap:anywhere;font-size:14px;line-height:24px}.prose>:first-child{margin-top:0}.prose p{margin:12px 0 0}.prose h2,.prose h3{scroll-margin-top:48px;font-size:14px;line-height:24px}.prose h2{color:var(--text-primary);margin:40px 0 0;font-weight:600}.prose h3{color:var(--text-body);margin:28px 0 0;font-weight:500}.prose strong{color:var(--text-primary);font-weight:500}.prose blockquote{border-left:2px dashed var(--border-subtle);color:var(--text-muted);margin:24px 0;padding-left:16px}.prose blockquote p{color:inherit}.prose pre{border:1px solid var(--border-subtle);background:var(--bg-surface);border-radius:8px;margin-top:12px;padding:8px 12px;font-size:13px;overflow-x:auto}.prose code{border:1px solid var(--border-subtle);color:inherit;background:var(--bg-hover);font-family:var(--font-geist-mono),ui-monospace,monospace;border-radius:4px;padding:2px 4px;font-size:.92em;font-weight:400}.prose pre code{background:0 0;border:0;padding:0;font-size:13px;line-height:1.5}.prose ul,.prose ol{margin:12px 0 0;padding-left:24px}.prose ul{list-style:outside}.prose ol{list-style:decimal}.prose ul.contains-task-list{padding-left:0;list-style:none}.prose li.task-list-item{align-items:flex-start;gap:8px;display:flex}.prose li.task-list-item input[type=checkbox]{accent-color:var(--text-primary);flex:none;width:14px;height:14px;margin:5px 0 0}.prose del{color:var(--text-muted)}.prose table{border-collapse:collapse;width:100%;margin:24px 0 0;font-size:13px;line-height:20px;overflow:hidden}.prose th,.prose td{border:1px solid var(--border-subtle);text-align:left;vertical-align:top;padding:8px 10px}.prose th{color:var(--text-primary);background:var(--bg-hover);font-weight:500}.prose hr{background:repeating-linear-gradient(90deg,var(--border-ring)0 16px,transparent 16px 20px);border:0;width:112px;height:2px;margin:32px auto}.prose .footnotes{border-top:1px solid var(--border-line);margin-top:40px;padding-top:16px;font-size:13px}.prose .footnotes ol{margin-top:12px}.prose sup{line-height:0}.prose details{border:1px solid var(--border-subtle);background:var(--bg-surface);border-radius:8px;margin-top:24px;padding:12px 14px}.prose summary{color:var(--text-primary);cursor:pointer}.prose details>:last-child{margin-bottom:0}.prose kbd{border:1px solid var(--border-ring);color:var(--text-primary);background:var(--bg-hover);font-family:var(--font-geist-mono),ui-monospace,monospace;border-bottom-width:2px;border-radius:4px;padding:2px 5px;font-size:12px}.prose img{max-width:100%;height:auto;margin:0}.prose a.bookmark-card{border:1px solid var(--border-subtle);color:var(--text-primary);background:var(--bg-hover);transition:border-color .15s var(--ease-in-out),background-color .15s var(--ease-in-out);border-radius:10px;align-items:stretch;width:100%;min-height:112px;margin:24px 0 0;text-decoration:none;display:flex;overflow:hidden}.prose a.bookmark-card:hover{border-color:var(--border-ring);text-decoration:none}.bookmark-card__content{flex-direction:column;flex:auto;justify-content:center;gap:4px;min-width:0;padding:16px 18px;display:flex}.bookmark-card__title,.bookmark-card__description,.bookmark-card__url{text-overflow:ellipsis;display:block;overflow:hidden}.bookmark-card__title{color:var(--text-primary);white-space:nowrap;font-size:14px;font-weight:500;line-height:20px}.bookmark-card__description{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:20px;display:-webkit-box}.bookmark-card__url{color:var(--text-tertiary);white-space:nowrap;font-size:12px;line-height:18px}.bookmark-card__preview{border-left:1px solid var(--border-subtle);background:var(--bg-surface);flex:0 0 160px;place-items:center;min-width:112px;display:grid}.bookmark-card__preview img{object-fit:cover;width:100%;height:100%}.bookmark-card__domain{color:var(--text-tertiary);letter-spacing:-.04em;font-size:30px;font-weight:500}.prose .image-gallery{flex-direction:column;gap:4px;margin:24px 0 0;display:flex}.prose .image-row{gap:4px;width:100%;display:flex}.prose .image-row>img{flex:1 1 0;width:0;min-width:0;max-width:none}.prose .image-lightbox img{cursor:zoom-in}.prose .image-lightbox .bookmark-card img{cursor:default}.image-lightbox__overlay{z-index:1000;color:#f5f5f5;animation:image-lightbox-overlay-in .22s var(--ease-out)both;will-change:opacity;background:#080808f5;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.image-lightbox__toolbar{z-index:1;background:linear-gradient(#080808c2,#0000);justify-content:space-between;align-items:center;padding:20px 24px;display:flex;position:absolute;top:0;left:0;right:0}.image-lightbox__count{color:#ffffffc7;font-size:14px;line-height:20px}.image-lightbox__actions{align-items:center;gap:8px;display:flex}.image-lightbox__button,.image-lightbox__nav{color:#ffffffe6;cursor:pointer;transition:color .15s var(--ease-in-out),background-color .15s var(--ease-in-out);background:0 0;border:0;place-items:center;padding:0;display:grid}.image-lightbox__button{border-radius:8px;width:40px;height:40px}.image-lightbox__button:hover,.image-lightbox__nav:hover{color:#fff;background:#ffffff1f}.image-lightbox__button:focus-visible,.image-lightbox__nav:focus-visible{outline-offset:2px;outline:2px solid #ffffffb8}.image-lightbox__button svg{stroke-width:1.7px;width:20px;height:20px}.image-lightbox__stage{place-items:center;width:100%;height:100%;padding:72px 88px;display:grid;position:absolute;inset:0;overflow:hidden}.image-lightbox__image{object-fit:contain;-webkit-user-select:none;user-select:none;animation:image-lightbox-image-in .28s var(--ease-out)15ms both;transition:transform .2s var(--ease-out);will-change:transform,opacity;width:auto;min-width:0;max-width:calc(100vw - 176px);height:auto;min-height:0;max-height:calc(100vh - 144px);display:block}.image-lightbox__overlay.is-zoomed .image-lightbox__stage{display:block;overflow:auto}.image-lightbox__image.is-zoomed{cursor:zoom-out;margin:0 auto;transform:none}.image-lightbox__overlay.is-zoomed .image-lightbox__image{max-width:none;max-height:none;animation:none}@keyframes image-lightbox-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes image-lightbox-image-in{0%{opacity:.72;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.image-lightbox__nav{border-radius:8px;width:56px;height:88px;position:absolute;top:50%;transform:translateY(-50%)}.image-lightbox__nav--previous{left:16px}.image-lightbox__nav--next{right:16px}.image-lightbox__nav svg{stroke-width:1.4px;width:32px;height:32px}@media (min-width:1280px){.site-main:has(.article-page){max-width:1120px}.article-page{grid-template-columns:176px minmax(0,720px);column-gap:32px;max-width:928px;margin-left:auto;margin-right:auto;display:grid}.article-toc{align-self:start;width:auto;display:block;position:sticky;top:96px}.article-toc ul{flex-direction:column;gap:8px;margin:24px 0 0;padding:0;list-style:none;display:flex}.article-toc li a{color:var(--text-tertiary);font-size:14px;line-height:24px;text-decoration:none;transition:color .2s ease-out;display:block}.article-toc li[data-level="3"] a{color:var(--text-muted);padding-left:12px;font-size:13px;line-height:22px}.article-toc li[data-level="2"]+li[data-level="2"]{margin-top:4px}.article-toc li a.is-active,.article-toc li[data-level="3"] a.is-active,.article-toc li a:hover{color:var(--text-primary)}.mobile-back{display:none}}@media (max-width:639px){.site-main{padding:0 32px}.home-page,.page-stack{padding-top:96px;padding-bottom:72px}.bookmark-card__content{padding:14px 15px}.bookmark-card__preview{flex-basis:96px;min-width:96px}.bookmark-card__description{-webkit-line-clamp:1}.image-lightbox__toolbar{padding:12px 16px}.image-lightbox__stage{padding:64px 48px}.image-lightbox__image{max-width:calc(100vw - 96px);max-height:calc(100vh - 128px)}.image-lightbox__nav{width:44px;height:64px}.image-lightbox__nav--previous{left:4px}.image-lightbox__nav--next{right:4px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.page-fade-in{animation:none}.image-lightbox__overlay,.image-lightbox__image{animation:none!important}.image-lightbox__image{transition:none!important}.inline-highlight-reveal__trigger,.inline-highlight-reveal__text,.inline-highlight-reveal__layer--reveal{transition-duration:.12s}.inline-highlight-reveal[data-open=true] .inline-highlight-reveal__word{opacity:1;animation:none}}pre::-webkit-scrollbar{display:none}pre{scrollbar-width:none}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}@property --tw-space-y-reverse{syntax:"<number>";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"<number>";inherits:false;initial-value:0}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}
@font-face{font-family:GeistSans;src:url(../media/Geist_Variable-s.p.35889d8b.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:GeistSans Fallback;src:local(Arial);ascent-override:90.59%;descent-override:21.66%;line-gap-override:9.85%;size-adjust:101.56%}.geistsans_d5a4f12f-module__oi7R6W__className{font-family:GeistSans,GeistSans Fallback}.geistsans_d5a4f12f-module__oi7R6W__variable{--font-geist-sans:"GeistSans","GeistSans Fallback"}
@font-face{font-family:GeistMono;src:url(../media/GeistMono_Variable.p.aabdd940.woff2)format("woff2");font-display:swap;font-weight:100 900}.geistmono_157ca88a-module__osPrOG__className{font-family:GeistMono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}.geistmono_157ca88a-module__osPrOG__variable{--font-geist-mono:"GeistMono",ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}
