1<!DOCTYPE html><html lang="en" dir="ltr" class="2xl:text-[20px]"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Runtime â kaos-core, kaos-content, kaos-mcp â KAOS</title><meta name="description" content="The MCP-native runtime every KAOS package builds on. Typed Block/Inline AST. FastMCP bridge. Artifact store. Virtual file system."><link rel="canonical" href="https://kelvin.legal/runtime"><!-- Open Graph --><meta property="og:type" content="website"><meta property="og:title" content="Runtime â kaos-core, kaos-content, kaos-mcp"><meta property="og:description" content="The MCP-native runtime every KAOS package builds on. Typed Block/Inline AST. FastMCP bridge. Artifact store. Virtual file system."><meta property="og:url" content="https://kelvin.legal/runtime"><meta property="og:site_name" content="KAOS"><meta property="og:image" content="https://kelvin.legal/og/default.png"><!-- Twitter --><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Runtime â kaos-core, kaos-content, kaos-mcp"><meta name="twitter:description" content="The MCP-native runtime every KAOS package builds on. Typed Block/Inline AST. FastMCP bridge. Artifact store. Virtual file system."><meta name="twitter:image" content="https://kelvin.legal/og/default.png"><link rel="preload" href="/_astro/source-sans-3-latin-wght-normal.BqRLTx4X.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/_astro/source-serif-4-latin-wght-normal.D9elroTD.woff2" as="font" type="font/woff2" crossorigin><style is:global> 2 :root { 3 /* Font families - Adobe Source superfamily (matching metrics) */ 4 --aw-font-sans: 'Source Sans 3 Variable', ui-sans-serif, system-ui, sans-serif; 5 --aw-font-serif: 'Source Serif 4 Variable', Georgia, 'Times New Roman', serif; 6 --aw-font-heading: 'Source Serif 4 Variable', Georgia, 'Times New Roman', serif; 7 8 /* Core brand colors (from logo) */ 9 --aw-color-primary: #005073; 10 --aw-color-secondary: #107dac; 11 --aw-color-accent: #189ad3; 12 13 /* Expanded palette */ 14 --aw-color-deep: #001a2e; 15 --aw-color-copper: #b08050; 16 --aw-color-copper-light: #d4a87c; 17 18 /* Text colors */ 19 --aw-color-text-page: #002043; 20 --aw-color-text-muted: #4a5568; 21 22 /* Background colors â kelvin.legal: white-base for OSS-dev-tool clarity */ 23 --aw-color-bg-page: #ffffff; 24 --aw-color-bg-section-light: #f8fafc; 25 --aw-color-bg-section-warm: #f1f5f9; 26 27 /* Cool neutrals (kelvin.legal palette; replaces 273V warm-cream) */ 28 --aw-color-warm-50: #f8fafc; 29 --aw-color-warm-100: #f1f5f9; 30 --aw-color-warm-200: #e2e8f0; 31 32 /* Dark mode */ 33 --aw-color-dark-bg: #0c1a2a; 34 --aw-color-dark-surface: #132238; 35 --aw-color-dark-border: #1e3450; 36 37 /* Fluid type scale is defined in starwind.css @theme */ 38 } 39</style><!-- Google Site Verification --><link rel="shortcut icon" href="/favicon.ico"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="mask-icon" href="/favicon.svg" color="#107dac"><link rel="sitemap" href="/sitemap-index.xml">
39<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://kelvin.legal/#organization","name":"273 Ventures","url":"https://273ventures.com","description":"AI transformation consultancy serving legal and professional services. Steward of KAOS (Kelvin Agentic Operating System).","sameAs":["https://273ventures.com","https://www.linkedin.com/company/273-ventures/","https://github.com/273v","https://aleainstitute.ai"]},{"@type":"Organization","@id":"https://aleainstitute.ai/#organization","name":"ALEA Institute","url":"https://aleainstitute.ai","description":"501(c)(3) nonprofit advancing open-source AI research for legal and professional services."},{"@type":"WebSite","@id":"https://kelvin.legal/#website","name":"KAOS","url":"https://kelvin.legal","description":"KAOS is an open-source, MCP-native, AST-grounded Python platform for legal AI. Eighteen packages. Real provenance. Apache-2.0 licensed.","publisher":{"@id":"https://kelvin.legal/#organization"}},{"@type":"SoftwareApplication","@id":"https://kelvin.legal/#kaos","name":"KAOS â Kelvin Agentic Operating System","alternateName":["KAOS","Kelvin Agentic Operating System"],"description":"Open-source Python platform for legal AI. MCP-native runtime + 18 packages + agent runtime + typed document AST with provenance.","applicationCategory":"DeveloperApplication","operatingSystem":"Linux, macOS, Windows","url":"https://kelvin.legal","codeRepository":"https://github.com/273v","programmingLanguage":["Python"],"license":"https://opensource.org/license/apache-2-0","softwareVersion":"0.1.0","author":{"@id":"https://kelvin.legal/#organization"},"publisher":{"@id":"https://kelvin.legal/#organization"}},{"@type":"SoftwareSourceCode","@id":"https://kelvin.legal/#kaos-source","name":"KAOS packages","codeRepository":"https://github.com/273v","programmingLanguage":"Python","runtimePlatform":"Python 3.13+","isPartOf":{"@id":"https://kelvin.legal/#kaos"}}]}</script>
39<meta name="astro-view-transitions-enabled" content="true"><meta name="astro-view-transitions-fallback" content="animate">
39<script type="module" src="/_astro/ClientRouter.astro_astro_type_script_index_0_lang.CAqDO0tx.js"></script>
39<link rel="preconnect" href="https://plausible.io">
39<script defer data-domain="kelvin.legal" src="https://plausible.io/js/script.js"></script>
39<style>@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-content:"";--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:var(--aw-font-sans);--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-400:oklch(70.4% .191 22.216);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-950:oklch(27.9% .077 45.635);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-950:oklch(26.6% .065 152.934);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-950:oklch(29.3% .066 243.157);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--breakpoint-lg:64rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;
39--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--text-9xl:8rem;--text-9xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-relaxed:1.625;--drop-shadow-xl:0 9px 7px #0000001a;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--blur-sm:8px;--blur-md:12px;--blur-xl:24px;--blur-2xl:40px;--blur-3xl:64px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--aw-font-sans);--default-mono-font-family:var(--font-mono);--color-card:var(--card);--color-primary:var(--primary);--color-primary-accent:var(--primary-accent);--color-secondary:var(--secondary);--color-muted-foreground:var(--muted-foreground);
39--color-accent:var(--accent);--color-border:var(--border);--color-deep:var(--aw-color-deep);--color-section-light:var(--aw-color-bg-section-light);--font-heading:var(--aw-font-heading)}}@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}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;-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}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--outline)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--outline) 50%,transparent)}}body{background-color:var(--background);color:var(--foreground);color-scheme:light}body:where(.dark,.dark *){color-scheme:dark}button{cursor:pointer}input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([t
39ype=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select{appearance:none;--tw-shadow:0 0 #0000;background-color:#fff;border-width:1px;border-color:#6a7282;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem}:is(input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-sha
39dow);border-color:#155dfc;outline:2px solid #0000}input::placeholder,textarea::placeholder{color:#6a7282;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-date-and-time-value{text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-month-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-day-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-hour-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-minute-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-second-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-millisecond-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{-webkit-print-color-adjust:exact;print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}select:where([multiple]),select:where([size]:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;print-color-adjust:unset;padding-right:.75rem}input:where([type=checkbox]),input:where([type=radio]){appearance:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;vertical-align:middle;-webkit-user-select:none;user-select:none;color:#155dfc;--tw-shadow:0 0 #0000;background-color:#fff;background-origin:border-box;border-width:1px;border-color:#6a7282;flex-shrink:0;width:1rem;height:1rem;padding:0;display:inline-block}input:where([type=checkbox]){border-radius:0}input:where([type=radio]){border-radius:100%}input:where([type=checkbox]):focus,input:where([type=radio]):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-sha
39dow);outline:2px solid #0000}input:where([type=checkbox]):checked,input:where([type=radio]):checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}input:where([type=checkbox]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media(forced-colors:active){input:where([type=checkbox]):checked{appearance:auto}}input:where([type=radio]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media(forced-colors:active){input:where([type=radio]):checked{appearance:auto}}input:where([type=checkbox]):checked:hover,input:where([type=checkbox]):checked:focus,input:where([type=radio]):checked:hover,input:where([type=radio]):checked:focus{background-color:currentColor;border-color:#0000}input:where([type=checkbox]):indeterminate{background-color:currentColor;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}@media(forced-colors:active){input:where([type=checkbox]):indeterminate{appearance:auto}}input:where([type=checkbox]):indeterminate:hover,input:where([type=checkbox]):indeterminate:focus{background-color:currentColor;border-color:#0000}input:where([type=file]){background:unset;border-color:inherit;font-size:unset;line-height:inherit;border-width:0;border-radius:0;padding:0}input:where([type=file]):focus{outline:1px solid buttontext;outline:1px auto -webkit-focus-ring-color}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.-top-8{top:calc(var(--spacing) * -8)}.-top-10{top:calc(var(--spacing) * -10)}.-top-16{top:calc(var(--spacing) * -16)}.-top-24{top:calc(var(--spacing) * -24)}.-top-32{top:calc(var(--spacing) * -32)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-1\/3{top:33.3333%}.top-8{top:calc(var(--spacing) * 8)}.top-10{top:calc(var(--spacing) * 10)}.top-16{top:calc(var(--spacing) * 16)}.top-20{top:calc(var(--spacing) * 20)}.top-100{top:calc(var(--spacing) * 100)}.-right-10{right:calc(var(--spacing) * -10)}.-right-16{right:calc(var(--spacing) * -16)}.-right-24{right:calc(var(--spacing) * -24)}.-right-32{right:calc(var(--spacing) * -32)}.right-0{right:calc(var(--spacing) * 0)}.right-1\/3{right:33.3333%}.right-1\/4{right:25%}.right-12{right:calc(var(--spacing) * 12)}.right-16{right:calc(var(--spacing) * 16)}.-bottom-10{bottom:calc(var(--spacing) * -10)}.-bottom-32{bottom:calc(var(--spacing) * -32)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-1\/3{bottom:33.3333%}.bottom-8{bottom:calc(var(--spacing) * 8)}.bottom-20{bottom:calc(var(--spacing) * 20)}.bottom-24{bottom:calc(var(--spacing) * 24)}.-left-10{left:calc(var(--spacing) * -10)}.-left-32{left:calc(var(--spacing) * -32)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-1\/3{left:33.3333%}.left-1\/4{left:25%}.left-12{left:calc(var(--spacing) * 12)}.isolate{isolation:isolate}.z-0{z-index:0}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-\[1\]{z-index:1}.col-span-6{grid-column:span 6/span 6}.col-span-12{grid-column:span 12/span 12}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-auto{margin:auto}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.my-8{margin-block:calc(var(--spacing) * 8)}.my-12{margin-block:calc(var(--spacing) * 12)}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}
39.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"â""â""â""â";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:oklab(21% -.00316127 -.0338527/.1);--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75
vendor: 2,623 bytes, line 39
39}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-
39lg{font-size:1.125rem;line-height:1.77778}.prose-lg :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em}.prose-lg :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.09091em;margin-bottom:1.09091em;font-size:1.22222em;line-height:1.45455}.prose-lg :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.66667em;margin-bottom:1.66667em;padding-inline-start:1em}.prose-lg :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:.833333em;font-size:2.66667em;line-height:1}.prose-lg :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.86667em;margin-bottom:1.06667em;font-size:1.66667em;line-height:1.33333}.prose-lg :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.66667em;margin-bottom:.666667em;font-size:1.33333em;line-height:1.5}.prose-lg :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:.444444em;line-height:1.55556}.prose-lg :where(img):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-lg :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:1.77778em}.prose-lg :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-lg :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:1.77778em}.prose-lg :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.222222em;padding-inline-end:.444444em;padding-bottom:.222222em;border-radius:.3125rem;padding-inline-start:.444444em;font-size:.888889em}.prose-lg :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.888889em}.prose-lg :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.866667em}.prose-lg :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.prose-lg :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:1em;padding-inline-end:1.5em;padding-bottom:1em;border-radius:.375rem;margin-top:2em;margin-bottom:2em;padding-inline-start:1.5em;font-size:.888889em;line-height:1.75}.prose-lg :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-lg :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em;padding-inline-start:1.55556em}.prose-lg :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.666667em;margin-bottom:.666667em}.prose-lg :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-lg :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.444444em}.prose-lg :where(.prose-lg>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.888889em;margin-bottom:.888889em}.prose-lg :where(.prose-lg>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em}.prose-lg :where(.prose-lg>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.33333em}.prose-lg :where(.prose-lg>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em}.prose-lg :where(.prose-lg>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.33333em}.prose-lg :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.888889em;margin-bottom:.888889em}.prose-lg :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em}.prose-lg :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em}.prose-lg :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.666667em;padding-inline-start:1.55556em}.prose-lg :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:3.11111em;margin-bottom:3.11111em}.prose-lg :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-lg :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-lg :where(h3+*):not
39(:where([class~=not-prose],[class~=not-prose] *)),.prose-lg :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.888889em;line-height:1.5}.prose-lg :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.75em;padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:1.77778em}.prose-lg :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-lg :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1em;font-size:.888889em;line-height:1.5}.prose-lg :where(.prose-lg>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(.prose-lg>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-sm{font-size:.875rem;line-height:1.71429}.prose-sm :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em;margin-bottom:1.14286em}.prose-sm :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.888889em;margin-bottom:.888889em;font-size:1.28571em;line-height:1.55556}.prose-sm :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em;padding-inline-start:1.11111em}.prose-sm :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:.8em;font-size:2.14286em;line-height:1.2}.prose-sm :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.6em;margin-bottom:.8em;font-size:1.42857em;line-height:1.4}.prose-sm :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.55556em;margin-bottom:.444444em;font-size:1.28571em;line-height:1.55556}.prose-sm :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.42857em;margin-bottom:.571429em;line-height:1.42857}.prose-sm :where(img):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.71429em;margin-bottom:1.71429em}.prose-sm :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-sm :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.71429em;margin-bottom:1.71429em}.prose-sm :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.142857em;padding-inline-end:.357143em;padding-bottom:.142857em;border-radius:.3125rem;padding-inline-start:.357143em;font-size:.857143em}.prose-sm :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.857143em}.prose-sm :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.prose-sm :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.888889em}.prose-sm :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.666667em;padding-inline-end:1em;padding-bottom:.666667em;border-radius:.25rem;margin-top:1.66667em;margin-bottom:1.66667em;padding-inline-start:1em;font-size:.857143em;line-height:1.66667}.prose-sm :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em;margin-bottom:1.14286em;padding-inline-start:1.57143em}.prose-sm :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.285714em;margin-bottom:.285714em}.prose-sm :where(ol>
39li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.428571em}.prose-sm :where(.prose-sm>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.571429em;margin-bottom:.571429em}.prose-sm :where(.prose-sm>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em}.prose-sm :where(.prose-sm>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.14286em}.prose-sm :where(.prose-sm>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em}.prose-sm :where(.prose-sm>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.14286em}.prose-sm :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.571429em;margin-bottom:.571429em}.prose-sm :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em;margin-bottom:1.14286em}.prose-sm :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em}.prose-sm :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.285714em;padding-inline-start:1.57143em}.prose-sm :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2.85714em;margin-bottom:2.85714em}.prose-sm :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(h3+*):not
39(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.857143em;line-height:1.5}.prose-sm :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:1em;padding-bottom:.666667em;padding-inline-start:1em}.prose-sm :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-sm :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-sm :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.666667em;padding-inline-end:1em;padding-bottom:.666667em;padding-inline-start:1em}.prose-sm :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-sm :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-sm :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.71429em;margin-bottom:1.71429em}.prose-sm :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-sm :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.666667em;font-size:.857143em;line-height:1.33333}.prose-sm :where(.prose-sm>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(.prose-sm>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.-mt-0\.5{margin-top:calc(var(--spacing) * -.5)}.-mt-4{margin-top:calc(var(--spacing) * -4)}.mt-0{margin-top:calc(var(--spacing) * 0)}
39.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-7{margin-top:calc(var(--spacing) * 7)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mt-14{margin-top:calc(var(--spacing) * 14)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mt-20{margin-top:calc(var(--spacing) * 20)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-4{margin-right:calc(var(--spacing) * 4)}.mr-5{margin-right:calc(var(--spacing) * 5)}.mr-auto{margin-right:auto}.-mb-6{margin-bottom:calc(var(--spacing) * -6)}.-mb-12{margin-bottom:calc(var(--spacing) * -12)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.mb-12{margin-bottom:calc(var(--spacing) * 12)}.mb-32{margin-bottom:calc(var(--spacing) * 32)}.-ml-1\.5{margin-left:calc(var(--spacing) * -1.5)}.-ml-2{margin-left:calc(var(--spacing) * -2)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-5{margin-left:calc(var(--spacing) * 5)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-0{height:calc(var(--spacing) * 0)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-4\.5{height:calc(var(--spacing) * 4.5)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-32{height:calc(var(--spacing) * 32)}.h-40{height:calc(var(--spacing) * 40)}.h-48{height:calc(var(--spacing) * 48)}.h-64{height:calc(var(--spacing) * 64)}.h-96{height:calc(var(--spacing) * 96)}.h-\[18px\]{height:18px}.h-\[30px\]{height:30px}.h-\[40px\]{height:40px}.h-\[150px\]{height:150px}.h-\[200px\]{height:200px}.h-\[400px\]{height:400px}.h-\[500px\]{height:500px}.h-\[calc\(100vh-72px\)\]{height:calc(100vh - 72px)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.min-h-9{min-height:calc(var(--spacing) * 9)}.min-h-\[3\.75rem\]{min-height:3.75rem}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-4\.5{width:calc(var(--spacing) * 4.5)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-32{width:calc(var(--spacing) * 32)}.w-40{width:calc(var(--spacing) * 40)}.w-48{width:calc(var(--spacing) * 48)}.w-64{width:calc(var(--spacing) * 64)}.w-96{width:calc(var(--spacing) * 96)}.w-\[18px\]{width:18px}.w-\[300px\]{width:300px}.w-\[400px\]{width:400px}.w-\[500px\]{width:500px}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-screen-lg{max-width:var(--breakpoint-lg)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.flex-none{flex:none}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.basis-1\/2{flex-basis:50%}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.scroll-mt-16{scroll-margin-top:calc(var(--spacing) * 16)}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-\[minmax\(0\,2fr\)_repeat\(4\,minmax\(0\,1fr\)\)\]{grid-template-columns:minmax(0,2fr) repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}
39.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-10>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 10) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 10) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-x-8{column-gap:calc(var(--spacing) * 8)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.gap-y-6{row-gap:calc(var(--spacing) * 6)}.gap-y-8{row-gap:calc(var(--spacing) * 8)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border>:not(:last-child)){border-color:var(--border)}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:calc(var(--radius) + .5rem)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - .125rem)}.rounded-xl{border-radius:calc(var(--radius) + .25rem)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-accent{border-color:var(--accent)}.border-border,.border-border\/30{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/30{border-color:color-mix(in oklab,var(--border) 30%,transparent)}}.border-gray-200{border-color:var(--color-gray-200)}.border-primary{border-color:var(--primary)}.border-primary-accent{border-color:var(--primary-accent)}.border-secondary-accent\/40{border-color:var(--secondary-accent)}@supports (color:color-mix(in lab,red,red)){.border-secondary-accent\/40{border-color:color-mix(in oklab,var(--secondary-accent) 40%,transparent)}}.border-transparent{border-color:#0000}.border-warm-200{border-color:var(--aw-color-warm-200)}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.border-white\/10{border-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.border-white\/20{border-color:#fff3}@supports (color:color-mix(in lab,red,red)){.border-white\/20{border-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.bg-\[var\(--aw-color-accent\)\]{background-color:var(--aw-color-accent)}.bg-\[var\(--aw-color-primary\)\]{background-color:var(--aw-color-primary)}.bg-\[var\(--aw-color-secondary\)\]{background-color:var(--aw-color-secondary)}.bg-accent\/3{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.bg-accent\/3{background-color:color-mix(in oklab,var(--accent) 3%,transparent)}}.bg-accent\/5{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.bg-accent\/5{background-color:color-mix(in oklab,var(--accent) 5%,transparent)}}.bg-accent\/\[0\.06\]{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.bg-accent\/\[0\.06\]{background-color:color-mix(in oklab,var(--accent) 6%,transparent)}}.bg-background,.bg-background\/85{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.bg-background\/85{background-color:color-mix(in oklab,var(--background) 85%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-card{background-color:var(--card)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-light{background-color:var(--aw-color-bg-page)}.bg-muted{background-color:var(--muted)}.bg-primary{background-color:var(--primary)}.bg-primary-accent,.bg-primary-accent\/10{background-color:var(--primary-accent)}@supports (color:color-mix(in lab,red,red)){.bg-primary-accent\/10{background-color:color-mix(in oklab,var(--primary-accent) 10%,transparent)}}.bg-primary-accent\/20{background-color:var(--primary-accent)}@supports (color:color-mix(in lab,red,red)){.bg-primary-accent\/20{background-color:color-mix(in oklab,var(--primary-accent) 20%,transparent)}}.bg-primary-accent\/30{background-color:var(--primary-accent)}@supports (color:color-mix(in lab,red,red)){.bg-primary-accent\/30{background-color:color-mix(in oklab,var(--primary-accent) 30%,transparent)}}.bg-primary\/3{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/3{background-color:color-mix(in oklab,var(--primary) 3%,transparent)}}.bg-primary\/8{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/8{background-color:color-mix(in oklab,var(--primary) 8%,transparent)}}.bg-secondary{background-color:var(--secondary)}.bg-secondary-accent\/10{background-color:var(--secondary-accent)}@supports (color:color-mix(in lab,red,red)){.bg-secondary-accent\/10{background-color:color-mix(in oklab,var(--secondary-accent) 10%,transparent)}}.bg-secondary-accent\/20{background-color:var(--secondary-accent)}@supports (color:color-mix(in lab,red,red)){.bg-secondary-accent\/20{background-color:color-mix(in oklab,var(--secondary-accent) 20%,transparent)}}.bg-secondary-accent\/30{background-color:var(--secondary-accent)}@supports (color:color-mix(in lab,red,red)){.bg-secondary-accent\/30{background-color:color-mix(in oklab,var(--secondary-accent) 30%,transparent)}}.bg-secondary-accent\/40{background-color:var(--secondary-accent)}@supports (color:color-mix(in lab,red,red)){.bg-secondary-accent\/40{background-color:color-mix(in oklab,var(--secondary-accent) 40%,transparent)}}.bg-section-light,.bg-section-light\/40{background-color:var(--aw-color-bg-section-light)}@supports (color:color-mix(in lab,red,red)){.bg-section-light\/40{background-color:color-mix(in oklab,var(--aw-color-bg-section-light) 40%,transparent)}}.bg-section-light\/50{background-color:var(--aw-color-bg-section-light)}@supports (color:color-mix(in lab,red,red)){.bg-section-light\/50{background-color:color-mix(in oklab,var(--aw-color-bg-section-light) 50%,transparent)}}.bg-section-light\/60{background-color:var(--aw-color-bg-section-light)}@supports (color:color-mix(in lab,red,red)){.bg-section-light\/60{background-color:color-mix(in oklab,var(--aw-color-bg-section-light) 60%,transparent)}}.bg-section-warm{background-color:var(--aw-color-bg-section-warm)}.bg-warm-100{background-color:var(--aw-color-warm-100)}.bg-warm-200{background-color:var(--aw-color-warm-200)}.bg-white{background-color:var(--color-white)}.bg-white\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.bg-white\/5{background-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.bg-white\/10{background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.bg-white\/20{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.bg-white\/20{background-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-primary\/40{--tw-gradient-via:var(--primary)}@supports (color:color-mix(in lab,red,red)){.via-primary\/40{--tw-gradient-via:color-mix(in oklab, var(--primary) 40%, transparent)}}.via-primary\/40{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-p
39osition), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.fill-section-light{fill:var(--aw-color-bg-section-light)}.fill-section-warm{fill:var(--aw-color-bg-section-warm)}.object-cover{object-fit:cover}.object-top{object-position:top}.p-1{padding:calc(var(--spacing) * 1)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-16{padding:calc(var(--spacing) * 16)}.px-0{padding-inline:calc(var(--spacing) * 0)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-5\.5{padding-inline:calc(var(--spacing) * 5.5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-7{padding-block:calc(var(--spacing) * 7)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-14{padding-block:calc(var(--spacing) * 14)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-20{padding-block:calc(var(--spacing) * 20)}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pt-12{padding-top:calc(var(--spacing) * 12)}.pt-16{padding-top:calc(var(--spacing) * 16)}.pt-24{padding-top:calc(var(--spacing) * 24)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.pb-12{padding-bottom:calc(var(--spacing) * 12)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pb-\[56\.25\%\]{padding-bottom:56.25%}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-justify{text-align:justify}.text-left{text-align:left}.text-start{text-align:start}.align-middle{vertical-align:middle}.align-super{vertical-align:super}.align-text-bottom{vertical-align:text-bottom}.align-top{vertical-align:top}.font-heading{font-family:var(--aw-font-heading)}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--aw-font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-9xl{font-size:var(--text-9xl);line-height:var(--tw-leading,var(--text-9xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.7rem\]{font-size:.7rem}.text-\[2\.6rem\]{font-size:2.6rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-body{font-size:clamp(1rem,.95rem + .25vw,1.125rem)}.text-section{font-size:clamp(1.125rem,.75rem + 1.25vw,1.75rem)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.leading-8{--tw-leading:calc(var(--spacing) * 8);line-height:calc(var(--spacing) * 8)}.leading-\[0\]{--tw-leading:0;line-height:0}.leading-\[1\.05\]{--tw-leading:1.05;line-height:1.05}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-0\.02em\]{--tw-tracking:-.02em;letter-spacing:-.02em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.text-wrap{text-wrap:wrap}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.\!text-primary-accent{color:var(--primary-accent)!important}.text-accent{color:var(--accent)}.text-blue-600{color:var(--color-blue-600)}.text-foreground,.text-foreground\/50{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/50{color:color-mix(in oklab,var(--foreground) 50%,transparent)}}.text-foreground\/80{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/80{color:color-mix(in oklab,var(--foreground) 80%,transparent)}}.text-gray-50{color:var(--color-gray-50)}.text-gray-200{color:var(--color-gray-200)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-400{color:var(--color-green-400)}.text-muted{color:var(--muted)}.text-muted-foreground,.text-muted-foreground\/60{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/60{color:color-mix(in oklab,var(--muted-foreground) 60%,transparent)}}.text-muted-foreground\/70{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/70{color:color-mix(in oklab,var(--muted-foreground) 70%,transparent)}}.text-muted-foreground\/80{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/80{color:color-mix(in oklab,var(--muted-foreground) 80%,transparent)}}
39.text-page{color:var(--aw-color-text-page)}.text-primary{color:var(--primary)}.text-primary-accent,.text-primary-accent\/10{color:var(--primary-accent)}@supports (color:color-mix(in lab,red,red)){.text-primary-accent\/10{color:color-mix(in oklab,var(--primary-accent) 10%,transparent)}}.text-red-400{color:var(--color-red-400)}.text-secondary{color:var(--secondary)}.text-secondary-accent{color:var(--secondary-accent)}.text-slate-300{color:var(--color-slate-300)}.text-slate-300\/80{color:#cad5e2cc}@supports (color:color-mix(in lab,red,red)){.text-slate-300\/80{color:color-mix(in oklab,var(--color-slate-300) 80%,transparent)}}.text-slate-400{color:var(--color-slate-400)}.text-white{color:var(--color-white)}.text-white\/5{color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.text-white\/5{color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.text-white\/60{color:#fff9}@supports (color:color-mix(in lab,red,red)){.text-white\/60{color:color-mix(in oklab,var(--color-white) 60%,transparent)}}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.text-white\/70{color:color-mix(in oklab,var(--color-white) 70%,transparent)}}.text-white\/80{color:#fffc}@supports (color:color-mix(in lab,red,red)){.text-white\/80{color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.text-white\/85{color:#ffffffd9}@supports (color:color-mix(in lab,red,red)){.text-white\/85{color:color-mix(in oklab,var(--color-white) 85%,transparent)}}.text-white\/90{color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.text-white\/90{color:color-mix(in oklab,var(--color-white) 90%,transparent)}}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.decoration-border{-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border)}.decoration-white\/40{text-decoration-color:#fff6}@supports (color:color-mix(in lab,red,red)){.decoration-white\/40{-webkit-text-decoration-color:color-mix(in oklab,var(--color-white) 40%,transparent);text-decoration-color:color-mix(in oklab,var(--color-white) 40%,transparent)}}.decoration-2{text-decoration-thickness:2px}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-light{accent-color:var(--aw-color-bg-page)}.opacity-30{opacity:.3}.opacity-80{opacity:.8}.opacity-\[0\.08\]{opacity:.08}.opacity-\[0\.10\]{opacity:.1}.opacity-\[0\.12\]{opacity:.12}
39.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-sha
39dow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-primary\/5{--tw-shadow-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.shadow-primary\/5{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--primary) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-primary\/8{--tw-shadow-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.shadow-primary\/8{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--primary) 8%, transparent) var(--tw-sha
39dow-alpha), transparent)}}.shadow-primary\/10{--tw-shadow-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.shadow-primary\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--primary) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-black\/5{--tw-ring-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.ring-black\/5{--tw-ring-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.ring-border\/50{--tw-ring-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.ring-border\/50{--tw-ring-color:color-mix(in oklab, var(--border) 50%, transparent)}}.ring-primary\/5{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.ring-primary\/5{--tw-ring-color:color-mix(in oklab, var(--primary) 5%, transparent)}}.ring-primary\/10{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.ring-primary\/10{--tw-ring-color:color-mix(in oklab, var(--primary) 10%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,)}.blur-2xl{--tw-blur:blur(var(--blur-2xl));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,)}.blur-3xl{--tw-blur:blur(var(--blur-3xl));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,)}.blur-\[50px\]{--tw-blur:blur(50px);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,)}.blur-\[60px\]{--tw-blur:blur(60px);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,)}.blur-\[80px\]{--tw-blur:blur(80px);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,)}.blur-\[100px\]{--tw-blur:blur(100px);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,)}.blur-xl{--tw-blur:blur(var(--blur-xl));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,)}.drop-shadow-xl{--tw-drop-shadow-size:drop-shadow(0 9px 7px var(--tw-drop-shadow-color,#0000001a));--tw-drop-shadow:drop-shadow(var(--drop-shadow-xl));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,)}.grayscale{--tw-grayscale:grayscale(100%);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,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}
39.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.prose-slate{--tw-prose-body:oklch(37.2% .044 257.287);--tw-prose-headings:oklch(20.8% .042 265.755);--tw-prose-lead:oklch(44.6% .043 257.281);--tw-prose-links:oklch(20.8% .042 265.755);--tw-prose-bold:oklch(20.8% .042 265.755);--tw-prose-counters:oklch(55.4% .046 257.417);--tw-prose-bullets:oklch(86.9% .022 252.894);--tw-prose-hr:oklch(92.9% .013 255.508);--tw-prose-quotes:oklch(20.8% .042 265.755);--tw-prose-quote-borders:oklch(92.9% .013 255.508);--tw-prose-captions:oklch(55.4% .046 257.417);--tw-prose-kbd:oklch(20.8% .042 265.755);--tw-prose-kbd-shadows:oklab(20.8% -.00310889 -.0418848/.1);--tw-prose-code:oklch(20.8% .042 265.755);--tw-prose-pre-code:oklch(92.9% .013 255.508);--tw-prose-pre-bg:oklch(27.9% .041 260.031);--tw-prose-th-borders:oklch(86.9% .022 252.894);--tw-prose-td-borders:oklch(92.9% .013 255.508);--tw-prose-invert-body:oklch(86.9% .022 252.894);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.4% .04 256.788);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.4% .04 256.788);--tw-prose-invert-bullets:oklch(44.6% .043 257.281);--tw-prose-invert-hr:oklch(37.2% .044 257.287);--tw-prose-invert-quotes:oklch(96.8% .007 247.896);--tw-prose-invert-quote-borders:oklch(37.2% .044 257.287);--tw-prose-invert-captions:oklch(70.4% .04 256.788);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(86.9% .022 252.894);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .043 257.281);--tw-prose-invert-td-borders:oklch(37.2% .044 257.287)}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.paused{animation-play-state:paused}.running{animation-play-state:running}@media(hover:hover){.group-hover\:scale-125:is(:where(.group):hover *){--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\:scale-\[1\.02\]:is(:where(.group):hover *){scale:1.02}.group-hover\:text-primary:is(:where(.group):hover *){color:var(--primary)}.group-hover\:text-secondary-accent:is(:where(.group):hover *){color:var(--secondary-accent)}.group-hover\:shadow-lg:is(:where(.group):hover *){--tw-shadow:0 10px 15px -3px var(--tw-sha
39dow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-hover\:shadow-primary\/15:is(:where(.group):hover *){--tw-shadow-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.group-hover\:shadow-primary\/15:is(:where(.group):hover *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--primary) 15%, transparent) var(--tw-shadow-alpha), transparent)}}}.placeholder\:text-slate-400::placeholder{color:var(--color-slate-400)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:right-4:after{content:var(--tw-content);right:calc(var(--spacing) * 4)}.after\:bottom-1:after{content:var(--tw-content);bottom:calc(var(--spacing) * 1)}.after\:left-4:after{content:var(--tw-content);left:calc(var(--spacing) * 4)}.after\:h-px:after{content:var(--tw-content);height:1px}.after\:scale-x-0:after{content:var(--tw-content);--tw-scale-x:0%;scale:var(--tw-scale-x) var(--tw-scale-y)}.after\:bg-primary:after{content:var(--tw-content);background-color:var(--primary)}.after\:transition-transform:after{content:var(--tw-content);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\:duration-200:after{content:var(--tw-content);--tw-duration:.2s;transition-duration:.2s}.first\:rounded-t:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.first\:rounded-t-lg:first-child{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.first\:pt-0:first-child{padding-top:calc(var(--spacing) * 0)}.first\:pt-2:first-child{padding-top:calc(var(--spacing) * 2)}.last\:rounded-b:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.last\:rounded-b-lg:last-child{border-bottom-right-radius:var(--radius);border-bottom-left-radius:var(--radius)}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.last\:pb-0:last-child{padding-bottom:calc(var(--spacing) * 0)}@media(hover:hover){.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:border-accent:hover{border-color:var(--accent)}.hover\:border-primary:hover,.hover\:border-primary\/20:hover{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/20:hover{border-color:color-mix(in oklab,var(--primary) 20%,transparent)}}.hover\:border-primary\/30:hover{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/30:hover{border-color:color-mix(in oklab,var(--primary) 30%,transparent)}}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-primary-accent:hover{background-color:var(--primary-accent)}.hover\:bg-primary\/5:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/5:hover{background-color:color-mix(in oklab,var(--primary) 5%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary) 90%,transparent)}}.hover\:bg-section-light:hover{background-color:var(--aw-color-bg-section-light)}.hover\:bg-white\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/10:hover{background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.hover\:bg-white\/90:hover{background-color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/90:hover{background-color:color-mix(in oklab,var(--color-white) 90%,transparent)}}.hover\:text-black:hover{color:var(--color-black)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}.hover\:text-primary:hover{color:var(--primary)}.hover\:text-primary-accent:hover{color:var(--primary-accent)}.hover\:text-secondary-accent:hover{color:var(--secondary-accent)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}.hover\:decoration-accent:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.hover\:decoration-white\/80:hover{text-decoration-color:#fffc}@supports (color:color-mix(in lab,red,red)){.hover\:decoration-white\/80:hover{-webkit-text-decoration-color:color-mix(in oklab,var(--color-white) 80%,transparent);text-decoration-color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-sha
39dow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-primary\/12:hover{--tw-shadow-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-primary\/12:hover{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--primary) 12%, transparent) var(--tw-shadow-alpha), transparent)}}.hover\:after\:scale-x-100:hover:after{content:var(--tw-content);--tw-scale-x:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}}.focus\:border-primary-accent:focus{border-color:var(--primary-accent)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-sha
39dow)}.focus\:ring-4:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-gray-200:focus{--tw-ring-color:var(--color-gray-200)}.focus\:ring-primary-accent\/50:focus{--tw-ring-color:var(--primary-accent)}@supports (color:color-mix(in lab,red,red)){.focus\:ring-primary-accent\/50:focus{--tw-ring-color:color-mix(in oklab, var(--primary-accent) 50%, transparent)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-primary\/50:focus-visible{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-primary\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--primary) 50%, transparent)}}.focus-visible\:outline:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-accent:focus-visible{outline-color:var(--accent)}@media(prefers-reduced-motion:no-preference){.motion-safe\:scroll-smooth{scroll-behavior:smooth}}@media(min-width:40rem){.sm\:mx-auto{margin-inline:auto}.sm\:mt-1{margin-top:calc(var(--spacing) * 1)}.sm\:mt-16{margin-top:calc(var(--spacing) * 16)}.sm\:mb-0{margin-bottom:calc(var(--spacing) * 0)}.sm\:hidden{display:none}.sm\:inline{display:inline}.sm\:h-5{height:calc(var(--spacing) * 5)}.sm\:h-28{height:calc(var(--spacing) * 28)}.sm\:w-5{width:calc(var(--spacing) * 5)}.sm\:w-28{width:calc(var(--spacing) * 28)}.sm\:w-auto{width:auto}.sm\:max-w-md{max-width:var(--container-md)}.sm\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-center{justify-content:center}.sm\:gap-3{gap:calc(var(--spacing) * 3)}.sm\:gap-6{gap:calc(var(--spacing) * 6)}.sm\:gap-8{gap:calc(var(--spacing) * 8)}.sm\:gap-x-4{column-gap:calc(var(--spacing) * 4)}.sm\:rounded-2xl{border-radius:calc(var(--radius) + .5rem)}.sm\:rounded-md{border-radius:calc(var(--radius) - .125rem)}.sm\:px-3{padding-inline:calc(var(--spacing) * 3)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:px-8{padding-inline:calc(var(--spacing) * 8)}.sm\:py-6{padding-block:calc(var(--spacing) * 6)}.sm\:py-16{padding-block:calc(var(--spacing) * 16)}.sm\:py-20{padding-block:calc(var(--spacing) * 20)}.sm\:py-24{padding-block:calc(var(--spacing) * 24)}.sm\:pt-20{padding-top:calc(var(--spacing) * 20)}.sm\:pt-24{padding-top:calc(var(--spacing) * 24)}.sm\:pt-32{padding-top:calc(var(--spacing) * 32)}.sm\:pb-14{padding-bottom:calc(var(--spacing) * 14)}.sm\:pb-16{padding-bottom:calc(var(--spacing) * 16)}.sm\:pb-20{padding-bottom:calc(var(--spacing) * 20)}.sm\:pl-4{padding-left:calc(var(--spacing) * 4)}.sm\:text-center{text-align:center}.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.sm\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.sm\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.sm\:text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.sm\:text-\[11px\]{font-size:11px}.sm\:leading-9{--tw-leading:calc(var(--spacing) * 9);line-height:calc(var(--spacing) * 9)}.sm\:leading-none{--tw-leading:1;line-height:1}.sm\:whitespace-nowrap{white-space:nowrap}}@media(min-width:48rem){.md\:absolute{position:absolute}.md\:order-1{order:1}.md\:col-span-3{grid-column:span 3/span 3}.md\:-mx-4{margin-inline:calc(var(--spacing) * -4)}.md\:-mx-8{margin-inline:calc(var(--spacing) * -8)}.md\:mx-5{margin-inline:calc(var(--spacing) * 5)}.md\:mx-auto{margin-inline:auto}
39.md\:-mt-\[76px\]{margin-top:-76px}.md\:mt-0{margin-top:calc(var(--spacing) * 0)}.md\:mt-3{margin-top:calc(var(--spacing) * 3)}.md\:mb-0{margin-bottom:calc(var(--spacing) * 0)}.md\:mb-12{margin-bottom:calc(var(--spacing) * 12)}.md\:mb-16{margin-bottom:calc(var(--spacing) * 16)}.md\:mb-20{margin-bottom:calc(var(--spacing) * 20)}.md\:ml-4{margin-left:calc(var(--spacing) * 4)}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:inline{display:inline}.md\:h-64{height:calc(var(--spacing) * 64)}.md\:h-72{height:calc(var(--spacing) * 72)}.md\:h-\[60px\]{height:60px}.md\:h-auto{height:auto}.md\:h-full{height:100%}.md\:w-auto{width:auto}.md\:max-w-none{max-width:none}.md\:max-w-sm{max-width:var(--container-sm)}.md\:min-w-\[200px\]{min-width:200px}.md\:basis-1\/2{flex-basis:50%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:flex-row-reverse{flex-direction:row-reverse}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:gap-8{gap:calc(var(--spacing) * 8)}.md\:gap-16{gap:calc(var(--spacing) * 16)}:where(.md\:space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 0) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 0) * calc(1 - var(--tw-space-y-reverse)))}.md\:self-center{align-self:center}.md\:overflow-visible{overflow:visible}.md\:border{border-style:var(--tw-border-style);border-width:1px}.md\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.md\:border-border\/50{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.md\:border-border\/50{border-color:color-mix(in oklab,var(--border) 50%,transparent)}}.md\:bg-background\/90{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.md\:bg-background\/90{background-color:color-mix(in oklab,var(--background) 90%,transparent)}}.md\:bg-white\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.md\:bg-white\/90{background-color:color-mix(in oklab,var(--color-white) 90%,transparent)}}.md\:object-cover{object-fit:cover}.md\:px-3{padding-inline:calc(var(--spacing) * 3)}.md\:px-4{padding-inline:calc(var(--spacing) * 4)}.md\:px-6{padding-inline:calc(var(--spacing) * 6)}.md\:px-8{padding-inline:calc(var(--spacing) * 8)}.md\:px-24{padding-inline:calc(var(--spacing) * 24)}.md\:py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.md\:py-4{padding-block:calc(var(--spacing) * 4)}.md\:py-8{padding-block:calc(var(--spacing) * 8)}.md\:py-12{padding-block:calc(var(--spacing) * 12)}.md\:py-14{padding-block:calc(var(--spacing) * 14)}.md\:py-16{padding-block:calc(var(--spacing) * 16)}.md\:py-20{padding-block:calc(var(--spacing) * 20)}.md\:py-24{padding-block:calc(var(--spacing) * 24)}.md\:pt-0{padding-top:calc(var(--spacing) * 0)}.md\:pt-4{padding-top:calc(var(--spacing) * 4)}.md\:pt-\[76px\]{padding-top:76px}.md\:pr-16{padding-right:calc(var(--spacing) * 16)}.md\:pb-16{padding-bottom:calc(var(--spacing) * 16)}.md\:pb-20{padding-bottom:calc(var(--spacing) * 20)}.md\:pb-\[75\%\]{padding-bottom:75%}.md\:pl-0{padding-left:calc(var(--spacing) * 0)}.md\:text-center{text-align:center}.md\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.md\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.md\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.md\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.md\:text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.md\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.md\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.md\:tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}
39.md\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.md\:ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.md\:shadow-primary\/5{--tw-shadow-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.md\:shadow-primary\/5{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--primary) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.md\:ring-border\/10{--tw-ring-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.md\:ring-border\/10{--tw-ring-color:color-mix(in oklab, var(--border) 10%, transparent)}}.md\:backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.md\:backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.md\:last\:border-none:last-child{--tw-border-style:none;border-style:none}@media(hover:hover){.md\:hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}}}@media(min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-4{grid-column:span 4/span 4}.lg\:m-0{margin:calc(var(--spacing) * 0)}.lg\:prose-lg{font-size:1.125rem;line-height:1.77778}.lg\:prose-lg :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em}.lg\:prose-lg :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.09091em;margin-bottom:1.09091em;font-size:1.22222em;line-height:1.45455}.lg\:prose-lg :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.66667em;margin-bottom:1.66667em;padding-inline-start:1em}.lg\:prose-lg :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:.833333em;font-size:2.66667em;line-height:1}.lg\:prose-lg :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.86667em;margin-bottom:1.06667em;font-size:1.66667em;line-height:1.33333}.lg\:prose-lg :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.66667em;margin-bottom:.666667em;font-size:1.33333em;line-height:1.5}.lg\:prose-lg :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:.444444em;line-height:1.55556}.lg\:prose-lg :where(img):not(:where([class~=not-prose],[class~=not-prose] *)),.lg\:prose-lg :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:1.77778em}.lg\:prose-lg :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.lg\:prose-lg :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:1.77778em}.lg\:prose-lg :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.222222em;padding-inline-end:.444444em;padding-bottom:.222222em;border-radius:.3125rem;padding-inline-start:.444444em;font-size:.888889em}.lg\:prose-lg :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.888889em}.lg\:prose-lg :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.866667em}.lg\:prose-lg :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.lg\:prose-lg :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:1em;padding-inline-end:1.5em;padding-bottom:1em;border-radius:.375rem;margin-top:2em;margin-bottom:2em;padding-inline-start:1.5em;font-size:.888889em;line-height:1.75}.lg\:prose-lg :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)),.lg\:prose-lg :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em;padding-inline-start:1.55556em}.lg\:prose-lg :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.666667em;margin-bottom:.666667em}.lg\:prose-lg :where(ol>
39li):not(:where([class~=not-prose],[class~=not-prose] *)),.lg\:prose-lg :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.444444em}.lg\:prose-lg :where(.lg\:prose-lg>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.888889em;margin-bottom:.888889em}.lg\:prose-lg :where(.lg\:prose-lg>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em}.lg\:prose-lg :where(.lg\:prose-lg>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.33333em}.lg\:prose-lg :where(.lg\:prose-lg>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em}.lg\:prose-lg :where(.lg\:prose-lg>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.33333em}.lg\:prose-lg :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.888889em;margin-bottom:.888889em}.lg\:prose-lg :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em}.lg\:prose-lg :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em}.lg\:prose-lg :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.666667em;padding-inline-start:1.55556em}.lg\:prose-lg :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:3.11111em;margin-bottom:3.11111em}.lg\:prose-lg :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.lg\:prose-lg :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.lg\:prose-lg :where(h3+*):not
39(:where([class~=not-prose],[class~=not-prose] *)),.lg\:prose-lg :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.lg\:prose-lg :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.888889em;line-height:1.5}.lg\:prose-lg :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.lg\:prose-lg :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.lg\:prose-lg :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.lg\:prose-lg :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.75em;padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.lg\:prose-lg :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.lg\:prose-lg :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.lg\:prose-lg :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:1.77778em}.lg\:prose-lg :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.lg\:prose-lg :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1em;font-size:.888889em;line-height:1.5}.lg\:prose-lg :where(.lg\:prose-lg>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.lg\:prose-lg :where(.lg\:prose-lg>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.lg\:prose-xl{font-size:1.25rem;line-height:1.8}.lg\:prose-xl :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.2em;margin-bottom:1.2em}.lg\:prose-xl :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1em;margin-bottom:1em;font-size:1.2em;line-height:1.5}.lg\:prose-xl :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1.06667em}.lg\:prose-xl :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:.857143em;font-size:2.8em;line-height:1}.lg\:prose-xl :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.55556em;margin-bottom:.888889em;font-size:1.8em;line-height:1.11111}.lg\:prose-xl :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.6em;margin-bottom:.666667em;font-size:1.5em;line-height:1.33333}.lg\:prose-xl :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.8em;margin-bottom:.6em;line-height:1.6}.lg\:prose-xl :where(img):not(:where([class~=not-prose],[class~=not-prose] *)),.lg\:prose-xl :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.lg\:prose-xl :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.lg\:prose-xl :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.lg\:prose-xl :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.25em;padding-inline-end:.4em;padding-bottom:.25em;border-radius:.3125rem;padding-inline-start:.4em;font-size:.9em}.lg\:prose-xl :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.lg\:prose-xl :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.861111em}.lg\:prose-xl :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.lg\:prose-xl :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:1.11111em;padding-inline-end:1.33333em;padding-bottom:1.11111em;border-radius:.5rem;margin-top:2em;margin-bottom:2em;padding-inline-start:1.33333em;font-size:.9em;line-height:1.77778}.lg\:prose-xl :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)),.lg\:prose-xl :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.2em;margin-bottom:1.2em;padding-inline-start:1.6em}.lg\:prose-xl :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6em;margin-bottom:.6em}.lg\:prose-xl :where(ol>
39li):not(:where([class~=not-prose],[class~=not-prose] *)),.lg\:prose-xl :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4em}.lg\:prose-xl :where(.lg\:prose-xl>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.8em;margin-bottom:.8em}.lg\:prose-xl :where(.lg\:prose-xl>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.2em}.lg\:prose-xl :where(.lg\:prose-xl>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.2em}.lg\:prose-xl :where(.lg\:prose-xl>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.2em}.lg\:prose-xl :where(.lg\:prose-xl>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.2em}.lg\:prose-xl :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.8em;margin-bottom:.8em}.lg\:prose-xl :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.2em;margin-bottom:1.2em}.lg\:prose-xl :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.2em}.lg\:prose-xl :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6em;padding-inline-start:1.6em}.lg\:prose-xl :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2.8em;margin-bottom:2.8em}.lg\:prose-xl :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.lg\:prose-xl :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.lg\:prose-xl :where(h3+*):not
39(:where([class~=not-prose],[class~=not-prose] *)),.lg\:prose-xl :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.lg\:prose-xl :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em;line-height:1.55556}.lg\:prose-xl :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.666667em;padding-bottom:.888889em;padding-inline-start:.666667em}.lg\:prose-xl :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.lg\:prose-xl :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.lg\:prose-xl :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.888889em;padding-inline-end:.666667em;padding-bottom:.888889em;padding-inline-start:.666667em}.lg\:prose-xl :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.lg\:prose-xl :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.lg\:prose-xl :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.lg\:prose-xl :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.lg\:prose-xl :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1em;font-size:.9em;line-height:1.55556}.lg\:prose-xl :where(.lg\:prose-xl>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.lg\:prose-xl :where(.lg\:prose-xl>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.lg\:mb-0{margin-bottom:calc(var(--spacing) * 0)}.lg\:flex{display:flex}.lg\:inline{display:inline}.lg\:h-screen{height:100vh}.lg\:w-1\/2{width:50%}.lg\:max-w-2xl{max-width:var(--container-2xl)}.lg\:max-w-6xl{max-width:var(--container-6xl)}.lg\:max-w-7xl{max-width:var(--container-7xl)}.lg\:max-w-md{max-width:var(--container-md)}.lg\:max-w-none{max-width:none}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:justify-start{justify-content:flex-start}.lg\:gap-8{gap:calc(var(--spacing) * 8)}.lg\:gap-x-16{column-gap:calc(var(--spacing) * 16)}.lg\:px-8{padding-inline:calc(var(--spacing) * 8)}.lg\:py-0{padding-block:calc(var(--spacing) * 0)}.lg\:py-8{padding-block:calc(var(--spacing) * 8)}.lg\:py-20{padding-block:calc(var(--spacing) * 20)}.lg\:py-28{padding-block:calc(var(--spacing) * 28)}.lg\:pt-12{padding-top:calc(var(--spacing) * 12)}.lg\:pt-36{padding-top:calc(var(--spacing) * 36)}.lg\:pb-\[56\.25\%\]{padding-bottom:56.25%}.lg\:text-left{text-align:left}.lg\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.lg\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.lg\:text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.lg\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.lg\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media(min-width:80rem){.xl\:text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}}@media(min-width:96rem){.\32xl\:text-\[20px\]{font-size:20px}}.dark\:border:where(.dark,.dark *){border-style:var(--tw-border-style);border-width:1px}.dark\:border-blue-700:where(.dark,.dark *){border-color:var(--color-blue-700)}.dark\:border-dark-border:where(.dark,.dark *){border-color:var(--aw-color-dark-border)}.dark\:border-primary-accent:where(.dark,.dark *){border-color:var(--primary-accent)}.dark\:border-slate-600:where(.dark,.dark *){border-color:var(--color-slate-600)}.dark\:border-slate-700:where(.dark,.dark *){border-color:var(--color-slate-700)}.dark\:border-slate-800:where(.dark,.dark *){border-color:var(--color-slate-800)}.dark\:bg-blue-700:where(.dark,.dark *){background-color:var(--color-blue-700)}.dark\:bg-dark-border:where(.dark,.dark *){background-color:var(--aw-color-dark-border)}.dark\:bg-dark-surface:where(.dark,.dark *){background-color:var(--aw-color-dark-surface)}.dark\:bg-gray-800:where(.dark,.dark *){background-color:var(--color-gray-800)}.dark\:bg-primary-accent:where(.dark,.dark *){background-color:var(--primary-accent)}.dark\:bg-primary\/15:where(.dark,.dark *){background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-primary\/15:where(.dark,.dark *){background-color:color-mix(in oklab,var(--primary) 15%,transparent)}}.dark\:bg-slate-500:where(.dark,.dark *){background-color:var(--color-slate-500)}.dark\:bg-slate-700:where(.dark,.dark *){background-color:var(--color-slate-700)}.dark\:bg-slate-800:where(.dark,.dark *){background-color:var(--color-slate-800)}.dark\:bg-slate-900:where(.dark,.dark *){background-color:var(--color-slate-900)}.dark\:text-blue-200:where(.dark,.dark *){color:var(--color-blue-200)}.dark\:text-blue-600:where(.dark,.dark *){color:var(--color-blue-600)}.dark\:text-gray-200:where(.dark,.dark *){color:var(--color-gray-200)}.dark\:text-gray-300:where(.dark,.dark *){color:var(--color-gray-300)}.dark\:text-gray-400:where(.dark,.dark *){color:var(--color-gray-400)}.dark\:text-primary-accent:where(.dark,.dark *){color:var(--primary-accent)}.dark\:text-slate-200:where(.dark,.dark *){color:var(--color-slate-200)}.dark\:text-slate-300:where(.dark,.dark *){color:var(--color-slate-300)}.dark\:text-slate-400:where(.dark,.dark *){color:var(--color-slate-400)}.dark\:text-slate-500:where(.dark,.dark *){color:var(--color-slate-500)}.dark\:text-slate-600:where(.dark,.dark *){color:var(--color-slate-600)}.dark\:text-white:where(.dark,.dark *){color:var(--color-white)}.dark\:shadow-none:where(.dark,.dark *){--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-sha
39dow)}.dark\:prose-invert:where(.dark,.dark *){--tw-prose-body:var(--tw-prose-invert-body);--tw-prose-headings:var(--tw-prose-invert-headings);--tw-prose-lead:var(--tw-prose-invert-lead);--tw-prose-links:var(--tw-prose-invert-links);--tw-prose-bold:var(--tw-prose-invert-bold);--tw-prose-counters:var(--tw-prose-invert-counters);--tw-prose-bullets:var(--tw-prose-invert-bullets);--tw-prose-hr:var(--tw-prose-invert-hr);--tw-prose-quotes:var(--tw-prose-invert-quotes);--tw-prose-quote-borders:var(--tw-prose-invert-quote-borders);--tw-prose-captions:var(--tw-prose-invert-captions);--tw-prose-kbd:var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows:var(--tw-prose-invert-kbd-shadows);--tw-prose-code:var(--tw-prose-invert-code);--tw-prose-pre-code:var(--tw-prose-invert-pre-code);--tw-prose-pre-bg:var(--tw-prose-invert-pre-bg);--tw-prose-th-borders:var(--tw-prose-invert-th-borders);--tw-prose-td-borders:var(--tw-prose-invert-td-borders)}@media(hover:hover){.dark\:hover\:bg-gray-700:where(.dark,.dark *):hover{background-color:var(--color-gray-700)}.dark\:hover\:bg-gray-800:where(.dark,.dark *):hover{background-color:var(--color-gray-800)}.dark\:hover\:bg-primary\/10:where(.dark,.dark *):hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-primary\/10:where(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--primary) 10%,transparent)}}.dark\:hover\:text-blue-700:where(.dark,.dark *):hover{color:var(--color-blue-700)}.dark\:hover\:text-gray-200:where(.dark,.dark *):hover{color:var(--color-gray-200)}.dark\:hover\:text-primary-accent:where(.dark,.dark *):hover{color:var(--primary-accent)}.dark\:hover\:text-slate-300:where(.dark,.dark *):hover{color:var(--color-slate-300)}.dark\:hover\:text-white:where(.dark,.dark *):hover{color:var(--color-white)}}.dark\:focus\:ring-gray-700:where(.dark,.dark *):focus{--tw-ring-color:var(--color-gray-700)}@media(min-width:48rem){.dark\:md\:border-slate-500:where(.dark,.dark *){border-color:var(--color-slate-500)}.dark\:md\:bg-dark-surface\/90:where(.dark,.dark *){background-color:var(--aw-color-dark-surface)}@supports (color:color-mix(in lab,red,red)){.dark\:md\:bg-dark-surface\/90:where(.dark,.dark *){background-color:color-mix(in oklab,var(--aw-color-dark-surface) 90%,transparent)}}}.prose-headings\:font-heading :where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *)){font-family:var(--aw-font-heading)}.prose-headings\:font-bold :where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *)){--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.prose-headings\:tracking-tighter :where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *)){--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.dark\:prose-headings\:text-slate-300:where(.dark,.dark *) :where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--color-slate-300)}.prose-p\:text-body :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:clamp(1rem,.95rem + .25vw,1.125rem)}.prose-a\:text-blue-600 :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--color-blue-600)}.prose-a\:text-primary :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--primary)}.dark\:prose-a\:text-blue-400:where(.dark,.dark *) :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--color-blue-400)}.dark\:prose-a\:text-primary-accent:where(.dark,.dark *) :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--primary-accent)}.prose-img\:rounded-2xl :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:calc(var(--radius) + .5rem)}.prose-img\:rounded-md :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:calc(var(--radius) - .125rem)}.prose-img\:shadow-lg :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){--tw-shadow:0 10px 15px -3px var(--tw-sha
39dow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.prose-img\:shadow-xl :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.prose-img\:shadow-primary\/10 :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){--tw-shadow-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.prose-img\:shadow-primary\/10 :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--primary) 10%, transparent) var(--tw-shadow-alpha), transparent)}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--background:#fff;--foreground:#001a2e;--card:#fff;--card-foreground:#001a2e;--popover:#fff;--popover-foreground:#001a2e;--primary:#005073;--primary-foreground:#fff;--primary-accent:#107dac;--secondary:#f1f5f9;--secondary-foreground:#001a2e;--secondary-accent:#005073;--muted:#f8fafc;--muted-foreground:#475569;--accent:#189ad3;--accent-foreground:#fff;--info:var(--color-sky-300);--info-foreground:var(--color-sky-950);--success:var(--color-green-300);--success-foreground:var(--color-green-950);--warning:var(--color-amber-300);--warning-foreground:var(--color-amber-950);--error:var(--color-red-700);--error-foreground:#fff;--border:#e2e8f0;--input:#e2e8f0;--outline:#189ad3;--radius:.5rem;--diagram-primary:var(--primary);--diagram-secondary:var(--primary-accent);--diagram-accent:var(--accent);--diagram-deep:#001a2e;--diagram-body:var(--foreground);--diagram-muted:var(--muted-foreground);--diagram-connector:var(--primary-accent)}@supports (color:color-mix(in lab,red,red)){:root{--diagram-connector:color-mix(in srgb, var(--primary-accent) 40%, transparent)}}:root{--diagram-divider:var(--primary-accent)}@supports (color:color-mix(in lab,red,red)){:root{--diagram-divider:color-mix(in srgb, var(--primary-accent) 20%, transparent)}}.dark{--background:#0c1a2a;--foreground:#e2e8f0;--card:#132238;--card-foreground:#e2e8f0;--popover:#1e3450;--popover-foreground:#e2e8f0;--primary:#189ad3;--primary-foreground:#fff;--primary-accent:#107dac;--secondary:#1e3450;--secondary-foreground:#e2e8f0;--secondary-accent:#189ad3;--muted:#132238;--muted-foreground:#94a3b8;--accent:#1e3450;--accent-foreground:#f1f5f9;--info:var(--color-sky-300);--info-foreground:var(--color-sky-950);--success:var(--color-green-300);--success-foreground:var(--color-green-950);--warning:var(--color-amber-300);--warning-foreground:var(--color-amber-950);--error:var(--color-red-800);--error-foreground:#fff;--border:#1e3450;--input:#1e3450;--outline:#189ad3}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}
39@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@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}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial;--tw-leading:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-border-style:solid}}}[id]{scroll-margin-top:5rem}html{text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-optical-sizing:auto}h1,h2,h3,h4,h5,h6{text-wrap:balance;font-feature-settings:"kern" 1,"liga" 1}p{text-wrap:pretty}.prose-justified p,.prose-justified li{text-align:justify;text-wrap:pretty;-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}@layer components{.eyebrow{font-family:var(--font-sans,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);text-transform:uppercase;letter-spacing:.1em;color:var(--aw-color-secondary)}.section-divider{background:linear-gradient(to right,transparent,var(--aw-color-primary,#005073) 20%,var(--aw-color-secondary,#107dac) 50%,var(--aw-color-primary,#005073) 80%,transparent);opacity:.2;height:1px}.btn{border-radius:var(--radius-lg,.5rem);padding-inline:calc(var(--spacing,.25rem) * 6);padding-block:calc(var(--spacing,.25rem) * 3.5);text-align:center;font-size:var(--text-base,1rem);
39line-height:var(--tw-leading,var(--text-base--line-height, 1.5 ));--tw-leading:var(--leading-snug,1.375);line-height:var(--leading-snug,1.375);--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);justify-content:center;align-items:center;display:inline-flex}@media(min-width:48rem){.btn{padding-inline:calc(var(--spacing,.25rem) * 8)}}.btn{transition:all .2s}.btn:hover{translate:0 -1px}.btn-ghost{--tw-border-style:none;--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);color:var(--aw-color-text-muted);background-color:#0000;border-style:none}.btn-ghost:hover{color:var(--aw-color-text-page)}.btn-primary{background:linear-gradient(135deg,var(--aw-color-primary),var(--aw-color-secondary));border-style:var(--tw-border-style);--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--color-white,#fff);box-shadow:0 4px 14px var(--aw-color-primary);border-width:0}@supports (color:color-mix(in lab,red,red)){.btn-primary{box-shadow:0 4px 14px color-mix(in oklch,var(--aw-color-primary) 25%,transparent)}}.btn-primary:hover{background:linear-gradient(135deg,var(--aw-color-secondary),var(--aw-color-accent));box-shadow:0 6px 20px var(--aw-color-primary)}@supports (color:color-mix(in lab,red,red)){.btn-primary:hover{box-shadow:0 6px 20px color-mix(in oklch,var(--aw-color-primary) 35%,transparent)}}.btn-secondary{border-style:var(--tw-border-style);color:var(--aw-color-primary);border-width:1px;border-color:var(--aw-color-primary);background-color:#0000}.btn-secondary:hover{background:var(--aw-color-primary)}@supports (color:color-mix(in lab,red,red)){.btn-secondary:hover{background:color-mix(in oklch,var(--aw-color-primary) 8%,transparent)}}}
39#header.scroll{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);-webkit-backdrop-filter:blur(12px);background:#faf8f5d9}.dark #header.scroll{-webkit-backdrop-filter:blur(12px);background:#0c1a2ad9}.dropdown:hover .dropdown-menu,.dropdown .dropdown-toggle[aria-expanded=true]+.dropdown-menu{display:block}[data-icon].icon-light>*{stroke-width:1.2px}[data-icon].icon-bold>*{stroke-width:2.4px}[data-aw-toggle-menu] path{transition:all .2s}[data-aw-toggle-menu].expanded g>path:first-child{transform:rotate(-45deg)translateY(15px)translate(-3px)}[data-aw-toggle-menu].expanded g>path:last-child{transform:rotate(45deg)translateY(-8px)translate(14px)}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-leading{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-cyrillic-ext-wght-normal.DzyfIafT.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-cyrillic-wght-normal.BMDVbyM7.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-greek-ext-wght-normal.BWSLJLk6.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-greek-wght-normal.C9H9m1vD.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-vietnamese-wght-normal.C1uRvKPU.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:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-latin-ext-wght-normal.C8iNium2.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:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-latin-wght-normal.BqRLTx4X.woff2) format("woff2-variations");
39unicode-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}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-ext-wght-normal.cHuGMAiY.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-wght-normal.DwHjdM4S.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-greek-wght-normal.ece1310W.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-vietnamese-wght-normal.D-yuW59g.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:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-ext-wght-normal.CxNHBx-q.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:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-wght-normal.D9elroTD.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} 40.icon-card-grid[data-astro-cid-djfg5aqp] .icg-card{display:flex;flex-direction:column;background-color:var(--color-card);border:1px solid var(--color-border);border-radius:.5rem;overflow:hidden;text-decoration:none;color:inherit;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}.icon-card-grid[data-astro-cid-djfg5aqp] a.icg-card:hover,.icon-card-grid[data-astro-cid-djfg5aqp] a.icg-card:focus-visible{border-color:var(--diagram-accent);transform:translateY(-1px);box-shadow:0 4px 12px -4px color-mix(in srgb,var(--diagram-accent) 30%,transparent)}.icon-card-grid[data-astro-cid-djfg5aqp] a.icg-card:focus-visible{outline:2px solid var(--diagram-accent);outline-offset:2px}.icon-card-grid[data-astro-cid-djfg5aqp] .icg-card-inner{padding:1.25rem;display:flex;flex-direction:column;gap:.75rem;flex:1}.icon-card-grid[data-astro-cid-djfg5aqp] .card-icon{width:2.25rem;height:2.25rem;border-radius:.375rem;display:flex;align-items:center;justify-content:center;background-color:color-mix(in srgb,var(--diagram-accent) 12%,transparent);color:var(--diagram-accent);flex-shrink:0}.icon-card-grid[data-astro-cid-djfg5aqp] .icg-card-title{font-family:"Source Serif 4 Variable",Georgia,serif;font-size:1rem;font-weight:600;color:var(--diagram-primary);line-height:1.25;margin:0;transition:color .12s ease}.icon-card-grid[data-astro-cid-djfg5aqp] a.icg-card:hover .icg-card-title,.icon-card-grid[data-astro-cid-djfg5aqp] a.icg-card:focus-visible .icg-card-title{color:var(--diagram-accent)}.icon-card-grid[data-astro-cid-djfg5aqp] .icg-card-body{margin:0;font-family:"Source Sans 3 Variable",ui-sans-serif,system-ui,sans-serif;font-size:.875rem;line-height:1.5;color:var(--diagram-body);text-wrap:pretty} 41.kelvin-field-lines[data-astro-cid-dbe27lhc]{position:absolute;inset:0;pointer-events:none;opacity:var(--opacity)}.kelvin-field-lines[data-astro-cid-dbe27lhc] svg[data-astro-cid-dbe27lhc]{width:100%;height:100%;display:block}.phase-transition[data-astro-cid-nlghyj4s]{position:absolute;inset:0;pointer-events:none;opacity:var(--opacity)}.phase-transition[data-astro-cid-nlghyj4s] svg[data-astro-cid-nlghyj4s]{width:100%;height:100%;display:block}
41.entropy-shear[data-astro-cid-mmv2nw3n]{position:absolute;inset:0;pointer-events:none;opacity:var(--opacity)}.entropy-shear[data-astro-cid-mmv2nw3n] svg[data-astro-cid-mmv2nw3n]{width:100%;height:100%;display:block}.thermal-contours[data-astro-cid-7o3z265a]{position:absolute;inset:0;pointer-events:none;opacity:var(--opacity)}.thermal-contours[data-astro-cid-7o3z265a] svg[data-astro-cid-7o3z265a]{width:100%;height:100%;display:block} 42</style></head> <body class="antialiased text-page bg-light dark:text-slate-300 tracking-tight dark:bg-dark"> <div class="fixed inset-0 z-0 pointer-events-none" aria-hidden="true"> <div class="kelvin-field-lines" aria-hidden="true" data-astro-cid-dbe27lhc style="--opacity: 0.22;"> <svg viewBox="0 0 800 600" preserveAspectRatio="xMidYMid slice" width="100%" height="100%" data-astro-cid-dbe27lhc style="--opacity: 0.22;"> <defs data-astro-cid-dbe27lhc style="--opacity: 0.22;"> <radialGradient id="kfl-falloff" cx="0%" cy="100%" r="100%" data-astro-cid-dbe27lhc style="--opacity: 0.22;"> <stop offset="0%" stop-color="white" stop-opacity="1" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></stop> <stop offset="55%" stop-color="white" stop-opacity="0.7" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></stop> <stop offset="100%" stop-color="white" stop-opacity="0.25" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></stop> </radialGradient> <mask id="kfl-mask" data-astro-cid-dbe27lhc style="--opacity: 0.22;"> <rect width="800" height="600" fill="url(#kfl-falloff)" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></rect> </mask> </defs> <g mask="url(#kfl-mask)" stroke-linecap="round" data-astro-cid-dbe27lhc style="--opacity: 0.22;"> <circle cx="0" cy="600" r="167.35537190082647" fill="none" stroke="var(--color-primary, #1a3a5c)" stroke-width="1.4" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></circle><circle cx="0" cy="600" r="256.6942148760331" fill="none" stroke="var(--color-primary, #1a3a5c)" stroke-width="1.2799999999999998" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></circle><circle cx="0" cy="600" r="348.0165289256198" fill="none" stroke="var(--color-primary, #1a3a5c)" stroke-width="1.16" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></circle><circle cx="0" cy="600" r="441.32231404958674" fill="none" stroke="var(--color-primary, #1a3a5c)" stroke-width="1.04" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></circle><circle cx="0" cy="600" r="536.6115702479339" fill="none" stroke="var(--color-primary, #1a3a5c)" stroke-width="0.9199999999999999" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></circle><circle cx="0" cy="600" r="633.8842975206611" fill="none" stroke="var(--color-primary, #1a3a5c)" stroke-width="0.7999999999999999" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></circle><circle cx="0" cy="600" r="733.1404958677685" fill="none" stroke="var(--color-primary, #1a3a5c)" stroke-width="0.6799999999999999" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></circle><circle cx="0" cy="600" r="834.3801652892562" fill="none" stroke="var(--color-primary, #1a3a5c)" stroke-width="0.5599999999999999" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></circle><circle cx="0" cy="600" r="937.6033057851241" fill="none" stroke="var(--color-primary, #1a3a5c)" stroke-width="0.43999999999999995" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></circle><circle cx="0" cy="600" r="1042.809917355372" fill="none" stroke="var(--color-primary, #1a3a5c)" stroke-width="0.4" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></circle><circle cx="0" cy="600" r="1150" fill="none" stroke="var(--color-primary, #1a3a5c)" stroke-width="0.4" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></circle> <line x1="438.03276444336024" y1="546.2163393567366" x2="437.0578096961191" y2="554.1567085698672" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="417.2784457603596" y1="456.31950869411435" x2="414.67390052470233" y2="463.8836572989089" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="532.6117489757937" y1="534.6035002702791" x2="531.4418032791043" y2="544.1319433260359" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="507.37620755093917" y1="425.2963614140233" x2="504.25075326815045" y2="434.3733397397767" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="459.96589119494337" y1="323.62460988504284" x2="455.02152567580686" y2="331.85341597178314" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="629.1594200899949" y1="522.7489368663239" x2="627.7944834438573" y2="533.8654537647067" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="599.3493780865091" y1="393.62745911682714" x2="595.7030147565889" y2="404.2172
42671635395" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="543.3448922632398" y1="273.52545168924667" x2="537.5764658242472" y2="283.1257254571103" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="463.5936273900031" y1="167.69194862154023" x2="455.95524575730315" y2="175.88311007967494" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="727.6757777859642" y1="510.6526491448708" x2="726.1158501903783" y2="523.3572398858797" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="693.1979573670693" y1="361.3128018025259" x2="689.0306849900177" y2="373.4154395701971" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="628.4240598783833" y1="222.404730369662" x2="621.8315725195347" y2="233.37647181864904" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="536.1850154598068" y1="99.99938412277493" x2="527.4554364510068" y2="109.36071150350031" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="420.5121129644735" y1="-0.5535359411277341" x2="410.0269667975744" y2="6.788242444165656" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="828.1608220637014" y1="498.3146371059199" x2="826.4059035186673" y2="512.607301689555" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="788.92194539262" y1="328.3523894711196" x2="784.233763968437" y2="341.9678569597497" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="715.2033940403741" y1="170.2624459262887" x2="707.7868457616693" y2="182.60565505639912" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="610.2270224419129" y1="30.95409560405085" x2="600.4062460570129" y2="41.4855889073669" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="478.58080176860835" y1="-83.4842181108811" x2="466.7850123308469" y2="-75.22471742742604" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="326.018303572538" y1="-168.0509917732096" x2="312.7630336828229" y2="-162.42446352296406" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="930.6145529232066" y1="485.7349007494712" x2="928.6646434287243" y2="501.6156391757323" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="886.5213421631613" y1="294.74622212260806" x2="881.3122516918468" y2="309.8745193321971" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="803.6828947492121" y1="117.09859835912681" x2="795.4422855506513" y2="130.8132751703606" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="685.7196483363216" y1="-39.44391693463194" x2="674.8076745753216" y2="-27.742257708725212" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="537.7871628431916" y1="-168.03966466600116" x2="524.6807301345677" y2="-158.8624416843844" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="366.35079774469534" y1="-263.06839358825926" x2="351.6227200894563" y2="-256.81669553243086" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="178.90314483858697" y1="-320.37689224907024" x2="163.19710990342435" y2="-317.3239483230455" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="1035.0369703644794" y1="472.9134400755247" x2="1032.892069920549" y2="490.382252344412" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="985.9961476786925" y1="260.4942997569915" x2="980.2661481602465" y2="277.13542668753945" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="893.862562004897" y1="62.91318766817653" x2="884.79789188648" y2="77.99933216053371" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="762.6628931430325" y1="-111.19465349327322" x2="750.6597220059325" y2="-98.32282834477581" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="598.131196188223" y1="-254.21987560648745" x2="583.7141202087367" y2="-244.12493032670903" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="407.45829580807094" y1="-359.91159015395795" x2="391.25741038730797" y2="-353.03472229254675" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="198.97751269927633" y1="-423.65056204484495" x2="181.70087427059744" y2="-420.2923237262178" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="1141.4280743875204" y1="459.8502550840804" x2="1139.0881829941416" y2="478.9071411955938" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="1087.3463619392144" y1="225.59662237426988" x2="1081.095453373637" y2="243.75057902577677" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="985.7423958074291" y1="7.706213853437703" x2="975.8536647691561" y2="24.16382602691826" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="841.0567568620462" y1="-184.29811407187321" x2="827.9623883488463" y2="-170.25612300078512" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="659.6129018037029" y1="-342.02485093234054" x2="643.8851825533543" y2="-331.01218335440046" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="449.34079776266503" y1="-458.58058147030624" x2="431.66710457637816" y2="-451.0785438033122" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line><line x1="219.43034468302665" y1="-528.8712609648135" x2="200.58310276083148" y2="-525.2077282535838" stroke="var(--color-accent, #36c5d8)" stroke-width="0.8" data-astro-cid-dbe27lhc style="--opacity: 0.22;"></line> </g> </svg> </div> </div> <div class="hidden md:block relative overflow-hidden text-xs px-4 py-2 text-white/85 whitespace-nowrap text-ellipsis not-prose font-sans tracking-wide" style="background-color: var(--aw-color-deep, #001a2e);"> <!-- Two-tone split --> <div class="absolute inset-0 bg-[var(--aw-color-primary)] opacity-30" style="clip-path: polygon(55% 0, 100% 0, 100% 100%, 40% 100%);" aria-hidden="true"></div> <!-- Crosshatch texture --> <div class="absolute inset-0 pointer-events-none" style="background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 40L40 0' fill='none' stroke='%23ffffff' stroke-width='0.5'/%3E%3Cpath d='M0 0L40 40' fill='none' stroke='%23ffffff' stroke-width='0.5'/%3E%3C/svg%3E"); background-size: 40px 40px; opacity: 0.09; filter: blur(0.5px);" aria-hidden="true"></div> <!-- Glowing orb --> <div class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[400px] h-[200px] rounded-full bg-[var(--aw-color-accent)] opacity-[0.12] blur-[60px]" aria-hidden="true"></div> <div class="absolute -top-8 right-1/4 w-[300px] h-[150px] rounded-full bg-[var(--aw-color-secondary)] opacity-[0.10] blur-[50px]" aria-hidden="true"></div> <span class="relative z-10"> <span class="font-semibold"> <svg width="1em" height="1em" class="w-4.5 h-4.5 inline-block align-text-bottom opacity-80" data-icon="tabler:info-square"> <symbol id="ai:tabler:info-square" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M12 9h.01M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><path d="M11 12h1v4h1"/></g></symbol><use href="#ai:tabler:info-square"></use> </svg></span> 43Now available: "Agentic AI in Law and Finance" — the open textbook on agentic systems for regulated industries. 44<strong><a class="text-white underline decoration-white/40 hover:decoration-white/80 underline-offset-2 transition-all duration-200" href="https://ai4lf.com/">Learn more →</a></strong> </span> </div> <header class="sticky top-0 z-40 flex-none mx-auto w-full border-b border-transparent transition-all duration-300 ease-out not-prose" id="header"> <div class="py-3 px-4 md:py-3.5 md:px-6 mx-auto w-full md:flex md:justify-between max-w-7xl"> <div class="flex justify-between"> <a class="flex items-center" href="/" aria-label="KAOS â Kelvin Agentic Operating System"> <span class="inline-flex items-center gap-2.5 self-center font-heading whitespace-nowrap">
44 <!-- Kelvin-sign monogram. SVG so it's themeable + crisp + 0 HTTP. --> <svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="KAOS" class="kelvin-mark shrink-0"> <defs> <linearGradient id="kelvin-mark-gradient" x1="0" y1="0" x2="32" y2="32" gradientUnits="userSpaceOnUse"> <stop offset="0%" stop-color="var(--color-primary)"></stop> <stop offset="100%" stop-color="var(--color-primary-accent)"></stop> </linearGradient> </defs> <!-- Rounded-square field --> <rect x="0.5" y="0.5" width="31" height="31" rx="7" fill="url(#kelvin-mark-gradient)" stroke="var(--color-primary)" stroke-width="0.5"></rect> <!-- The Kelvin sign â U+212A. Rendered as a real glyph so it 45 tracks the brand serif. text-rendering optimizes the K's 46 legibility at every size from 14px favicon to hero. --> <text x="16" y="22.5" text-anchor="middle" fill="#ffffff" font-family="Source Serif 4 Variable, Georgia, serif" font-size="22" font-weight="600" letter-spacing="-0.04em" style="text-rendering: geometricPrecision;">K</text> <!-- Subtle inner highlight for depth --> <rect x="1" y="1" width="30" height="14" rx="6.5" fill="#ffffff" opacity="0.06"></rect> </svg> <span class="text-xl md:text-2xl font-semibold tracking-tight text-primary" style="letter-spacing: -0.02em;">KAOS</span> </span> </a> <div class="flex items-center md:hidden"> <button type="button" class="ml-1.5 text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center transition" aria-label="Toggle Menu" data-aw-toggle-menu> <svg width="1em" height="1em" class="w-6 h-6" data-icon="tabler:menu"> <symbol id="ai:tabler:menu" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 8h16M4 16h16"/></symbol><use href="#ai:tabler:menu"></use> </svg> </button> </div> </div> <nav class="items-center w-full md:w-auto hidden md:flex dark:text-slate-200 h-[calc(100vh-72px)] md:h-auto overflow-y-auto md:overflow-visible md:mx-5" aria-label="Main navigation"> <ul class="flex flex-col pt-8 md:pt-0 md:flex-row md:self-center w-full md:w-auto text-xl md:text-base font-sans"> <li class="dropdown"> <button class="dropdown-toggle relative font-medium text-foreground/80 hover:text-foreground px-4 py-3 flex items-center transition-colors duration-200" aria-expanded="false" aria-haspopup="true"> Modules <svg width="1em" height="1em" class="w-3.5 h-3.5 ml-0.5 hidden md:inline" data-icon="tabler:chevron-down"> <symbol id="ai:tabler:chevron-down" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m6 9l6 6l6-6"/></symbol><use href="#ai:tabler:chevron-down"></use> </svg> </button> <ul class="dropdown-menu md:backdrop-blur-xl rounded-lg md:absolute pl-4 md:pl-0 md:hidden font-medium md:bg-background/90 dark:md:bg-dark-surface/90 md:min-w-[200px] md:shadow-lg md:shadow-primary/5 md:border md:border-border/50 md:ring-1 md:ring-border/10" role="menu"> <li role="none"> <a role="menuitem" class="first:rounded-t-lg last:rounded-b-lg hover:bg-primary/5 dark:hover:bg-primary/10 py-2 px-5 block whitespace-nowrap text-foreground/80 hover:text-foreground transition-colors duration-150" href="/runtime"> Runtime â kaos-core, content, mcp </a> </li><li role="none"> <a role="menuitem" class="first:rounded-t-lg last:rounded-b-lg hover:bg-primary/5 dark:hover:bg-primary/10 py-2 px-5 block whitespace-nowrap text-foreground/80 hover:text-foreground transition-colors duration-150" href="/extraction"> Extraction â pdf, web, office, tabular, source </a> </li><li role="none"> <a role="menuitem" class="first:rounded-t-lg last:rounded-b-lg hover:bg-primary/5 dark:hover:bg-primary/10 py-2 px-5 block whitespace-nowrap text-foreground/80 hover:text-foreground transition-colors duration-150" href="/llm"> LLM â llm-client, llm-core </a> </li><li role="none"> <a role="menuitem" class="first:rounded-t-lg last:rounded-b-lg hover:bg-primary/5 dark:hover:bg-primary/10 py-2 px-5 block whitespace-nowrap text-foreground
46/80 hover:text-foreground transition-colors duration-150" href="/agentic"> Agentic â kaos-agents </a> </li><li role="none"> <a role="menuitem" class="first:rounded-t-lg last:rounded-b-lg hover:bg-primary/5 dark:hover:bg-primary/10 py-2 px-5 block whitespace-nowrap text-foreground/80 hover:text-foreground transition-colors duration-150" href="/legal-intelligence"> Legal Intelligence â citations, federal data </a> </li><li role="none"> <a role="menuitem" class="first:rounded-t-lg last:rounded-b-lg hover:bg-primary/5 dark:hover:bg-primary/10 py-2 px-5 block whitespace-nowrap text-foreground/80 hover:text-foreground transition-colors duration-150" href="/search-and-retrieval"> Search & Retrieval â nlp-core, transformers </a> </li><li role="none"> <a role="menuitem" class="first:rounded-t-lg last:rounded-b-lg hover:bg-primary/5 dark:hover:bg-primary/10 py-2 px-5 block whitespace-nowrap text-foreground/80 hover:text-foreground transition-colors duration-150" href="/packages"> All packages â </a> </li> </ul> </li><li class="dropdown"> <button class="dropdown-toggle relative font-medium text-foreground/80 hover:text-foreground px-4 py-3 flex items-center transition-colors duration-200" aria-expanded="false" aria-haspopup="true"> Concepts <svg width="1em" height="1em" viewBox="0 0 24 24" class="w-3.5 h-3.5 ml-0.5 hidden md:inline" data-icon="tabler:chevron-down"> <use href="#ai:tabler:chevron-down"></use> </svg> </button> <ul class="dropdown-menu md:backdrop-blur-xl rounded-lg md:absolute pl-4 md:pl-0 md:hidden font-medium md:bg-background/90 dark:md:bg-dark-surface/90 md:min-w-[200px] md:shadow-lg md:shadow-primary/5 md:border md:border-border/50 md:ring-1 md:ring-border/10" role="menu"> <li role="none"> <a role="menuitem" class="first:rounded-t-lg last:rounded-b-lg hover:bg-primary/5 dark:hover:bg-primary/10 py-2 px-5 block whitespace-nowrap text-foreground/80 hover:text-foreground transition-colors duration-150" href="/concepts/mcp-native"> MCP-native architecture </a> </li><li role="none"> <a role="menuitem" class="first:rounded-t-lg last:rounded-b-lg hover:bg-primary/5 dark:hover:bg-primary/10 py-2 px-5 block whitespace-nowrap text-foreground/80 hover:text-foreground transition-colors duration-150" href="/concepts/document-ast"> The ContentDocument AST </a> </li><li role="none"> <a role="menuitem" class="first:rounded-t-lg last:rounded-b-lg hover:bg-primary/5 dark:hover:bg-primary/10 py-2 px-5 block whitespace-nowrap text-foreground/80 hover:text-foreground transition-colors duration-150" href="/concepts/provenance"> Provenance & grounding </a> </li><li role="none"> <a role="menuitem" class="first:rounded-t-lg last:rounded-b-lg hover:bg-primary/5 dark:hover:bg-primary/10 py-2 px-5 block whitespace-nowrap text-foreground/80 hover:text-foreground transition-colors duration-150" href="/concepts/recipes"> Recipes â planning + extraction </a> </li><li role="none"> <a role="menuitem" class="first:rounded-t-lg last:rounded-b-lg hover:bg-primary/5 dark:hover:bg-primary/10 py-2 px-5 block whitespace-nowrap text-foreground/80 hover:text-foreground transition-colors duration-150" href="/concepts/memory"> Memory model </a> </li><li role="none"> <a role="menuitem" class="first:rounded-t-lg last:rounded-b-lg hover:bg-primary/5 dark:hover:bg-primary/10 py-2 px-5 block whitespace-nowrap text-foreground/80 hover:text-foreground transition-colors duration-150" href="/concepts/dependency-layering"> Dependency layering </a> </li> </ul> </li><li class> <a class="relative font-medium text-foreground/80 hover:text-foreground px-4 py-3 flex items-center transition-colors duration-200 after:absolute after:bottom-1 after:left-4 after:right-4 after:h-px after:bg-primary after:scale-x-0 after:transition-transform after:duration-200 hover:after:scale-x-100" href="/quickstart"> Quickstart </a> </li><li class> <a class="relative font-medium text-foreground/80 hover:text-foreground px-4 py-3 flex items-center transition-colors duration-200 after:absolute after:bottom-1 after:left-4 after:right-4 after:h-px after:bg-primary after:scale-x-0 after:transition-transform after:duration-200 hover:after:scale-x-100" href="/examples">
46 Examples </a> </li><li class> <a class="relative font-medium text-foreground/80 hover:text-foreground px-4 py-3 flex items-center transition-colors duration-200 after:absolute after:bottom-1 after:left-4 after:right-4 after:h-px after:bg-primary after:scale-x-0 after:transition-transform after:duration-200 hover:after:scale-x-100" href="/compare"> Compare </a> </li><li class> <a class="relative font-medium text-foreground/80 hover:text-foreground px-4 py-3 flex items-center transition-colors duration-200 after:absolute after:bottom-1 after:left-4 after:right-4 after:h-px after:bg-primary after:scale-x-0 after:transition-transform after:duration-200 hover:after:scale-x-100" href="/security"> Security </a> </li><li class> <a class="relative font-medium text-foreground/80 hover:text-foreground px-4 py-3 flex items-center transition-colors duration-200 after:absolute after:bottom-1 after:left-4 after:right-4 after:h-px after:bg-primary after:scale-x-0 after:transition-transform after:duration-200 hover:after:scale-x-100" href="/blog"> Blog </a> </li> </ul> </nav> <div class="md:self-center flex items-center md:mb-0"> <div class="hidden items-center md:flex gap-1"> <a class="text-foreground/50 hover:text-foreground hover:bg-primary/5 dark:hover:bg-primary/10 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary/50 rounded-lg text-sm p-2.5 inline-flex items-center transition-colors duration-200" aria-label="RSS Feed" href="/rss.xml"> <svg width="1em" height="1em" class="w-5 h-5" data-icon="tabler:rss"> <symbol id="ai:tabler:rss" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 19a1 1 0 1 0 2 0a1 1 0 1 0-2 0M4 4a16 16 0 0 1 16 16M4 11a9 9 0 0 1 9 9"/></symbol><use href="#ai:tabler:rss"></use> </svg> </a> <span class="ml-3"> <a class="btn ml-2 py-2.5 px-5.5 md:px-6 font-semibold text-sm" href="https://github.com/273v"> GitHub </a> </span> </div> </div> </div> </header> <main class="relative z-10"> <section class="border-b border-border"> <div class="mx-auto max-w-7xl px-6 pt-16 pb-12 sm:pt-24 sm:pb-16 lg:px-8"> <div class="mx-auto max-w-3xl"> <p class="eyebrow text-secondary-accent mb-3">Surface · Runtime</p> <h1 class="font-heading text-balance text-3xl font-semibold tracking-tight text-primary sm:text-4xl lg:text-5xl"> The shared foundation every KAOS package builds on. </h1> <p class="mt-5 text-lg leading-7 text-muted-foreground">When a diligence associate asks Claude Code to find every change-of-control trigger across a 1,200-document deal room, this is the layer that turns the request into typed tool calls, document handles, and cited answers. The Model Context Protocol (MCP) is the open standard that lets agents call outside tools; KAOS is built on it from the first commit. Three packages â kaos-core, kaos-content, kaos-mcp â supply the type system, the document data model, and the bridge that turns Python code into MCP servers an agent can actually call.</p> <div class="mt-6 max-w-2xl"> <div class="expressive-code"><link rel="stylesheet" href="/_astro/ec.24zey.css">
46<script type="module" src="/_astro/ec.0vx5m.js"></script>
46<figure class="frame is-terminal"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#6F42C1">pip</span><span style="--0:#24292E"> </span><span style="--0:#032F62">install</span><span style="--0:#24292E"> </span><span style="--0:#032F62">kaos-core</span><span style="--0:#24292E"> </span><span style="--0:#032F62">kaos-content</span><span style="--0:#24292E"> </span><span style="--0:#032F62">kaos-mcp</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="pip install kaos-core kaos-content kaos-mcp"><div></div></button></div></figure></div> </div> </div> </div> </section> <section class="mx-auto max-w-7xl px-6 py-12 lg:px-8"> <div class="mx-auto max-w-3xl"> <h2 class="font-heading text-2xl font-semibold text-primary mb-4">Designed for agents from day one</h2> <div class="prose prose-slate max-w-none text-base leading-7 text-foreground"> <p> 47Most legal-AI tooling was written before MCP existed and now wraps an adapter around an older shape. KAOS does the opposite. Tools, resources, prompts, content, sampling, elicitation, roots, and tasks are defined in <code>kaos-core</code> as <strong>protocol-native pydantic models</strong> â the wire format is the type. That choice pushes a small set of opinions (artifact-by-handle, disk-first virtual file system, explicit runtime injection, typed module settings) down to every package, which is why a dozen MCP servers behave consistently when an agent reaches across them. 48</p> <p> 49The document data model lives in <code>kaos-content</code>. PDF, DOCX, HTML, EDGAR filings, XLSX â every extractor downstream produces the same typed Block/Inline tree, with page, bounding box, character offset, and confidence attached to every node. Pandoc-style grammar; Docling-style provenance; Pydantic v2 throughout. 50</p> <p> 51The MCP bridge lives in <code>kaos-mcp</code>. One function call mounts a runtime into the official Python MCP SDK's <code>FastMCP</code> server, exposes 22 resource templates for documents and tables, registers five workflow prompts, and serves them over stdio or streamable HTTP. The unified <code>kaos</code> CLI (<code>doctor</code>, <code>status</code>, <code>setup</code>, <code>serve</code>) runs on top. 52</p> </div> </div> </section> <section class="mx-auto max-w-7xl px-6 py-12 lg:px-8"> <div class="mx-auto max-w-3xl"> <h2 class="font-heading text-2xl font-semibold text-primary mb-2">From a Python tool to an agent call</h2> <p class="text-base text-muted-foreground mb-6"> 53A tool is declared as a typed Python class, serialized into an MCP envelope by the runtime, registered alongside the file system and artifact store, and mounted on a FastMCP server. Claude Code, Cursor, or Codex can then call it like any other tool, with no extra adapter layer. 54</p> </div> <div class="mx-auto max-w-4xl rounded-lg border border-border bg-card p-6"> <figure> <svg viewBox="0 0 900 200" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="KaosTool to MCP wire pipeline" class="w-full h-auto"> <line x1="200" y1="85" x2="280" y2="85" stroke="var(--diagram-connector)" stroke-width="1.5" stroke-dasharray="6 4"></line> <line x1="430" y1="85" x2="510" y2="85" stroke="var(--diagram-connector)" stroke-width="1.5" stroke-dasharray="6 4"></line> <line x1="660" y1="85" x2="740" y2="85" stroke="var(--diagram-connector)" stroke-width="1.5" stroke-dasharray="6 4"></line> <polygon points="278,80 288,85 278,90" fill="var(--diagram-connector)"></polygon> <polygon points="508,80 518,85 508,90" fill="var(--diagram-connector)"></polygon> <polygon points="738,80 748,85 738,90" fill="var(--diagram-connector)"></polygon> <rect x="50" y="40" width="150" height="90" rx="12" fill="#ffffff" stroke="var(--diagram-primary)" stroke-width="1.5"></rect> <text x="125" y="74" text-anchor="middle" fill="var(--diagram-primary)" font-family="Source Serif 4 Variable, Georgia, serif" font-size="20"> KaosTool </text> <text x="125" y="100" text-anchor="middle" fill="var(--diagram-body)" font-family="Source Sans 3 Variable, ui-sans-serif, system-ui, sans-serif" font-size="11"> typed pydantic </text> <text x="125" y="114" text-anchor="middle" fill="var(--diagram-body)" font-family="Source Sans 3 Variable, ui-sans-serif, system-ui, sans-serif" font-size="11"> ToolAnnotations </text> <rect x="290" y="40" width="150" height="90" rx="12" fill="#ffffff" stroke="var(--diagram-secondary)" stroke-width="1.5"></rect> <text x="365" y="74" text-anchor="middle" fill="var(--diagram-primary)" font-family="Source Serif 4 Variable, Georgia, serif" font-size="20"> to_mcp_dict() </text> <text x="365" y="100" text-anchor="middle" fill="var(--diagram-body)" font-family="Source Sans 3 Variable, ui-sans-serif, system-ui, sans-serif" font-size="11"> protocol-native </text> <text x="365" y="114" text-anchor="middle" fill="var(--diagram-body)" font-family="Source Sans 3 Variable, ui-sans-serif, system-ui, sans-serif" font-size="11"> envelope </text> <rect x="520" y="40" width="150" height="90" rx="12" fill="#ffffff" stroke="var(--diagram-primary)" stroke-width="1.5"></rect> <text x="595" y="74" text-anchor="middle" fill="var(--diagram-primary)" font-family="Source Serif 4 Variable, Georgia, serif" font-size="20"> KaosRuntime </text> <text x="595" y="100" text-anchor="middle" fill="var(--diagram-body)" font-family="Source Sans 3 Variable, ui-sans-serif, system-ui, sans-serif" font-size="11"> registry </text> <text x="595" y="114" text-anchor="middle" fill="var(--diagram-body)" font-family="Source Sans 3 Variable, ui-sans-serif, system-ui, sans-serif" font-size="11"> + VFS + artifacts </text> <rect x="750" y="40" width="150" height="90" rx="12" fill="#ffffff" stroke="var(--diagram-secondary)" stroke-width="1.5"></rect> <text x="825" y="74" text-anchor="middle" fill="var(--diagram-primary)" font-family="Source Serif 4 Variable, Georgia, serif" font-size="20"> FastMCP </text> <text x="825" y="100" text-anchor="middle" fill="var(--diagram-body)" font-family="Source Sans 3 Variable, ui-sans-serif, system-ui, sans-serif" font-size="11"> stdio | HTTP </text> <text x="825" y="114" text-anchor="middle" fill="var(--diagram-body)" font-family="Source Sans 3 Variable, ui-sans-serif, system-ui, sans-serif" font-size="11"> agentic client </text> </svg> </figure> </div> </section> <section class="bg-section-light border-y border-border"> <div class="mx-auto max-w-7xl px-6 py-16 lg:px-8"> <div class="mx-auto max-w-3xl"> <h2 class="font-heading text-2xl font-semibold text-primary mb-6">What you get</h2> <ul class="space-y-4 text-base"> <li class="border-l-2 border-primary-accent pl-4"> <strong>MCP-native type system.</strong> <code>KaosTool</code>, <code>KaosResource</code>, <code>KaosPrompt</code>, <code>ToolResult</code>, <code>ToolMetadata</code>, <code>ParameterSchema</code>, <code>ToolAnnotations</code> â all serialize to MCP envelopes via <code>to_mcp_dict()</code>. 55</li> <li class="border-l-2 border-primary-accent pl-4"> <strong>Runtime container.</strong> <code>KaosRuntime</code> bundles <code>ToolRegistry</code>, <code>ResourceRegistry</code>, <code>PromptRegistry</code>, <code>NamespaceManager</code>, <code>VirtualFileSystem</code>, <code>ArtifactStore</code>, and per-module settings â replacing process-global singletons. 56</li> <li class="border-l-2 border-primary-accent pl-4"> <strong>Disk-first VFS + artifact store.</strong> Three-tier inline policy (16 KB / 256 KB / handles only), <code>kaos://artifacts/<id>/...</code> URIs, range and chunk reads, manifest persistence across restarts. 57</li> <li class="border-l-2 border-primary-accent pl-4"> <strong>One document model for everything.</strong> 34 typed AST node classes in <code>kaos-content</code> (Block and Inline), with 15 annotation types covering tracked changes, defined terms, redactions, citations, and cross-references. A redline in DOCX and an annotation on a PDF land in the same shape. 58</li> <li class="border-l-2 border-primary-accent pl-4"> <strong>Agent-ready resource catalog.</strong> 22 resource templates in <code>kaos-mcp</code> let an agent retrieve documents, tables, pages, and slices by URI; five workflow prompts ship the recurring patterns (extraction, retrieval, citation check). Stdio and streamable HTTP transports. 59</li> <li class="border-l-2 border-primary-accent pl-4"> <strong>Typed module settings.</strong> <code>ModuleSettings</code> base class with a 6-level resolution chain: explicit overrides â <code>KaosContext._config</code> â <code>KAOS_<MODULE>_*</code> env â legacy env â <code>.env</code> â defaults. 60</li> </ul> </div> </div> </section> <section class="mx-auto max-w-7xl px-6 py-16 lg:px-8"> <div class="mx-auto max-w-3xl"> <h2 class="font-heading text-2xl font-semibold text-primary mb-2">A taste</h2> <p class="text-base text-muted-foreground mb-6">
61A bare runtime, plus the introspection tools every KAOS server inherits â the starting point for an in-house team building, say, a litigation-hold tool that flags any document containing custodian-attorney communication. 62</p> <div class="expressive-code"><figure class="frame"><figcaption class="header"></figcaption><pre data-language="python"><code><div class="ec-line"><div class="code"><span style="--0:#BF3441">from</span><span style="--0:#24292E"> kaos_core </span><span style="--0:#BF3441">import</span><span style="--0:#24292E"> KaosRuntime, register_core_tools</span></div></div><div class="ec-line"><div class="code"> 63</div></div><div class="ec-line"><div class="code"><span style="--0:#24292E">runtime </span><span style="--0:#BF3441">=</span><span style="--0:#24292E"> KaosRuntime()</span></div></div><div class="ec-line"><div class="code"><span style="--0:#24292E">n </span><span style="--0:#BF3441">=</span><span style="--0:#24292E"> register_core_tools(runtime) </span><span style="--0:#616972"># registers 10 introspection tools</span></div></div><div class="ec-line"><div class="code"><span style="--0:#005CC5">print</span><span style="--0:#24292E">(runtime.tools.list_namespaces()) </span><span style="--0:#616972"># ['kaos-core']</span></div></div><div class="ec-line"><div class="code"><span style="--0:#005CC5">print</span><span style="--0:#24292E">(runtime.settings.artifact_inline_read_max_bytes) </span><span style="--0:#616972"># 262144</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="from kaos_core import KaosRuntime, register_core_tools��runtime = KaosRuntime()�n = register_core_tools(runtime) # registers 10 introspection tools�print(runtime.tools.list_namespaces()) # ['kaos-core']�print(runtime.settings.artifact_inline_read_max_bytes) # 262144"><div></div></button></div></figure></div> <div class="mt-4"> <div class="expressive-code"><figure class="frame is-terminal"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#6F42C1">kaos-core</span><span style="--0:#24292E"> </span><span style="--0:#032F62">tools</span><span style="--0:#24292E"> </span><span style="--0:#032F62">list</span><span style="--0:#24292E"> </span><span style="--0:#005CC5">--json</span></div></div><div class="ec-line"><div class="code"><span style="--0:#6F42C1">kaos-core</span><span style="--0:#24292E"> </span><span style="--0:#032F62">artifacts</span><span style="--0:#24292E"> </span><span style="--0:#032F62">list</span><span style="--0:#24292E"> </span><span style="--0:#005CC5">--session</span><span style="--0:#24292E"> </span><span style="--0:#032F62">demo</span><span style="--0:#24292E"> </span><span style="--0:#005CC5">--json</span></div></div><div class="ec-line"><div class="code"><span style="--0:#6F42C1">kaos</span><span style="--0:#24292E"> </span><span style="--0:#032F62">serve</span><span style="--0:#24292E"> </span><span style="--0:#005CC5">--http</span><span style="--0:#24292E"> </span><span style="--0:#005CC5">--port</span><span style="--0:#24292E"> </span><span style="--0:#005CC5">8000</span><span style="--0:#24292E"> </span><span style="--0:#616972"># FastMCP server (the kaos CLI ships with kaos-mcp)</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="kaos-core tools list --json�kaos-core artifacts list --session demo --json�kaos serve --http --port 8000 # FastMCP server (the kaos CLI ships with kaos-mcp)"><div></div></button></div></figure></div> </div> </div> </section> <section class="bg-section-light border-y border-border"> <div class="mx-auto max-w-7xl px-6 py-16 lg:px-8"> <div class="mx-auto max-w-3xl mb-8"> <h2 class="font-heading text-2xl font-semibold text-primary mb-2">Packages in this group</h2> <p class="text-base text-muted-foreground"> 64All three install from PyPI; <code>kaos-content</code> and <code>kaos-mcp</code> both depend on <code>kaos-core</code>. 65</p> </div> <div class="icon-card-grid" aria-label="Runtime surface packages" data-astro-cid-djfg5aqp> <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-5" data-astro-cid-djfg5aqp> <a href="/packages#kaos-core" class="icg-card" data-astro-cid-djfg5aqp> <div class="icg-card-inner" data-astro-cid-djfg5aqp> <div class="flex items-center gap-3" data-astro-cid-djfg5aqp> <div class="card-icon" data-astro-cid-djfg5aqp> <svg class="w-[18px] h-[18px]" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" data-astro-cid-djfg5aqp> <path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5" data-astro-cid-djfg5aqp></path> </svg> </div> <div class="flex-1 min-h-9 flex items-center" data-astro-cid-djfg5aqp> <h3 class="icg-card-title" data-astro-cid-djfg5aqp>kaos-core</h3> </div> </div> <p class="icg-card-body" data-astro-cid-djfg5aqp>
6510 MCP tools. Runtime container, registries, VFS, artifact store, KaosTool ABC, ModuleSettings.</p> </div> </a><a href="/packages#kaos-content" class="icg-card" data-astro-cid-djfg5aqp> <div class="icg-card-inner" data-astro-cid-djfg5aqp> <div class="flex items-center gap-3" data-astro-cid-djfg5aqp> <div class="card-icon" data-astro-cid-djfg5aqp> <svg class="w-[18px] h-[18px]" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" data-astro-cid-djfg5aqp> <path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z M14 2v6h6" data-astro-cid-djfg5aqp></path> </svg> </div> <div class="flex-1 min-h-9 flex items-center" data-astro-cid-djfg5aqp> <h3 class="icg-card-title" data-astro-cid-djfg5aqp>kaos-content</h3> </div> </div> <p class="icg-card-body" data-astro-cid-djfg5aqp>7 MCP tools. 34 typed AST node classes. 15 annotation types. Provenance on every node.</p> </div> </a><a href="/packages#kaos-mcp" class="icg-card" data-astro-cid-djfg5aqp> <div class="icg-card-inner" data-astro-cid-djfg5aqp> <div class="flex items-center gap-3" data-astro-cid-djfg5aqp> <div class="card-icon" data-astro-cid-djfg5aqp> <svg class="w-[18px] h-[18px]" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" data-astro-cid-djfg5aqp> <path d="M5 12h14 M12 5l7 7-7 7" data-astro-cid-djfg5aqp></path> </svg> </div> <div class="flex-1 min-h-9 flex items-center" data-astro-cid-djfg5aqp> <h3 class="icg-card-title" data-astro-cid-djfg5aqp>kaos-mcp</h3> </div> </div> <p class="icg-card-body" data-astro-cid-djfg5aqp>FastMCP bridge. 22 resource templates + 5 workflow prompts. The unified `kaos` CLI.</p> </div> </a> </div> </div> </div> </section> <section class="mx-auto max-w-7xl px-6 py-16 lg:px-8"> <div class="mx-auto max-w-3xl"> <h2 class="font-heading text-2xl font-semibold text-primary mb-4">How it compares</h2> <div class="prose prose-slate max-w-none text-base leading-7 text-foreground"> <p> <strong>vs. raw FastMCP + manual plumbing.</strong> The official Python MCP SDK gives you a server class and an HTTP transport. <code>kaos-core</code> adds the runtime container, the typed pydantic models, the artifact store, the virtual file system, and typed module settings. You can write a one-off MCP server in raw FastMCP in an afternoon â but you will rebuild every one of these pieces, badly, the second tool you ship. 66</p> <p> <strong>vs. ad-hoc per-source schemas.</strong> The kaos-content AST is the contract every extractor produces. Pandoc-style Block/Inline grammar; Docling-style provenance on every node. Alternatives like raw <code>markitdown</code> or <code>mammoth</code> output strings or per-tool JSON; KAOS produces a single Pydantic v2 AST that round-trips losslessly to JSON, serializes to Markdown / HTML / text, and survives chunking, search, and LLM extraction with its source location intact. 67</p> <p> 68See <a href="/compare" class="underline">/compare</a> for the full named-competitor table. 69</p> </div> </div> </section> <section class="bg-section-light border-t border-border"> <div class="mx-auto max-w-7xl px-6 py-16 lg:px-8"> <div class="mx-auto max-w-3xl text-center"> <p class="eyebrow text-secondary-accent mb-3">Get started</p> <p class="text-base text-muted-foreground"> 70See the <a href="/quickstart" class="underline">quickstart</a>, browse <a href="/packages" class="underline">all 18 packages</a>, or read the <a href="https://273v.github.io/learn-kaos" target="_blank" rel="noopener" class="underline">docs</a>. 71</p> </div> </div> </section> </main> <footer class="relative not-prose" style="background-color: var(--aw-color-deep, #001a2e);"> <!-- Gradient top border --> <div class="h-px bg-gradient-to-r from-transparent via-primary/40 to-transparent" aria-hidden="true"></div> <div class="relative max-w-7xl mx-auto px-4 sm:px-6 text-slate-300"> <div class="grid grid-cols-12 gap-4 gap-y-8 sm:gap-8 py-10 md:py-14"> <div class="col-span-12 lg:col-span-4"> <div class="mb-3"> <a class="inline-block font-heading font-bold text-xl text-white/90 hover:text-white transition-colors duration-200" href="/">KAOS</a> </div> <div class="text-sm text-slate-400"> <a class="text-slate-400 hover:text-primary-accent transition-colors duration-200 mr-2" href="/privacy">Privacy</a><a class="text-slate-400 hover:text-primary-accent transition-colors duration-200 mr-2" href="/terms">Terms</a> </div> </div> <div class="col-span-6 md:col-span-3 lg:col-span-2"> <div class="text-white/80 font-semibold text-sm uppercase tracking-wider mb-3">Product</div> <ul class="text-sm space-y-2"> <li> <a class="text-slate-400 hover:text-primary-accent transition-colors duration-200" href="/why-kaos"> Why KAOS </a> </li><li> <a class="text-slate-400 hover:text-primary-accent transition-colors duration-200" href="/packages"> All packages </a> </li><li> <a class="text-slate-400 hover:text-primary-accent transition-colors duration-200" href="/compare"> Compare </a> </li><li> <a class="text-slate-400 hover:text-primary-accent transition-colors duration-200" href="/quickstart"> Quickstart </a> </li><li> <a class="text-slate-400 hover:text-primary-accent transition-colors duration-200" href="/examples">
71 Examples </a> </li><li> <a class="text-slate-400 hover:text-primary-accent transition-colors duration-200" href="/security"> Security & supply chain </a> </li><li> <a class="text-slate-400 hover:text-primary-accent transition-colors duration-200" href="https://273v.github.io/learn-kaos" target="_blank" rel="noopener noreferrer"> Docs </a> </li> </ul> </div><div class="col-span-6 md:col-span-3 lg:col-span-2"> <div class="text-white/80 font-semibold text-sm uppercase tracking-wider mb-3">Audience</div> <ul class="text-sm space-y-2"> <li> <a class="text-slate-400 hover:text-primary-accent transition-colors duration-200" href="/for-developers"> For developers </a> </li><li> <a class="text-slate-400 hover:text-primary-accent transition-colors duration-200" href="/for-legal-teams"> For legal teams </a> </li> </ul> </div><div class="col-span-6 md:col-span-3 lg:col-span-2"> <div class="text-white/80 font-semibold text-sm uppercase tracking-wider mb-3">Concepts</div> <ul class="text-sm space-y-2"> <li> <a class="text-slate-400 hover:text-primary-accent transition-colors duration-200" href="/concepts/mcp-native"> MCP-native </a> </li><li> <a class="text-slate-400 hover:text-primary-accent transition-colors duration-200" href="/concepts/document-ast"> ContentDocument AST </a> </li><li> <a class="text-slate-400 hover:text-primary-accent transition-colors duration-200" href="/concepts/provenance"> Provenance </a> </li><li> <a class="text-slate-400 hover:text-primary-accent transition-colors duration-200" href="/concepts/recipes"> Recipes </a> </li><li> <a class="text-slate-400 hover:text-primary-accent transition-colors duration-200" href="/concepts/memory"> Memory model </a> </li><li> <a class="text-slate-400 hover:text-primary-accent transition-colors duration-200" href="/concepts/dependency-layering"> Dependency layering </a> </li> </ul> </div><div class="col-span-6 md:col-span-3 lg:col-span-2"> <div class="text-white/80 font-semibold text-sm uppercase tracking-wider mb-3">Publications</div> <ul class="text-sm space-y-2"> <li> <a class="text-slate-400 hover:text-primary-accent transition-colors duration-200" href="/publications/vibe-coding-with-kaos"> Vibe Coding with KAOS </a> </li><li> <a class="text-slate-400 hover:text-primary-accent transition-colors duration-200" href="/publications/building-with-kaos"> Building with KAOS </a> </li><li> <a class="text-slate-400 hover:text-primary-accent transition-colors duration-200" href="https://ai4lf.com/" target="_blank" rel="noopener noreferrer"> LLM Essentials (ai4lf.com) </a> </li><li> <a class="text-slate-400 hover:text-primary-accent transition-colors duration-200" href="https://ai4lf.com/" target="_blank" rel="noopener noreferrer"> Agentic AI in Law and Finance (ai4lf.com) </a> </li> </ul> </div><div class="col-span-6 md:col-span-3 lg:col-span-2"> <div class="text-white/80 font-semibold text-sm uppercase tracking-wider mb-3">Project</div> <ul class="text-sm space-y-2"> <li> <a class="text-slate-400 hover:text-primary-accent transition-colors duration-200" href="/about"> About </a> </li><li> <a class="text-slate-400 hover:text-primary-accent transition-colors duration-200" href="/community"> Community </a> </li><li> <a class="text-slate-400 hover:text-primary-accent transition-colors duration-200" href="/blog"> Blog </a> </li><li> <a class="text-slate-400 hover:text-primary-accent transition-colors duration-200" href="https://github.com/273v" target="_blank" rel="noopener noreferrer"> GitHub </a> </li> </ul> </div> </div> <div class="border-t border-white/10 md:flex md:items-center md:justify-between py-6 md:py-8"> <ul class="flex mb-4 md:order-1 -ml-2 md:ml-4 md:mb-0"> <li> <a class="text-slate-400 hover:text-white hover:bg-white/10 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary/50 rounded-lg text-sm p-2.5 inline-flex items-center transition-colors duration-200" aria-label="GitHub" href="https://github.com/273v"> <svg width="1em" height="1em" class="w-5 h-5" data-icon="tabler:brand-github"> <symbol id="ai:tabler:brand-github" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2c2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2a4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6c-.6.6-.6 1.2-.5 2V21"/></symbol><use href="#ai:tabler:brand-github"></use> </svg> </a> </li><li> <a class="text-slate-400 hover:text-white hover:bg-white/10 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary/50 rounded-lg text-sm p-2.5 inline-flex items-center transition-colors duration-200" aria-label="LinkedIn" href="https://www.linkedin.com/company/273-ventures/"> <svg width="1em" height="1em" class="w-5 h-5" data-icon="tabler:brand-linkedin">
71 <symbol id="ai:tabler:brand-linkedin" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M8 11v5m0-8v.01M12 16v-5m4 5v-3a2 2 0 1 0-4 0"/><path d="M3 7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4v10a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4z"/></g></symbol><use href="#ai:tabler:brand-linkedin"></use> </svg> </a> </li><li> <a class="text-slate-400 hover:text-white hover:bg-white/10 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary/50 rounded-lg text-sm p-2.5 inline-flex items-center transition-colors duration-200" aria-label="RSS" href="/rss.xml"> <svg width="1em" height="1em" viewBox="0 0 24 24" class="w-5 h-5" data-icon="tabler:rss"> <use href="#ai:tabler:rss"></use> </svg> </a> </li> </ul> <div class="text-sm mr-4 text-slate-400"> 72 <p class="text-sm text-muted-foreground"> 73 Open source · Apache-2.0 · <a href="https://github.com/273v" class="underline">github.com/273v</a> 74 <br /> 75 Built at <a href="https://273ventures.com" class="underline">273 Ventures</a>. 76 <br /> 77 © 2022â2026 273 Ventures, LLC. 78 </p> 79 </div> </div> </div> </footer> <div class="pointer-events-none fixed inset-0" style="opacity: 0.025; z-index: 30; mix-blend-mode: multiply;" aria-hidden="true"> <div class="h-full w-full" style="background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E"); background-repeat: repeat;"></div> </div>
79<script>(function(){const defaultTheme = "light:only"; 80 81 function applyTheme(theme) { 82 if (theme === 'dark') { 83 document.documentElement.classList.add('dark'); 84 } else { 85 document.documentElement.classList.remove('dark'); 86 } 87 } 88 89 if ((defaultTheme && defaultTheme.endsWith(':only')) || (!localStorage.theme && defaultTheme !== 'system')) { 90 applyTheme(defaultTheme.replace(':only', '')); 91 } else if ( 92 localStorage.theme === 'dark' || 93 (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches) 94 ) { 95 applyTheme('dark'); 96 } else { 97 applyTheme('light'); 98 } 99 100 function attachEvent(selector, event, fn, opts) { 101 const matches = typeof selector === 'string' ? document.querySelectorAll(selector) : selector; 102 if (matches && matches.length) { 103 matches.forEach((elem) => { 104 elem.addEventListener(event, (e) => fn(e, elem), opts || false); 105 }); 106 } 107 } 108 109 // Track AbortController so we can clean up all listeners between navigations 110 let _pageAbort = null; 111 112 document.addEventListener('astro:page-load', function () { 113 // Abort all previous listeners to prevent accumulation 114 if (_pageAbort) _pageAbort.abort(); 115 _pageAbort = new AbortController(); 116 const signal = _pageAbort.signal; 117 118 let lastKnownScrollPosition = window.scrollY; 119 let ticking = true; 120 121 attachEvent('#header nav', 'click', function () { 122 document.querySelector('[data-aw-toggle-menu]')?.classList.remove('expanded'); 123 document.body.classList.remove('overflow-hidden'); 124 document.getElementById('header')?.classList.remove('h-screen'); 125 document.querySelector('#header nav')?.classList.add('hidden'); 126 }, { signal }); 127 128 attachEvent('[data-aw-toggle-menu]', 'click', function (_, elem) { 129 elem.classList.toggle('expanded'); 130 document.body.classList.toggle('overflow-hidden'); 131 document.getElementById('header')?.classList.toggle('h-screen'); 132 document.querySelector('#header nav')?.classList.toggle('hidden'); 133 }, { signal }); 134 135 attachEvent('[data-aw-toggle-color-scheme]', 'click', function () { 136 if (defaultTheme.endsWith(':only')) { 137 return; 138 } 139 document.documentElement.classList.toggle('dark'); 140 localStorage.theme = document.documentElement.classList.contains('dark') ? 'dark' : 'light'; 141 }, { signal }); 142 143 function appyHeaderStylesOnScroll() { 144 const header = document.getElementById('header'); 145 if (lastKnownScrollPosition > 60 && !header.classList.contains('scroll')) { 146 document.getElementById('header').classList.add('scroll'); 147 } else if (lastKnownScrollPosition <= 60 && header.classList.contains('scroll')) { 148 document.getElementById('header').classList.remove('scroll'); 149 } 150 ticking = false; 151 } 152 appyHeaderStylesOnScroll(); 153 154 document.addEventListener('scroll', function () { 155 lastKnownScrollPosition = window.scrollY; 156 157 if (!ticking) { 158 window.requestAnimationFrame(() => { 159 appyHeaderStylesOnScroll(); 160 }); 161 ticking = true; 162 } 163 }, { signal }); 164 165 // Dropdown keyboard accessibility 166 function closeAllDropdowns() { 167 document.querySelectorAll('.dropdown-toggle[aria-expanded="true"]').forEach(function (btn) { 168 btn.setAttribute('aria-expanded', 'false'); 169 }); 170 } 171 172 attachEvent('.dropdown-toggle', 'click', function (e, elem) { 173 e.preventDefault(); 174 const expanded = elem.getAttribute('aria-expanded') === 'true'; 175 closeAllDropdowns(); 176 if (!expanded) { 177 elem.setAttribute('aria-expanded', 'true'); 178 const menu = elem.nextElementSibling; 179 if (menu) { 180 const firstLink = menu.querySelector('a'); 181 if (firstLink) firstLink.focus(); 182 } 183 } 184 }, { signal }); 185 186 attachEvent('.dropdown-toggle', 'keydown', function (e, elem) { 187 if (e.key === 'Enter' || e.key === ' ' || e.key === 'ArrowDown') { 188 e.preventDefault(); 189 elem.setAttribute('aria-expanded', 'true'); 190 const menu = elem.nextElementSibling; 191 if (menu) { 192 const firstLink = menu.querySelector('a'); 193 if (firstLink) firstLink.focus(); 194 } 195 } else if (e.key === 'Escape') { 196 elem.setAttribute('aria-expanded', 'false'); 197 elem.focus(); 198 } 199 }, { signal }); 200 201 attachEvent('.dropdown-menu a', 'keydown', function (e, elem) { 202 const items = Array.from(elem.closest('.dropdown-menu').querySelectorAll('a')); 203 const idx = items.indexOf(elem); 204 if (e.key === 'ArrowDown') { 205 e.preventDefault(); 206 if (idx < items.length - 1) items[idx + 1].focus(); 207 } else if (e.key === 'ArrowUp') { 208 e.preventDefault(); 209 if (idx > 0) items[idx - 1].focus(); 210 else elem.closest('.dropdown').querySelector('.dropdown-toggle').focus(); 211 } else if (e.key === 'Escape') { 212 e.preventDefault(); 213 const toggle = elem.closest('.dropdown').querySelector('.dropdown-toggle'); 214 toggle.setAttribute('aria-expanded', 'false'); 215 toggle.focus(); 216 } 217 }, { signal }); 218 219 // Close dropdowns when clicking outside 220 document.addEventListener('click', function (e) { 221 if (!e.target.closest('.dropdown')) { 222 closeAllDropdowns(); 223 } 224 }, { signal }); 225 226 // Reset mobile menu state on page load 227 document.documentElement.classList.add('motion-safe:scroll-smooth'); 228 const elem = document.querySelector('[data-aw-toggle-menu]'); 229 if (elem) { 230 elem.classList.remove('expanded'); 231 } 232 document.body.classList.remove('overflow-hidden'); 233 document.getElementById('header')?.classList.remove('h-screen'); 234 document.querySelector('#header nav')?.classList.add('hidden'); 235 }); 236})();</script>
236 </body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.