#locale-banner[data-astro-cid-avzwmoa3]{position:fixed;bottom:var(--space-4);right:var(--space-4);z-index:999;width:min(calc(100vw - var(--space-8)),22rem);background-color:var(--color-neutral-900);color:var(--color-neutral-100);padding:var(--space-4) var(--space-5);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}#locale-banner[data-astro-cid-avzwmoa3][hidden]{display:none}#locale-banner[data-astro-cid-avzwmoa3] p[data-astro-cid-avzwmoa3]{flex:1;font-size:var(--type-size-sm);margin:0;min-width:0}.locale-banner__actions[data-astro-cid-avzwmoa3]{display:flex;gap:var(--space-2);flex-shrink:0}.locale-banner__actions[data-astro-cid-avzwmoa3] .btn-ghost[data-astro-cid-avzwmoa3]{color:var(--color-neutral-400)}.locale-banner__actions[data-astro-cid-avzwmoa3] .btn-ghost[data-astro-cid-avzwmoa3]:hover{color:var(--color-neutral-100);background-color:var(--color-neutral-800)}.site-header[data-astro-cid-3ef6ksr2]{position:sticky;top:0;z-index:100;background-color:var(--color-bg);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-xs)}.site-header__inner[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;justify-content:space-between;height:4rem;gap:var(--space-4)}.site-header__logo[data-astro-cid-3ef6ksr2]{font-size:var(--type-size-xl);font-weight:var(--type-weight-bold);color:var(--color-text);text-decoration:none;letter-spacing:var(--type-tracking-tight);flex-shrink:0}.site-header__logo[data-astro-cid-3ef6ksr2]:hover{color:var(--color-accent)}.site-header__toggle[data-astro-cid-3ef6ksr2]{display:none}.site-header__nav[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:var(--space-8);flex:1;justify-content:flex-end}.site-header__nav[data-astro-cid-3ef6ksr2] ul[data-astro-cid-3ef6ksr2]{display:flex;list-style:none;gap:var(--space-6);margin:0;padding:0}.site-header__actions[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:var(--space-2)}.site-header__locale[data-astro-cid-3ef6ksr2]{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--type-size-sm);font-weight:var(--type-weight-semibold);letter-spacing:var(--type-tracking-wide)}@media(max-width:48rem){.site-header__toggle[data-astro-cid-3ef6ksr2]{display:flex}.site-header__nav[data-astro-cid-3ef6ksr2]{display:none;position:absolute;top:4rem;left:0;right:0;background-color:var(--color-bg);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-md);flex-direction:column;align-items:flex-start;padding:var(--space-4) var(--layout-gutter);gap:var(--space-4)}.site-header__nav[data-astro-cid-3ef6ksr2].is-open{display:flex}.site-header__nav[data-astro-cid-3ef6ksr2] ul[data-astro-cid-3ef6ksr2]{flex-direction:column;gap:var(--space-3);width:100%}.site-header__actions[data-astro-cid-3ef6ksr2]{width:100%;padding-top:var(--space-2);border-top:1px solid var(--color-border)}}.site-footer[data-astro-cid-sz7xmlte]{background-color:var(--color-neutral-900);color:var(--color-neutral-400);padding-block:var(--space-12)}.site-footer__inner[data-astro-cid-sz7xmlte]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);flex-wrap:wrap}.site-footer__brand[data-astro-cid-sz7xmlte]{display:flex;flex-direction:column;gap:var(--space-1)}.site-footer__logo[data-astro-cid-sz7xmlte]{font-size:var(--type-size-lg);font-weight:var(--type-weight-bold);color:var(--color-neutral-100);text-decoration:none;letter-spacing:var(--type-tracking-tight)}.site-footer__logo[data-astro-cid-sz7xmlte]:hover{color:var(--color-primary-400)}.site-footer__copyright[data-astro-cid-sz7xmlte]{font-size:var(--type-size-sm);margin:0}.site-footer__build-version[data-astro-cid-sz7xmlte]{font-size:var(--type-size-xs);color:var(--color-neutral-600)}.site-footer__nav[data-astro-cid-sz7xmlte]{display:flex;gap:var(--space-6);flex-wrap:wrap}.site-footer[data-astro-cid-sz7xmlte] .link-subtle[data-astro-cid-sz7xmlte]{color:var(--color-neutral-400);font-size:var(--type-size-sm)}.site-footer[data-astro-cid-sz7xmlte] .link-subtle[data-astro-cid-sz7xmlte]:hover{color:var(--color-neutral-100)}.site-footer__credit[data-astro-cid-sz7xmlte]{font-size:var(--type-size-sm);display:flex;flex-direction:column;gap:var(--space-1)}.site-footer__version[data-astro-cid-sz7xmlte]{font-size:var(--type-size-xs);color:var(--color-neutral-600)}@media(max-width:48rem){.site-footer__inner[data-astro-cid-sz7xmlte]{flex-direction:column;align-items:flex-start}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}img,video,svg{max-width:100%;height:auto;display:block}:root{--color-neutral-0: #ffffff;--color-neutral-0: oklch(1 0 0);--color-neutral-50: #f8f9fa;--color-neutral-50: oklch(.985 .002 247);--color-neutral-100: #f1f3f5;--color-neutral-100: oklch(.961 .003 247);--color-neutral-200: #e9ecef;--color-neutral-200: oklch(.937 .004 247);--color-neutral-300: #dee2e6;--color-neutral-300: oklch(.907 .006 240);--color-neutral-400: #ced4da;--color-neutral-400: oklch(.856 .008 237);--color-neutral-500: #adb5bd;--color-neutral-500: oklch(.745 .012 233);--color-neutral-600: #5c6470;--color-neutral-600: oklch(.449 .015 233);--color-neutral-700: #495057;--color-neutral-700: oklch(.381 .013 233);--color-neutral-800: #343a40;--color-neutral-800: oklch(.29 .011 235);--color-neutral-900: #212529;--color-neutral-900: oklch(.212 .009 253);--color-neutral-1000: #000000;--color-neutral-1000: oklch(0 0 0);--color-bg: var(--color-neutral-0);--color-bg-subtle: var(--color-neutral-50);--color-bg-muted: var(--color-neutral-100);--color-text: var(--color-neutral-900);--color-text-subtle: var(--color-neutral-600);--color-accent: var(--color-neutral-900);--color-accent-hover: var(--color-neutral-700);--color-accent-fg: var(--color-neutral-0);--color-accent-subtle: var(--color-neutral-100);--color-border: var(--color-neutral-200);--color-border-strong: var(--color-neutral-400);--color-success: #16a34a;--color-success: oklch(.596 .165 152);--color-success-bg: #f0fdf4;--color-success-bg: oklch(.982 .018 156);--color-error: #dc2626;--color-error: oklch(.536 .231 29);--color-error-bg: #fef2f2;--color-error-bg: oklch(.974 .017 17);--color-warning: #d97706;--color-warning: oklch(.666 .179 58);--color-warning-bg: #fffbeb;--color-warning-bg: oklch(.987 .022 95);--type-family-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--type-family-mono: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace;--type-size-xs: .75rem;--type-size-sm: .875rem;--type-size-base: 1rem;--type-size-lg: 1.125rem;--type-size-xl: 1.25rem;--type-size-2xl: 1.5rem;--type-size-3xl: 1.875rem;--type-size-4xl: 2.25rem;--type-size-5xl: 3rem;--type-size-6xl: 3.75rem;--type-weight-normal: 400;--type-weight-medium: 500;--type-weight-semibold: 600;--type-weight-bold: 700;--type-leading-none: 1;--type-leading-tight: 1.25;--type-leading-snug: 1.375;--type-leading-normal: 1.5;--type-leading-relaxed: 1.625;--type-leading-loose: 2;--type-tracking-tight: -.025em;--type-tracking-normal: 0em;--type-tracking-wide: .025em;--type-tracking-wider: .05em;--space-px: 1px;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--space-32: 8rem;--radius-none: 0;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / .05);--motion-duration-instant: 0ms;--motion-duration-fast: .1s;--motion-duration-base: .2s;--motion-duration-slow: .3s;--motion-duration-slower: .5s;--motion-easing-default: cubic-bezier(.4, 0, .2, 1);--motion-easing-in: cubic-bezier(.4, 0, 1, 1);--motion-easing-out: cubic-bezier(0, 0, .2, 1);--motion-easing-bounce: cubic-bezier(.34, 1.56, .64, 1);--screen-sm: 36rem;--screen-md: 48rem;--screen-lg: 64rem;--screen-xl: 80rem;--screen-2xl: 96rem;--layout-max-width: 75rem;--layout-content-width: 65ch;--layout-gutter: var(--space-6)}body{font-family:var(--type-family-sans);font-size:var(--type-size-base);line-height:var(--type-leading-normal);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:flex;flex-direction:column;min-height:100dvh}main{flex:1}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:var(--radius-sm)}h1{font-size:var(--type-size-5xl);font-weight:var(--type-weight-bold);line-height:var(--type-leading-tight);letter-spacing:var(--type-tracking-tight)}h2{font-size:var(--type-size-3xl);font-weight:var(--type-weight-bold);line-height:var(--type-leading-tight)}h3{font-size:var(--type-size-2xl);font-weight:var(--type-weight-semibold);line-height:var(--type-leading-snug)}h4{font-size:var(--type-size-xl);font-weight:var(--type-weight-semibold)}h5{font-size:var(--type-size-lg);font-weight:var(--type-weight-medium)}h6{font-size:var(--type-size-base);font-weight:var(--type-weight-medium)}p{line-height:var(--type-leading-relaxed)}@media(max-width:48rem){h1{font-size:var(--type-size-4xl)}h2{font-size:var(--type-size-2xl)}h3{font-size:var(--type-size-xl)}}.container{max-width:var(--layout-max-width);margin-inline:auto;padding-inline:var(--layout-gutter)}.section{padding-block:var(--space-20)}.section-alt{background-color:var(--color-bg-subtle)}.grid{display:grid;gap:var(--space-6)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}@media(max-width:48rem){.grid-2,.grid-3{grid-template-columns:1fr}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);font-family:inherit;font-size:var(--type-size-base);font-weight:var(--type-weight-semibold);line-height:1;text-decoration:none;border:2px solid transparent;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:background-color var(--motion-duration-base) var(--motion-easing-default),color var(--motion-duration-base) var(--motion-easing-default),border-color var(--motion-duration-base) var(--motion-easing-default),box-shadow var(--motion-duration-base) var(--motion-easing-default)}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-primary{background-color:var(--color-accent);color:var(--color-accent-fg);border-color:var(--color-accent)}.btn-primary:hover:not(:disabled){background-color:var(--color-accent-hover);border-color:var(--color-accent-hover);box-shadow:var(--shadow-md)}.btn-secondary{background-color:transparent;color:var(--color-accent);border-color:var(--color-accent)}.btn-secondary:hover:not(:disabled){background-color:var(--color-accent-subtle)}.btn-ghost{background-color:transparent;color:var(--color-text);border-color:transparent}.btn-ghost:hover:not(:disabled){background-color:var(--color-bg-muted)}.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--type-size-sm)}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--type-size-lg)}.link{color:var(--color-accent);text-decoration:underline;text-underline-offset:.2em;transition:color var(--motion-duration-fast) var(--motion-easing-default)}.link:hover{color:var(--color-accent-hover)}.link-subtle{color:var(--color-text-subtle);text-decoration:none}.link-subtle:hover{color:var(--color-text);text-decoration:underline;text-underline-offset:.2em}.link-nav{color:var(--color-text);text-decoration:none;font-weight:var(--type-weight-medium);transition:color var(--motion-duration-fast) var(--motion-easing-default)}.link-nav:hover{color:var(--color-accent)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-label{font-size:var(--type-size-sm);font-weight:var(--type-weight-medium);color:var(--color-text)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--space-3) var(--space-4);font-family:inherit;font-size:var(--type-size-base);color:var(--color-text);background-color:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);appearance:none;transition:border-color var(--motion-duration-fast) var(--motion-easing-default),box-shadow var(--motion-duration-fast) var(--motion-easing-default)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 20%,transparent)}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-neutral-500)}.form-textarea{resize:vertical;min-height:8rem;line-height:var(--type-leading-relaxed)}.form-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236c757d' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;padding-right:var(--space-10)}.form-error{font-size:var(--type-size-sm);color:var(--color-error);margin-top:var(--space-1)}.prose{max-width:var(--layout-content-width);color:var(--color-text)}.prose h1,.prose h2,.prose h3,.prose h4{margin-top:var(--space-8);margin-bottom:var(--space-4)}.prose p{margin-bottom:var(--space-4)}.prose ul,.prose ol{margin-bottom:var(--space-4);padding-left:var(--space-6)}.prose li{margin-bottom:var(--space-2)}.prose a{color:var(--color-accent)}.prose code{font-family:var(--type-family-mono);font-size:.875em;background-color:var(--color-bg-muted);padding:.1em .35em;border-radius:var(--radius-sm)}.prose pre{background-color:var(--color-neutral-900);color:var(--color-neutral-100);padding:var(--space-6);border-radius:var(--radius-lg);overflow-x:auto;margin-bottom:var(--space-6)}.prose pre code{background:none;padding:0;font-size:var(--type-size-sm)}.prose blockquote{border-left:4px solid var(--color-border);padding-left:var(--space-4);color:var(--color-text-subtle);margin-bottom:var(--space-4)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
