footer:where(.astro-lv5damgc) p:where(.astro-lv5damgc) {
  font-size: .875rem;
  color: var(--ink-soft);
}

footer:where(.astro-lv5damgc) p:where(.astro-lv5damgc) a[href] {
  --link-fs: .875rem;
}
:root{--color-neutral-0: #ffffff;--color-neutral-50: #fafafa;--color-neutral-100: #f5f5f5;--color-neutral-200: #e5e5e5;--color-neutral-300: #d4d4d4;--color-neutral-400: #a3a3a3;--color-neutral-500: #737373;--color-neutral-600: #525252;--color-neutral-700: #404040;--color-neutral-800: #262626;--color-neutral-900: #171717;--color-blue-100: #dbeafe;--color-blue-200: #bfdbfe;--color-blue-300: #93c5fd;--color-blue-400: #60a5fa;--color-blue-500: #3b82f6;--color-blue-600: #2563eb;--color-blue-700: #1d4ed8;--color-blue-800: #1e40af;--color-blue-900: #1e3a8a;--color-green-100: #dcfce7;--color-green-200: #bbf7d0;--color-green-300: #86efac;--color-green-400: #4ade80;--color-green-500: #22c55e;--color-green-600: #16a34a;--color-green-700: #15803d;--color-green-800: #166534;--color-green-900: #14532d;--color-red-100: #fee2e2;--color-red-200: #fecaca;--color-red-300: #fca5a5;--color-red-400: #f87171;--color-red-500: #ef4444;--color-red-600: #dc2626;--color-red-700: #b91c1c;--color-red-800: #991b1b;--color-red-900: #7f1d1d;--color-amber-100: #fef3c7;--color-amber-200: #fde68a;--color-amber-300: #fcd34d;--color-amber-400: #fbbf24;--color-amber-500: #f59e0b;--color-amber-600: #d97706;--color-amber-700: #b45309;--color-amber-800: #92400e;--color-amber-900: #78350f;--color-cyan-100: #cffafe;--color-cyan-200: #a5f3fc;--color-cyan-300: #67e8f9;--color-cyan-400: #22d3ee;--color-cyan-500: #06b6d4;--color-cyan-600: #0891b2;--color-cyan-700: #0e7490;--color-cyan-800: #155e75;--color-cyan-900: #164e63}:root{--color-primary: var(--color-blue-600);--color-primary-hover: var(--color-blue-700);--color-primary-active: var(--color-blue-800);--color-primary-light: var(--color-blue-100);--color-secondary: var(--color-neutral-700);--color-secondary-hover: var(--color-neutral-800);--color-secondary-light: var(--color-neutral-100);--color-success: var(--color-green-600);--color-success-bg: var(--color-green-100);--color-success-border: var(--color-green-600);--color-success-text: var(--color-green-800);--color-success-hover: var(--color-green-700);--color-error: var(--color-red-600);--color-error-bg: var(--color-red-100);--color-error-border: var(--color-red-600);--color-error-text: var(--color-red-800);--color-error-hover: var(--color-red-700);--color-warning: var(--color-amber-600);--color-warning-bg: var(--color-amber-100);--color-warning-border: var(--color-amber-600);--color-warning-text: var(--color-amber-800);--color-warning-hover: var(--color-amber-700);--color-info: var(--color-blue-500);--color-info-bg: var(--color-blue-100);--color-info-border: var(--color-blue-500);--color-info-text: var(--color-blue-900);--color-info-hover: var(--color-blue-600);--color-surface: var(--color-neutral-0);--color-surface-secondary: var(--color-neutral-50);--color-surface-tertiary: var(--color-neutral-100);--color-surface-elevated: var(--color-neutral-0);--color-surface-overlay: rgba(0, 0, 0, 0.5);--color-border: var(--color-neutral-300);--color-border-subtle: var(--color-neutral-200);--color-border-strong: var(--color-neutral-400);--color-border-interactive: var(--color-neutral-400);--color-text: var(--color-neutral-800);--color-text-secondary: var(--color-neutral-700);--color-text-tertiary: var(--color-neutral-600);--color-text-disabled: var(--color-neutral-500);--color-text-inverse: var(--color-neutral-0);--color-focus: var(--color-blue-600);--color-focus-ring: var(--color-blue-600);--color-ui-overlay-base: 0, 0, 0;--color-hover-overlay: rgba(var(--color-ui-overlay-base), 0.05);--color-active-overlay: rgba(var(--color-ui-overlay-base), 0.1);--color-disabled-bg: var(--color-neutral-100);--color-disabled-text: var(--color-neutral-500);--color-link: var(--color-blue-700);--color-link-hover: var(--color-blue-800);--color-link-visited: var(--color-blue-900);--color-link-active: var(--color-blue-800);--color-required: var(--color-red-600);--color-valid: var(--color-green-600);--color-invalid: var(--color-red-600);--color-skip-link-bg: var(--color-neutral-100);--color-skip-link-text: var(--color-text)}[data-theme=dark]{--color-ui-overlay-base: 255, 255, 255;--color-primary: var(--color-blue-500);--color-primary-hover: var(--color-blue-400);--color-primary-active: var(--color-blue-300);--color-primary-light: var(--color-blue-900);--color-secondary: var(--color-neutral-200);--color-secondary-hover: var(--color-neutral-100);--color-secondary-light: var(--color-neutral-800);--color-success: var(--color-green-400);--color-success-bg: var(--color-green-900);--color-success-border: var(--color-green-500);--color-success-text: var(--color-green-200);--color-success-hover: var(--color-green-300);--color-error: var(--color-red-400);--color-error-bg: var(--color-red-900);--color-error-border: var(--color-red-500);--color-error-text: var(--color-red-200);--color-error-hover: var(--color-red-300);--color-warning: var(--color-amber-400);--color-warning-bg: var(--color-amber-900);--color-warning-border: var(--color-amber-500);--color-warning-text: var(--color-amber-200);--color-warning-hover: var(--color-amber-300);--color-info: var(--color-blue-400);--color-info-bg: var(--color-blue-900);--color-info-border: var(--color-blue-500);--color-info-text: var(--color-blue-200);--color-info-hover: var(--color-blue-300);--color-surface: var(--color-neutral-900);--color-surface-secondary: var(--color-neutral-800);--color-surface-tertiary: var(--color-neutral-700);--color-surface-elevated: var(--color-neutral-800);--color-border: var(--color-neutral-700);--color-border-subtle: var(--color-neutral-800);--color-border-strong: var(--color-neutral-600);--color-border-interactive: var(--color-neutral-500);--color-text: var(--color-neutral-100);--color-text-secondary: var(--color-neutral-300);--color-text-tertiary: var(--color-neutral-400);--color-text-disabled: var(--color-neutral-500);--color-text-inverse: var(--color-neutral-900);--color-focus: var(--color-blue-400);--color-focus-ring: var(--color-blue-400);--color-disabled-bg: var(--color-neutral-800);--color-disabled-text: var(--color-neutral-500);--color-link: var(--color-blue-400);--color-link-hover: var(--color-blue-300);--color-link-visited: var(--color-blue-200);--color-link-active: var(--color-blue-300);--color-required: var(--color-red-400);--color-valid: var(--color-green-400);--color-invalid: var(--color-red-400);--color-skip-link-bg: var(--color-neutral-800);--color-skip-link-text: var(--color-text)}:root{--duration-instant: 0ms;--duration-fast: 120ms;--duration-base: 200ms;--duration-slow: 320ms;--duration-slower: 480ms;--ease-standard: cubic-bezier(0.2, 0, 0, 1);--ease-accelerate: cubic-bezier(0.4, 0, 1, 1);--ease-decelerate: cubic-bezier(0, 0, 0.2, 1);--ease-emphasized: cubic-bezier(0.2, 0, 0, 1.2)}@media(prefers-reduced-motion: reduce){:root{--duration-fast: 1ms;--duration-base: 1ms;--duration-slow: 1ms;--duration-slower: 1ms}}:root{--breakpoint-reflow: 20rem;--breakpoint-xs: 23.4375rem;--breakpoint-sm: 30rem;--breakpoint-md: 48rem;--breakpoint-lg: 62rem;--breakpoint-xl: 80rem;--breakpoint-2xl: 96rem}*,*::before,*::after{box-sizing:border-box}::selection{text-shadow:none;color:#fff;background-color:blue}html,body{height:100%;font-size:100%}html:focus-within{scroll-behavior:smooth}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}body{min-height:100vh;text-rendering:optimizeSpeed;line-height:1.5}a:not([class]){text-decoration-skip-ink:auto}a,button{cursor:pointer}img,picture,video,canvas{display:block;max-width:100%;aspect-ratio:auto}img,video,iframe{max-inline-size:100%;block-size:auto}img{max-width:100%;height:auto;vertical-align:middle;font-style:italic;background-repeat:no-repeat;background-size:cover;shape-margin:.75rem}svg{display:inline-block}input,textarea,select{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;font-variant:inherit;line-height:inherit;background-color:inherit}:where(button){font-family:inherit}@media(prefers-reduced-motion: reduce){html:focus-within{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}}#root,#__next{isolation:isolate}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}*:focus{outline:none;outline-style:auto}b{font-weight:normal}table{border-collapse:collapse}svg{max-width:inline-size;pointer-events:none}svg[role=img]{display:inline-flex;align-items:center;width:auto}:root{--weight: 600;--fs: clamp(0.96rem, 1vw + 0.5rem, 1.6rem);--p: 1rem;--px: var(--p);--py: var(--p);--m: 0.75rem;--mx: var(--m);--my: var(--m);--weight: 600;--radius: 0.5rem;--placeholder-color: gray;--placeholder-style: italic;--placeholder-fs: smaller;--transition: all 0.25s linear;--tran-all: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);--fs-0: clamp(.9rem, 4vw - 1rem, 1.12rem);--fs-1: clamp(0.65rem, 1.3vw + 0.25rem, 0.75rem);--fs-2: clamp(0.7rem, 2vw - 0.5rem, 0.875rem);--fs-3: clamp(0.85rem, 2vw - 0.25rem, 0.925rem);--fs-4: clamp(0.9rem, 2vw - 0.25rem, 1.313rem);--fs-5: clamp(0.94rem, 2vw - 0.25rem, 1.463rem);--fs-6: clamp(1rem, 2vw + 0.75rem, 2rem);--fs-7: clamp(1.1rem, 4vw - 0.25rem, 2.375rem);--fs-8: clamp(1.2rem, 4vw + 0.25rem, 3rem);--fs-9: clamp(1.2rem, 4vw + 0.5rem, 4rem);--fs-10: clamp(1.2rem, 5vw + 0.5rem, 4.5rem);--fs-11: clamp(1.2rem, 5vw + 0.75rem, 5.063rem);--fs-12: clamp(1.5rem, 5vw + 0.9rem, 6.375rem);--fs-xs: var(--fs-1);--fs-sm: var(--fs-3);--fs-base: var(--fs-0);--fs-md: var(--fs-5);--fs-lg: var(--fs-7);--fs-xl: var(--fs-9);--fs-xxl: var(--fs-11);--fs-xxxl: var(--fs-12);--display: var(--fs-12);--display-md: var(--fs-11);--display-sm: var(--fs-10);--h1: var(--fs-11);--h2: var(--fs-9);--h3: var(--fs-8);--h4: var(--fs-7);--h5: var(--fs-6);--h6: var(--fs-5);--spc-0: 0;--spc-1: 0.25rem;--spc-2: 0.5rem;--spc-3: 0.75rem;--spc-4: 1rem;--spc-5: 1.5;--spc-6: 2rem;--spc-7: 2.5rem;--spc-8: 3rem;--spc-9: 3.5rem;--spc-10: 4rem;--spc-11: 4.5rem;--spc-12: 5rem;--spc-13: 6rem;--spc-14: 7rem;--spc-15: 8rem;--spc-16: 9rem;--spc-17: 10rem;--spc-18: 11rem;--spc-19: 12rem;--spc-20: 13rem;--spc: var(--spc-4);--spc-xs: var(--spc-1);--spc-sm: var(--spc-3);--spc-base: var(--spc-5);--spc-md: var(--spc-7);--spc-lg: var(--spc-9);--spc-xl: var(--spc-11);--spc-xxl: var(--spc-13);--vw-xs: 5vw;--vw-sm: 10vw;--vw-md: 20vw;--vw-lg: 50vw;--vw-xl: 80vw;--vw-xxl: 95vw;--vh-xs: 5vh;--vh-sm: 10vh;--vh-md: 20vh;--vh-lg: 50vh;--vh-xl: 80vh;--vh-xxl: 95vh}:root{--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--TRUE: initial;--FALSE: ;--fs-weight: 500;--min-w: 20rem;--border-radius: 0.25rem;--padding: 1.5rem;--spacing-0: 0;--spacing-xs: clamp(0.25rem, 0.2rem + 0.25vw, 0.5rem);--spacing-sm: clamp(0.5rem, 0.45rem + 0.35vw, 0.75rem);--spacing-md: clamp(0.75rem, 0.65rem + 0.45vw, 1.125rem);--spacing-lg: clamp(1rem, 0.85rem + 0.6vw, 1.5rem);--spacing-xl: clamp(1.5rem, 1.25rem + 0.75vw, 2rem);--box-max-width-xs: 30rem;--box-max-width-sm: 40rem;--box-max-width-md: 48rem;--box-max-width-lg: 64rem;--box-max-width-xl: 80rem;--box-max-width-container: 75rem;--box-radius-xs: 0.125rem;--box-radius-sm: 0.25rem;--box-radius-md: 0.375rem;--box-radius-lg: 0.5rem;--box-radius-xl: 0.75rem;--box-radius-full: 9999px}html{font-family:var(--font-family);font-size:100%}body{display:var(--body-display, flex);min-height:100%;flex-direction:var(--body-direction, column);min-width:20.3125rem;font-size:var(--fs-0)}body main{flex-grow:1}body>a[href^="#"]{position:absolute;top:-4rem;left:0;width:100%;display:block;justify-content:flex-start;padding:1rem;z-index:100;transition:top .3s;border-radius:0;background-color:var(--color-skip-link-bg, var(--color-neutral-100))}body>a[href^="#"]:focus{top:0}main,header,footer,section{font-size:var(--fs-0)}section:not(nav){margin-inline:var(--sect-y, auto);padding-block:var(--sect-x, --spc-4)}p{max-width:75ch;font-size:var(--fs-0);line-height:1.6}p+p{margin-block-start:1rem}ul,ol{display:var(--li-display, flex);flex-direction:var(--li-direction, column);gap:var(--li-gap, 0.2rem);flex-wrap:var(--li-wrap, nowrap);padding-inline-start:var(--li-ps, var(--spc-3))}ul[role=list],ul[data-list~=unstyled],ol[role=list],ol[data-list~=unstyled]{list-style:var(--li-style, none);margin-block-end:var(--li-my, 0);margin-block-start:var(--li-mx, 0)}ul[data-list~=inline],ol[data-list~=inline]{--li-direction: row;--li-gap: 1rem;--li-wrap: wrap;--li-px: 0;--li-pi: 0}sup{vertical-align:super;font-size:smaller}blockquote{--blockquote-padding: 1rem;--blockquote-border-width: 0.3125rem;--blockquote-border-style: solid;--blockquote-border-color: var(--color-border);padding:var(--blockquote-padding);border-left:var(--blockquote-border-width) var(--blockquote-border-style) var(--blockquote-border-color)}strong{font-weight:var(--fs-weight)}h1,h2,h3,h4,h5,h6{font-weight:var(--fs-weight);margin-block-start:0;margin-block-end:1rem;line-height:1.2}hr{--hr-border-width: 0.0625rem;--hr-border-color: var(--color-border-subtle);--hr-margin-block: 1.5rem;--hr-border-style: solid;border:none;border-bottom:var(--hr-border-width) var(--hr-border-style) var(--hr-border-color);margin-block:var(--hr-margin-block);display:block;min-width:100%}h1[data-ui~=display],h1:has(span:first-of-type)>span,h2[data-ui~=display],h2:has(span:first-of-type)>span,h3[data-ui~=display],h3:has(span:first-of-type)>span,h4[data-ui~=display],h4:has(span:first-of-type)>span,h5[data-ui~=display],h5:has(span:first-of-type)>span,h6[data-ui~=display],h6:has(span:first-of-type)>span{--weight: 600;--title-1: var(--h1);--title-2: var(--h2);--title-3: var(--h3);--title-4: var(--h4);--title-5: var(--h5);--title-6: var(--h6)}.is-disabled,[aria-disabled=true]{--disabled-opacity: 0.91;--disabled-cursor: not-allowed;--disabled-color: currentColor;--disabled-background-color: none;opacity:var(--disabled-opacity);cursor:var(--disabled-cursor);color:var(--disabled-color);background-color:var(--disabled-background-color)}.is-disabled:focus-visible,[aria-disabled=true]:focus-visible{outline-width:.125rem;outline-style:solid;outline-offset:.125rem;outline-color:var(--focus-color, currentColor)}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-secondary)}.text-success{color:var(--color-success-text)}.text-error{color:var(--color-error-text)}.text-warning{color:var(--color-warning-text)}.text-info{color:var(--color-info-text)}.text-muted{color:var(--color-text-tertiary)}.text-disabled{color:var(--color-text-disabled)}.text-inverse{color:var(--color-text-inverse)}.bg-primary{background-color:var(--color-primary)}.bg-primary-light{background-color:var(--color-primary-light)}.bg-secondary{background-color:var(--color-secondary-light)}.bg-success{background-color:var(--color-success-bg)}.bg-error{background-color:var(--color-error-bg)}.bg-warning{background-color:var(--color-warning-bg)}.bg-info{background-color:var(--color-info-bg)}.bg-surface{background-color:var(--color-surface)}.bg-surface-secondary{background-color:var(--color-surface-secondary)}.bg-transparent{background-color:rgba(0,0,0,0)}.border-primary{border-color:var(--color-primary)}.border-secondary{border-color:var(--color-secondary)}.border-success{border-color:var(--color-success-border)}.border-error{border-color:var(--color-error-border)}.border-warning{border-color:var(--color-warning-border)}.border-info{border-color:var(--color-info-border)}.border-default{border-color:var(--color-border)}.border-subtle{border-color:var(--color-border-subtle)}.border-transparent{border-color:rgba(0,0,0,0)}.hide{display:none !important}.show{display:revert !important}.invisible{visibility:hidden !important}.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}.sr-only-focusable{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.sr-only-focusable:focus,.sr-only-focusable:focus-within{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}@media print{.print\:hide{display:none !important}}@media(width >= 30rem){.sm\:hide{display:none !important}.sm\:show{display:revert !important}.sm\:invisible{visibility:hidden !important}}@media(width >= 48rem){.md\:hide{display:none !important}.md\:show{display:revert !important}.md\:invisible{visibility:hidden !important}}@media(width >= 62rem){.lg\:hide{display:none !important}.lg\:show{display:revert !important}.lg\:invisible{visibility:hidden !important}}@media(width >= 80rem){.xl\:hide{display:none !important}.xl\:show{display:revert !important}.xl\:invisible{visibility:hidden !important}}button{--btn-size-xs: 0.6875rem;--btn-size-sm: 0.8125rem;--btn-size-md: 0.9375rem;--btn-size-lg: 1.125rem;--btn-size-xl: 1.375rem;--btn-size-2xl: 1.75rem;--btn-pill: 100vw;--btn-fs: var(--btn-size-md);--btn-height: calc(var(--btn-fs) * 2.75);--btn-bg: var(--color-primary);--btn-color: var(--color-text-inverse);--btn-width: max-content;font-size:var(--btn-fs);font-weight:var(--btn-fw, 500);height:var(--btn-height);place-items:var(--btn-place, center);padding-inline:var(--btn-padding-inline, calc(var(--btn-fs) * 1.5));padding-block:var(--btn-padding-block, calc(var(--btn-fs) * 0.5));border:var(--btn-border, none);border-radius:var(--btn-radius, 0.375rem);text-decoration:var(--btn-deco, none);color:var(--btn-color, currentColor);display:var(--btn-display, inline-flex);gap:var(--btn-gap, 0.2rem);white-space:var(--btn-whitespace, inherit);margin:var(--btn-spacing, 0);transition:var(--btn-transition, var(--tran-all, all 0.3s cubic-bezier(0.4, 0, 0.2, 1)));background-color:var(--btn-bg, var(--btn));outline:none;width:var(--btn-width);display:inline-flex;align-items:center;line-height:0cap}button[type]{background-color:var(--btn-bg, var(--color-primary));--btn-border: solid var(--btn-sg)}button[type=submit],button[style*=submit]{--btn-bg: var(--color-primary);--btn-color: var(--color-text-inverse)}button[disabled],button[aria-disabled=true]{cursor:var(--btn-cursor, not-allowed)}button[disabled]:is(:hover,:focus),button[aria-disabled=true]:is(:hover,:focus){transform:none}button:is(:hover,:focus){filter:var(--btn-hover-filter, brightness(0.85));transform:var(--btn-hover-transform, scale(1.03));outline:var(--btn-hover-outline, thin);outline-offset:var(--line-offset, 1px)}button:is(:hover,:focus)[aria-disabled=true]{transform:none;opacity:var(--btn-opacity, 0.5);filter:none}button:focus-visible{outline:var(--btn-focus-outline, 2px solid currentColor);outline-offset:var(--btn-focus-outline-offset, 1px)}button[type=reset]{--btn-bg: transparent;--btn-color: var(--color-text-secondary);--btn-border: var(--color-border) thin solid}button[type=submit]{--btn-bg: var(--color-primary);--btn-color: var(--color-text-inverse);--btn-border: none}button[data-fp-btn~=pill],button[data-btn~=pill],button[data-style~=pill],button.btn-pill{border-radius:var(--btn-pill, 100vw)}button[data-color=primary]{--btn-bg: var(--color-primary);--btn-color: var(--color-text-inverse)}button[data-color=secondary]{--btn-bg: var(--color-secondary);--btn-color: var(--color-text-inverse)}button[data-color=danger]{--btn-bg: var(--color-error);--btn-color: var(--color-text-inverse)}button[data-color=success]{--btn-bg: var(--color-success);--btn-color: var(--color-text-inverse)}button[data-color=warning]{--btn-bg: var(--color-warning);--btn-color: var(--color-text-inverse)}button[data-color=info]{--btn-bg: var(--color-info);--btn-color: var(--color-text-inverse)}button[data-style~=outline]{--btn-bg: transparent;--btn-color: currentColor;--btn-border: 0.125rem solid currentColor}button[data-style~=outline]:is(:hover,:focus){background-color:color-mix(in srgb, currentColor 10%, transparent);filter:none;outline:.025rem solid currentColor;outline-offset:0}button[data-style~=text]{--btn-bg: transparent;--btn-color: currentColor;--btn-border: none;--btn-height: unset;--btn-width: unset;--btn-padding-block: 0.75rem;--btn-padding-inline: 0.75rem}button[data-style~=text]:is(:hover,:focus){background-color:color-mix(in srgb, var(--btn-color) 10%, transparent);outline:.025rem solid var(--btn-color);outline-offset:0;filter:none}button[data-style~=icon]{padding:unset;height:unset;--btn-bg: transparent;min-width:1.5rem;min-height:1.5rem;text-align:center;display:inline-flex;align-items:center;justify-content:center}button[data-btn~=xs],button .btn-xs{--btn-fs: var(--btn-size-xs);text-transform:uppercase}button[data-btn~=sm],button .btn-sm{--btn-fs: var(--btn-size-sm)}button[data-btn~=md],button .btn-md{--btn-fs: var(--btn-size-md)}button[data-btn~=lg],button .btn-lg{--btn-fs: var(--btn-size-lg)}button[data-btn~=xl],button .btn-xl{--btn-fs: var(--btn-size-xl)}button[data-btn~="2xl"],button .btn-2xl{--btn-fs: var(--btn-size-2xl)}button[data-btn~=block],button .btn-block{--btn-width: 100%;display:flex;justify-content:center}button[data-btn~=text],button .btn-text{--btn-bg: transparent;--btn-color: currentColor;--btn-border: none;--btn-height: unset;--btn-width: unset;--btn-padding-block: 0.75rem;--btn-padding-inline: 0.75rem}button[data-btn~=text]:is(:hover,:focus),button .btn-text:is(:hover,:focus){background-color:color-mix(in srgb, var(--btn-color) 10%, transparent);outline:.025rem solid var(--btn-color);outline-offset:0;filter:none}p[role=note],[role=note],small>span,[data-tag]{--beta: var(--color-amber-400);--stable: var(--color-green-700);--production: var(--color-blue-900);--tag-padding-inline: 0.7rem;--tag-padding-block: 0.2rem;--tag-fs: 0.8rem;--tag-radius: 99rem;--tag-bg: var(--color-neutral-300);--tag-fw: 500;--tag-color: currentColor;--tag-display: inline-block;display:var(--tag-display);padding-inline:var(--tag-padding-inline);padding-block:var(--tag-padding-block);font-size:var(--tag-fs);color:var(--tag-color);background-color:var(--tag-bg);border-radius:var(--tag-radius)}p[role=note]:focus-visible,[role=note]:focus-visible,small>span:focus-visible,[data-tag]:focus-visible{outline:2px solid currentColor;outline-offset:2px}p[role=note]:focus:not(:focus-visible),[role=note]:focus:not(:focus-visible),small>span:focus:not(:focus-visible),[data-tag]:focus:not(:focus-visible){outline:none}p[role=note][data-tag~=alpha],[role=note][data-tag~=alpha],small>span[data-tag~=alpha],[data-tag][data-tag~=alpha]{--tag-color: var(--color-neutral-900);--tag-bg: var(--beta)}p[role=note][data-tag~=alpha]::before,[role=note][data-tag~=alpha]::before,small>span[data-tag~=alpha]::before,[data-tag][data-tag~=alpha]::before{content:"⚠";margin-inline-end:.25rem;font-weight:700;aria-hidden:true}p[role=note][data-tag~=beta],[role=note][data-tag~=beta],small>span[data-tag~=beta],[data-tag][data-tag~=beta]{--tag-color: var(--color-neutral-900);--tag-bg: var(--beta)}p[role=note][data-tag~=beta]::before,[role=note][data-tag~=beta]::before,small>span[data-tag~=beta]::before,[data-tag][data-tag~=beta]::before{content:"⚠";margin-inline-end:.25rem;font-weight:700;aria-hidden:true}p[role=note][data-tag~=stable],[role=note][data-tag~=stable],small>span[data-tag~=stable],[data-tag][data-tag~=stable]{--tag-color: var(--color-text-inverse);--tag-bg: var(--stable)}p[role=note][data-tag~=stable]::before,[role=note][data-tag~=stable]::before,small>span[data-tag~=stable]::before,[data-tag][data-tag~=stable]::before{content:"✓";margin-inline-end:.25rem;font-weight:700;aria-hidden:true}p[role=note][data-tag~=production],[role=note][data-tag~=production],small>span[data-tag~=production],[data-tag][data-tag~=production]{--tag-color: var(--color-text-inverse);--tag-bg: var(--production)}p[role=note][data-tag~=production]::before,[role=note][data-tag~=production]::before,small>span[data-tag~=production]::before,[data-tag][data-tag~=production]::before{content:"●";margin-inline-end:.25rem;font-weight:700;aria-hidden:true}p[role=note]{--tag-display: block;--tag-radius: 0.5rem}img[alt]{--img-max-width: 100%;--img-height: auto;--img-object-fit: cover;--img-object-position: center;--img-aspect-ratio: auto 2/3;--img-display: inline-block;max-width:var(--img-max-width);max-inline-size:var(--img-max-width);block-size:var(--img-height);display:var(--img-display);vertical-align:middle;object-fit:var(--img-object-fit);object-position:var(--img-object-position);aspect-ratio:var(--img-aspect-ratio);font-style:italic;background-size:cover;background-repeat:no-repeat;shape-margin:var(--spc-3)}figure:has(img[alt]){--fig-display: flex;--fig-padding: 0.5rem;--fig-bg: var(--color-surface-tertiary);--fig-width: fit-content;display:var(--fig-display);position:relative;padding:var(--fig-padding);background-color:var(--fig-bg);max-width:var(--fig-width)}figure:has(img[alt])>figcaption{position:absolute;bottom:var(--fig-bottom, var(--fig-padding));left:var(--fig-left, var(--fig-padding));right:var(--fig-right, var(--fig-padding));padding:var(--caption-padding, var(--spc-3));background-color:var(--fig-bg)}:root{--card-padding: 1.5rem;--card-bg: var(--color-surface);--card-radius: calc(var(--card-padding) / 4);--card-gap: 1rem;--card-header-padding: 1rem 1.5rem;--card-header-bg: var(--color-surface-secondary);--card-header-border-bottom-width: 0.0625rem;--card-header-border-bottom-style: solid;--card-header-border-bottom-color: var(--color-border);--card-body-padding: 1.5rem;--card-footer-padding: 1rem 1.5rem;--card-footer-bg: var(--color-surface-secondary);--card-footer-border-top-width: 0.0625rem;--card-footer-border-top-style: solid;--card-footer-border-top-color: var(--color-border)}[data-card],[data-component~=card]{display:flex;flex-direction:column;gap:var(--card-gap);border-radius:var(--card-radius);border:var(--card-border, 0.0625rem solid var(--color-border-subtle));background-color:var(--card-bg);text-align:var(--card-align, left)}[data-card] h3,[data-card] h2,[data-component~=card] h3,[data-component~=card] h2{margin-block-end:0;padding-block-end:0}[data-card]+div,[data-component~=card]+div{margin-block-start:0}[data-card]>article,[data-component~=card]>article{display:flex;flex-direction:column;flex:2}[data-card]>*:not(img),[data-component~=card]>*:not(img){padding-inline:var(--card-padding)}[data-card]>*:last-child:not(img),[data-component~=card]>*:last-child:not(img){padding-block-end:var(--card-padding)}[data-card]>*:first-child:not(img),[data-component~=card]>*:first-child:not(img){padding-block-start:calc(var(--card-padding) - .5rem)}[data-card]>header,[data-card]>[data-card-header],[data-component~=card]>header,[data-component~=card]>[data-card-header]{padding:var(--card-header-padding);background-color:var(--card-header-bg);border-bottom:var(--card-header-border-bottom-width) var(--card-header-border-bottom-style) var(--card-header-border-bottom-color);border-radius:var(--card-radius) var(--card-radius) 0 0}[data-card]>[data-card-body],[data-component~=card]>[data-card-body]{padding:var(--card-body-padding);flex:1}[data-card]>footer,[data-card]>[data-card-footer],[data-component~=card]>footer,[data-component~=card]>[data-card-footer]{padding:var(--card-footer-padding);background-color:var(--card-footer-bg);border-top:var(--card-footer-border-top-width) var(--card-footer-border-top-style) var(--card-footer-border-top-color);border-radius:0 0 var(--card-radius) var(--card-radius)}[data-card=interactive]{--card-transition-duration: 0.2s;--card-transition-timing: ease;--card-hover-lift: -0.125rem;--card-hover-shadow: 0 0.25rem 0.75rem rgba(var(--color-ui-overlay-base), 0.15);cursor:pointer;transition:box-shadow var(--card-transition-duration) var(--card-transition-timing),transform var(--card-transition-duration) var(--card-transition-timing)}[data-card=interactive]:hover{transform:translateY(var(--card-hover-lift));box-shadow:var(--card-hover-shadow)}[data-card=interactive]:focus-visible{outline:.125rem solid var(--color-focus);outline-offset:.125rem}[data-card=interactive]:focus:not(:focus-visible){outline:none}progress{all:revert;--progress-width: 100%;--progress-height: 1rem;--progress-bg: var(--color-neutral-300);--progress-color: var(--color-primary);--progress-accent-color: var(--progress-color)}progress[value]{width:var(--progress-width);height:var(--progress-height);background-color:var(--progress-bg);accent-color:var(--progress-accent-color)}progress[value]::-webkit-progress-value{background-color:var(--progress-accent-color);accent-color:var(--progress-accent-color)}progress[value]::-moz-progress-bar{background-color:var(--progress-accent-color);accent-color:var(--progress-accent-color)}progress[value]::-webkit-progress-bar{background-color:var(--progress-background-color);accent-color:var(--progress-accent-color)}progress[aria-busy]{width:var(--progress-width);height:var(--progress-height);accent-color:var(--progress-accent-color)}progress[aria-busy]::-webkit-progress-value{accent-color:var(--progress-accent-color)}progress[aria-busy]::-moz-progress-bar{accent-color:var(--progress-accent-color)}progress[aria-busy]::-webkit-progress-bar{accent-color:var(--progress-accent-color)}details{--details-border: 0.0625rem solid var(--color-border-subtle);--details-direction: column;--details-display: flex;--details-gap: 0rem;--details-height: max-content;--details-justify: flex-start;--details-padding-inline: 1.5rem;--details-padding-block: 1rem;--details-radius: 0;--details-width: 100%;--details-max-height-closed: 6.25rem;--details-max-height-open: 50rem;--summary-align: center;--summary-cursor: pointer;--summary-display: flex;--summary-gap: 0.5rem;--summary-justify: flex-start;--summary-transitions: all 0.75s ease-in-out;interpolate-size:allow-keywords;display:var(--details-display);flex-direction:var(--details-direction);justify-content:var(--details-justify);gap:var(--details-gap);width:var(--details-width);border:var(--details-border);border-left:none;border-right:none;transition:var(--summary-transitions);max-height:var(--details-max-height-closed);overflow:clip}@starting-style{details{transition:var(--summary-transitions)}}details+details{border-radius:0;border-top:none}details:first-of-type{border-radius:var(--details-radius) var(--details-radius) 0 0}details:last-of-type{border-radius:0 0 var(--details-radius) var(--details-radius)}details:only-of-type{border-radius:var(--details-radius)}details::marker{content:none}details summary{display:var(--summary-display);justify-content:var(--summary-justify);align-items:var(--summary-align);padding-inline:var(--summary-padding-inline, var(--details-padding-inline));padding-block:var(--summary-padding-block, var(--details-padding-block));gap:var(--summary-gap);list-style:none;border-top-left-radius:var(--details-radius);border-top-right-radius:var(--details-radius);transition:var(--summary-transitions)}details summary::-webkit-details-marker{display:none}details summary:focus-within{outline:none;border-bottom:solid 2px currentColor;background-color:var(--color-surface-secondary)}details summary:hover{cursor:var(--summary-cursor)}details summary>section{width:var(--details-width)}details .list-styles summary{border-left:none;border-right:none}details>section{padding-inline:var(--details-padding-inline);padding-block:var(--details-padding-block);margin-block-start:0;border:1px rgba(0,0,0,0) solid}details[open]{max-height:max-content;transition:var(--summary-transitions)}details[open]>summary{border-bottom:var(--details-border)}details[open]>section{max-height:var(--details-max-height-open)}@starting-style{details[open]>section{max-height:0}}@supports(transition-behavior: allow-discrete){@starting-style{details{max-height:0;transition:var(--summary-transitions)}}}a[href]{--link-color: var(--color-link);--link-fw: 400;--link-fs: 1rem;--link-decoration: none;--link-decoration-offset: 0.09375rem;--link-decoration-thickness: 0.0625rem;--link-skip-ink: auto;--link-bg: transparent;--link-radius: 0.25rem;--link-padding-inline: 0;--link-padding-block: 0;--link-transition: all 0.35s ease-in-out;--link-focus-color: currentColor;--link-focus-width: 0.125rem;--link-focus-offset: 0.125rem;--link-focus-style: solid;color:var(--link-color);font-size:var(--link-fs);font-weight:var(--link-fw);text-decoration:var(--link-decoration);text-underline-offset:var(--link-decoration-offset);text-decoration-thickness:var(--link-decoration-thickness);text-decoration-skip-ink:var(--link-skip-ink);background-color:var(--link-bg);border-radius:var(--link-radius);transition:var(--link-transition)}a[href]>i,a[href]>b{font-weight:var(--link-fw);font-style:normal}a[href]:hover{--link-decoration: underline}a[href]:focus-visible{outline:var(--link-focus-width) var(--link-focus-style) var(--link-focus-color);outline-offset:var(--link-focus-offset);font-weight:bold}a[href]:visited,a[href]:active{--link-color: currentColor}a[href]:has(>b),a[href][data-btn],a[href]:has(>i){--link-button-color: var(--link-color);--link-bg: transparent;--link-decoration: none;--link-border-width: 0.125rem;--link-border-color: currentColor;--link-border-style: solid;--link-fs: 0.9rem;color:var(--link-button-color);background-color:var(--link-bg);font-style:normal;font-size:var(--link-fs);padding-inline:var(--link-fs);padding-block:calc(var(--link-fs) - .4rem);border-radius:var(--link-radius, 100vw);display:inline-flex;align-items:center;justify-content:center;outline:var(--link-border-width) var(--link-border-color) var(--link-border-style);--scale-transition: transform 0.25s ease;--scale: scale(1);--scale-to: scale(1.05);transform:var(--scale);transition:var(--scale-transition)}a[href]:has(>b):focus,a[href]:has(>b):focus-visible,a[href][data-btn]:focus,a[href][data-btn]:focus-visible,a[href]:has(>i):focus,a[href]:has(>i):focus-visible{outline:var(--link-border-width) var(--link-border-color) var(--link-border-style);outline-offset:var(--link-focus-offset);--link-decoration: none}a[href]:has(>b):hover,a[href][data-btn]:hover,a[href]:has(>i):hover{--link-decoration: none}a[href]:has(>b):hover,a[href][data-btn]:hover,a[href]:has(>i):hover{transform:var(--scale-to)}a[href][data-link~=pill],a[href]:has(>i){--link-radius: 100vw;--link-decoration: none;font-style:normal}a[href][data-link~=pill]:hover,a[href][data-link~=pill]:focus,a[href][data-link~=pill]:focus-visible,a[href]:has(>i):hover,a[href]:has(>i):focus,a[href]:has(>i):focus-visible{--link-decoration: none}header,[data-hero],[data-grid~=overlay]{--overlay-grid-area: overlay;--overlay-placement: center;--overlay-display: grid;--overlay-padding: 2rem;--overlay-width: 100%;--overlay-height: 40vh;--overlay-max-height: 500px;--overlay-color: currentColor;--overlay-content-width: 80%;--overlay-gap: 2rem;--overlay-bg: whitesmoke;--overlay-padding-inline: auto;--overlay-padding-block: auto;--overlay-margin-inline: auto;--overlay-margin-block: auto;grid-template-areas:"overlay";display:var(--overlay-display);place-items:var(--overlay-placement);align-items:var(--overlay-placement);min-height:var(--overlay-height);width:var(--overlay-width);color:var(--overlay-color);background-color:var(--overlay-bg);min-width:20rem}header>*,[data-hero]>*,[data-grid~=overlay]>*{grid-area:overlay}header>img,[data-hero]>img,[data-grid~=overlay]>img{width:var(--overlay-width);background-size:contain}header>div,header>section,[data-hero]>div,[data-hero]>section,[data-grid~=overlay]>div,[data-grid~=overlay]>section{--overlay-display: flex;max-width:var(--overlay-content-width);padding-inline:var(--spc-4);margin-inline:var(--overlay-margin-inline);gap:var(--overlay-gap);text-align:center}header>div p,header>section p,[data-hero]>div p,[data-hero]>section p,[data-grid~=overlay]>div p,[data-grid~=overlay]>section p{width:auto;max-width:60ch;font-size:var(--fs-8);line-height:1.4}header>div>h1,header>div>h2,header>section>h1,header>section>h2,[data-hero]>div>h1,[data-hero]>div>h2,[data-hero]>section>h1,[data-hero]>section>h2,[data-grid~=overlay]>div>h1,[data-grid~=overlay]>div>h2,[data-grid~=overlay]>section>h1,[data-grid~=overlay]>section>h2{line-height:var(--header-line-height, 1.1);font-weight:500}header>div>h1,header>section>h1,[data-hero]>div>h1,[data-hero]>section>h1,[data-grid~=overlay]>div>h1,[data-grid~=overlay]>section>h1{font-size:var(--fs-12)}header>div>h2,header>section>h2,[data-hero]>div>h2,[data-hero]>section>h2,[data-grid~=overlay]>div>h2,[data-grid~=overlay]>section>h2{font-size:var(--fs-11)}header>div>h3,header>section>h3,[data-hero]>div>h3,[data-hero]>section>h3,[data-grid~=overlay]>div>h3,[data-grid~=overlay]>section>h3{font-size:var(--fs-10)}main,footer{--content-width: min(100%, 1480px);--content-margin-inline: auto;--content-padding-inline: 1rem;--content-gap: 2rem;padding-block:var(--overlay-padding)}main>section,footer>section{width:var(--content-width);margin-inline:var(--content-margin-inline);padding-inline:var(--spc-6)}main{flex:1;font-size:var(--fs-3)}main>section[aria-label],main>section{width:var(--content-width);margin-inline:var(--content-margin-inline)}main>section[aria-label]:has(>article,>aside),main>section:has(>article,>aside){display:flex;flex-wrap:wrap;flex:1;gap:var(--content-gap)}main>section[aria-label]:has(>article,>aside)>article,main>section:has(>article,>aside)>article{flex-basis:0;flex-grow:999;min-inline-size:50%}main>section[aria-label]:has(>article,>aside)>aside,main>section:has(>article,>aside)>aside{flex-basis:20rem;flex-grow:1}footer>div{display:flex;align-items:center;justify-content:center;min-height:5rem;text-align:center}fieldset{border:var(--fieldset-border, 0.0625rem solid var(--color-border));border-radius:var(--fieldset-border-radius, 0.5rem);padding:var(--fieldset-padding, 1rem);padding-inline:var(--fieldset-padding-inline, 1.5rem);padding-block:var(--fieldset-padding-block, 1rem);margin-block:var(--fieldset-margin-block, 2rem);background:var(--fieldset-bg, transparent);display:flex;flex-direction:column;gap:1rem}fieldset>legend{font-size:var(--legend-fs, 1rem);font-weight:var(--legend-fw, 600);padding-inline:var(--legend-padding-inline, 0.5rem);color:var(--legend-color, currentColor)}fieldset .fieldset-description{margin-block-start:.5rem;margin-block-end:0;font-size:var(--fieldset-description-fs, 0.875rem);color:var(--fieldset-description-color, var(--color-text-tertiary))}fieldset:focus-within{outline:var(--fieldset-focus-outline, 0.125rem solid var(--color-focus));outline-offset:var(--fieldset-focus-offset, 0.125rem)}@media(hover: hover){fieldset:focus-within:not(:focus-visible){outline:none}}fieldset:disabled{opacity:var(--fieldset-disabled-opacity, 0.6);cursor:not-allowed}fieldset:disabled>legend{color:var(--legend-disabled-color, var(--color-text-disabled))}fieldset[data-legend=inline]{--fieldset-border: none;--fieldset-padding: 0}fieldset[data-legend=inline]>legend{float:inline-start;margin-inline-end:1rem;margin-block-end:.5rem}fieldset[data-fieldset=grouped]{--fieldset-bg: var(--color-surface-tertiary);--fieldset-padding-block: 1.5rem;--fieldset-border: 0.125rem solid var(--color-focus)}fieldset[data-fieldset=grouped]>legend{--legend-fs: 1.125rem;--legend-fw: 700}@media(prefers-contrast: high){fieldset{border-width:2px}fieldset>legend{font-weight:700}}@media(forced-colors: active){fieldset{border:1px solid CanvasText}fieldset>legend{color:CanvasText}fieldset .fieldset-description{color:CanvasText}}.box-padding-0{padding:0}.box-padding-xs{padding:var(--spacing-xs)}.box-padding-sm{padding:var(--spacing-sm)}.box-padding-md{padding:var(--spacing-md)}.box-padding-lg{padding:var(--spacing-lg)}.box-padding-xl{padding:var(--spacing-xl)}.box-padding-inline-0{padding-inline:0}.box-padding-inline-xs{padding-inline:var(--spacing-xs)}.box-padding-inline-sm{padding-inline:var(--spacing-sm)}.box-padding-inline-md{padding-inline:var(--spacing-md)}.box-padding-inline-lg{padding-inline:var(--spacing-lg)}.box-padding-inline-xl{padding-inline:var(--spacing-xl)}.box-padding-block-0{padding-block:0}.box-padding-block-xs{padding-block:var(--spacing-xs)}.box-padding-block-sm{padding-block:var(--spacing-sm)}.box-padding-block-md{padding-block:var(--spacing-md)}.box-padding-block-lg{padding-block:var(--spacing-lg)}.box-padding-block-xl{padding-block:var(--spacing-xl)}.box-margin-0{margin:0}.box-margin-xs{margin:var(--spacing-xs)}.box-margin-sm{margin:var(--spacing-sm)}.box-margin-md{margin:var(--spacing-md)}.box-margin-lg{margin:var(--spacing-lg)}.box-margin-xl{margin:var(--spacing-xl)}.box-margin-inline-0{margin-inline:0}.box-margin-inline-xs{margin-inline:var(--spacing-xs)}.box-margin-inline-sm{margin-inline:var(--spacing-sm)}.box-margin-inline-md{margin-inline:var(--spacing-md)}.box-margin-inline-lg{margin-inline:var(--spacing-lg)}.box-margin-inline-xl{margin-inline:var(--spacing-xl)}.box-margin-block-0{margin-block:0}.box-margin-block-xs{margin-block:var(--spacing-xs)}.box-margin-block-sm{margin-block:var(--spacing-sm)}.box-margin-block-md{margin-block:var(--spacing-md)}.box-margin-block-lg{margin-block:var(--spacing-lg)}.box-margin-block-xl{margin-block:var(--spacing-xl)}.box-width-auto{width:auto}.box-width-full{width:100%}.box-width-fit{width:fit-content}.box-width-max{width:max-content}.box-max-width-xs{max-width:var(--box-max-width-xs)}.box-max-width-sm{max-width:var(--box-max-width-sm)}.box-max-width-md{max-width:var(--box-max-width-md)}.box-max-width-lg{max-width:var(--box-max-width-lg)}.box-max-width-xl{max-width:var(--box-max-width-xl)}.box-max-width-container{max-width:var(--box-max-width-container)}.box-radius-0{border-radius:0}.box-radius-xs{border-radius:var(--box-radius-xs)}.box-radius-sm{border-radius:var(--box-radius-sm)}.box-radius-md{border-radius:var(--box-radius-md)}.box-radius-lg{border-radius:var(--box-radius-lg)}.box-radius-xl{border-radius:var(--box-radius-xl)}.box-radius-full{border-radius:var(--box-radius-full)}.stack{display:flex;flex-direction:column}.stack-vertical{flex-direction:column}.stack-horizontal{flex-direction:row}.stack-gap-0{gap:0}.stack-gap-xs{gap:var(--spacing-xs)}.stack-gap-sm{gap:var(--spacing-sm)}.stack-gap-md{gap:var(--spacing-md)}.stack-gap-lg{gap:var(--spacing-lg)}.stack-gap-xl{gap:var(--spacing-xl)}.stack-align-start{align-items:flex-start}.stack-align-center{align-items:center}.stack-align-end{align-items:flex-end}.stack-align-stretch{align-items:stretch}.stack-justify-start{justify-content:flex-start}.stack-justify-center{justify-content:center}.stack-justify-end{justify-content:flex-end}.stack-justify-between{justify-content:space-between}.stack-wrap{flex-wrap:wrap}.stack-nowrap{flex-wrap:nowrap}.cluster{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.cluster-gap-0{gap:0}.cluster-gap-xs{gap:var(--spacing-xs)}.cluster-gap-sm{gap:var(--spacing-sm)}.cluster-gap-md{gap:var(--spacing-md)}.cluster-gap-lg{gap:var(--spacing-lg)}.cluster-gap-xl{gap:var(--spacing-xl)}.cluster-justify-start{justify-content:flex-start}.cluster-justify-center{justify-content:center}.cluster-justify-end{justify-content:flex-end}.cluster-justify-between{justify-content:space-between}.cluster-align-start{align-items:flex-start}.cluster-align-center{align-items:center}.cluster-align-end{align-items:flex-end}.cluster-align-baseline{align-items:baseline}.grid{display:grid;gap:var(--spacing-md)}.grid-cols-1{grid-template-columns:repeat(1, 1fr)}.grid-cols-2{grid-template-columns:repeat(2, 1fr)}.grid-cols-3{grid-template-columns:repeat(3, 1fr)}.grid-cols-4{grid-template-columns:repeat(4, 1fr)}.grid-cols-5{grid-template-columns:repeat(5, 1fr)}.grid-cols-6{grid-template-columns:repeat(6, 1fr)}.grid-cols-7{grid-template-columns:repeat(7, 1fr)}.grid-cols-8{grid-template-columns:repeat(8, 1fr)}.grid-cols-9{grid-template-columns:repeat(9, 1fr)}.grid-cols-10{grid-template-columns:repeat(10, 1fr)}.grid-cols-11{grid-template-columns:repeat(11, 1fr)}.grid-cols-12{grid-template-columns:repeat(12, 1fr)}.grid-gap-0{gap:0}.grid-gap-xs{gap:var(--spacing-xs)}.grid-gap-sm{gap:var(--spacing-sm)}.grid-gap-md{gap:var(--spacing-md)}.grid-gap-lg{gap:var(--spacing-lg)}.grid-gap-xl{gap:var(--spacing-xl)}.grid-gap-x-0{column-gap:0}.grid-gap-x-xs{column-gap:var(--spacing-xs)}.grid-gap-x-sm{column-gap:var(--spacing-sm)}.grid-gap-x-md{column-gap:var(--spacing-md)}.grid-gap-x-lg{column-gap:var(--spacing-lg)}.grid-gap-x-xl{column-gap:var(--spacing-xl)}.grid-gap-y-0{row-gap:0}.grid-gap-y-xs{row-gap:var(--spacing-xs)}.grid-gap-y-sm{row-gap:var(--spacing-sm)}.grid-gap-y-md{row-gap:var(--spacing-md)}.grid-gap-y-lg{row-gap:var(--spacing-lg)}.grid-gap-y-xl{row-gap:var(--spacing-xl)}.grid-justify-items-start{justify-items:start}.grid-justify-items-center{justify-items:center}.grid-justify-items-end{justify-items:end}.grid-justify-items-stretch{justify-items:stretch}.grid-align-items-start{align-items:start}.grid-align-items-center{align-items:center}.grid-align-items-end{align-items:end}.grid-align-items-stretch{align-items:stretch}.grid-col-span-1{grid-column:span 1}.grid-col-span-2{grid-column:span 2}.grid-col-span-3{grid-column:span 3}.grid-col-span-4{grid-column:span 4}.grid-col-span-5{grid-column:span 5}.grid-col-span-6{grid-column:span 6}.grid-col-span-7{grid-column:span 7}.grid-col-span-8{grid-column:span 8}.grid-col-span-9{grid-column:span 9}.grid-col-span-10{grid-column:span 10}.grid-col-span-11{grid-column:span 11}.grid-col-span-12{grid-column:span 12}.grid-row-span-1{grid-row:span 1}.grid-row-span-2{grid-row:span 2}.grid-row-span-3{grid-row:span 3}.grid-row-span-4{grid-row:span 4}.grid-row-span-5{grid-row:span 5}.grid-row-span-6{grid-row:span 6}:root{--dialog-min-width: max(20rem, 80%);--dialog-width: var(--dialog-min-width);--dialog-max-width: 90vw;--dialog-max-height: 85vh;--dialog-margin: auto;--dialog-inset: 0;--dialog-gap: 0.625rem;--dialog-border-color: var(--color-border);--dialog-border-width: thin;--dialog-border-style: solid;--dialog-border-radius: var(--border-radius);--dialog-padding: 1.5rem;--dialog-padding-inline: 1rem;--dialog-close-color: var(--color-text-secondary);--dialog-button-bg: transparent;--dialog-button-border: transparent thin solid;--dialog-button-hover-bg: var(--color-surface-secondary);--dialog-display: flex;--dialog-flex-direction: column;--dialog-focus-color: var(--color-focus);--dialog-focus-width: 0.125rem;--dialog-focus-offset: 0.125rem;--dialog-focus-outline: var(--dialog-focus-width) solid var(--dialog-focus-color)}@media(prefers-contrast: high){:root{--dialog-border-color: currentColor;--dialog-border-width: 0.125rem;--dialog-close-color: currentColor;--dialog-button-border: currentColor 0.125rem solid;--dialog-focus-width: 0.1875rem}}dialog{margin:var(--dialog-margin);inset:var(--dialog-inset);width:var(--dialog-width);max-width:var(--dialog-max-width);max-height:var(--dialog-max-height);gap:var(--dialog-gap);border:var(--dialog-border-color) var(--dialog-border-width) solid;border-radius:var(--dialog-border-radius);padding:var(--dialog-padding);padding-block-start:var(--dialog-padding)}dialog:focus-visible{outline:var(--dialog-focus-outline);outline-offset:var(--dialog-focus-offset)}dialog[open]{display:var(--dialog-display);flex-direction:var(--dialog-flex-direction);gap:var(--dialog-gap)}dialog section{width:100%;display:flex;justify-content:start;gap:var(--dialog-gap);flex-direction:var(--dialog-flex-direction);margin-block-start:0;--sect-y: 0}.dialog-header{display:flex;justify-content:space-between;align-items:center;width:100%;min-width:100%}.dialog-header h3{margin-block-start:0;margin-block-end:0}.dialog-header .dialog-close{margin-block-end:0}.dialog-header button[type=button]{background-color:var(--dialog-button-bg);border:var(--dialog-button-border);color:var(--dialog-close-color);cursor:pointer}.dialog-header button[type=button]:hover{border-color:var(--dialog-close-color);background-color:var(--dialog-button-hover-bg)}.dialog-header button[type=button]:focus-visible{outline:var(--dialog-focus-outline);outline-offset:var(--dialog-focus-offset);border-color:var(--dialog-focus-color);background-color:var(--dialog-button-hover-bg)}.dialog-header button[type=button]:focus:not(:focus-visible){outline:none}.alert-dialog-actions,.dialog-footer{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:var(--dialog-footer-justify, flex-end);gap:var(--dialog-gap);width:100%}.alert-dialog-actions button:focus-visible,.dialog-footer button:focus-visible{outline:var(--dialog-focus-outline);outline-offset:var(--dialog-focus-offset)}.alert-dialog-actions button:focus:not(:focus-visible),.dialog-footer button:focus:not(:focus-visible){outline:none}dialog[data-size=sm]{--dialog-width: 25rem}dialog[data-size=md]{--dialog-width: 32rem}dialog[data-size=lg]{--dialog-width: 48rem}dialog[data-size=full]{box-sizing:border-box;width:100vw;max-width:100vw;height:100vh;max-height:100vh;margin:0;inset:0;border:0;border-radius:0}dialog[data-position=center]{--dialog-margin: auto;--dialog-inset: 0}dialog[data-position=top]{--dialog-margin: 0 auto auto auto;--dialog-inset: 0}dialog[data-position=bottom]{--dialog-margin: auto auto 0 auto;--dialog-inset: 0}dialog[data-position=left]{--dialog-margin: 0 auto 0 0;--dialog-inset: 0;height:100vh;max-height:100vh;border-radius:0}dialog[data-position=right]{--dialog-margin: 0 0 0 auto;--dialog-inset: 0;height:100vh;max-height:100vh;border-radius:0}dialog[data-position=top-left]{--dialog-margin: 0 auto auto 0;--dialog-inset: 0}dialog[data-position=top-right]{--dialog-margin: 0 0 auto auto;--dialog-inset: 0}dialog[data-position=bottom-left]{--dialog-margin: auto auto 0 0;--dialog-inset: 0}dialog[data-position=bottom-right]{--dialog-margin: auto 0 0 auto;--dialog-inset: 0}.fpkit-popover{--popover-bg: var(--color-surface-elevated);--popover-border: 0.0625rem solid var(--color-border);--popover-border-radius: 0.5rem;--popover-padding: 1rem;--popover-margin: 0.5rem;--popover-max-width: 20rem;--popover-shadow: 0 0.25rem 0.5rem rgba(var(--color-ui-overlay-base), 0.1), 0 0.125rem 0.25rem rgba(var(--color-ui-overlay-base), 0.06);--popover-arrow-size: 0.5rem;--popover-arrow-color: var(--popover-bg);--popover-close-size: 1.5rem;--popover-close-color: var(--color-text-tertiary);--popover-close-hover-color: var(--color-text);--popover-close-hover-bg: var(--color-hover-overlay);background:var(--popover-bg);border:var(--popover-border);border-radius:var(--popover-border-radius);padding:var(--popover-padding);max-width:var(--popover-max-width);box-shadow:var(--popover-shadow);margin:0}.fpkit-popover[data-placement=top]{margin-bottom:var(--popover-margin)}.fpkit-popover[data-placement=bottom]{margin-top:var(--popover-margin)}.fpkit-popover[data-placement=left]{margin-right:var(--popover-margin)}.fpkit-popover[data-placement=right]{margin-left:var(--popover-margin)}.fpkit-popover:popover-open{opacity:1;transform:scale(1);transition:opacity .2s ease-out,transform .2s ease-out,overlay .2s ease-out allow-discrete,display .2s ease-out allow-discrete}@starting-style{.fpkit-popover:popover-open{opacity:0;transform:scale(0.95)}}.fpkit-popover:not(:popover-open){opacity:0;transform:scale(0.95);transition:opacity .2s ease-in,transform .2s ease-in,overlay .2s ease-in allow-discrete,display .2s ease-in allow-discrete}.fpkit-popover::backdrop{background:rgba(var(--color-ui-overlay-base), 0.3);backdrop-filter:blur(0.125rem);transition:background .2s ease-out,backdrop-filter .2s ease-out,overlay .2s ease-out allow-discrete,display .2s ease-out allow-discrete}@starting-style{.fpkit-popover::backdrop{background:rgba(var(--color-ui-overlay-base), 0);backdrop-filter:blur(0)}}.fpkit-popover-content{position:relative;display:block}.fpkit-popover-close{position:absolute;top:.5rem;right:.5rem;width:var(--popover-close-size);height:var(--popover-close-size);display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0);border:none;border-radius:.25rem;color:var(--popover-close-color);font-size:1rem;line-height:1;cursor:pointer;transition:background-color .15s ease,color .15s ease}.fpkit-popover-close:hover{background:var(--popover-close-hover-bg);color:var(--popover-close-hover-color)}.fpkit-popover-close:focus-visible{outline:.125rem solid currentColor;outline-offset:.125rem}.fpkit-popover-arrow{position:absolute;width:var(--popover-arrow-size);height:var(--popover-arrow-size);background:var(--popover-arrow-color);transform:rotate(45deg);border:inherit}.fpkit-popover-arrow[data-placement=top]{bottom:calc(var(--popover-arrow-size)/-2);left:50%;margin-left:calc(var(--popover-arrow-size)/-2);border-top:none;border-left:none}.fpkit-popover-arrow[data-placement=bottom]{top:calc(var(--popover-arrow-size)/-2);left:50%;margin-left:calc(var(--popover-arrow-size)/-2);border-bottom:none;border-right:none}.fpkit-popover-arrow[data-placement=left]{right:calc(var(--popover-arrow-size)/-2);top:50%;margin-top:calc(var(--popover-arrow-size)/-2);border-left:none;border-bottom:none}.fpkit-popover-arrow[data-placement=right]{left:calc(var(--popover-arrow-size)/-2);top:50%;margin-top:calc(var(--popover-arrow-size)/-2);border-right:none;border-top:none}.fpkit-popover-trigger{padding:.5rem 1rem;background:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:.25rem;font-size:1rem;cursor:pointer;transition:background-color .15s ease,transform .1s ease}.fpkit-popover-trigger:hover{background:var(--color-primary-hover)}.fpkit-popover-trigger:active{transform:scale(0.98)}.fpkit-popover-trigger:focus-visible{outline:.125rem solid currentColor;outline-offset:.125rem}@supports(anchor-name: --trigger){.fpkit-popover-trigger{anchor-name:--trigger}.fpkit-popover{position-anchor:--trigger}.fpkit-popover[data-placement=top]{bottom:anchor(top);left:anchor(center);translate:-50% 0}.fpkit-popover[data-placement=bottom]{top:anchor(bottom);left:anchor(center);translate:-50% 0}.fpkit-popover[data-placement=left]{right:anchor(left);top:anchor(center);translate:0 -50%}.fpkit-popover[data-placement=right]{left:anchor(right);top:anchor(center);translate:0 -50%}}:root{--gap: 1.75rem}:where([data-grid]){--gap: 1.5rem;--grid-column-min-width: 20.3125rem;--grid-gap: var(--gap);--grid-padding: 10px;--grid-justify-content: center;--grid-align-content: center;display:grid;grid-template-columns:repeat(auto-fit, minmax(var(--grid-column-min-width), 1fr));gap:var(--grid-gap);padding:var(--grid-padding);justify-content:var(--grid-justify-content);align-content:var(--grid-align-content)}:where([data-flex]){display:flex;flex-wrap:wrap;margin-block-end:3rem;margin-inline:auto;justify-content:center;gap:var(--gap)}:where([data-flex])>*:has(div,aside,article){flex-basis:calc(var(--col-w, 100%) - var(--card-gap));min-width:var(--col-min-w, 18.75rem)}:where([data-flex~=start]){justify-content:start}:where([data-flex~=end]){justify-content:end}:where([data-flex~=cols-2]){--col-w: 50%}:where([data-flex~=cols-3]){--col-w: 33%}:where([data-flex~=cols-4]){--col-w: 25%}:where([data-flex~=cols-5]){--col-w: 20%}:where([data-flex~=cols-6]){--col-w: 16%}:where([data-flex~=cols-7]){--col-w: 14%}:where([data-flex~=cols-8]){--col-w: 12%}:where([data-flex~=cols-9]){--col-w: 11%}:where([data-flex~=cols-10]){--col-w: 10%}:where([data-flex~=cols-11]){--col-w: 9%}:where([data-flex~=cols-12]){--col-w: 8%}:where([data-flex-grid]){display:grid;grid-template-columns:repeat(auto-fit, minmax(var(--grid-column-min-width, 20.3125rem), 1fr));gap:var(--gap);margin-block-end:3rem;margin-inline:auto;justify-content:center;align-content:start}:root{--col-breakpoint: 48rem;--col-1: 8.333333%;--col-2: 16.666667%;--col-3: 25%;--col-4: 33.333333%;--col-5: 41.666667%;--col-6: 50%;--col-7: 58.333333%;--col-8: 66.666667%;--col-9: 75%;--col-10: 83.333333%;--col-11: 91.666667%;--col-12: 100%}:root{--col-breakpoint-xs: 0rem;--col-breakpoint-sm: 30rem;--col-breakpoint-md: 48rem;--col-breakpoint-lg: 64rem;--col-breakpoint: var(--col-breakpoint-md)}.col-row{display:flex;flex-wrap:wrap;gap:var(--spacing-md)}.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12{flex:0 0 100%;min-width:0;box-sizing:border-box}@media(width >= 48rem){.col-row{flex-wrap:nowrap}.col-1{flex:0 1 var(--col-1)}.col-2{flex:0 1 var(--col-2)}.col-3{flex:0 1 var(--col-3)}.col-4{flex:0 1 var(--col-4)}.col-5{flex:0 1 var(--col-5)}.col-6{flex:0 1 var(--col-6)}.col-7{flex:0 1 var(--col-7)}.col-8{flex:0 1 var(--col-8)}.col-9{flex:0 1 var(--col-9)}.col-10{flex:0 1 var(--col-10)}.col-11{flex:0 1 var(--col-11)}.col-12{flex:0 1 var(--col-12)}}@media(width >= 30rem){.col-sm-1{flex:0 1 var(--col-1)}.col-sm-2{flex:0 1 var(--col-2)}.col-sm-3{flex:0 1 var(--col-3)}.col-sm-4{flex:0 1 var(--col-4)}.col-sm-5{flex:0 1 var(--col-5)}.col-sm-6{flex:0 1 var(--col-6)}.col-sm-7{flex:0 1 var(--col-7)}.col-sm-8{flex:0 1 var(--col-8)}.col-sm-9{flex:0 1 var(--col-9)}.col-sm-10{flex:0 1 var(--col-10)}.col-sm-11{flex:0 1 var(--col-11)}.col-sm-12{flex:0 1 var(--col-12)}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-flex{flex:1 1 0%;min-width:0}}@media(width >= 48rem){.col-md-1{flex:0 1 var(--col-1)}.col-md-2{flex:0 1 var(--col-2)}.col-md-3{flex:0 1 var(--col-3)}.col-md-4{flex:0 1 var(--col-4)}.col-md-5{flex:0 1 var(--col-5)}.col-md-6{flex:0 1 var(--col-6)}.col-md-7{flex:0 1 var(--col-7)}.col-md-8{flex:0 1 var(--col-8)}.col-md-9{flex:0 1 var(--col-9)}.col-md-10{flex:0 1 var(--col-10)}.col-md-11{flex:0 1 var(--col-11)}.col-md-12{flex:0 1 var(--col-12)}.col-md-auto{flex:0 0 auto;width:auto}.col-md-flex{flex:1 1 0%;min-width:0}}@media(width >= 64rem){.col-lg-1{flex:0 1 var(--col-1)}.col-lg-2{flex:0 1 var(--col-2)}.col-lg-3{flex:0 1 var(--col-3)}.col-lg-4{flex:0 1 var(--col-4)}.col-lg-5{flex:0 1 var(--col-5)}.col-lg-6{flex:0 1 var(--col-6)}.col-lg-7{flex:0 1 var(--col-7)}.col-lg-8{flex:0 1 var(--col-8)}.col-lg-9{flex:0 1 var(--col-9)}.col-lg-10{flex:0 1 var(--col-10)}.col-lg-11{flex:0 1 var(--col-11)}.col-lg-12{flex:0 1 var(--col-12)}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-flex{flex:1 1 0%;min-width:0}}@media(width >= 30rem){.col-row-proportional .col-1,.col-row-proportional .col-2,.col-row-proportional .col-3,.col-row-proportional .col-4,.col-row-proportional .col-5,.col-row-proportional .col-6,.col-row-proportional .col-7,.col-row-proportional .col-8,.col-row-proportional .col-9,.col-row-proportional .col-10,.col-row-proportional .col-11,.col-row-proportional .col-12{flex:0 1 auto}.col-row-proportional .col-1{flex-basis:var(--col-1)}.col-row-proportional .col-2{flex-basis:var(--col-2)}.col-row-proportional .col-3{flex-basis:var(--col-3)}.col-row-proportional .col-4{flex-basis:var(--col-4)}.col-row-proportional .col-5{flex-basis:var(--col-5)}.col-row-proportional .col-6{flex-basis:var(--col-6)}.col-row-proportional .col-7{flex-basis:var(--col-7)}.col-row-proportional .col-8{flex-basis:var(--col-8)}.col-row-proportional .col-9{flex-basis:var(--col-9)}.col-row-proportional .col-10{flex-basis:var(--col-10)}.col-row-proportional .col-11{flex-basis:var(--col-11)}.col-row-proportional .col-12{flex-basis:var(--col-12)}}@media(width >= 48rem){.col-offset-0{margin-inline-start:0}.col-offset-1{margin-inline-start:var(--col-1)}.col-offset-2{margin-inline-start:var(--col-2)}.col-offset-3{margin-inline-start:var(--col-3)}.col-offset-4{margin-inline-start:var(--col-4)}.col-offset-5{margin-inline-start:var(--col-5)}.col-offset-6{margin-inline-start:var(--col-6)}.col-offset-7{margin-inline-start:var(--col-7)}.col-offset-8{margin-inline-start:var(--col-8)}.col-offset-9{margin-inline-start:var(--col-9)}.col-offset-10{margin-inline-start:var(--col-10)}.col-offset-11{margin-inline-start:var(--col-11)}}@media(width >= 30rem){.col-sm-offset-0{margin-inline-start:0}.col-sm-offset-1{margin-inline-start:var(--col-1)}.col-sm-offset-2{margin-inline-start:var(--col-2)}.col-sm-offset-3{margin-inline-start:var(--col-3)}.col-sm-offset-4{margin-inline-start:var(--col-4)}.col-sm-offset-5{margin-inline-start:var(--col-5)}.col-sm-offset-6{margin-inline-start:var(--col-6)}.col-sm-offset-7{margin-inline-start:var(--col-7)}.col-sm-offset-8{margin-inline-start:var(--col-8)}.col-sm-offset-9{margin-inline-start:var(--col-9)}.col-sm-offset-10{margin-inline-start:var(--col-10)}.col-sm-offset-11{margin-inline-start:var(--col-11)}}@media(width >= 48rem){.col-md-offset-0{margin-inline-start:0}.col-md-offset-1{margin-inline-start:var(--col-1)}.col-md-offset-2{margin-inline-start:var(--col-2)}.col-md-offset-3{margin-inline-start:var(--col-3)}.col-md-offset-4{margin-inline-start:var(--col-4)}.col-md-offset-5{margin-inline-start:var(--col-5)}.col-md-offset-6{margin-inline-start:var(--col-6)}.col-md-offset-7{margin-inline-start:var(--col-7)}.col-md-offset-8{margin-inline-start:var(--col-8)}.col-md-offset-9{margin-inline-start:var(--col-9)}.col-md-offset-10{margin-inline-start:var(--col-10)}.col-md-offset-11{margin-inline-start:var(--col-11)}}@media(width >= 64rem){.col-lg-offset-0{margin-inline-start:0}.col-lg-offset-1{margin-inline-start:var(--col-1)}.col-lg-offset-2{margin-inline-start:var(--col-2)}.col-lg-offset-3{margin-inline-start:var(--col-3)}.col-lg-offset-4{margin-inline-start:var(--col-4)}.col-lg-offset-5{margin-inline-start:var(--col-5)}.col-lg-offset-6{margin-inline-start:var(--col-6)}.col-lg-offset-7{margin-inline-start:var(--col-7)}.col-lg-offset-8{margin-inline-start:var(--col-8)}.col-lg-offset-9{margin-inline-start:var(--col-9)}.col-lg-offset-10{margin-inline-start:var(--col-10)}.col-lg-offset-11{margin-inline-start:var(--col-11)}}.col-auto{width:auto;flex:0 0 auto}.col-flex{flex:0 0 100%;min-width:0;box-sizing:border-box}@media(width >= 48rem){.col-flex{flex:1 1 0%}}@media(width >= 48rem){.col-order-first{order:-1}.col-order-last{order:13}.col-order-0{order:0}.col-order-1{order:1}.col-order-2{order:2}.col-order-3{order:3}.col-order-4{order:4}.col-order-5{order:5}.col-order-6{order:6}.col-order-7{order:7}.col-order-8{order:8}.col-order-9{order:9}.col-order-10{order:10}.col-order-11{order:11}.col-order-12{order:12}}@media(width >= 30rem){.col-sm-order-first{order:-1}.col-sm-order-last{order:13}.col-sm-order-0{order:0}.col-sm-order-1{order:1}.col-sm-order-2{order:2}.col-sm-order-3{order:3}.col-sm-order-4{order:4}.col-sm-order-5{order:5}.col-sm-order-6{order:6}.col-sm-order-7{order:7}.col-sm-order-8{order:8}.col-sm-order-9{order:9}.col-sm-order-10{order:10}.col-sm-order-11{order:11}.col-sm-order-12{order:12}}@media(width >= 48rem){.col-md-order-first{order:-1}.col-md-order-last{order:13}.col-md-order-0{order:0}.col-md-order-1{order:1}.col-md-order-2{order:2}.col-md-order-3{order:3}.col-md-order-4{order:4}.col-md-order-5{order:5}.col-md-order-6{order:6}.col-md-order-7{order:7}.col-md-order-8{order:8}.col-md-order-9{order:9}.col-md-order-10{order:10}.col-md-order-11{order:11}.col-md-order-12{order:12}}@media(width >= 64rem){.col-lg-order-first{order:-1}.col-lg-order-last{order:13}.col-lg-order-0{order:0}.col-lg-order-1{order:1}.col-lg-order-2{order:2}.col-lg-order-3{order:3}.col-lg-order-4{order:4}.col-lg-order-5{order:5}.col-lg-order-6{order:6}.col-lg-order-7{order:7}.col-lg-order-8{order:8}.col-lg-order-9{order:9}.col-lg-order-10{order:10}.col-lg-order-11{order:11}.col-lg-order-12{order:12}}.col-row-gap-0{gap:0}.col-row-gap-xs{gap:var(--spacing-xs)}.col-row-gap-sm{gap:var(--spacing-sm)}.col-row-gap-md{gap:var(--spacing-md)}.col-row-gap-lg{gap:var(--spacing-lg)}.col-row-gap-xl{gap:var(--spacing-xl)}.col-row-justify-start{justify-content:flex-start}.col-row-justify-center{justify-content:center}.col-row-justify-end{justify-content:flex-end}.col-row-justify-between{justify-content:space-between}.col-row-justify-around{justify-content:space-around}.col-row-justify-evenly{justify-content:space-evenly}.col-row-align-start{align-items:flex-start}.col-row-align-center{align-items:center}.col-row-align-end{align-items:flex-end}.col-row-align-baseline{align-items:baseline}.col-row-align-stretch{align-items:stretch}.col-row-nowrap{flex-wrap:nowrap}.col-row-wrap-reverse{flex-wrap:wrap-reverse}sup:has(>span){--badge-bg: var(--color-neutral-300);--badge-color: currentColor;--badge-radius: 0.5rem;--badge-padding: 0.3rem;--badge-vertical-align: 0.5rem;--badge-fs: var(--fs-1);background-color:var(--badge-bg);color:var(--badge-color);padding:var(--badge-padding);border-radius:var(--badge-radius);vertical-align:var(--badge-vertical-align);font-size:var(--badge-fs)}sup:has(>span) span{color:inherit}sup:has(>span)[data-badge~=rounded]{--badge-radius: 50%;--badge-padding: 0;--badge-size: 1.5625rem;width:var(--badge-size);height:var(--badge-size);display:inline-flex;align-items:center;justify-content:center;line-height:1;font-size:.6875rem;font-weight:700;overflow:hidden;box-sizing:border-box}sup:has(>span)[data-badge~=rounded] span{max-width:100%;overflow:hidden;text-overflow:clip;white-space:nowrap;padding:0 .125rem}body>nav,[aria-label~=navbar],.navbar{padding-inline:var(--nav-padding-inline, 1rem);min-height:var(--nav-height, fit-content)}@media(max-width: 580px){body>nav,[aria-label~=navbar],.navbar{flex-direction:column;height:fit-content;min-height:fit-content;padding-block:unset;gap:.5rem}}body>nav ul>li,[aria-label~=navbar] ul>li,.navbar ul>li{display:flex;align-items:center;list-style:none;margin:0;padding:0;min-height:100%;padding-inline:var(--nav-padding-inline, 0.75rem)}body>nav ul>li:hover,[aria-label~=navbar] ul>li:hover,.navbar ul>li:hover{background-color:var(--nav-hover-bg, var(--color-surface-secondary))}body>nav ul>li:hover:has(img,button),[aria-label~=navbar] ul>li:hover:has(img,button),.navbar ul>li:hover:has(img,button){background-color:rgba(0,0,0,0)}nav{--nav-focus-color: currentColor;--nav-focus-width: 0.125rem;--nav-focus-offset: 0.125rem;--nav-focus-style: solid;display:var(--nav-display, flex);flex-direction:var(--nav-direction, row);width:var(--nav-width, auto);place-items:var(--nav-align, center);justify-content:var(--nav-justify, space-between);margin-inline:var(--nav-margin-inline, 0);background-color:var(--nav-bg, initial)}nav>section,nav>ul{--nav-display: flex;flex-direction:var(--nav-direction, row);display:var(--nav-display, flex);gap:var(--nav-gap, 0);font-size:var(--nav-fs, 0.9rem);align-items:var(--nav-align, center);padding-inline:var(--nav-padding-inline, 1rem);padding-block:var(--nav-padding-block, 0);margin-block-end:var(--nav-margin-block-end, 0);height:100%}nav>section[data-list~=block],nav>ul[data-list~=block]{--nav-direction: column}nav>section>div{--nav-padding-block: 0}nav ul>li{display:flex;align-items:center;list-style:none;margin:0;padding:0;min-height:100%;padding-inline:var(--nav-padding-inline, 1rem)}nav img[alt]{--nav-img-padding-inline: 0 var(--s1);--nav-img-width: var(--brand-w, 3.6rem)}nav[data-variant]{background-color:var(--nav-bg);color:var(--nav-color);font-size:var(--nav-fs, 0.9rem)}nav>div{margin-block-start:0}nav a:focus{outline:var(--nav-focus-width) var(--nav-focus-style) var(--nav-focus-color);outline-offset:var(--nav-focus-offset)}nav a:focus-visible{outline:var(--nav-focus-width) var(--nav-focus-style) var(--nav-focus-color);outline-offset:var(--nav-focus-offset)}nav button:focus{outline:var(--nav-focus-width) var(--nav-focus-style) var(--nav-focus-color);outline-offset:var(--nav-focus-offset)}nav button:focus-visible{outline:var(--nav-focus-width) var(--nav-focus-style) var(--nav-focus-color);outline-offset:var(--nav-focus-offset)}div:has(>input[type=checkbox]){display:flex;align-items:center;gap:var(--checkbox-gap, 0.5rem);position:relative}div:has(>input[type=checkbox])>input[type=checkbox]{flex-shrink:0;order:-1}div:has(>input[type=checkbox]):not(:has(>input[aria-disabled=true])):hover .checkbox-label{color:var(--checkbox-hover-label-color, currentColor)}div:has(>input[type=checkbox]):has(>input:focus-visible) .checkbox-label{outline:var(--checkbox-focus-ring-width, 0.125rem) solid var(--checkbox-focus-ring-color, var(--color-focus-ring));outline-offset:var(--checkbox-focus-ring-offset, 0.125rem);border-radius:var(--checkbox-focus-radius, 0.125rem)}div:has(>input[type=checkbox]):has(>input[aria-disabled=true]){opacity:var(--checkbox-disabled-opacity, 0.6);cursor:not-allowed}div:has(>input[type=checkbox]):has(>input[aria-disabled=true]) .checkbox-label{color:var(--checkbox-disabled-color, var(--color-disabled-text));cursor:not-allowed}div:has(>input[type=checkbox]):has(>input[aria-invalid=true]) .checkbox-label{color:var(--checkbox-error-label-color, var(--color-error-text))}div:has(>input[type=checkbox]):has(>input[aria-invalid=false]:checked) label[for]{color:var(--checkbox-valid-label-color, currentColor)}div:has(>input[type=checkbox])[data-checkbox-size~=xs]{--checkbox-size: var(--checkbox-size-xs);--checkbox-gap: var(--checkbox-gap-xs, 0.375rem)}div:has(>input[type=checkbox])[data-checkbox-size~=sm]{--checkbox-size: var(--checkbox-size-sm);--checkbox-gap: var(--checkbox-gap-sm, 0.5rem)}div:has(>input[type=checkbox])[data-checkbox-size~=md]{--checkbox-size: var(--checkbox-size-md);--checkbox-gap: var(--checkbox-gap-md, 0.5rem)}div:has(>input[type=checkbox])[data-checkbox-size~=lg]{--checkbox-size: var(--checkbox-size-lg);--checkbox-gap: var(--checkbox-gap-lg, 0.625rem)}.checkbox-label{cursor:pointer;font-size:var(--checkbox-label-fs, 1rem);line-height:var(--checkbox-label-lh, 1.5);user-select:none;margin:0;flex:1;min-width:0;transition:color .2s ease-in-out}@media(prefers-reduced-motion: reduce){.checkbox-label{transition:none}}.checkbox-label .checkbox-required{color:var(--color-required);font-weight:600;margin-inline-start:.125rem}@media(forced-colors: active){.checkbox-input{forced-color-adjust:auto}}@container (max-width: 400px){div:has(>input[type=checkbox]){flex-direction:column;align-items:flex-start}}:root{--select-arrow-color: var(--color-text);--select-width-mobile: 18.75rem;--select-width-desktop: 100%}select{border:var(--input-outline);border-radius:var(--input-radius);outline:none;background-color:var(--input-bg, var(--color-surface));-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--select-arrow-color, currentColor) 50%),linear-gradient(135deg, var(--select-arrow-color, currentColor) 50%, transparent 50%);background-position:calc(100% - 1.25rem) center,calc(100% - 1rem) center;background-size:.3125rem .3125rem,.3125rem .3125rem;background-repeat:no-repeat;padding-inline-start:var(--input-padding-inline);padding-inline-end:2.5rem;padding-block:var(--input-padding-block);width:max(var(--select-width-mobile),var(--select-width-desktop))}:root{--input-border-color: var(--color-border);--input-appearance: none;--input-bg: inherit;--input-border: none;--input-outline: thin solid var(--input-border-color);--input-padding-inline: 0.6rem;--input-padding-block: 0.4rem;--input-radius: var(--radius);--input-fs: var(--fs);--input-width: clamp(12.5rem, 100%, 31.25rem);--input-focus-outline: medium solid var(--input-border-color);--input-focus-outline-offset: 0;--input-disabled-bg: var(--color-disabled-bg);--input-disabled-opacity: 0.6;--input-disabled-cursor: not-allowed;--placeholder-color: var(--color-text-tertiary);--placeholder-style: italic;--placeholder-fs: smaller;--form-direction: column;--checkbox-size-xs: 0.875rem;--checkbox-size-sm: 1rem;--checkbox-size-md: 1.25rem;--checkbox-size-lg: 1.5rem;--checkbox-gap-xs: 0.375rem;--checkbox-gap-sm: 0.5rem;--checkbox-gap-md: 0.5rem;--checkbox-gap-lg: 0.625rem;--checkbox-size: var(--checkbox-size-md);--checkbox-bg: var(--color-surface);--checkbox-border: 0.125rem solid var(--color-neutral-600);--checkbox-border-color: var(--color-neutral-600);--checkbox-radius: 0.25rem;--checkbox-cursor: pointer;--checkbox-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);--checkbox-checked-outline-color: var(--color-success);--checkbox-checked-bg: var(--color-success)}form{display:flex;flex-direction:var(--form-direction);gap:1rem}form>div{display:flex;gap:1rem;flex-direction:var(--form-direction)}form label{display:block}input{-webkit-appearance:var(--input-appearance);-moz-appearance:var(--input-appearance);appearance:var(--input-appearance);width:var(--input-width);border:var(--input-border);outline:var(--input-outline);padding-inline:var(--input-padding-inline);padding-block:var(--input-padding-block);border-radius:var(--input-radius);background-color:var(--input-bg, var(--color-surface))}input:focus-visible,input:focus{outline:var(--input-focus-outline);outline-offset:var(--input-focus-outline-offset)}input[aria-disabled=true],input:disabled{--input-border-color: var(--color-border-subtle);background-color:var(--input-disabled-bg);opacity:var(--input-disabled-opacity);cursor:var(--input-disabled-cursor);text-transform:capitalize;text-decoration:line-through}input[type]:not([type=checkbox],[type=radio])::placeholder,textarea::placeholder,select::placeholder{color:var(--placeholder-color);font-style:var(--placeholder-style);font-size:var(--placeholder-fs);text-transform:capitalize}input[type]:not([type=checkbox],[type=radio])[aria-required=true]::placeholder,textarea[aria-required=true]::placeholder,select[aria-required=true]::placeholder{color:var(--color-required, var(--placeholder-color));font-weight:600}input[type]:not([type=checkbox],[type=radio])[aria-required=true]::placeholder::after,textarea[aria-required=true]::placeholder::after,select[aria-required=true]::placeholder::after{content:"* "}input[type=checkbox]{opacity:1;width:var(--checkbox-size);height:var(--checkbox-size);margin:0;cursor:var(--checkbox-cursor);flex-shrink:0}input[type=checkbox]:checked{background-color:var(--checkbox-bg, red);outline:var(--checkbox-checked-outline-color) solid 2px;background:var(--checkbox-checked-bg) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='white'><path d='M6.173 11.414l-3.89-3.89 1.414-1.414 2.476 2.475 5.657-5.657 1.414 1.414z'/></svg>") no-repeat center center}nav:not(body>nav),nav[data-breadcrumb]{--breadcrumb-padding-inline: unset;--breadcrumb-display: flex;--breadcrumb-gap: 0.5rem;--breadcrumb-color: currentColor;--breadcrumb-current-color: var(--color-text);--breadcrumb-fs: var(--fs-3);margin-inline:unset;padding-inline:unset}nav:not(body>nav) ol,nav[data-breadcrumb] ol{padding-inline:var(--breadcrumb-padding-inline);display:var(--breadcrumb-display);gap:var(--breadcrumb-gap)}nav:not(body>nav) ol li,nav[data-breadcrumb] ol li{padding-inline:unset;width:var(--breadcrumb-width, fit-content);text-transform:capitalize;display:flex;color:var(--breadcrumb-color);gap:.5rem;font-size:var(--breadcrumb-fs)}nav:not(body>nav) ol li span[aria-hidden=true],nav[data-breadcrumb] ol li span[aria-hidden=true]{opacity:.6}nav:not(body>nav) ol li a[href],nav[data-breadcrumb] ol li a[href]{font-size:var(--breadcrumb-fs)}nav:not(body>nav) ol li a[href][aria-current],nav[data-breadcrumb] ol li a[href][aria-current]{color:var(--breadcrumb-current-color);text-decoration:none}ul,ol,dl{--list-margin-top: 0;--list-margin-bottom: 1rem;--list-margin-inline: 0;--list-padding-inline: 0.5rem;--list-gap: 0.5rem;--list-marker-color: currentColor;--list-marker-size: 1em;--list-marker-offset: 0.5rem;--list-font-size: 1rem;--list-line-height: 1.5;--list-font-family: inherit;--list-color: inherit;--list-item-margin-bottom: 0.5rem;--list-item-padding-inline: 0;--list-item-padding-block: 0;--dt-font-weight: 600;--dt-margin-bottom: 0.25rem;--dd-margin-inline-start: 2rem;--dd-margin-bottom: 1rem}ul,ol,dl{margin-block-start:var(--list-margin-top);margin-block-end:var(--list-margin-bottom);margin-inline:var(--list-margin-inline);padding-inline-start:var(--list-padding-inline);font-size:var(--list-font-size);line-height:var(--list-line-height);font-family:var(--list-font-family);color:var(--list-color)}ul ul,ul ol,ul dl,ol ul,ol ol,ol dl,dl ul,dl ol,dl dl{margin-block-start:var(--list-gap);margin-block-end:var(--list-gap)}ul{list-style-type:disc}ul::marker{color:var(--list-marker-color);font-size:var(--list-marker-size)}ul ul{list-style-type:circle}ul ul ul{list-style-type:square}ol{list-style-type:decimal}ol::marker{color:var(--list-marker-color);font-size:var(--list-marker-size)}ol ol{list-style-type:lower-alpha}ol ol ol{list-style-type:lower-roman}li{margin-block-end:var(--list-item-margin-bottom);padding-inline:var(--list-item-padding-inline);padding-block:var(--list-item-padding-block);padding-inline-start:var(--list-marker-offset)}li:last-child{margin-block-end:0}dl{padding-inline-start:0}dt{font-weight:var(--dt-font-weight);margin-block-end:var(--dt-margin-bottom);padding-inline:var(--list-item-padding-inline);padding-block:var(--list-item-padding-block)}dd{margin-inline-start:var(--dd-margin-inline-start);margin-block-end:var(--dd-margin-bottom);padding-inline:var(--list-item-padding-inline);padding-block:var(--list-item-padding-block)}dd:last-child{margin-block-end:0}ul[data-variant=none],ol[data-variant=none],dl[data-variant=none]{list-style-type:none;padding-inline-start:0}ul[data-variant=none] li,ol[data-variant=none] li,dl[data-variant=none] li{padding-inline-start:0}ul[data-variant=inline],ol[data-variant=inline],dl[data-variant=inline]{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--list-gap);padding-inline-start:0;list-style-type:none}ul[data-variant=inline] li,ol[data-variant=inline] li,dl[data-variant=inline] li{padding-inline-start:0;margin-block-end:0}ul[data-variant=custom],ol[data-variant=custom],dl[data-variant=custom]{list-style-type:none;padding-inline-start:0}ul[data-variant=custom] li,ol[data-variant=custom] li,dl[data-variant=custom] li{position:relative;padding-inline-start:calc(var(--list-marker-size) + var(--list-marker-offset))}ul[data-variant=custom] li::before,ol[data-variant=custom] li::before,dl[data-variant=custom] li::before{content:var(--list-marker-content, "•");color:var(--list-marker-color);font-size:var(--list-marker-size);position:absolute;left:0}ul[data-variant=compact],ol[data-variant=compact],dl[data-variant=compact]{--list-gap: 0.25rem;--list-item-margin-bottom: 0.25rem;--list-margin-bottom: 0.5rem}ul[data-variant=spaced],ol[data-variant=spaced],dl[data-variant=spaced]{--list-gap: 1rem;--list-item-margin-bottom: 1rem}li:has(a:focus-visible),li:has(button:focus-visible){outline:.0625rem solid rgba(0,0,0,0)}li:has(>a),li:has(>button){margin-block-end:0}@media print{ul,ol,dl{--list-margin-bottom: 0.5rem;--list-item-margin-bottom: 0.25rem}ul,ol{list-style-position:inside}}@media(prefers-reduced-motion: reduce){ul,ol,dl,li,dt,dd{animation:none;transition:none}}[role=alert]{--alert-success-bg: var(--color-success-bg);--alert-success-border: var(--color-success-border);--alert-success-text: var(--color-success-text);--alert-error-bg: var(--color-error-bg);--alert-error-border: var(--color-error-border);--alert-error-text: var(--color-error-text);--alert-warning-bg: var(--color-warning-bg);--alert-warning-border: var(--color-warning-border);--alert-warning-text: var(--color-warning-text);--alert-info-bg: var(--color-info-bg);--alert-info-border: var(--color-info-border);--alert-info-text: var(--color-info-text);--alert-transition-duration: 0.3s;--alert-border: thin solid currentColor;background-color:var(--alert-bg, var(--color-surface));border:var(--alert-border, var(--color-border));color:var(--alert-color, var(--color-text));padding:var(--alert-padding, var(--spc-4));margin-block-end:var(--alert-margin-block-end);font-size:var(--fs-0);line-height:1.6;display:flex;flex-direction:row;border-radius:var(--alert-radius, var(--border-radius));gap:var(--alert-gap, var(--spc-4));transition:opacity var(--alert-transition-duration) ease,transform var(--alert-transition-duration) ease;opacity:1;transform:translateY(0)}[role=alert]:not([data-visible=true]){opacity:0;transform:translateY(-0.5rem)}@media(prefers-reduced-motion: reduce){[role=alert]{transition-duration:.01ms}}[role=alert]:focus{outline:2px solid currentColor;outline-offset:2px}[role=alert]:focus:not(:focus-visible){outline:none}[role=alert] .alert-icon{margin-block-start:0;align-items:center}[role=alert] .alert-message{flex:2;margin-block-start:0}[role=alert] .alert-message .alert-title{margin-block-end:var(--spc-1, 0.25rem);margin-block-start:0;font-weight:var(--alert-title-fw, 600);font-size:var(--alert-title-fs, inherit);line-height:1.4}[role=alert] .alert-message h2.alert-title,[role=alert] .alert-message h3.alert-title,[role=alert] .alert-message h4.alert-title,[role=alert] .alert-message h5.alert-title,[role=alert] .alert-message h6.alert-title{margin:0;margin-block-end:var(--spc-1, 0.25rem);font-size:inherit;font-weight:var(--alert-title-fw, 600)}[role=alert][data-alert~=info]{--alert-bg: var(--alert-info-bg);--alert-color: var(--alert-info-text);border-color:var(--alert-info-border)}[role=alert][data-alert~=warning]{--alert-bg: var(--alert-warning-bg);--alert-color: var(--alert-warning-text);border-color:var(--alert-warning-border)}[role=alert][data-alert~=error]{--alert-bg: var(--alert-error-bg);--alert-color: var(--alert-error-text);border-color:var(--alert-error-border)}[role=alert][data-alert~=success]{--alert-bg: var(--alert-success-bg);--alert-color: var(--alert-success-text);border-color:var(--alert-success-border)}[role=alert] button[data-btn~=icon]{--btn-bg: transparent;align-items:flex-start}[role=alert][data-variant=filled]{border:none}[role=alert][data-variant=filled][data-alert~=info]{--alert-bg: var(--alert-info-border);--alert-color: white}[role=alert][data-variant=filled][data-alert~=warning]{--alert-bg: var(--alert-warning-border);--alert-color: white}[role=alert][data-variant=filled][data-alert~=error]{--alert-bg: var(--alert-error-border);--alert-color: white}[role=alert][data-variant=filled][data-alert~=success]{--alert-bg: var(--alert-success-border);--alert-color: white}[role=alert][data-variant=filled][data-alert~=default]{--alert-bg: var(--color-neutral-500);--alert-color: var(--color-text-inverse)}[role=alert][data-variant=soft]{border:none}[role=alert] p{font-size:.875rem}[data-tts]{--tts-gap: 0.5rem;--tts-bg: var(--color-surface);--tts-border-width: 0.125rem;--tts-border-style: solid;--tts-border-color: currentColor;--tts-radius: 99rem;--tts-padding: 0.5rem;--tts-min-width: 20.3125rem;--tts-align-items: center;--tts-justify-content: center;display:flex;gap:var(--tts-gap);align-items:var(--tts-align-items);justify-content:var(--tts-justify-content);background-color:var(--tts-bg);border:none;outline:var(--tts-border-width) var(--tts-border-style) var(--tts-border-color);border-radius:var(--tts-radius);padding:var(--tts-padding);min-width:var(--tts-min-width)}[data-tts] button[data-btn~=tts-btn],[data-tts] .tts-border{outline:none}[data-tts] button[data-btn~=tts-btn]:hover,[data-tts] .tts-border:hover{outline:var(--tts-border-width) var(--tts-border-style)}:root{--title-size-xs: 0.75rem;--title-size-sm: 0.875rem;--title-size-md: 1rem;--title-size-lg: 1.5rem;--title-size-xl: 2rem;--title-size-2xl: 2.5rem}[data-title]{--title-fs: inherit;--title-fw: 600;--title-lh: 1.2;--title-margin-block-end: 0.5em;--title-color: inherit;font-size:var(--title-fs);font-weight:var(--title-fw);line-height:var(--title-lh);margin-block-end:var(--title-margin-block-end);color:var(--title-color)}[data-title][data-title~=xs]{--title-fs: var(--title-size-xs)}[data-title][data-title~=sm]{--title-fs: var(--title-size-sm)}[data-title][data-title~=md]{--title-fs: var(--title-size-md)}[data-title][data-title~=lg]{--title-fs: var(--title-size-lg)}[data-title][data-title~=xl]{--title-fs: var(--title-size-xl)}[data-title][data-title~="2xl"]{--title-fs: var(--title-size-2xl)}[data-title][data-title~=primary]{--title-color: var(--color-primary)}[data-title][data-title~=secondary]{--title-color: var(--color-text-secondary)}[data-title][data-title~=accent]{--title-color: var(--color-primary)}[data-title][data-title~=muted]{--title-color: var(--color-text-tertiary)}[data-title][data-title~=inherit]{--title-color: inherit}[data-title]:focus-visible{outline:2px solid currentColor;outline-offset:2px}:root{--flex-gap-xs: clamp(0.25rem, 0.2rem + 0.25vw, 0.5rem);--flex-gap-sm: clamp(0.5rem, 0.45rem + 0.35vw, 0.75rem);--flex-gap-md: clamp(0.75rem, 0.65rem + 0.45vw, 1.125rem);--flex-gap-lg: clamp(1rem, 0.85rem + 0.6vw, 1.5rem);--flex-gap-xl: clamp(1.5rem, 1.25rem + 0.75vw, 2rem);--flex-gap: var(--flex-gap-sm)}.flex{display:flex;gap:var(--flex-gap)}.flex-inline{display:inline-flex;gap:var(--flex-gap)}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-nowrap{flex-wrap:nowrap}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-center{align-content:center}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-evenly{align-content:space-evenly}.content-stretch{align-content:stretch}.self-auto{align-self:auto}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-baseline{align-self:baseline}.self-stretch{align-self:stretch}.flex-grow-0{flex-grow:0}.flex-grow-1{flex-grow:1}.flex-shrink-0{flex-shrink:0}.flex-shrink-1{flex-shrink:1}.flex-basis-auto{flex-basis:auto}.flex-basis-0{flex-basis:0}.flex-basis-full{flex-basis:100%}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-initial{flex:0 1 auto}.flex-none{flex:none}.gap-0{gap:0}.gap-xs{gap:var(--flex-gap-xs)}.gap-sm{gap:var(--flex-gap-sm)}.gap-md{gap:var(--flex-gap-md)}.gap-lg{gap:var(--flex-gap-lg)}.gap-xl{gap:var(--flex-gap-xl)}.row-gap-0{row-gap:0}.row-gap-xs{row-gap:var(--flex-gap-xs)}.row-gap-sm{row-gap:var(--flex-gap-sm)}.row-gap-md{row-gap:var(--flex-gap-md)}.row-gap-lg{row-gap:var(--flex-gap-lg)}.row-gap-xl{row-gap:var(--flex-gap-xl)}.col-gap-0{column-gap:0}.col-gap-xs{column-gap:var(--flex-gap-xs)}.col-gap-sm{column-gap:var(--flex-gap-sm)}.col-gap-md{column-gap:var(--flex-gap-md)}.col-gap-lg{column-gap:var(--flex-gap-lg)}.col-gap-xl{column-gap:var(--flex-gap-xl)}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;justify-content:space-between;align-items:center}.flex-around{display:flex;justify-content:space-around;align-items:center}.flex-stack{display:flex;flex-direction:column;gap:var(--flex-gap-sm)}.flex-spread>*{flex:1 1 0%}.order-first{order:-1}.order-last{order:999}.order-none{order:0}@media(width >= 30rem){.sm\:flex-row{flex-direction:row}.sm\:flex-row-reverse{flex-direction:row-reverse}.sm\:flex-col{flex-direction:column}.sm\:flex-col-reverse{flex-direction:column-reverse}.sm\:flex-wrap{flex-wrap:wrap}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:justify-start{justify-content:flex-start}.sm\:justify-end{justify-content:flex-end}.sm\:justify-center{justify-content:center}.sm\:justify-between{justify-content:space-between}.sm\:justify-around{justify-content:space-around}.sm\:justify-evenly{justify-content:space-evenly}.sm\:items-start{align-items:flex-start}.sm\:items-end{align-items:flex-end}.sm\:items-center{align-items:center}.sm\:items-baseline{align-items:baseline}.sm\:items-stretch{align-items:stretch}.sm\:gap-0{gap:0}.sm\:gap-xs{gap:var(--flex-gap-xs)}.sm\:gap-sm{gap:var(--flex-gap-sm)}.sm\:gap-md{gap:var(--flex-gap-md)}.sm\:gap-lg{gap:var(--flex-gap-lg)}.sm\:gap-xl{gap:var(--flex-gap-xl)}.sm\:flex-1{flex:1 1 0%}.sm\:flex-auto{flex:1 1 auto}.sm\:flex-none{flex:none}}@media(width >= 48rem){.md\:flex-row{flex-direction:row}.md\:flex-row-reverse{flex-direction:row-reverse}.md\:flex-col{flex-direction:column}.md\:flex-col-reverse{flex-direction:column-reverse}.md\:flex-wrap{flex-wrap:wrap}.md\:flex-nowrap{flex-wrap:nowrap}.md\:justify-start{justify-content:flex-start}.md\:justify-end{justify-content:flex-end}.md\:justify-center{justify-content:center}.md\:justify-between{justify-content:space-between}.md\:justify-around{justify-content:space-around}.md\:justify-evenly{justify-content:space-evenly}.md\:items-start{align-items:flex-start}.md\:items-end{align-items:flex-end}.md\:items-center{align-items:center}.md\:items-baseline{align-items:baseline}.md\:items-stretch{align-items:stretch}.md\:gap-0{gap:0}.md\:gap-xs{gap:var(--flex-gap-xs)}.md\:gap-sm{gap:var(--flex-gap-sm)}.md\:gap-md{gap:var(--flex-gap-md)}.md\:gap-lg{gap:var(--flex-gap-lg)}.md\:gap-xl{gap:var(--flex-gap-xl)}.md\:flex-1{flex:1 1 0%}.md\:flex-auto{flex:1 1 auto}.md\:flex-none{flex:none}.flex-stack{flex-direction:row;align-items:center;gap:var(--flex-gap-md)}}@media(width >= 62rem){.lg\:flex-row{flex-direction:row}.lg\:flex-row-reverse{flex-direction:row-reverse}.lg\:flex-col{flex-direction:column}.lg\:flex-col-reverse{flex-direction:column-reverse}.lg\:flex-wrap{flex-wrap:wrap}.lg\:flex-nowrap{flex-wrap:nowrap}.lg\:justify-start{justify-content:flex-start}.lg\:justify-end{justify-content:flex-end}.lg\:justify-center{justify-content:center}.lg\:justify-between{justify-content:space-between}.lg\:justify-around{justify-content:space-around}.lg\:justify-evenly{justify-content:space-evenly}.lg\:items-start{align-items:flex-start}.lg\:items-end{align-items:flex-end}.lg\:items-center{align-items:center}.lg\:items-baseline{align-items:baseline}.lg\:items-stretch{align-items:stretch}.lg\:gap-0{gap:0}.lg\:gap-xs{gap:var(--flex-gap-xs)}.lg\:gap-sm{gap:var(--flex-gap-sm)}.lg\:gap-md{gap:var(--flex-gap-md)}.lg\:gap-lg{gap:var(--flex-gap-lg)}.lg\:gap-xl{gap:var(--flex-gap-xl)}.lg\:flex-1{flex:1 1 0%}.lg\:flex-auto{flex:1 1 auto}.lg\:flex-none{flex:none}.flex,.flex-inline{gap:var(--flex-gap-md)}.flex-stack{gap:var(--flex-gap-lg)}}@media(width >= 80rem){.xl\:flex-row{flex-direction:row}.xl\:flex-row-reverse{flex-direction:row-reverse}.xl\:flex-col{flex-direction:column}.xl\:flex-col-reverse{flex-direction:column-reverse}.xl\:flex-wrap{flex-wrap:wrap}.xl\:flex-nowrap{flex-wrap:nowrap}.xl\:justify-start{justify-content:flex-start}.xl\:justify-end{justify-content:flex-end}.xl\:justify-center{justify-content:center}.xl\:justify-between{justify-content:space-between}.xl\:justify-around{justify-content:space-around}.xl\:justify-evenly{justify-content:space-evenly}.xl\:items-start{align-items:flex-start}.xl\:items-end{align-items:flex-end}.xl\:items-center{align-items:center}.xl\:items-baseline{align-items:baseline}.xl\:items-stretch{align-items:stretch}.xl\:gap-0{gap:0}.xl\:gap-xs{gap:var(--flex-gap-xs)}.xl\:gap-sm{gap:var(--flex-gap-sm)}.xl\:gap-md{gap:var(--flex-gap-md)}.xl\:gap-lg{gap:var(--flex-gap-lg)}.xl\:gap-xl{gap:var(--flex-gap-xl)}.xl\:flex-1{flex:1 1 0%}.xl\:flex-auto{flex:1 1 auto}.xl\:flex-none{flex:none}.flex,.flex-inline{gap:var(--flex-gap-lg)}.flex-stack{gap:var(--flex-gap-xl)}}:root{--shadow: 0 0 0.525rem 0 rgba(0, 0, 0, 0.1);--shadow-xs: 0 0.0625rem 0.125rem rgba(0, 0, 0, 0.05);--shadow-sm: 0 0.0625rem 0.1875rem rgba(0, 0, 0, 0.1), 0 0.0625rem 0.125rem rgba(0, 0, 0, 0.06);--shadow-md: 0 0.25rem 0.375rem rgba(0, 0, 0, 0.1), 0 0.125rem 0.25rem rgba(0, 0, 0, 0.06);--shadow-lg: 0 0.625rem 0.9375rem rgba(0, 0, 0, 0.1), 0 0.25rem 0.375rem rgba(0, 0, 0, 0.08);--shadow-xl: 0 1.25rem 1.5625rem rgba(0, 0, 0, 0.1), 0 0.625rem 0.625rem rgba(0, 0, 0, 0.08)}.shadow-none{box-shadow:none}.shadow{box-shadow:var(--shadow)}.shadow-xs{box-shadow:var(--shadow-xs)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}:root{--transparent: transparent}.transparent{background-color:var(--transparent)}.transparent-border{border-color:var(--transparent)}.transparent-color{color:var(--transparent)}

/*# sourceMappingURL=index.css.map */@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url("/fonts/inter-600.woff2") format("woff2")}:root{--ink: #101418;--ink-soft: #5a6472;--island: #0b6070;--island-bg: #e6f2f6;--paper: #ebecee;--paper-sunk: #f1f3f5;--rule: #cdd2da;color-scheme:light;--color-primary-50: #f0f9ff;--color-primary-100: #e0f2fe;--color-primary-200: #bae6fd;--color-primary-300: #7dd3fc;--color-primary-400: #38bdf8;--color-primary-500: #0ea5e9;--color-primary-600: #0284c7;--color-primary-700: #0369a1;--color-primary-800: #075985;--color-primary-900: #0c4a6e;--color-neutral-50: #fafafa;--color-neutral-100: #f4f4f5;--color-neutral-200: #e4e4e7;--color-neutral-300: #d4d4d8;--color-neutral-400: #a1a1aa;--color-neutral-500: #71717a;--color-neutral-600: #52525b;--color-neutral-700: #3f3f46;--color-neutral-800: #27272a;--color-neutral-900: #18181b;--color-success: #22c55e;--color-success-light: #dcfce7;--color-success-dark: #166534;--color-warning: #f59e0b;--color-warning-light: #fef3c7;--color-warning-dark: #92400e;--color-error: #ef4444;--color-error-light: #fee2e2;--color-error-dark: #991b1b;--color-info: #3b82f6;--color-info-light: #dbeafe;--color-info-dark: #1d4ed8;--font-family-display: "Inter", ui-sans-serif, system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif;--font-family-sans: ui-sans-serif, system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-family-serif: ui-serif, georgia, cambria, "Times New Roman", times, serif;--font-family-mono: ui-monospace, sfmono-regular, "SF Mono", menlo, monaco, consolas, "Liberation Mono", "Courier New", monospace;--font-size-xs: 0.75rem;--font-size-sm: 0.875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--font-size-6xl: 3.75rem;--font-weight-thin: 100;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--font-weight-black: 900;--line-height-none: 1;--line-height-tight: 1.25;--line-height-snug: 1.375;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--line-height-loose: 2;--space-0: 0;--space-px: 1px;--space-0-5: 0.125rem;--space-1: 0.25rem;--space-1-5: 0.375rem;--space-2: 0.5rem;--space-2-5: 0.625rem;--space-3: 0.75rem;--space-3-5: 0.875rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 1.75rem;--space-8: 2rem;--space-9: 2.25rem;--space-10: 2.5rem;--space-11: 2.75rem;--space-12: 3rem;--space-14: 3.5rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--space-28: 7rem;--space-32: 8rem;--space-36: 9rem;--space-40: 10rem;--space-44: 11rem;--space-48: 12rem;--space-52: 13rem;--space-56: 14rem;--space-60: 15rem;--space-64: 16rem;--space-72: 18rem;--space-80: 20rem;--space-96: 24rem;--radius-none: 0;--radius-sm: 0.125rem;--radius-base: 0.25rem;--radius-md: 0.375rem;--radius-lg: 0.5rem;--radius-xl: 0.75rem;--radius-2xl: 1rem;--radius-3xl: 1.5rem;--radius-full: 9999px;--border-width-0: 0;--border-width-1: 1px;--border-width-2: 2px;--border-width-4: 4px;--border-width-8: 8px;--shadow-sm: 0 1px 2px 0 rgb(0, 0, 0, 0.05);--shadow-base: 0 1px 3px 0 rgb(0, 0, 0, 0.1), 0 1px 2px -1px rgb(0, 0, 0, 0.1);--shadow-md: 0 4px 6px -1px rgb(0, 0, 0, 0.1), 0 2px 4px -2px rgb(0, 0, 0, 0.1);--shadow-lg: 0 10px 15px -3px rgb(0, 0, 0, 0.1), 0 4px 6px -4px rgb(0, 0, 0, 0.1);--shadow-xl: 0 20px 25px -5px rgb(0, 0, 0, 0.1), 0 8px 10px -6px rgb(0, 0, 0, 0.1);--shadow-2xl: 0 25px 50px -12px rgb(0, 0, 0, 0.25);--shadow-inner: inset 0 2px 4px 0 rgb(0, 0, 0, 0.05);--shadow-none: 0 0 #0000;--z-index-hide: -1;--z-index-auto: auto;--z-index-base: 0;--z-index-docked: 10;--z-index-dropdown: 1000;--z-index-sticky: 1100;--z-index-banner: 1200;--z-index-overlay: 1300;--z-index-modal: 1400;--z-index-popover: 1500;--z-index-skipLink: 1600;--z-index-toast: 1700;--z-index-tooltip: 1800;--transition-duration-75: 75ms;--transition-duration-100: 100ms;--transition-duration-150: 150ms;--transition-duration-200: 200ms;--transition-duration-300: 300ms;--transition-duration-500: 500ms;--transition-duration-700: 700ms;--transition-duration-1000: 1000ms;--transition-timing-linear: linear;--transition-timing-in: cubic-bezier(0.4, 0, 1, 1);--transition-timing-out: cubic-bezier(0, 0, 0.2, 1);--transition-timing-in-out: cubic-bezier(0.4, 0, 0.2, 1);--max-width-none: none;--max-width-xs: 20rem;--max-width-sm: 24rem;--max-width-md: 28rem;--max-width-lg: 32rem;--max-width-xl: 36rem;--max-width-2xl: 42rem;--max-width-3xl: 48rem;--max-width-4xl: 56rem;--max-width-5xl: 64rem;--max-width-6xl: 72rem;--max-width-7xl: 80rem;--max-width-full: 100%;--max-width-screen-sm: 640px;--max-width-screen-md: 768px;--max-width-screen-lg: 1024px;--max-width-screen-xl: 1280px;--max-width-screen-2xl: 1536px;--max-content-width: var(--max-width-7xl);--img-radius: var(--radius-2xl);--error-color: var(--color-error);--success-color: var(--color-success);--card-background: var(--paper-sunk);--card-border: var(--color-neutral-200);--card-radius: var(--radius-lg);--card-shadow: var(--shadow-base);--card-gap: var(--space-4);--card-padding: var(--space-6);--button-radius: var(--radius-base);--button-padding-x: var(--space-4);--button-padding-y: var(--space-2);--button-font-weight: var(--font-weight-medium);--input-radius: var(--radius-base);--input-border: var(--color-neutral-300);--input-focus-border: var(--color-primary-500);--input-padding-x: var(--space-3);--input-padding-y: var(--space-2);--header-height: var(--space-16);--header-background: var(--paper-sunk);--header-border: var(--color-neutral-200);--header-deck-font-size: clamp(1.125rem, 0.9vw + 0.9rem, 1.5rem);--footer-background: var(--color-neutral-100);--footer-padding: var(--space-12)}@media(prefers-color-scheme: dark){:root{--ink: #e8eaed;--ink-soft: #99a2ad;--island: #6bb9c9;--island-bg: #102a33;--paper: #0d1014;--paper-sunk: #151a20;--rule: #262c33;color-scheme:dark;--color-primary-50: #0c4a6e;--color-primary-100: #075985;--color-primary-200: #0369a1;--color-primary-300: #0284c7;--color-primary-400: #0ea5e9;--color-primary-500: #38bdf8;--color-primary-600: #7dd3fc;--color-primary-700: #bae6fd;--color-primary-800: #e0f2fe;--color-primary-900: #f0f9ff;--color-neutral-50: #18181b;--color-neutral-100: #27272a;--color-neutral-200: #3f3f46;--color-neutral-300: #52525b;--color-neutral-400: #71717a;--color-neutral-500: #a1a1aa;--color-neutral-600: #d4d4d8;--color-neutral-700: #e4e4e7;--color-neutral-800: #f4f4f5;--color-neutral-900: #fafafa}body{background-color:var(--paper);color:var(--ink)}body>header,body [data-card]{background-color:var(--paper-sunk);color:var(--ink)}::selection{background-color:var(--island-bg);color:var(--ink)}}:root[data-theme=dark]{--ink: #e8eaed;--ink-soft: #99a2ad;--island: #6bb9c9;--island-bg: #102a33;--paper: #0d1014;--paper-sunk: #151a20;--rule: #262c33;color-scheme:dark;--color-primary-50: #0c4a6e;--color-primary-100: #075985;--color-primary-200: #0369a1;--color-primary-300: #0284c7;--color-primary-400: #0ea5e9;--color-primary-500: #38bdf8;--color-primary-600: #7dd3fc;--color-primary-700: #bae6fd;--color-primary-800: #e0f2fe;--color-primary-900: #f0f9ff;--color-neutral-50: #18181b;--color-neutral-100: #27272a;--color-neutral-200: #3f3f46;--color-neutral-300: #52525b;--color-neutral-400: #71717a;--color-neutral-500: #a1a1aa;--color-neutral-600: #d4d4d8;--color-neutral-700: #e4e4e7;--color-neutral-800: #f4f4f5;--color-neutral-900: #fafafa}:root[data-theme=dark] body{background-color:var(--paper);color:var(--ink)}:root[data-theme=dark] body>header,:root[data-theme=dark] body [data-card]{background-color:var(--paper-sunk);color:var(--ink)}:root[data-theme=dark] ::selection{background-color:var(--island-bg);color:var(--ink)}:root[data-theme=light]{--ink: #101418;--ink-soft: #5a6472;--island: #0b6070;--island-bg: #e6f2f6;--paper: #ebecee;--paper-sunk: #f1f3f5;--rule: #cdd2da;color-scheme:light;--color-primary-50: #f0f9ff;--color-primary-100: #e0f2fe;--color-primary-200: #bae6fd;--color-primary-300: #7dd3fc;--color-primary-400: #38bdf8;--color-primary-500: #0ea5e9;--color-primary-600: #0284c7;--color-primary-700: #0369a1;--color-primary-800: #075985;--color-primary-900: #0c4a6e;--color-neutral-50: #fafafa;--color-neutral-100: #f4f4f5;--color-neutral-200: #e4e4e7;--color-neutral-300: #d4d4d8;--color-neutral-400: #a1a1aa;--color-neutral-500: #71717a;--color-neutral-600: #52525b;--color-neutral-700: #3f3f46;--color-neutral-800: #27272a;--color-neutral-900: #18181b}body{background-color:var(--paper);color:var(--ink);font-family:var(--font-family-sans);min-width:0}body>section{margin:auto;width:min(100%,var(--max-content-width))}body>nav{min-height:4rem}body>nav ul{margin-block-end:0}body>nav ul li:hover:has(img,button){background-color:rgba(0,0,0,0)}main{margin:auto;padding-block:2rem;width:min(100%,var(--max-content-width))}main>section{padding-inline:2rem}section:has([data-grid],[data-flex]){padding-block:var(--space-l, 3rem);padding-inline:var(--px, 1rem);width:var(--content-w, 100%);width:min(100%,var(--max-content-width));--card-gap: 1rem}header{grid-template-rows:minmax(300px, auto);min-height:fit-content;padding-block:3rem}header div>img{border-radius:var(--img-radius)}body>header{background-color:var(--header-background)}body [data-card]{background-color:var(--card-background)}header>section#header p{font-size:var(--header-deck-font-size)}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-display);font-weight:var(--font-weight-semibold);letter-spacing:-0.015em}h1,h2,h3{text-transform:capitalize}h1{letter-spacing:-0.02em}p,li{font-family:var(--font-family-sans)}code,kbd,samp,[data-ui=eyebrow],[data-ui=label]{font-family:var(--font-family-mono)}[data-ui=eyebrow],[data-ui=label]{color:var(--ink-soft);font-size:var(--font-size-xs);letter-spacing:.12em;text-transform:uppercase}body a[href]{--link-color: var(--island);--link-focus-color: var(--island)}:focus-visible{outline:var(--border-width-2) solid var(--island);outline-offset:var(--space-0-5)}h2 a[href]{font-size:var(--h3)}pre{border-radius:.5rem;padding:1rem}footer>div{flex-direction:column}*+section{margin-block-start:2rem}section>nav{display:flex;flex-direction:column;justify-items:flex-start}article>*+*{margin-block-start:1.5rem}article p{max-width:80ch}article img{border-radius:.3rem}code{color:var(--ink-soft);font-size:smaller}article li{font-size:unset;font-size:var(--fs-0)}p{max-width:60ch}article>figure:has(img[alt]){background-color:rgba(0,0,0,0);border-radius:0;min-width:100%}article>figure>img[alt]{border-radius:0;min-width:100%}img+*{padding-block-start:1rem}.hidden{display:none}.card:has(a:first-of-type:empty){border:#d3d3d3 solid thin;display:grid;grid-template-rows:"pile";height:fit-content;padding:1.5rem;position:relative}.card:has(a:first-of-type:empty)>*{grid-area:pile}.card:has(a:first-of-type:empty)>a:empty{background-color:rgba(0,0,0,0);bottom:0;position:absolute;top:0;width:100%;z-index:99}.card:has(a:first-of-type:empty):has(a:empty:hover){border:blue solid thin}.card:has(a:first-of-type:empty) div:has(a:not(:empty),button:not(:empty)){border:none;height:min-content;min-width:100px;position:absolute;right:0;width:min-content;z-index:999}.card:has(a:first-of-type:empty)>div:first-of-type{background:rgba(0,0,0,0);width:auto;z-index:1}form>div{gap:.5rem}form label:has(+input[required],+textarea[required],+select[required])::after{color:var(--error-color);content:" required *";font-size:smaller}form .error-msg{display:none}form input,form textarea,form select{background-color:#f5f5f5}form input:user-invalid:not(:focus),form textarea:user-invalid:not(:focus),form select:user-invalid:not(:focus){background-color:#ffe6e6;outline:thin solid var(--error-color)}form input:user-invalid:not(:focus)+p,form textarea:user-invalid:not(:focus)+p,form select:user-invalid:not(:focus)+p{color:var(--error-color)}form input:user-invalid:not(:focus)+p::before,form textarea:user-invalid:not(:focus)+p::before,form select:user-invalid:not(:focus)+p::before{content:"⚠ "}form input:user-valid:not(:focus),form textarea:user-valid:not(:focus),form select:user-valid:not(:focus){background-color:#e6ffe6;outline:thin solid var(--success-color)}form input:user-valid:not(:focus)+p,form textarea:user-valid:not(:focus)+p,form select:user-valid:not(:focus)+p{display:none}nav[data-site-nav]:has(>[popover]){background-color:inherit;flex-direction:row;gap:var(--space-4);justify-content:flex-start}nav[data-site-nav]:has(>[popover])>ul{margin-inline-start:auto}nav[data-site-nav]:has(>[popover])>button[popovertarget]{align-items:center;background-color:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);border-radius:var(--card-radius);color:inherit;cursor:pointer;display:inline-flex;justify-content:center;min-height:var(--space-11);min-width:var(--space-11);padding:0}nav[data-site-nav]:has(>[popover])>button[popovertarget]:hover,nav[data-site-nav]:has(>[popover])>button[popovertarget]:focus-visible{border-color:color-mix(in srgb, currentcolor 30%, transparent)}nav[data-site-nav]:has(>[popover])>[data-nav-brand]{font-weight:600;text-decoration:none}nav[data-site-nav]:has(>[popover])>[popover]{background-color:inherit;border:1px solid color-mix(in srgb, currentcolor 20%, transparent);border-radius:0 var(--card-radius) var(--card-radius) 0;box-shadow:var(--card-shadow);inset:auto;left:0;margin:0;max-height:calc(100dvh - 5rem);max-width:calc(100vw - 2rem);min-width:min(16rem,100vw - 2rem);overflow-y:auto;padding:var(--space-2);position:fixed;top:4rem;z-index:var(--z-index-popover)}nav[data-site-nav]:has(>[popover])>[popover] ul{display:flex;flex-direction:column;gap:var(--space-1);margin:0;padding:0;width:100%}nav[data-site-nav]:has(>[popover])>[popover] ul+ul{border-block-start:1px solid color-mix(in srgb, currentcolor 20%, transparent);margin-block-start:var(--space-2);padding-block-start:var(--space-2)}nav[data-site-nav]:has(>[popover])>[popover] li{min-height:auto;padding-inline:0;width:100%}nav[data-site-nav]:has(>[popover])>[popover] a{border-radius:var(--radius-md);display:block;padding:var(--space-2) var(--space-3);width:100%}nav[data-site-nav]:has(>[popover])>[popover] li:hover{background-color:rgba(0,0,0,0)}nav[data-site-nav]:has(>[popover])>[popover] a:hover{background-color:color-mix(in srgb, currentcolor 8%, transparent)}nav[data-site-nav]:has(>[popover]:popover-open) button[popovertarget]{background-color:color-mix(in srgb, currentcolor 12%, transparent);border-color:currentcolor}@media(prefers-reduced-motion: no-preference){nav[data-site-nav]>[popover]:popover-open{opacity:1;transition:opacity var(--transition-duration-150) ease-out}@starting-style{nav[data-site-nav]>[popover]:popover-open{opacity:0}}}@supports not selector(:popover-open){nav[data-site-nav]>button[popovertarget]{display:none}nav[data-site-nav]:has(>[popover])>button[popovertarget]{display:none}nav[data-site-nav]>[popover]{background-color:rgba(0,0,0,0);border:0;box-shadow:none;max-height:none;max-width:none;min-width:0;overflow:visible;padding:0;position:static}nav[data-site-nav]:has(>[popover])>[popover]{background-color:rgba(0,0,0,0);border:0;box-shadow:none;max-height:none;max-width:none;min-width:0;overflow:visible;padding:0;position:static}nav[data-site-nav]>[popover] ul{flex-direction:row}nav[data-site-nav]:has(>[popover])>[popover] ul{flex-direction:row}}.alert{border-radius:.25rem;margin-bottom:1rem;padding:1rem;padding-inline-start:1.5rem}.alert a{color:inherit;text-decoration:underline}.alert-error{background-color:#f8d7da;border-color:#f5c6cb;color:#721c24}.alert-success{background-color:#d4edda;border-color:#c3e6cb;color:#155724}.alert-info{background-color:#d1ecf1;border-color:#bee5eb;color:#0c5460}.text-primary-50{color:var(--color-primary-50)}.text-primary-100{color:var(--color-primary-100)}.text-primary-200{color:var(--color-primary-200)}.text-primary-300{color:var(--color-primary-300)}.text-primary-400{color:var(--color-primary-400)}.text-primary-500{color:var(--color-primary-500)}.text-primary-600{color:var(--color-primary-600)}.text-primary-700{color:var(--color-primary-700)}.text-primary-800{color:var(--color-primary-800)}.text-primary-900{color:var(--color-primary-900)}.text-neutral-50{color:var(--color-neutral-50)}.text-neutral-100{color:var(--color-neutral-100)}.text-neutral-200{color:var(--color-neutral-200)}.text-neutral-300{color:var(--color-neutral-300)}.text-neutral-400{color:var(--color-neutral-400)}.text-neutral-500{color:var(--color-neutral-500)}.text-neutral-600{color:var(--color-neutral-600)}.text-neutral-700{color:var(--color-neutral-700)}.text-neutral-800{color:var(--color-neutral-800)}.text-neutral-900{color:var(--color-neutral-900)}.text-success{color:var(--color-success)}.text-success-light{color:var(--color-success-light)}.text-success-dark{color:var(--color-success-dark)}.text-warning{color:var(--color-warning)}.text-warning-light{color:var(--color-warning-light)}.text-warning-dark{color:var(--color-warning-dark)}.text-error{color:var(--color-error)}.text-error-light{color:var(--color-error-light)}.text-error-dark{color:var(--color-error-dark)}.text-info{color:var(--color-info)}.text-info-light{color:var(--color-info-light)}.text-info-dark{color:var(--color-info-dark)}.bg-primary-50{background-color:var(--color-primary-50)}.bg-primary-100{background-color:var(--color-primary-100)}.bg-primary-200{background-color:var(--color-primary-200)}.bg-primary-300{background-color:var(--color-primary-300)}.bg-primary-400{background-color:var(--color-primary-400)}.bg-primary-500{background-color:var(--color-primary-500)}.bg-primary-600{background-color:var(--color-primary-600)}.bg-primary-700{background-color:var(--color-primary-700)}.bg-primary-800{background-color:var(--color-primary-800)}.bg-primary-900{background-color:var(--color-primary-900)}.bg-neutral-50{background-color:var(--color-neutral-50)}.bg-neutral-100{background-color:var(--color-neutral-100)}.bg-neutral-200{background-color:var(--color-neutral-200)}.bg-neutral-300{background-color:var(--color-neutral-300)}.bg-neutral-400{background-color:var(--color-neutral-400)}.bg-neutral-500{background-color:var(--color-neutral-500)}.bg-neutral-600{background-color:var(--color-neutral-600)}.bg-neutral-700{background-color:var(--color-neutral-700)}.bg-neutral-800{background-color:var(--color-neutral-800)}.bg-neutral-900{background-color:var(--color-neutral-900)}.bg-success{background-color:var(--color-success)}.bg-success-light{background-color:var(--color-success-light)}.bg-success-dark{background-color:var(--color-success-dark)}.bg-warning{background-color:var(--color-warning)}.bg-warning-light{background-color:var(--color-warning-light)}.bg-warning-dark{background-color:var(--color-warning-dark)}.bg-error{background-color:var(--color-error)}.bg-error-light{background-color:var(--color-error-light)}.bg-error-dark{background-color:var(--color-error-dark)}.bg-info{background-color:var(--color-info)}.bg-info-light{background-color:var(--color-info-light)}.bg-info-dark{background-color:var(--color-info-dark)}.border-primary-50{border-color:var(--color-primary-50)}.border-primary-100{border-color:var(--color-primary-100)}.border-primary-200{border-color:var(--color-primary-200)}.border-primary-300{border-color:var(--color-primary-300)}.border-primary-400{border-color:var(--color-primary-400)}.border-primary-500{border-color:var(--color-primary-500)}.border-primary-600{border-color:var(--color-primary-600)}.border-primary-700{border-color:var(--color-primary-700)}.border-primary-800{border-color:var(--color-primary-800)}.border-primary-900{border-color:var(--color-primary-900)}.border-neutral-50{border-color:var(--color-neutral-50)}.border-neutral-100{border-color:var(--color-neutral-100)}.border-neutral-200{border-color:var(--color-neutral-200)}.border-neutral-300{border-color:var(--color-neutral-300)}.border-neutral-400{border-color:var(--color-neutral-400)}.border-neutral-500{border-color:var(--color-neutral-500)}.border-neutral-600{border-color:var(--color-neutral-600)}.border-neutral-700{border-color:var(--color-neutral-700)}.border-neutral-800{border-color:var(--color-neutral-800)}.border-neutral-900{border-color:var(--color-neutral-900)}.border-success{border-color:var(--color-success)}.border-warning{border-color:var(--color-warning)}.border-error{border-color:var(--color-error)}.border-info{border-color:var(--color-info)}.font-sans{font-family:var(--font-family-sans)}.font-serif{font-family:var(--font-family-serif)}.font-mono{font-family:var(--font-family-mono)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-3xl{font-size:var(--font-size-3xl)}.text-4xl{font-size:var(--font-size-4xl)}.text-5xl{font-size:var(--font-size-5xl)}.text-6xl{font-size:var(--font-size-6xl)}.font-thin{font-weight:var(--font-weight-thin)}.font-light{font-weight:var(--font-weight-light)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.font-extrabold{font-weight:var(--font-weight-extrabold)}.font-black{font-weight:var(--font-weight-black)}.leading-none{line-height:var(--line-height-none)}.leading-tight{line-height:var(--line-height-tight)}.leading-snug{line-height:var(--line-height-snug)}.leading-normal{line-height:var(--line-height-normal)}.leading-relaxed{line-height:var(--line-height-relaxed)}.leading-loose{line-height:var(--line-height-loose)}.m-0{margin:var(--space-0)}.m-px{margin:var(--space-px)}.m-0-5{margin:var(--space-0-5)}.m-1{margin:var(--space-1)}.m-1-5{margin:var(--space-1-5)}.m-2{margin:var(--space-2)}.m-2-5{margin:var(--space-2-5)}.m-3{margin:var(--space-3)}.m-3-5{margin:var(--space-3-5)}.m-4{margin:var(--space-4)}.m-5{margin:var(--space-5)}.m-6{margin:var(--space-6)}.m-7{margin:var(--space-7)}.m-8{margin:var(--space-8)}.m-9{margin:var(--space-9)}.m-10{margin:var(--space-10)}.m-11{margin:var(--space-11)}.m-12{margin:var(--space-12)}.m-14{margin:var(--space-14)}.m-16{margin:var(--space-16)}.m-20{margin:var(--space-20)}.m-24{margin:var(--space-24)}.m-28{margin:var(--space-28)}.m-32{margin:var(--space-32)}.m-36{margin:var(--space-36)}.m-40{margin:var(--space-40)}.m-44{margin:var(--space-44)}.m-48{margin:var(--space-48)}.m-52{margin:var(--space-52)}.m-56{margin:var(--space-56)}.m-60{margin:var(--space-60)}.m-64{margin:var(--space-64)}.m-72{margin:var(--space-72)}.m-80{margin:var(--space-80)}.m-96{margin:var(--space-96)}.m-auto{margin:auto}.mx-0{margin-left:var(--space-0);margin-right:var(--space-0)}.mx-px{margin-left:var(--space-px);margin-right:var(--space-px)}.mx-0-5{margin-left:var(--space-0-5);margin-right:var(--space-0-5)}.mx-1{margin-left:var(--space-1);margin-right:var(--space-1)}.mx-1-5{margin-left:var(--space-1-5);margin-right:var(--space-1-5)}.mx-2{margin-left:var(--space-2);margin-right:var(--space-2)}.mx-2-5{margin-left:var(--space-2-5);margin-right:var(--space-2-5)}.mx-3{margin-left:var(--space-3);margin-right:var(--space-3)}.mx-3-5{margin-left:var(--space-3-5);margin-right:var(--space-3-5)}.mx-4{margin-left:var(--space-4);margin-right:var(--space-4)}.mx-5{margin-left:var(--space-5);margin-right:var(--space-5)}.mx-6{margin-left:var(--space-6);margin-right:var(--space-6)}.mx-7{margin-left:var(--space-7);margin-right:var(--space-7)}.mx-8{margin-left:var(--space-8);margin-right:var(--space-8)}.mx-9{margin-left:var(--space-9);margin-right:var(--space-9)}.mx-10{margin-left:var(--space-10);margin-right:var(--space-10)}.mx-11{margin-left:var(--space-11);margin-right:var(--space-11)}.mx-12{margin-left:var(--space-12);margin-right:var(--space-12)}.mx-14{margin-left:var(--space-14);margin-right:var(--space-14)}.mx-16{margin-left:var(--space-16);margin-right:var(--space-16)}.mx-20{margin-left:var(--space-20);margin-right:var(--space-20)}.mx-24{margin-left:var(--space-24);margin-right:var(--space-24)}.mx-28{margin-left:var(--space-28);margin-right:var(--space-28)}.mx-32{margin-left:var(--space-32);margin-right:var(--space-32)}.mx-36{margin-left:var(--space-36);margin-right:var(--space-36)}.mx-40{margin-left:var(--space-40);margin-right:var(--space-40)}.mx-44{margin-left:var(--space-44);margin-right:var(--space-44)}.mx-48{margin-left:var(--space-48);margin-right:var(--space-48)}.mx-52{margin-left:var(--space-52);margin-right:var(--space-52)}.mx-56{margin-left:var(--space-56);margin-right:var(--space-56)}.mx-60{margin-left:var(--space-60);margin-right:var(--space-60)}.mx-64{margin-left:var(--space-64);margin-right:var(--space-64)}.mx-72{margin-left:var(--space-72);margin-right:var(--space-72)}.mx-80{margin-left:var(--space-80);margin-right:var(--space-80)}.mx-96{margin-left:var(--space-96);margin-right:var(--space-96)}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-bottom:var(--space-0);margin-top:var(--space-0)}.my-px{margin-bottom:var(--space-px);margin-top:var(--space-px)}.my-0-5{margin-bottom:var(--space-0-5);margin-top:var(--space-0-5)}.my-1{margin-bottom:var(--space-1);margin-top:var(--space-1)}.my-1-5{margin-bottom:var(--space-1-5);margin-top:var(--space-1-5)}.my-2{margin-bottom:var(--space-2);margin-top:var(--space-2)}.my-2-5{margin-bottom:var(--space-2-5);margin-top:var(--space-2-5)}.my-3{margin-bottom:var(--space-3);margin-top:var(--space-3)}.my-3-5{margin-bottom:var(--space-3-5);margin-top:var(--space-3-5)}.my-4{margin-bottom:var(--space-4);margin-top:var(--space-4)}.my-5{margin-bottom:var(--space-5);margin-top:var(--space-5)}.my-6{margin-bottom:var(--space-6);margin-top:var(--space-6)}.my-7{margin-bottom:var(--space-7);margin-top:var(--space-7)}.my-8{margin-bottom:var(--space-8);margin-top:var(--space-8)}.my-9{margin-bottom:var(--space-9);margin-top:var(--space-9)}.my-10{margin-bottom:var(--space-10);margin-top:var(--space-10)}.my-11{margin-bottom:var(--space-11);margin-top:var(--space-11)}.my-12{margin-bottom:var(--space-12);margin-top:var(--space-12)}.my-14{margin-bottom:var(--space-14);margin-top:var(--space-14)}.my-16{margin-bottom:var(--space-16);margin-top:var(--space-16)}.my-20{margin-bottom:var(--space-20);margin-top:var(--space-20)}.my-24{margin-bottom:var(--space-24);margin-top:var(--space-24)}.my-28{margin-bottom:var(--space-28);margin-top:var(--space-28)}.my-32{margin-bottom:var(--space-32);margin-top:var(--space-32)}.my-36{margin-bottom:var(--space-36);margin-top:var(--space-36)}.my-40{margin-bottom:var(--space-40);margin-top:var(--space-40)}.my-44{margin-bottom:var(--space-44);margin-top:var(--space-44)}.my-48{margin-bottom:var(--space-48);margin-top:var(--space-48)}.my-52{margin-bottom:var(--space-52);margin-top:var(--space-52)}.my-56{margin-bottom:var(--space-56);margin-top:var(--space-56)}.my-60{margin-bottom:var(--space-60);margin-top:var(--space-60)}.my-64{margin-bottom:var(--space-64);margin-top:var(--space-64)}.my-72{margin-bottom:var(--space-72);margin-top:var(--space-72)}.my-80{margin-bottom:var(--space-80);margin-top:var(--space-80)}.my-96{margin-bottom:var(--space-96);margin-top:var(--space-96)}.mt-0{margin-top:var(--space-0)}.mt-px{margin-top:var(--space-px)}.mt-0-5{margin-top:var(--space-0-5)}.mt-1{margin-top:var(--space-1)}.mt-1-5{margin-top:var(--space-1-5)}.mt-2{margin-top:var(--space-2)}.mt-2-5{margin-top:var(--space-2-5)}.mt-3{margin-top:var(--space-3)}.mt-3-5{margin-top:var(--space-3-5)}.mt-4{margin-top:var(--space-4)}.mt-5{margin-top:var(--space-5)}.mt-6{margin-top:var(--space-6)}.mt-7{margin-top:var(--space-7)}.mt-8{margin-top:var(--space-8)}.mt-9{margin-top:var(--space-9)}.mt-10{margin-top:var(--space-10)}.mt-11{margin-top:var(--space-11)}.mt-12{margin-top:var(--space-12)}.mt-14{margin-top:var(--space-14)}.mt-16{margin-top:var(--space-16)}.mt-20{margin-top:var(--space-20)}.mt-24{margin-top:var(--space-24)}.mt-28{margin-top:var(--space-28)}.mt-32{margin-top:var(--space-32)}.mt-36{margin-top:var(--space-36)}.mt-40{margin-top:var(--space-40)}.mt-44{margin-top:var(--space-44)}.mt-48{margin-top:var(--space-48)}.mt-52{margin-top:var(--space-52)}.mt-56{margin-top:var(--space-56)}.mt-60{margin-top:var(--space-60)}.mt-64{margin-top:var(--space-64)}.mt-72{margin-top:var(--space-72)}.mt-80{margin-top:var(--space-80)}.mt-96{margin-top:var(--space-96)}.mt-auto{margin-top:auto}.mr-0{margin-right:var(--space-0)}.mr-px{margin-right:var(--space-px)}.mr-0-5{margin-right:var(--space-0-5)}.mr-1{margin-right:var(--space-1)}.mr-1-5{margin-right:var(--space-1-5)}.mr-2{margin-right:var(--space-2)}.mr-2-5{margin-right:var(--space-2-5)}.mr-3{margin-right:var(--space-3)}.mr-3-5{margin-right:var(--space-3-5)}.mr-4{margin-right:var(--space-4)}.mr-5{margin-right:var(--space-5)}.mr-6{margin-right:var(--space-6)}.mr-7{margin-right:var(--space-7)}.mr-8{margin-right:var(--space-8)}.mr-9{margin-right:var(--space-9)}.mr-10{margin-right:var(--space-10)}.mr-11{margin-right:var(--space-11)}.mr-12{margin-right:var(--space-12)}.mr-14{margin-right:var(--space-14)}.mr-16{margin-right:var(--space-16)}.mr-20{margin-right:var(--space-20)}.mr-24{margin-right:var(--space-24)}.mr-28{margin-right:var(--space-28)}.mr-32{margin-right:var(--space-32)}.mr-36{margin-right:var(--space-36)}.mr-40{margin-right:var(--space-40)}.mr-44{margin-right:var(--space-44)}.mr-48{margin-right:var(--space-48)}.mr-52{margin-right:var(--space-52)}.mr-56{margin-right:var(--space-56)}.mr-60{margin-right:var(--space-60)}.mr-64{margin-right:var(--space-64)}.mr-72{margin-right:var(--space-72)}.mr-80{margin-right:var(--space-80)}.mr-96{margin-right:var(--space-96)}.mr-auto{margin-right:auto}.mb-0{margin-bottom:var(--space-0)}.mb-px{margin-bottom:var(--space-px)}.mb-0-5{margin-bottom:var(--space-0-5)}.mb-1{margin-bottom:var(--space-1)}.mb-1-5{margin-bottom:var(--space-1-5)}.mb-2{margin-bottom:var(--space-2)}.mb-2-5{margin-bottom:var(--space-2-5)}.mb-3{margin-bottom:var(--space-3)}.mb-3-5{margin-bottom:var(--space-3-5)}.mb-4{margin-bottom:var(--space-4)}.mb-5{margin-bottom:var(--space-5)}.mb-6{margin-bottom:var(--space-6)}.mb-7{margin-bottom:var(--space-7)}.mb-8{margin-bottom:var(--space-8)}.mb-9{margin-bottom:var(--space-9)}.mb-10{margin-bottom:var(--space-10)}.mb-11{margin-bottom:var(--space-11)}.mb-12{margin-bottom:var(--space-12)}.mb-14{margin-bottom:var(--space-14)}.mb-16{margin-bottom:var(--space-16)}.mb-20{margin-bottom:var(--space-20)}.mb-24{margin-bottom:var(--space-24)}.mb-28{margin-bottom:var(--space-28)}.mb-32{margin-bottom:var(--space-32)}.mb-36{margin-bottom:var(--space-36)}.mb-40{margin-bottom:var(--space-40)}.mb-44{margin-bottom:var(--space-44)}.mb-48{margin-bottom:var(--space-48)}.mb-52{margin-bottom:var(--space-52)}.mb-56{margin-bottom:var(--space-56)}.mb-60{margin-bottom:var(--space-60)}.mb-64{margin-bottom:var(--space-64)}.mb-72{margin-bottom:var(--space-72)}.mb-80{margin-bottom:var(--space-80)}.mb-96{margin-bottom:var(--space-96)}.ml-0{margin-left:var(--space-0)}.ml-px{margin-left:var(--space-px)}.ml-0-5{margin-left:var(--space-0-5)}.ml-1{margin-left:var(--space-1)}.ml-1-5{margin-left:var(--space-1-5)}.ml-2{margin-left:var(--space-2)}.ml-2-5{margin-left:var(--space-2-5)}.ml-3{margin-left:var(--space-3)}.ml-3-5{margin-left:var(--space-3-5)}.ml-4{margin-left:var(--space-4)}.ml-5{margin-left:var(--space-5)}.ml-6{margin-left:var(--space-6)}.ml-7{margin-left:var(--space-7)}.ml-8{margin-left:var(--space-8)}.ml-9{margin-left:var(--space-9)}.ml-10{margin-left:var(--space-10)}.ml-11{margin-left:var(--space-11)}.ml-12{margin-left:var(--space-12)}.ml-14{margin-left:var(--space-14)}.ml-16{margin-left:var(--space-16)}.ml-20{margin-left:var(--space-20)}.ml-24{margin-left:var(--space-24)}.ml-28{margin-left:var(--space-28)}.ml-32{margin-left:var(--space-32)}.ml-36{margin-left:var(--space-36)}.ml-40{margin-left:var(--space-40)}.ml-44{margin-left:var(--space-44)}.ml-48{margin-left:var(--space-48)}.ml-52{margin-left:var(--space-52)}.ml-56{margin-left:var(--space-56)}.ml-60{margin-left:var(--space-60)}.ml-64{margin-left:var(--space-64)}.ml-72{margin-left:var(--space-72)}.ml-80{margin-left:var(--space-80)}.ml-96{margin-left:var(--space-96)}.ml-auto{margin-left:auto}.p-0{padding:var(--space-0)}.p-px{padding:var(--space-px)}.p-0-5{padding:var(--space-0-5)}.p-1{padding:var(--space-1)}.p-1-5{padding:var(--space-1-5)}.p-2{padding:var(--space-2)}.p-2-5{padding:var(--space-2-5)}.p-3{padding:var(--space-3)}.p-3-5{padding:var(--space-3-5)}.p-4{padding:var(--space-4)}.p-5{padding:var(--space-5)}.p-6{padding:var(--space-6)}.p-7{padding:var(--space-7)}.p-8{padding:var(--space-8)}.p-9{padding:var(--space-9)}.p-10{padding:var(--space-10)}.p-11{padding:var(--space-11)}.p-12{padding:var(--space-12)}.p-14{padding:var(--space-14)}.p-16{padding:var(--space-16)}.p-20{padding:var(--space-20)}.p-24{padding:var(--space-24)}.p-28{padding:var(--space-28)}.p-32{padding:var(--space-32)}.p-36{padding:var(--space-36)}.p-40{padding:var(--space-40)}.p-44{padding:var(--space-44)}.p-48{padding:var(--space-48)}.p-52{padding:var(--space-52)}.p-56{padding:var(--space-56)}.p-60{padding:var(--space-60)}.p-64{padding:var(--space-64)}.p-72{padding:var(--space-72)}.p-80{padding:var(--space-80)}.p-96{padding:var(--space-96)}.px-0{padding-left:var(--space-0);padding-right:var(--space-0)}.px-px{padding-left:var(--space-px);padding-right:var(--space-px)}.px-0-5{padding-left:var(--space-0-5);padding-right:var(--space-0-5)}.px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.px-1-5{padding-left:var(--space-1-5);padding-right:var(--space-1-5)}.px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.px-2-5{padding-left:var(--space-2-5);padding-right:var(--space-2-5)}.px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.px-3-5{padding-left:var(--space-3-5);padding-right:var(--space-3-5)}.px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.px-10{padding-left:var(--space-10);padding-right:var(--space-10)}.px-11{padding-left:var(--space-11);padding-right:var(--space-11)}.px-12{padding-left:var(--space-12);padding-right:var(--space-12)}.px-14{padding-left:var(--space-14);padding-right:var(--space-14)}.px-16{padding-left:var(--space-16);padding-right:var(--space-16)}.px-20{padding-left:var(--space-20);padding-right:var(--space-20)}.px-24{padding-left:var(--space-24);padding-right:var(--space-24)}.px-28{padding-left:var(--space-28);padding-right:var(--space-28)}.px-32{padding-left:var(--space-32);padding-right:var(--space-32)}.px-36{padding-left:var(--space-36);padding-right:var(--space-36)}.px-40{padding-left:var(--space-40);padding-right:var(--space-40)}.px-44{padding-left:var(--space-44);padding-right:var(--space-44)}.px-48{padding-left:var(--space-48);padding-right:var(--space-48)}.px-52{padding-left:var(--space-52);padding-right:var(--space-52)}.px-56{padding-left:var(--space-56);padding-right:var(--space-56)}.px-60{padding-left:var(--space-60);padding-right:var(--space-60)}.px-64{padding-left:var(--space-64);padding-right:var(--space-64)}.px-72{padding-left:var(--space-72);padding-right:var(--space-72)}.px-80{padding-left:var(--space-80);padding-right:var(--space-80)}.px-96{padding-left:var(--space-96);padding-right:var(--space-96)}.py-0{padding-bottom:var(--space-0);padding-top:var(--space-0)}.py-px{padding-bottom:var(--space-px);padding-top:var(--space-px)}.py-0-5{padding-bottom:var(--space-0-5);padding-top:var(--space-0-5)}.py-1{padding-bottom:var(--space-1);padding-top:var(--space-1)}.py-1-5{padding-bottom:var(--space-1-5);padding-top:var(--space-1-5)}.py-2{padding-bottom:var(--space-2);padding-top:var(--space-2)}.py-2-5{padding-bottom:var(--space-2-5);padding-top:var(--space-2-5)}.py-3{padding-bottom:var(--space-3);padding-top:var(--space-3)}.py-3-5{padding-bottom:var(--space-3-5);padding-top:var(--space-3-5)}.py-4{padding-bottom:var(--space-4);padding-top:var(--space-4)}.py-5{padding-bottom:var(--space-5);padding-top:var(--space-5)}.py-6{padding-bottom:var(--space-6);padding-top:var(--space-6)}.py-7{padding-bottom:var(--space-7);padding-top:var(--space-7)}.py-8{padding-bottom:var(--space-8);padding-top:var(--space-8)}.py-9{padding-bottom:var(--space-9);padding-top:var(--space-9)}.py-10{padding-bottom:var(--space-10);padding-top:var(--space-10)}.py-11{padding-bottom:var(--space-11);padding-top:var(--space-11)}.py-12{padding-bottom:var(--space-12);padding-top:var(--space-12)}.py-14{padding-bottom:var(--space-14);padding-top:var(--space-14)}.py-16{padding-bottom:var(--space-16);padding-top:var(--space-16)}.py-20{padding-bottom:var(--space-20);padding-top:var(--space-20)}.py-24{padding-bottom:var(--space-24);padding-top:var(--space-24)}.py-28{padding-bottom:var(--space-28);padding-top:var(--space-28)}.py-32{padding-bottom:var(--space-32);padding-top:var(--space-32)}.py-36{padding-bottom:var(--space-36);padding-top:var(--space-36)}.py-40{padding-bottom:var(--space-40);padding-top:var(--space-40)}.py-44{padding-bottom:var(--space-44);padding-top:var(--space-44)}.py-48{padding-bottom:var(--space-48);padding-top:var(--space-48)}.py-52{padding-bottom:var(--space-52);padding-top:var(--space-52)}.py-56{padding-bottom:var(--space-56);padding-top:var(--space-56)}.py-60{padding-bottom:var(--space-60);padding-top:var(--space-60)}.py-64{padding-bottom:var(--space-64);padding-top:var(--space-64)}.py-72{padding-bottom:var(--space-72);padding-top:var(--space-72)}.py-80{padding-bottom:var(--space-80);padding-top:var(--space-80)}.py-96{padding-bottom:var(--space-96);padding-top:var(--space-96)}.pt-0{padding-top:var(--space-0)}.pt-px{padding-top:var(--space-px)}.pt-0-5{padding-top:var(--space-0-5)}.pt-1{padding-top:var(--space-1)}.pt-1-5{padding-top:var(--space-1-5)}.pt-2{padding-top:var(--space-2)}.pt-2-5{padding-top:var(--space-2-5)}.pt-3{padding-top:var(--space-3)}.pt-3-5{padding-top:var(--space-3-5)}.pt-4{padding-top:var(--space-4)}.pt-5{padding-top:var(--space-5)}.pt-6{padding-top:var(--space-6)}.pt-7{padding-top:var(--space-7)}.pt-8{padding-top:var(--space-8)}.pt-9{padding-top:var(--space-9)}.pt-10{padding-top:var(--space-10)}.pt-11{padding-top:var(--space-11)}.pt-12{padding-top:var(--space-12)}.pt-14{padding-top:var(--space-14)}.pt-16{padding-top:var(--space-16)}.pt-20{padding-top:var(--space-20)}.pt-24{padding-top:var(--space-24)}.pt-28{padding-top:var(--space-28)}.pt-32{padding-top:var(--space-32)}.pt-36{padding-top:var(--space-36)}.pt-40{padding-top:var(--space-40)}.pt-44{padding-top:var(--space-44)}.pt-48{padding-top:var(--space-48)}.pt-52{padding-top:var(--space-52)}.pt-56{padding-top:var(--space-56)}.pt-60{padding-top:var(--space-60)}.pt-64{padding-top:var(--space-64)}.pt-72{padding-top:var(--space-72)}.pt-80{padding-top:var(--space-80)}.pt-96{padding-top:var(--space-96)}.pr-0{padding-right:var(--space-0)}.pr-px{padding-right:var(--space-px)}.pr-0-5{padding-right:var(--space-0-5)}.pr-1{padding-right:var(--space-1)}.pr-1-5{padding-right:var(--space-1-5)}.pr-2{padding-right:var(--space-2)}.pr-2-5{padding-right:var(--space-2-5)}.pr-3{padding-right:var(--space-3)}.pr-3-5{padding-right:var(--space-3-5)}.pr-4{padding-right:var(--space-4)}.pr-5{padding-right:var(--space-5)}.pr-6{padding-right:var(--space-6)}.pr-7{padding-right:var(--space-7)}.pr-8{padding-right:var(--space-8)}.pr-9{padding-right:var(--space-9)}.pr-10{padding-right:var(--space-10)}.pr-11{padding-right:var(--space-11)}.pr-12{padding-right:var(--space-12)}.pr-14{padding-right:var(--space-14)}.pr-16{padding-right:var(--space-16)}.pr-20{padding-right:var(--space-20)}.pr-24{padding-right:var(--space-24)}.pr-28{padding-right:var(--space-28)}.pr-32{padding-right:var(--space-32)}.pr-36{padding-right:var(--space-36)}.pr-40{padding-right:var(--space-40)}.pr-44{padding-right:var(--space-44)}.pr-48{padding-right:var(--space-48)}.pr-52{padding-right:var(--space-52)}.pr-56{padding-right:var(--space-56)}.pr-60{padding-right:var(--space-60)}.pr-64{padding-right:var(--space-64)}.pr-72{padding-right:var(--space-72)}.pr-80{padding-right:var(--space-80)}.pr-96{padding-right:var(--space-96)}.pb-0{padding-bottom:var(--space-0)}.pb-px{padding-bottom:var(--space-px)}.pb-0-5{padding-bottom:var(--space-0-5)}.pb-1{padding-bottom:var(--space-1)}.pb-1-5{padding-bottom:var(--space-1-5)}.pb-2{padding-bottom:var(--space-2)}.pb-2-5{padding-bottom:var(--space-2-5)}.pb-3{padding-bottom:var(--space-3)}.pb-3-5{padding-bottom:var(--space-3-5)}.pb-4{padding-bottom:var(--space-4)}.pb-5{padding-bottom:var(--space-5)}.pb-6{padding-bottom:var(--space-6)}.pb-7{padding-bottom:var(--space-7)}.pb-8{padding-bottom:var(--space-8)}.pb-9{padding-bottom:var(--space-9)}.pb-10{padding-bottom:var(--space-10)}.pb-11{padding-bottom:var(--space-11)}.pb-12{padding-bottom:var(--space-12)}.pb-14{padding-bottom:var(--space-14)}.pb-16{padding-bottom:var(--space-16)}.pb-20{padding-bottom:var(--space-20)}.pb-24{padding-bottom:var(--space-24)}.pb-28{padding-bottom:var(--space-28)}.pb-32{padding-bottom:var(--space-32)}.pb-36{padding-bottom:var(--space-36)}.pb-40{padding-bottom:var(--space-40)}.pb-44{padding-bottom:var(--space-44)}.pb-48{padding-bottom:var(--space-48)}.pb-52{padding-bottom:var(--space-52)}.pb-56{padding-bottom:var(--space-56)}.pb-60{padding-bottom:var(--space-60)}.pb-64{padding-bottom:var(--space-64)}.pb-72{padding-bottom:var(--space-72)}.pb-80{padding-bottom:var(--space-80)}.pb-96{padding-bottom:var(--space-96)}.pl-0{padding-left:var(--space-0)}.pl-px{padding-left:var(--space-px)}.pl-0-5{padding-left:var(--space-0-5)}.pl-1{padding-left:var(--space-1)}.pl-1-5{padding-left:var(--space-1-5)}.pl-2{padding-left:var(--space-2)}.pl-2-5{padding-left:var(--space-2-5)}.pl-3{padding-left:var(--space-3)}.pl-3-5{padding-left:var(--space-3-5)}.pl-4{padding-left:var(--space-4)}.pl-5{padding-left:var(--space-5)}.pl-6{padding-left:var(--space-6)}.pl-7{padding-left:var(--space-7)}.pl-8{padding-left:var(--space-8)}.pl-9{padding-left:var(--space-9)}.pl-10{padding-left:var(--space-10)}.pl-11{padding-left:var(--space-11)}.pl-12{padding-left:var(--space-12)}.pl-14{padding-left:var(--space-14)}.pl-16{padding-left:var(--space-16)}.pl-20{padding-left:var(--space-20)}.pl-24{padding-left:var(--space-24)}.pl-28{padding-left:var(--space-28)}.pl-32{padding-left:var(--space-32)}.pl-36{padding-left:var(--space-36)}.pl-40{padding-left:var(--space-40)}.pl-44{padding-left:var(--space-44)}.pl-48{padding-left:var(--space-48)}.pl-52{padding-left:var(--space-52)}.pl-56{padding-left:var(--space-56)}.pl-60{padding-left:var(--space-60)}.pl-64{padding-left:var(--space-64)}.pl-72{padding-left:var(--space-72)}.pl-80{padding-left:var(--space-80)}.pl-96{padding-left:var(--space-96)}.gap-0{gap:var(--space-0)}.gap-px{gap:var(--space-px)}.gap-0-5{gap:var(--space-0-5)}.gap-1{gap:var(--space-1)}.gap-1-5{gap:var(--space-1-5)}.gap-2{gap:var(--space-2)}.gap-2-5{gap:var(--space-2-5)}.gap-3{gap:var(--space-3)}.gap-3-5{gap:var(--space-3-5)}.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}.gap-6{gap:var(--space-6)}.gap-7{gap:var(--space-7)}.gap-8{gap:var(--space-8)}.gap-9{gap:var(--space-9)}.gap-10{gap:var(--space-10)}.gap-11{gap:var(--space-11)}.gap-12{gap:var(--space-12)}.gap-14{gap:var(--space-14)}.gap-16{gap:var(--space-16)}.gap-20{gap:var(--space-20)}.gap-24{gap:var(--space-24)}.gap-28{gap:var(--space-28)}.gap-32{gap:var(--space-32)}.gap-36{gap:var(--space-36)}.gap-40{gap:var(--space-40)}.gap-44{gap:var(--space-44)}.gap-48{gap:var(--space-48)}.gap-52{gap:var(--space-52)}.gap-56{gap:var(--space-56)}.gap-60{gap:var(--space-60)}.gap-64{gap:var(--space-64)}.gap-72{gap:var(--space-72)}.gap-80{gap:var(--space-80)}.gap-96{gap:var(--space-96)}.gap-x-0{column-gap:var(--space-0)}.gap-x-px{column-gap:var(--space-px)}.gap-x-0-5{column-gap:var(--space-0-5)}.gap-x-1{column-gap:var(--space-1)}.gap-x-1-5{column-gap:var(--space-1-5)}.gap-x-2{column-gap:var(--space-2)}.gap-x-2-5{column-gap:var(--space-2-5)}.gap-x-3{column-gap:var(--space-3)}.gap-x-3-5{column-gap:var(--space-3-5)}.gap-x-4{column-gap:var(--space-4)}.gap-x-5{column-gap:var(--space-5)}.gap-x-6{column-gap:var(--space-6)}.gap-x-7{column-gap:var(--space-7)}.gap-x-8{column-gap:var(--space-8)}.gap-x-9{column-gap:var(--space-9)}.gap-x-10{column-gap:var(--space-10)}.gap-x-11{column-gap:var(--space-11)}.gap-x-12{column-gap:var(--space-12)}.gap-x-14{column-gap:var(--space-14)}.gap-x-16{column-gap:var(--space-16)}.gap-x-20{column-gap:var(--space-20)}.gap-x-24{column-gap:var(--space-24)}.gap-x-28{column-gap:var(--space-28)}.gap-x-32{column-gap:var(--space-32)}.gap-x-36{column-gap:var(--space-36)}.gap-x-40{column-gap:var(--space-40)}.gap-x-44{column-gap:var(--space-44)}.gap-x-48{column-gap:var(--space-48)}.gap-x-52{column-gap:var(--space-52)}.gap-x-56{column-gap:var(--space-56)}.gap-x-60{column-gap:var(--space-60)}.gap-x-64{column-gap:var(--space-64)}.gap-x-72{column-gap:var(--space-72)}.gap-x-80{column-gap:var(--space-80)}.gap-x-96{column-gap:var(--space-96)}.gap-y-0{row-gap:var(--space-0)}.gap-y-px{row-gap:var(--space-px)}.gap-y-0-5{row-gap:var(--space-0-5)}.gap-y-1{row-gap:var(--space-1)}.gap-y-1-5{row-gap:var(--space-1-5)}.gap-y-2{row-gap:var(--space-2)}.gap-y-2-5{row-gap:var(--space-2-5)}.gap-y-3{row-gap:var(--space-3)}.gap-y-3-5{row-gap:var(--space-3-5)}.gap-y-4{row-gap:var(--space-4)}.gap-y-5{row-gap:var(--space-5)}.gap-y-6{row-gap:var(--space-6)}.gap-y-7{row-gap:var(--space-7)}.gap-y-8{row-gap:var(--space-8)}.gap-y-9{row-gap:var(--space-9)}.gap-y-10{row-gap:var(--space-10)}.gap-y-11{row-gap:var(--space-11)}.gap-y-12{row-gap:var(--space-12)}.gap-y-14{row-gap:var(--space-14)}.gap-y-16{row-gap:var(--space-16)}.gap-y-20{row-gap:var(--space-20)}.gap-y-24{row-gap:var(--space-24)}.gap-y-28{row-gap:var(--space-28)}.gap-y-32{row-gap:var(--space-32)}.gap-y-36{row-gap:var(--space-36)}.gap-y-40{row-gap:var(--space-40)}.gap-y-44{row-gap:var(--space-44)}.gap-y-48{row-gap:var(--space-48)}.gap-y-52{row-gap:var(--space-52)}.gap-y-56{row-gap:var(--space-56)}.gap-y-60{row-gap:var(--space-60)}.gap-y-64{row-gap:var(--space-64)}.gap-y-72{row-gap:var(--space-72)}.gap-y-80{row-gap:var(--space-80)}.gap-y-96{row-gap:var(--space-96)}.max-w-none{max-width:var(--max-width-none)}.max-w-xs{max-width:var(--max-width-xs)}.max-w-sm{max-width:var(--max-width-sm)}.max-w-md{max-width:var(--max-width-md)}.max-w-lg{max-width:var(--max-width-lg)}.max-w-xl{max-width:var(--max-width-xl)}.max-w-2xl{max-width:var(--max-width-2xl)}.max-w-3xl{max-width:var(--max-width-3xl)}.max-w-4xl{max-width:var(--max-width-4xl)}.max-w-5xl{max-width:var(--max-width-5xl)}.max-w-6xl{max-width:var(--max-width-6xl)}.max-w-7xl{max-width:var(--max-width-7xl)}.max-w-full{max-width:var(--max-width-full)}.max-w-screen-sm{max-width:var(--max-width-screen-sm)}.max-w-screen-md{max-width:var(--max-width-screen-md)}.max-w-screen-lg{max-width:var(--max-width-screen-lg)}.max-w-screen-xl{max-width:var(--max-width-screen-xl)}.max-w-screen-2xl{max-width:var(--max-width-screen-2xl)}.z-hide{z-index:var(--z-index-hide)}.z-auto{z-index:var(--z-index-auto)}.z-base{z-index:var(--z-index-base)}.z-docked{z-index:var(--z-index-docked)}.z-dropdown{z-index:var(--z-index-dropdown)}.z-sticky{z-index:var(--z-index-sticky)}.z-banner{z-index:var(--z-index-banner)}.z-overlay{z-index:var(--z-index-overlay)}.z-modal{z-index:var(--z-index-modal)}.z-popover{z-index:var(--z-index-popover)}.z-skip-link{z-index:var(--z-index-skipLink)}.z-toast{z-index:var(--z-index-toast)}.z-tooltip{z-index:var(--z-index-tooltip)}.rounded-none{border-radius:var(--radius-none)}.rounded-sm{border-radius:var(--radius-sm)}.rounded{border-radius:var(--radius-base)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-full{border-radius:var(--radius-full)}.border-0{border-width:var(--border-width-0)}.border{border-width:var(--border-width-1)}.border-2{border-width:var(--border-width-2)}.border-4{border-width:var(--border-width-4)}.border-8{border-width:var(--border-width-8)}.border-t-0{border-top-width:var(--border-width-0)}.border-t{border-top-width:var(--border-width-1)}.border-t-2{border-top-width:var(--border-width-2)}.border-t-4{border-top-width:var(--border-width-4)}.border-t-8{border-top-width:var(--border-width-8)}.border-r-0{border-right-width:var(--border-width-0)}.border-r{border-right-width:var(--border-width-1)}.border-r-2{border-right-width:var(--border-width-2)}.border-r-4{border-right-width:var(--border-width-4)}.border-r-8{border-right-width:var(--border-width-8)}.border-b-0{border-bottom-width:var(--border-width-0)}.border-b{border-bottom-width:var(--border-width-1)}.border-b-2{border-bottom-width:var(--border-width-2)}.border-b-4{border-bottom-width:var(--border-width-4)}.border-b-8{border-bottom-width:var(--border-width-8)}.border-l-0{border-left-width:var(--border-width-0)}.border-l{border-left-width:var(--border-width-1)}.border-l-2{border-left-width:var(--border-width-2)}.border-l-4{border-left-width:var(--border-width-4)}.border-l-8{border-left-width:var(--border-width-8)}.shadow-none{box-shadow:var(--shadow-none)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow{box-shadow:var(--shadow-base)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.shadow-2xl{box-shadow:var(--shadow-2xl)}.shadow-inner{box-shadow:var(--shadow-inner)}.duration-75{transition-duration:var(--transition-duration-75)}.duration-100{transition-duration:var(--transition-duration-100)}.duration-150{transition-duration:var(--transition-duration-150)}.duration-200{transition-duration:var(--transition-duration-200)}.duration-300{transition-duration:var(--transition-duration-300)}.duration-500{transition-duration:var(--transition-duration-500)}.duration-700{transition-duration:var(--transition-duration-700)}.duration-1000{transition-duration:var(--transition-duration-1000)}.ease-linear{transition-timing-function:var(--transition-timing-linear)}.ease-in{transition-timing-function:var(--transition-timing-in)}.ease-out{transition-timing-function:var(--transition-timing-out)}.ease-in-out{transition-timing-function:var(--transition-timing-in-out)}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.inline-grid{display:inline-grid}.hidden{display:none}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-nowrap{flex-wrap:nowrap}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.self-auto{align-self:auto}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-stretch{align-self:stretch}.self-baseline{align-self:baseline}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-x-visible{overflow-x:visible}.overflow-x-scroll{overflow-x:scroll}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overflow-y-visible{overflow-y:visible}.overflow-y-scroll{overflow-y:scroll}.w-auto{width:auto}.w-full{width:100%}.w-screen{width:100vw}.w-min{width:min-content}.w-max{width:max-content}.w-fit{width:fit-content}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.h-min{height:min-content}.h-max{height:max-content}.h-fit{height:fit-content}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.underline{text-decoration:underline}.line-through{text-decoration:line-through}.no-underline{text-decoration:none}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.centered{align-items:center;display:flex;gap:var(--space-4);justify-content:center}.centered-column{align-items:center;display:flex;flex-direction:column;gap:var(--space-4);justify-content:center}.centered-row{align-items:center;display:flex;flex-direction:row;gap:var(--space-4);justify-content:center}.user-profile{background:var(--color-surface, #fff);border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.1);padding:1.5rem}.user-profile__header{align-items:center;border-bottom:1px solid var(--color-border, #e5e7eb);display:flex;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem}.user-profile__avatar{border:2px solid var(--color-primary, #3b82f6);border-radius:50%;height:64px;object-fit:cover;width:64px}.user-profile__info{flex:1}.user-profile__name{color:var(--color-text-primary, #1f2937);font-size:1.25rem;font-weight:600;margin:0}.user-profile__username{color:var(--color-text-secondary, #6b7280);font-size:.875rem;margin:.25rem 0 0}.user-profile__details{display:flex;flex-direction:column;gap:.75rem}.user-profile__detail{align-items:flex-start;display:flex;font-size:.875rem;gap:.5rem}.user-profile__label{color:var(--color-text-secondary, #6b7280);font-weight:500;min-width:100px}.user-profile__value{color:var(--color-text-primary, #1f2937);word-break:break-all}.user-profile__value--mono{background:var(--color-background, #f9fafb);border-radius:4px;font-family:"Courier New",monospace;font-size:.75rem;padding:.125rem .25rem}.user-profile__value--code{background:var(--color-background, #f9fafb);border-radius:4px;font-family:"Courier New",monospace;font-size:.75rem;margin:0;overflow-x:auto;padding:.5rem}.user-profile--loading .user-profile__skeleton{display:flex;flex-direction:column;gap:1rem}.user-profile--loading .skeleton-avatar{animation:loading 1.5s infinite;background:linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);background-size:200% 100%;border-radius:50%;height:64px;width:64px}.user-profile--loading .skeleton-text{animation:loading 1.5s infinite;background:linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);background-size:200% 100%;border-radius:4px;height:1rem}.user-profile--loading .skeleton-text:first-of-type{width:60%}.user-profile--loading .skeleton-text:last-of-type{width:40%}.user-profile--signed-out{color:var(--color-text-secondary, #6b7280);padding:2rem;text-align:center}.user-profile--error{padding:2rem;text-align:center}.user-profile--error .error-content{margin:0 auto;max-width:400px}.user-profile--error .error-content h3{color:#dc2626;font-size:1.125rem;font-weight:600;margin:0 0 .5rem}.user-profile--error .error-content p{color:var(--color-text-secondary, #6b7280);line-height:1.5;margin:0 0 1rem}.user-profile--error .error-content .retry-button{background:var(--color-primary, #3b82f6);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;margin:0 .5rem 0 0;padding:.5rem 1rem;transition:background-color .2s ease}.user-profile--error .error-content .retry-button:hover{background:var(--color-primary-dark, #2563eb)}.user-profile--error .error-content .retry-button:focus{outline:2px solid var(--color-primary, #3b82f6);outline-offset:2px}.user-profile--error .error-content .auth-link{background:#dc2626;border-radius:6px;color:#fff;display:inline-block;font-size:.875rem;font-weight:500;padding:.5rem 1rem;text-decoration:none;transition:background-color .2s ease}.user-profile--error .error-content .auth-link:hover{background:#b91c1c}.user-profile--error .error-content .auth-link:focus{outline:2px solid #dc2626;outline-offset:2px}@keyframes loading{0%{background-position:200% 0}100%{background-position:-200% 0}}@media(width <= 640px){.user-profile{padding:1rem}.user-profile__header{flex-direction:column;text-align:center}.user-profile__detail{flex-direction:column;gap:.25rem}.user-profile__label{min-width:auto}}

/*# sourceMappingURL=index.css.map *//*
 * Salt Tampa Outreach design tokens.
 *
 * Imported from the "Salt Tampa Outreach Design System" folder, which
 * transcribes them from the source Figma frame (Salt TPA OUTPOST.fig, page
 * `final`, node 119:413).
 *
 * Every token is namespaced `--st-`. The source ships them unprefixed, and 14
 * of them collide by name with tokens already declared in src/styles/index.css
 * -- `--paper`, `--radius-none`, and the whole `--space-1` .. `--space-12`
 * scale. The two spacing scales are unrelated (`--space-9` is 36px here and
 * 64px there), so importing them unprefixed would silently reflow every
 * existing page. The prefix is applied mechanically to all 116 tokens rather
 * than to the 14 known collisions, so a token added upstream later cannot
 * reintroduce the problem.
 *
 * Webfonts are NOT imported here. The source loads six Google Fonts families
 * through an @import in tokens/fonts.css; this project self-hosts its faces and
 * declares them in the document head. See docs/plans/port-salt-tampa-landing-page.md.
 */
/* Salt Tampa Outreach — color. Values transcribed from the source .fig. */
:root {
  /* Brand */
  --st-sage: #5e8f7e; /* footer type, hairlines, form borders, carousel dots */
  --st-terracotta: #dc7646; /* mission band, primary button */
  --st-sand: #eae0c7; /* eyebrow type on the terracotta band */
  --st-terracotta-overlay: #b2421a;
  --st-sage-text: #507a6b; /* the same sage darkened for type on white */

  /* Ink ramp (Figma "gray color blue") */
  --st-ink-950: #19191b;
  --st-ink-900: #1e1f21;
  --st-ink-800: #3b3d41;
  --st-ink-700: #5a5c62;
  --st-ink-600: #787a82;
  --st-ink-400: #acaeb4;
  --st-ink-300: #c0c2c6;
  --st-ink-200: #d5d7d9;
  --st-ink-100: #eaebec;
  --st-ink-050: #f8f8f8;

  /* Literal darks used for photo captions and partner marks */
  --st-ink-1d: #1d1d1d;
  --st-ink-22: #222222;
  --st-ink-12: #121212;
  --st-ink-09: #091002;

  /* Hero sky. The band behind the skyline photograph is a flat gradient, not
     the photograph's own sky -- the picture is painted over from the top. */
  --st-sky-top: #9fb0c0;
  --st-sky-ground: #a9b7c6;

  /* Neutrals */
  --st-white: #ffffff;
  --st-black: #000000;
  --st-paper: #fdfdfb; /* services section ground */
  --st-paper-quote: #e3e3e3; /* testimonial type over photography */

  /* Ghost-button offset stack */
  --st-shadow-peach-1: #f1876f;
  --st-shadow-peach-2: #f5ae9e;

  /* Overlays */
  /* The ink channels on their own, so a scrim can be mixed at any strength
     without restating the colour. Same value as --st-ink-950. */
  --st-ink-950-rgb: 25 25 27;
  --st-scrim-ink: rgba(25, 25, 27, 0.49);
  --st-scrim-black: rgba(0, 0, 0, 0.63);
  --st-scrim-terracotta: rgba(178, 66, 26, 0.7);

  /* Semantic aliases */
  --st-text-body: var(--st-black);
  --st-text-muted: var(--st-ink-700);
  --st-text-heading: var(--st-ink-950);
  --st-text-inverse: var(--st-white);
  --st-text-on-terracotta: var(--st-white);
  --st-text-eyebrow-on-terracotta: var(--st-sand);
  /* Measured on white: --st-sage is 3.68:1, short of the 4.5:1 that 14px and
     16px footer type needs. --st-sage-text is 4.84:1. Changed on the alias so
     only type moves -- --st-sage still draws the hairline, the field borders
     and the carousel dots, where 3.68:1 clears the 3:1 non-text bar. */
  --st-text-footer: var(--st-sage-text);
  --st-surface-page: var(--st-white);
  --st-surface-sunken: var(--st-paper);
  /* The deeper terracotta, not --st-terracotta. Measured on the mission band:
     the sand eyebrow on #DC7646 is 2.38:1 and cannot reach the 3:1 large-text
     floor at any size, and white sat at 3.12:1 with 4% to spare. On #B2421A
     sand is 4.34:1 and white 5.70:1, so both keep the colours the design
     assigns them. The alternative was dropping the sand eyebrow for white,
     which passes only while the label stays above 24px. */
  --st-surface-band: var(--st-terracotta-overlay);
  --st-surface-button-secondary: var(--st-ink-050);
  /* The deeper terracotta, not --st-terracotta. White on #DC7646 measures
     3.12:1, and a 14px button label needs 4.5:1; on #B2421A it is 5.70:1.
     Changed on the alias rather than the brand colour so only control fills
     move -- --st-terracotta still paints the mission band as drawn. */
  --st-surface-button-primary: var(--st-terracotta-overlay);
  --st-border-hairline: var(--st-sage);
  --st-focus-ring: var(--st-terracotta);
}
/* Salt Tampa Outreach — type. Six families, each with a fixed job. */
:root {
  --st-font-display:
    'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; /* wordmark, nav */
  --st-font-event:
    'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; /* event card, pill buttons */
  --st-font-ui:
    'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; /* section headings, buttons, cards */
  --st-font-editorial:
    'Lato', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; /* mission, testimonial, service copy, footer brand */
  --st-font-utility:
    'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; /* footer links, forms, fine print */
  --st-font-poster:
    'Josefin Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; /* donate headline, ghost button */
  --st-font-partners:
    'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; /* SUBSTITUTE for Neutrif Pro */

  /* Sizes, verbatim from the file */
  --st-size-hero: 130px;
  --st-size-donate: 86px;
  --st-size-partners: 54px;
  --st-size-event-headline: 51px;
  --st-size-statement: 48px;
  --st-size-heading: 48px;
  --st-size-event-eyebrow: 36px;
  --st-size-eyebrow: 32px;
  --st-size-brand: 24px;
  --st-size-footer-brand: 22px;
  --st-size-ghost: 20px;
  --st-size-lead: 18px;
  --st-size-name: 18px;
  --st-size-body: 16px;
  --st-size-caption: 14px;
  --st-size-fine: 12px;

  /* Line heights */
  --st-lh-tight: 100%;
  --st-lh-statement: 1.1; /* @kind other */
  --st-lh-heading: 72px;
  --st-lh-lead: 28px;
  --st-lh-caption: 25px;
  --st-lh-utility: 1.5; /* @kind other */
  --st-lh-body-relaxed: 1.6; /* @kind other */
  --st-lh-partners: 1.3; /* @kind other */
  --st-lh-donate: 88px;

  /* Tracking */
  --st-track-brand: 0.09em;
  --st-track-event: 0.105em;
  --st-track-ghost: 0.1em;
  --st-track-eyebrow: 1px;
  --st-track-statement: -2px;
  --st-track-footer-brand: -0.03em;
  --st-track-donate: 0.01em;
}
/* Salt Tampa Outreach — spacing, radii, layout. Values as drawn in the .fig. */
:root {
  --st-space-1: 8px;
  --st-space-2: 10px;
  --st-space-3: 12px;
  --st-space-4: 16px;
  --st-space-5: 24px;
  --st-space-6: 32px;
  --st-space-7: 39px;
  --st-space-8: 53px;
  --st-space-9: 64px;
  --st-space-10: 80px;
  --st-space-11: 100px;
  --st-space-12: 112px;

  --st-radius-input: 5px;
  --st-radius-pill: 10px;
  --st-radius-card: 12px;
  --st-radius-photo: 20px;
  --st-radius-hero: 45px;
  --st-radius-round: 37px;
  --st-radius-none: 0px;

  /* Layout */
  --st-page-width: 1440px;
  --st-container-wide: 1334px; /* navbar content */
  --st-container: 1200px; /* mission + services shell */
  --st-container-narrow: 1152px; /* team header */
  --st-content: 1080px; /* hero card column */
  --st-content-narrow: 1020px; /* mission / testimonial measure */
  --st-content-services: 880px;
  --st-section-pad-y: 64px;
  --st-footer-pad: 80px;
}
/* Salt Tampa Outreach — shadows, overlays, motion. */
:root {
  /* Hard offset stack behind the poster ghost button */
  --st-shadow-offset: 4px 4px 0 0 var(--st-shadow-peach-1), 8px 8px 0 0 var(--st-shadow-peach-2);
  /* Event card sitting over photography */
  --st-shadow-event: 0 4px 4px 0 var(--st-black);
  --st-blur-event: blur(62.3px); /* @kind other */
  /* Bottom-up scrim that carries the name plate on a team card */
  --st-scrim-team: linear-gradient(
    0deg,
    var(--st-ink-950) 27.08%,
    var(--st-scrim-ink) 72.4%,
    rgba(25, 25, 27, 0) 100%
  );
  --st-hairline: 1px solid var(--st-border-hairline);

  --st-ease-standard: cubic-bezier(0.4, 0, 0.2, 1); /* @kind other */
  --st-dur-fast: 120ms; /* @kind other */
  --st-dur-base: 200ms; /* @kind other */
}
/*
 * Salt Tampa ground rules.
 *
 * The design system ships these as bare `a {}` selectors. Left bare they would
 * repaint every link on /docs, /blog and the dashboard the moment the tokens
 * were imported, so they are scoped to `.st` instead -- an opt-in class the
 * Salt sections carry. When the sitewide rebrand lands, drop `.st ` from these
 * two selectors and the rules go global as the source intended.
 *
 * Focus rings are deliberately NOT declared here. The source has none at all
 * (inline React style objects cannot express :focus-visible), so each ported
 * control declares its own in its scoped style block -- that way a control
 * dropped outside a `.st` container still shows a keyboard focus state.
 */
/*
 * Prose links only. Anything carrying an `st-` class is a component that owns
 * its own paint -- a pill, a nav link, a footer link -- and at (0,1,1) this
 * rule outranked their single-class rules and repainted them sage and
 * underlined. Measured: the hero's "Volunteer Today" pill rendered as
 * underlined sage text instead of a white pill.
 */
.st a:not([class*='st-']) {
  color: var(--st-sage);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.st a:not([class*='st-']):hover {
  color: var(--st-terracotta);
}
/*
 * The homepage `--salt-*` layer. Separate from the `--st-*` files above: see
 * the header of _salt-tokens.css for why the two sets are not merged.
 */
/*
 * Salt Tampa homepage design tokens (`--salt-*`).
 *
 * Transcribed from the Claude Design canvas "Salt Tampa Homepage.html", whose
 * readable source is the 50 KB template inside its `<script
 * type="__bundler/template">` tag. The canvas declares 41 tokens; all 41 are
 * reproduced here.
 *
 * This set is deliberately SEPARATE from the `--st-*` set in the sibling files
 * of this folder. The two describe different generations of the same brand at
 * materially different scales -- 14px body against 16px, a 34px section
 * heading against 48px, a 10px photo radius against 20px. Folding them
 * together would silently reflow the shipped home page, which renders on
 * `--st-*`. No variable name is shared between the two, so both can coexist.
 *
 * DEVIATIONS FROM THE DESIGN FILE -- every one is listed inline below, next to
 * the drawn value it replaces. There are two kinds:
 *
 *   1. Legibility floor (2 tokens). The design's two smallest sizes sit below
 *      the 12px floor this library ships.
 *   2. Measured contrast failures (5 tokens, plus 1 addition). Every ratio
 *      below was measured with axe-core against the rendered Storybook page,
 *      not estimated. The design's terracotta carries white 13px button labels
 *      and 16px band copy at 3.23:1 where WCAG 1.4.3 asks for 4.5:1, and its
 *      badge text sits at 4.33:1 on its own tint. Each colour is darkened by
 *      the SMALLEST amount that clears the threshold, so the palette stays
 *      recognisably itself.
 *
 * @module styles/salt/_salt-tokens
 */
:root {
  /* Brand */

  /*
   * DEVIATION -- contrast. The design draws this at #d97347, which carries
   * white text at only 3.23:1. Darkened to the lightest value on the same hue
   * that reaches 4.5:1; measured at 4.61:1 against white.
   */
  --salt-orange: #b25e3a; /* primary action, accents; design: #d97347 */
  --salt-orange-hover: #9f4e2c; /* 5.83:1 with white; design: #c25f36 */
  --salt-orange-tint: #fdf0e9; /* badge background */

  /*
   * DEVIATION -- contrast. The design draws this at #b8542c, which reads at
   * 4.33:1 on --salt-orange-tint. Measured at 4.53:1 after darkening.
   */
  --salt-orange-deep: #b3522b; /* badge text; design: #b8542c */
  --salt-green: #2f6b5e; /* footer wordmark */

  /*
   * DEVIATION -- contrast. The design draws this at #5e8f7e, which carries the
   * white gallery arrows at 3.68:1. Measured at 4.52:1 after darkening.
   */
  --salt-sage: #547f70; /* gallery carousel arrows; design: #5e8f7e */
  --salt-sage-hover: #456d5e; /* 5.83:1 with white; design: #4d7a6a */

  /* Neutrals */
  --salt-ink: #18181b; /* headings */
  --salt-body: #71717a; /* body copy */
  --salt-muted: #a1a1aa; /* legal, counters */
  --salt-slate: #52525b; /* footer links */
  --salt-graphite: #3f3f46; /* secondary button label */
  --salt-line: #e4e4e7; /* hairlines */
  --salt-line-strong: #d4d4d8; /* input borders */
  --salt-surface: #fff;
  --salt-surface-alt: #f4f4f5; /* button hover */

  /*
   * ADDITION -- not in the design, which draws no form and so no error state.
   * Computed with the WCAG formula at 6.57:1 against --salt-surface, which
   * clears 4.5:1 for the 14px validation message and 3:1 for the field border.
   */
  --salt-danger: #b42318; /* validation message, invalid field border */

  /* Overlays (photo scrims) */

  /*
   * DEVIATION -- contrast. Confined to the type: the hero copy is pinned to
   * the bottom edge and its top line sits 209px up on the home page (223px on
   * a 320px phone, where the headline wraps to two lines), so the scrim is
   * held flat to 15rem (240px) from the bottom and fades out by 21rem, leaving
   * the sky and skyline untinted. The display lockup above the copy is a
   * logotype and sits on the bare sky. In rem rather than px so the band grows
   * with text-only zoom: at 200% the copy climbs as far as 460px up, which a
   * px band would leave on the sky. A neutral near-black, as the other scrims
   * use, rather than slate, so it darkens without turning the photograph
   * blue-grey. The eyebrow is 18px bold (15px on a phone), so it is not large
   * text and needs 4.5:1; the 52px bold headline (34px on a phone) is large
   * text and needs 3:1. At full strength the band itself holds white text at
   * 4.51:1 even over pure white, so copy that stays inside it clears 4.5:1
   * whatever is drawn underneath. Measured against the lightest pixel under
   * each line of `salt-tampa-hero-bg.webp` at 320, 375, 641, 768, 1280, 1920
   * and 2560px wide, and again with 200% text zoom emulated, no reading falls
   * below that 4.51:1 floor. Copy that climbs past
   * 15rem -- a longer headline, another line -- leaves the floor behind and
   * needs this re-measured; the closest the eyebrow comes is 17px below that
   * edge, on a 320px phone.
   */
  --salt-scrim-hero: linear-gradient(
    0deg,
    rgb(16, 20, 26, 0.58) 0,
    rgb(16, 20, 26, 0.58) 15rem,
    rgb(16, 20, 26, 0) 21rem
  );

  /*
   * DEVIATION -- contrast. The design draws this at 0.42 alpha. Measured
   * against the lightest pixel of the donate photograph, that leaves the 16px
   * body copy at 3.46:1. At 0.58 the same measurement reads 4.52:1.
   */
  --salt-scrim-flat: rgb(16, 20, 26, 0.58); /* design: 0.42 alpha */

  /*
   * ADDITION -- not in the design, which leaves the navigation bar fully
   * transparent over the hero photograph. White 13px links over an arbitrary
   * photograph have no guaranteed contrast at all; axe measured them at 1.09:1
   * against the page ground. This backdrop puts a floor under them.
   *
   * The floor is measured against the hero photograph, as `--salt-scrim-flat`
   * is against the donate one, not against pure white: 0.62 held 5.17:1 over
   * white but read too heavy on the sky. With the hero scrim no longer reaching
   * the top of the photograph, this is the only layer under the links:
   * sampling the lightest pixel under each link's text at 320, 375, 768, 1280,
   * 1920 and 2560px wide, 0.52 reads 5.11:1 at worst (320px). A brighter hero
   * photograph needs this re-measured.
   */
  --salt-scrim-header: rgb(16, 20, 26, 0.52);
  --salt-scrim-caption: linear-gradient(
    180deg,
    rgb(9, 12, 16, 0) 0%,
    rgb(9, 12, 16, 0.82) 55%,
    rgb(9, 12, 16, 0.94) 100%
  );
  --salt-scrim-quote: linear-gradient(
    180deg,
    rgb(12, 16, 22, 0.2) 0%,
    rgb(12, 16, 22, 0.55) 70%,
    rgb(12, 16, 22, 0.72) 100%
  );

  /*
   * ADDITION -- contrast. The mission band's texture is a light orange: white
   * measured 2.45:1 on its lightest pixel and 2.97:1 at the median, under the
   * 3:1 large-text floor on 59% of the image and under 4.5:1 everywhere, which
   * the 20px phone heading needs. A deep rust rather than black keeps the band
   * orange instead of brown. At 0.48 alpha the worst pixel of the texture
   * measures 4.58:1, and the lightest composites to rgb(176, 95, 55), a hair
   * off --salt-orange.
   */
  --salt-scrim-mission: rgb(110, 45, 20, 0.48);

  /* Type */
  --salt-font: ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;

  /*
   * DEVIATION -- legibility floor. The design draws this at 10.5px.
   * It carries the footer's legal row and the copyright line, which are the
   * smallest running text on the page. A design system that ships a sub-12px
   * floor makes it permanent on every page built on it.
   */
  --salt-text-xs: 12px; /* legal; design: 10.5px */

  /*
   * DEVIATION -- legibility floor. The design draws this at 12.5px.
   * It carries service-card body copy and the footer navigation, which is
   * running prose rather than a label.
   */
  --salt-text-sm: 14px; /* card body, footer links; design: 12.5px */
  --salt-text-base: 14px; /* section intro */
  --salt-text-md: 16px; /* donate body */
  --salt-text-ui: 13px; /* nav, buttons */
  --salt-text-card: 15px; /* card titles */
  --salt-text-h2: 34px; /* section headings */
  --salt-text-h2-sm: 30px; /* orange band */
  --salt-text-display: 46px; /* donate headline, mission statements */
  --salt-text-logo: 104px; /* hero SALT TAMPA */

  /* Radius */
  --salt-radius-sm: 4px; /* photo cards, inputs */
  --salt-radius-md: 6px; /* buttons */
  --salt-radius-lg: 10px; /* service photos */
  --salt-radius-full: 9999px; /* pills, round arrows */

  /* Layout */
  --salt-gutter: 40px; /* horizontal page padding */
  --salt-section-y: 88px; /* standard section top padding */
  --salt-max-narrow: 720px; /* donate band */
  --salt-max-content: 980px; /* card grids, partners */
  --salt-max-wide: 1080px; /* footer */

  /* Elevation */
  --salt-shadow-btn: 0 1px 2px rgb(0, 0, 0, 0.12);

  /* Minimum pointer target, WCAG 2.5.8. The design draws its round
   * previous/next controls at 34px; the visual size is kept and the hit box is
   * grown to this value with a centred overlay. */
  --salt-target-min: 44px;
}
/*
 * Phone gutter. Stated once here rather than per band: when each band carried
 * its own 20px override, the header, mission band, donate band and footer were
 * missed and kept the 40px desktop gutter beside sections that had dropped it.
 */
@media (width <= 640px) {
  :root {
    --salt-gutter: 20px;
  }
}
/*
 * Salt Tampa homepage pattern classes (`.salt-*`).
 *
 * Every component under src/components/react/salt/ styles itself from this
 * file. Values come from _salt-tokens.css; nothing here hard-codes a colour or
 * a size that a token already names.
 *
 * DOUBLED SELECTORS -- `.salt-x.salt-x` is not a typo. `@fpkit/acss` declares
 * `a[href] { background-color; border-radius; color; font-size; font-weight }`
 * at specificity (0,1,1). A single class is (0,1,0) and loses all five; the
 * measurement is recorded in the plan's Decisions section. Doubling the class
 * reaches (0,2,0) and wins. Only classes that can land on an `<a href>` are
 * doubled; `<button>` and `<span>` patterns need no such help, because a bare
 * element selector is only (0,0,1).
 *
 * @module styles/salt/_salt-patterns
 */
/* ── Page shell ─────────────────────────────────────────────────────────── */
.salt-page {
  background: var(--salt-surface);
  color: var(--salt-ink);
  font-family: var(--salt-font);
}
.salt-section {
  padding: var(--salt-section-y) var(--salt-gutter) 96px;
}
/*
 * A section on the sunken ground, to set it apart from white neighbours. Text
 * inside needs the darker greys: --salt-body reads 4.40:1 on this ground (see
 * `.salt-latest`, which uses the same ground on its own element).
 */
.salt-section--sunken {
  background: var(--salt-surface-alt);
}
/* ── Action: one control, four flavours ─────────────────────────────────── */
.salt-action.salt-action {
  align-items: center;
  border: 0;
  border-radius: var(--salt-radius-md);
  cursor: pointer;
  display: inline-flex;
  font-family: inherit;
  font-size: var(--salt-text-ui);
  font-weight: 500;
  gap: 8px;
  height: 34px;
  justify-content: center;
  padding: 0 20px;
  position: relative;
  text-decoration: none;
  white-space: nowrap;
}
/* The drawn 34px height is kept; the hit box grows to `--salt-target-min` the
   same way IconButton's does, vertically only. The tightest stacked pair, the
   phone hero's actions, sits 12px apart and clears the 10px this adds. */
.salt-action.salt-action::after {
  content: '';
  height: var(--salt-target-min);
  inset: 50% 0 auto;
  position: absolute;
  transform: translateY(-50%);
}
.salt-action.salt-action:focus-visible {
  outline: 2px solid var(--salt-ink);
  outline-offset: 2px;
}
/*
 * The ink ring disappears into a photo scrim: composited over a black pixel it
 * measures 1.12:1 on the header scrim and 1.11:1 on the donate scrim. White
 * holds at least 3.71:1 and 4.51:1 on the same two grounds. `.salt-header` is
 * listed as well as `.salt-hero` because the bar paints its own scrim, so its
 * Donate pill needs the white ring wherever the header is rendered.
 */
.salt-header .salt-action.salt-action:focus-visible,
.salt-hero .salt-action.salt-action:focus-visible,
.salt-donate .salt-action.salt-action:focus-visible {
  outline-color: var(--salt-surface);
}
.salt-action--solid.salt-action--solid {
  background-color: var(--salt-orange);
  box-shadow: var(--salt-shadow-btn);
  color: var(--salt-surface);
}
.salt-action--solid.salt-action--solid:hover:not([disabled]) {
  background-color: var(--salt-orange-hover);
}
.salt-action--ghost.salt-action--ghost {
  background-color: transparent;
  box-shadow: none;
  color: var(--salt-graphite);
  padding: 0 6px;
}
.salt-action--ghost.salt-action--ghost:hover:not([disabled]) {
  color: var(--salt-ink);
}
.salt-action--light.salt-action--light {
  background-color: var(--salt-surface);
  box-shadow: var(--salt-shadow-btn);
  color: var(--salt-graphite);
}
.salt-action--light.salt-action--light:hover:not([disabled]) {
  background-color: var(--salt-surface-alt);
  color: var(--salt-ink);
}
.salt-action--pill.salt-action--pill {
  background-color: var(--salt-surface);
  border-radius: var(--salt-radius-full);
  color: var(--salt-slate);
  padding: 0 22px;
}
.salt-action--pill.salt-action--pill:hover:not([disabled]) {
  background-color: var(--salt-surface-alt);
  color: var(--salt-ink);
}
.salt-action.salt-action[disabled] {
  cursor: not-allowed;
  opacity: 0.55;
}
.salt-action__arrow {
  font-size: 14px;
  line-height: 1;
}
/* ── Badge ──────────────────────────────────────────────────────────────── */
.salt-badge {
  align-items: center;
  background-color: var(--salt-orange-tint);
  border-radius: var(--salt-radius-full);
  color: var(--salt-orange-deep);
  display: inline-flex;
  font-size: var(--salt-text-xs);
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1;
  padding: 4px 8px;
  text-transform: uppercase;
  white-space: nowrap;
}
/* ── IconButton ─────────────────────────────────────────────────────────── */
/*
 * Doubled for the same reason the action control is, and measured the same
 * way: `@fpkit/acss` styles `button[type]` at (0,1,1), and plain `button` adds
 * `padding-inline: calc(font-size * 1.5)`. A single class lost both -- the
 * control measured 45x34px with 22.5px of side padding instead of the drawn
 * 34x34px circle, and its fill came from acss rather than from the tone
 * modifier.
 */
.salt-icon-button.salt-icon-button {
  align-items: center;
  border: 0;
  border-radius: var(--salt-radius-full);
  cursor: pointer;
  display: inline-flex;
  flex: none;
  font-family: inherit;
  font-size: 14px;
  height: 34px;
  justify-content: center;
  line-height: 1;
  padding: 0;
  position: relative;
  width: 34px;
}
/*
 * The design draws these at 34px. WCAG 2.5.8 asks for a 44x44px pointer
 * target, so the drawn circle is kept and an invisible, centred overlay grows
 * the hit box to `--salt-target-min` without moving anything on screen.
 */
.salt-icon-button.salt-icon-button::after {
  content: '';
  height: var(--salt-target-min);
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: var(--salt-target-min);
}
.salt-icon-button.salt-icon-button:focus-visible {
  outline: 2px solid var(--salt-ink);
  outline-offset: 3px;
}
.salt-icon-button--orange.salt-icon-button--orange {
  background-color: var(--salt-orange);
  color: var(--salt-surface);
}
.salt-icon-button--orange.salt-icon-button--orange:hover {
  background-color: var(--salt-orange-hover);
}
.salt-icon-button--sage.salt-icon-button--sage {
  background-color: var(--salt-sage);
  color: var(--salt-surface);
}
.salt-icon-button--sage.salt-icon-button--sage:hover {
  background-color: var(--salt-sage-hover);
}
.salt-icon-button--outline.salt-icon-button--outline {
  background-color: rgb(255, 255, 255, 0.12);
  border: 1px solid rgb(255, 255, 255, 0.55);
  color: var(--salt-surface);
}
.salt-icon-button--outline.salt-icon-button--outline:hover {
  background-color: var(--salt-orange);
  border-color: var(--salt-orange);
}
.salt-icon-button--outline.salt-icon-button--outline:focus-visible {
  outline-color: var(--salt-surface);
}
/* ── ImageSlot ──────────────────────────────────────────────────────────── */
.salt-image-slot {
  display: block;
  height: 100%;
  overflow: hidden;
  position: relative;
  width: 100%;
}
.salt-image-slot--rounded {
  border-radius: var(--salt-radius-lg);
}
.salt-image-slot--rect {
  border-radius: 0;
}
/*
 * Qualified by the slot to reach specificity 0,2,0. The global stylesheet
 * carries `img[alt] { height: var(--img-height) }` at 0,1,1, which outranked a
 * bare `.salt-image-slot__img` (0,1,0) and left height at auto -- a portrait
 * photograph then rendered 396px tall inside a 250px slot while landscape ones
 * rendered 223px. Filling the slot lets object-fit below do the cropping, so
 * every photograph occupies the same box whatever its aspect ratio.
 */
.salt-image-slot .salt-image-slot__img {
  display: block;
  height: 100%;
  width: 100%;
}
.salt-image-slot--cover .salt-image-slot__img {
  object-fit: cover;
}
.salt-image-slot--contain .salt-image-slot__img {
  object-fit: contain;
}
.salt-image-slot__empty {
  align-items: center;
  background-color: var(--salt-surface-alt);
  border: 1px dashed var(--salt-line-strong);
  border-radius: inherit;
  box-sizing: border-box;
  color: var(--salt-slate);
  display: flex;
  font-size: var(--salt-text-xs);
  height: 100%;
  justify-content: center;
  padding: 8px;
  text-align: center;
  width: 100%;
}
/* ── Wordmark ───────────────────────────────────────────────────────────── */
/* Two lockups, both white on transparent. The bars use
   public/images/navbar-salt-logo.svg -- the compact 175x29 lockup with the
   emblem set inline -- and the hero uses public/images/salt-logo.svg, the
   1091x241 one whose skyline emblem stands above the letterforms.

   The footer sits on white, so the artwork is masked rather than drawn: the
   alpha channel is the shape and `currentcolor` is the ink, so one asset
   renders white over the hero and sage in the footer. Each variant states its
   own viewBox ratio, which derives the width from its height.

   The bar heights fell when the artwork changed because the compact lockup is
   nearly all letterform: measured, its letters span 59.7% of its viewBox
   against 38.4% of the hero one, so 21px and 19px hold the text at the ~12.7px
   and ~11.5px the 33px and 30px boxes rendered before. */
.salt-wordmark.salt-wordmark {
  /* The footer stacks its brand column with the default `stretch`, which would
     blow the box out to the column's full width and strand the mark in the
     middle of it. `start` keeps the box at the width `aspect-ratio` derives. */
  align-self: start;
  background-color: transparent;
  display: inline-block;
  position: relative;
  text-decoration: none;
}
/* The artwork is painted on a pseudo-element rather than on the element: a mask
   clips everything its element draws, outline included, so the linked lockup in
   the navigation bar took keyboard focus with no visible ring at all. */
.salt-wordmark.salt-wordmark::before {
  background-color: currentcolor;
  content: '';
  inset: 0;
  mask-image: var(--salt-wordmark-art);
  mask-position: left center;
  mask-repeat: no-repeat;
  mask-size: contain;
  position: absolute;
}
.salt-wordmark--nav.salt-wordmark--nav,
.salt-wordmark--footer.salt-wordmark--footer {
  --salt-wordmark-art: url('/images/navbar-salt-logo.svg');

  aspect-ratio: 175 / 29;
}
/* Centred against the bar's 44px links: the base `start` pinned the 21px mark
   to the top of the row, 11.5px above the navigation's midline. */
.salt-wordmark--nav.salt-wordmark--nav {
  align-self: center;
  color: var(--salt-surface);
  height: 21px;
}
/* The hero lockup is sized from the width rather than the height so it scales
   with the photograph.

   The gap below it is a real margin rather than `margin-bottom: auto`: the auto
   margin only spends *free* space, and the content's natural height already
   exceeds the 460px minimum, so it resolved to zero and the mark sat 8px above
   the eyebrow. The margin scales with the viewport and caps at the design's
   spacing; below 720px the lockup is hidden, so it costs phones nothing. */
.salt-wordmark--hero.salt-wordmark--hero {
  --salt-wordmark-art: url('/images/salt-logo.svg');

  align-self: center;
  aspect-ratio: 1091 / 241;
  color: var(--salt-surface);
  height: auto;
  margin-bottom: min(200px, 16vw);
  width: min(760px, 84%);
}
.salt-wordmark--hero.salt-wordmark--hero::before {
  mask-position: center;
}
/* Centred over the footer's link row, which is centred itself. */
.salt-wordmark--footer.salt-wordmark--footer {
  align-self: center;
  color: var(--salt-green);
  height: 19px;
}
/* ── SocialLinks ────────────────────────────────────────────────────────── */
.salt-social {
  align-items: center;
  display: flex;
  gap: 12px;
}
.salt-social__link.salt-social__link {
  align-items: center;
  background-color: transparent;
  border-radius: var(--salt-radius-full);
  display: inline-flex;
  height: var(--salt-target-min);
  justify-content: center;
  width: var(--salt-target-min);
}
.salt-social--light .salt-social__link.salt-social__link {
  color: rgb(255, 255, 255, 0.9);
}
.salt-social--light .salt-social__link.salt-social__link:hover {
  color: var(--salt-surface);
}
.salt-social--dark .salt-social__link.salt-social__link {
  color: var(--salt-slate);
}
.salt-social--dark .salt-social__link.salt-social__link:hover {
  color: var(--salt-ink);
}
/*
 * Links otherwise take the base theme's teal ring, which is not a Salt colour
 * and measures 1.39:1 against the header scrim. Every link here is already
 * inked to contrast with its own ground -- white on a scrim, slate on white --
 * so the ring follows the text.
 */
.salt-header__link.salt-header__link:focus-visible,
.salt-footer__link.salt-footer__link:focus-visible,
.salt-footer__legal-link.salt-footer__legal-link:focus-visible,
.salt-social__link.salt-social__link:focus-visible,
.salt-contact-card__link.salt-contact-card__link:focus-visible,
.salt-partners__link.salt-partners__link:focus-visible,
.salt-latest__title-link.salt-latest__title-link:focus-visible,
.salt-latest__item-link.salt-latest__item-link:focus-visible,
.salt-wordmark.salt-wordmark:focus-visible {
  outline: 2px solid currentcolor;
  outline-offset: 2px;
}
/* ── SectionIntro ───────────────────────────────────────────────────────── */
.salt-section-intro {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin: 0 auto;
  max-width: 1000px;
  text-align: center;
}
.salt-section-intro__heading {
  color: var(--salt-ink);
  font-size: var(--salt-text-h2);
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 0;
}
.salt-section-intro__lead {
  color: var(--salt-body);
  font-size: var(--salt-text-base);
  line-height: 1.6;
  margin: 0;
  max-width: 640px;
  text-wrap: pretty;
}
.salt-section-intro__actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: center;
  margin-top: 10px;
}
/* ── ServiceCard + grid ─────────────────────────────────────────────────── */
.salt-card-grid {
  display: grid;
  gap: 44px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 56px auto 0;
  max-width: var(--salt-max-content);
}
.salt-service-card {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}
.salt-service-card__media {
  height: 250px;
  position: relative;
}
.salt-service-card__text {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.salt-service-card__title-row {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
/* ContactCard sets the same title and body type, so it shares these two rules. */
.salt-service-card__title,
.salt-contact-card__title {
  color: var(--salt-ink);
  font-size: var(--salt-text-card);
  font-weight: 700;
  margin: 0;
}
.salt-service-card__body,
.salt-contact-card__body {
  color: var(--salt-body);
  font-size: var(--salt-text-sm);
  line-height: 1.6;
  margin: 0;
  text-wrap: pretty;
}
/* ── ContactCard ────────────────────────────────────────────────────────── */
.salt-contact-card {
  align-items: flex-start;
  border: 1px solid var(--salt-line);
  border-radius: var(--salt-radius-lg);
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
  padding: 24px;
}
.salt-contact-card__icon {
  color: var(--salt-orange);
  flex: none;
}
/*
 * One box for both states, so a card whose detail is still plain text lines up
 * with its neighbours: `margin-top: auto` pins the last line to the bottom of
 * the tallest card in the row. Only the `<a>` takes the link paint.
 */
.salt-contact-card__link.salt-contact-card__link {
  align-items: center;
  background-color: transparent;
  color: var(--salt-ink);
  display: inline-flex;
  font-size: var(--salt-text-sm);
  font-weight: 400;
  margin-top: auto;
  min-height: var(--salt-target-min);
  overflow-wrap: anywhere;
  text-decoration: none;
}
a.salt-contact-card__link.salt-contact-card__link {
  color: var(--salt-orange);
  text-decoration: underline;
  text-underline-offset: 2px;
}
a.salt-contact-card__link.salt-contact-card__link:hover {
  color: var(--salt-orange-hover);
}
/* ── LatestPost ─────────────────────────────────────────────────────────── */
/*
 * The sunken ground sets the band apart from the white testimonials section
 * above it and the white footer below. Running text here is --salt-slate, not --salt-body: computed with the
 * WCAG formula, --salt-body reads 4.40:1 on --salt-surface-alt, under the
 * 4.5:1 that 14-16px text needs, where --salt-slate reads 7.03:1.
 */
.salt-latest {
  background: var(--salt-surface-alt);
}
.salt-latest__inner {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin: 0 auto;
  max-width: var(--salt-max-content);
}
.salt-latest__kicker {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
/* Doubled for the same reason as .salt-mission__heading: the home page resets
 * `text-transform` on every h1-h3 at (0,1,2). */
.salt-latest__label,
.salt-latest__earlier-heading.salt-latest__earlier-heading {
  color: var(--salt-slate);
  font-size: var(--salt-text-xs);
  font-weight: 700;
  letter-spacing: 0.14em;
  margin: 0;
  text-transform: uppercase;
}
.salt-latest__title {
  font-size: clamp(var(--salt-text-h2-sm), 4vw, var(--salt-text-display));
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.1;
  margin: 0;
  max-width: 860px;
  text-wrap: balance;
}
.salt-latest__title-link.salt-latest__title-link,
.salt-latest__item-link.salt-latest__item-link {
  background-color: transparent;
  color: var(--salt-ink);
  text-decoration: none;
}
.salt-latest__title-link.salt-latest__title-link {
  font-size: inherit;
  font-weight: inherit;
}
.salt-latest__title-link.salt-latest__title-link:hover,
.salt-latest__item-link.salt-latest__item-link:hover {
  text-decoration: underline;
}
.salt-latest__date {
  color: var(--salt-slate);
  font-size: var(--salt-text-sm);
  font-weight: 600;
}
.salt-latest__summary {
  color: var(--salt-slate);
  font-size: var(--salt-text-md);
  line-height: 1.6;
  margin: 0;
  max-width: 640px;
  text-wrap: pretty;
}
.salt-latest__actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-top: 8px;
}
/*
 * Each row keeps its own padding between the hairlines: the canvas drew the
 * rows at zero padding, which set every title flush against the rule above it.
 */
.salt-latest__earlier {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 20px;
}
.salt-latest__list {
  border-bottom: 1px solid var(--salt-line-strong);
  list-style: none;
  margin: 0;
  padding: 0;
}
.salt-latest__item {
  align-items: baseline;
  border-top: 1px solid var(--salt-line-strong);
  display: flex;
  flex-wrap: wrap;
  gap: 4px 24px;
  margin: 0;
  padding: 14px 0;
}
.salt-latest__item-date {
  color: var(--salt-slate);
  flex: 0 0 120px;
  font-size: var(--salt-text-ui);
}
.salt-latest__item-link.salt-latest__item-link {
  flex: 1 1 320px;
  font-size: var(--salt-text-card);
  font-weight: 700;
}
/* ── MissionPanel ───────────────────────────────────────────────────────── */
.salt-mission-band {
  /* The orange stays underneath as the colour shown until the texture loads.
     The scrim is a gradient only because a background layer cannot be a bare
     colour; it tints the texture to a contrast-safe depth. */
  background:
    linear-gradient(var(--salt-scrim-mission), var(--salt-scrim-mission)),
    var(--salt-orange) url('/images/mission-vision.webp') center / cover no-repeat;
  color: var(--salt-surface);
  padding: 72px var(--salt-gutter);
}
/* Mission above vision, one column at every width. The gap between the two
   panels is well over twice the 24px inside each, so "Our Vision" reads as the
   start of the second statement rather than a tail on the first. */
.salt-mission-band__inner {
  display: grid;
  gap: 64px;
  margin: 0 auto;
  max-width: var(--salt-max-content);
}
.salt-mission {
  display: flex;
  flex-direction: column;
  gap: 24px;
  min-width: 0;
  text-align: center;
}
/*
 * A small uppercase label over the statement, not a display heading. Doubled
 * because the home page resets `text-transform` on every h1-h3 at (0,1,2);
 * a single class would lose the uppercase.
 */
.salt-mission__heading.salt-mission__heading {
  color: var(--salt-surface);
  font-size: var(--salt-text-h2-sm);
  font-weight: 400;
  letter-spacing: 0.06em;
  line-height: 1.2;
  margin: 0;
  text-transform: uppercase;
}
.salt-mission__body {
  color: var(--salt-surface);
  font-size: var(--salt-text-display);
  font-weight: 500;
  letter-spacing: -0.01em;
  line-height: 1.2;

  /* text-wrap: balance shrink-wraps the box, so auto margins re-centre it. */
  margin: 0 auto;
  text-wrap: balance;
}
/*
 * The home page pair: mission on a flat terracotta band, vision on a flat sage
 * band, each a heading column beside its statement. Flat fills, not the
 * texture, because white measures 4.61:1 on --salt-orange and 4.52:1 on
 * --salt-sage with nothing under it. The contact page keeps the plain band.
 */
.salt-mission-band--split {
  background: var(--salt-orange);
}
.salt-mission-band--sage {
  background: var(--salt-sage);
}
.salt-mission-band--split .salt-mission {
  column-gap: 56px;
  display: grid;
  grid-template-areas:
    'eyebrow body'
    'heading body';
  grid-template-columns: 320px minmax(0, 1fr);
  grid-template-rows: auto 1fr;
  row-gap: 12px;
  text-align: left;
}
.salt-mission__eyebrow {
  color: var(--salt-surface);
  font-size: var(--salt-text-ui);
  font-weight: 600;
  grid-area: eyebrow;
  letter-spacing: 0.14em;
  margin: 0;
  text-transform: uppercase;
}
/* (0,3,0) to outrank the doubled label rule above and its phone size. */
.salt-mission-band--split .salt-mission__heading.salt-mission__heading {
  font-size: var(--salt-text-h2);
  font-weight: 800;
  grid-area: heading;
  letter-spacing: -0.02em;
  line-height: 1.1;
  text-transform: none;
}
.salt-mission-band--split .salt-mission__body {
  font-size: 22px;
  font-weight: 400;
  grid-area: body;
  letter-spacing: 0;
  line-height: 1.5;
  margin: 0;
  text-wrap: pretty;
}
/* ── Team ───────────────────────────────────────────────────────────────── */
.salt-team-slider {
  align-items: center;
  display: grid;
  gap: 44px;
  grid-template-columns: minmax(0, 320px) minmax(0, 1fr);
  margin: 52px auto 0;
  max-width: 900px;
}
/*
 * `TeamGrid`, the home page's team section: every member at once rather than
 * one behind a control. Wider than the slider's 900px because two biographies
 * sit side by side -- at `--salt-max-content` each column is 466px, which is
 * the measure the design draws.
 */
.salt-team-grid {
  display: grid;
  gap: 48px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 52px auto 0;
  max-width: var(--salt-max-content);
}
.salt-team-member {
  display: flex;
  flex-direction: column;
  gap: 22px;
  min-width: 0;
}
/*
 * Shorter than the team card's own 400px, which the slider puts in a 320px
 * column: at 466px wide that height crops to a near-square. 340 is the
 * proportion the design draws for the pair.
 *
 * Qualified by `.salt-image-slot` to reach 0,2,0. `.salt-image-slot--rect`
 * zeroes the radius at 0,1,0 and is declared earlier in this file, so a single
 * class here would win only by source order.
 */
.salt-team-member__portrait.salt-image-slot {
  border-radius: var(--salt-radius-sm);
  height: 340px;
}
/*
 * Crop from the top, not the centre. This box is landscape at 1.37, so
 * `cover` scales each portrait to the width and throws away height. Both
 * portraits are square: Nehiel's (780x780) is head and shoulders with his chin
 * near the middle of the frame, and Andrea's (960x960) is waist-up with the cap
 * near the top edge. A centred crop opens at 13.5%, which cuts into both
 * heads. Anchored to the top the window opens at 0% and shows the top 73%.
 *
 * The slider does not need this: its 320px-wide box is taller than it is wide,
 * so `cover` crops the sides there and leaves the height alone.
 */
.salt-team-member__portrait .salt-image-slot__img {
  object-position: center top;
}
.salt-team-card {
  border-radius: var(--salt-radius-sm);
  height: 400px;
  min-width: 0;
  overflow: hidden;
  position: relative;
}
.salt-team-card__photo {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.salt-team-card__caption {
  align-items: center;
  background: var(--salt-scrim-caption);
  bottom: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  left: 0;
  padding: 24px 16px 12px;
  position: absolute;
  right: 0;
}
.salt-team-card__name {
  color: var(--salt-surface);
  font-size: 14px;
  font-weight: 700;
}
.salt-team-card__role {
  color: var(--salt-surface);
  font-size: 12px;
}
.salt-team-bio {
  display: flex;
  flex-direction: column;
  gap: 22px;
  min-width: 0;
}
.salt-team-bio__head {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.salt-team-bio__name {
  color: var(--salt-ink);
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -0.01em;
  margin: 0;
}
.salt-team-bio__role {
  color: var(--salt-orange-deep);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.salt-team-bio__text {
  color: var(--salt-body);
  font-size: 14px;
  line-height: 1.75;
  margin: 0;
  text-wrap: pretty;
  white-space: pre-line;
}
.salt-team-bio__controls {
  align-items: center;
  display: flex;
  gap: 14px;
  margin-top: 4px;
}
.salt-team-bio__counter {
  color: var(--salt-slate);
  font-size: 12px;
}
/* ── TestimonialPanel ───────────────────────────────────────────────────── */
.salt-testimonial {
  border-radius: var(--salt-radius-sm);
  height: 460px;
  margin: 0 auto;
  max-width: var(--salt-max-content);
  overflow: hidden;
  position: relative;
}
.salt-testimonial__scrim {
  background: var(--salt-scrim-quote);
  inset: 0;
  pointer-events: none;
  position: absolute;
}
.salt-testimonial__content {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 16px;
  inset: 0;
  justify-content: flex-end;
  padding: 48px;
  position: absolute;
}
.salt-testimonial__eyebrow {
  color: var(--salt-surface);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
/* `border` and `padding` undo `@fpkit/acss`, which draws every blockquote with a 1rem pad and a 5px left rule. */
.salt-testimonial__quote {
  border: 0;
  color: var(--salt-surface);
  font-size: var(--salt-text-h2-sm);
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.3;
  margin: 0;
  max-width: 760px;
  padding: 0;
  text-wrap: pretty;
}
.salt-testimonial__controls {
  align-items: center;
  display: flex;
  gap: 12px;
  margin-top: 14px;
}
.salt-testimonial__figure {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin: 0;
}
/*
 * The rule before the name is decoration; the text alone carries the attribution.
 *
 * DEVIATION -- contrast. The design draws the role at 86% white. Measured over
 * `team-holly.jpg` under `--salt-scrim-quote` at the 980px panel, a role-only
 * caption, which starts where the name would, fell to 3.99:1 at its lightest
 * pixel -- under the 4.5:1 this 15px text needs. Solid white measures 4.74:1
 * there, so name and role are both white and only the weight sets them apart.
 */
.salt-testimonial__cite {
  align-items: center;
  color: var(--salt-surface);
  display: flex;
  font-size: 15px;
  gap: 0.35em;
  line-height: 1.4;
}
.salt-testimonial__cite::before {
  background: var(--salt-orange);
  content: '';
  flex: none;
  height: 2px;
  margin-right: 8px;
  width: 24px;
}
.salt-testimonial__cite strong {
  font-weight: 600;
}
.salt-testimonial__dots {
  align-items: center;
  display: flex;
  margin-left: 4px;
}
/*
 * Doubled for the IconButton reason: `@fpkit/acss` styles `button[type]` at
 * (0,1,1) and pads plain `button`. `filter` and `transform` undo its hover and
 * focus treatment (85% brightness, 3% scale), which left the white pill dimmed
 * after a click until the button lost focus. The dot is drawn 8px (24px when
 * current) inside a 36x44px button, which clears the 24px minimum of WCAG 2.5.8.
 */
.salt-testimonial__dot.salt-testimonial__dot {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: var(--salt-radius-full);
  cursor: pointer;
  display: inline-flex;
  filter: none;
  height: var(--salt-target-min);
  justify-content: center;
  padding: 0;
  transform: none;
  width: 36px;
}
.salt-testimonial__dot::before {
  background: rgb(255, 255, 255, 0.55);
  border-radius: var(--salt-radius-full);
  content: '';
  height: 8px;
  width: 8px;
}
.salt-testimonial__dot:hover::before,
.salt-testimonial__dot[aria-current='true']::before {
  background: var(--salt-surface);
}
.salt-testimonial__dot[aria-current='true']::before {
  width: 24px;
}
/* -4px leaves 2px between the ring and the 24px current pill; -6px touched it. */
.salt-testimonial__dot.salt-testimonial__dot:focus-visible {
  outline: 2px solid var(--salt-surface);
  outline-offset: -4px;
}
/* ── GalleryStrip ───────────────────────────────────────────────────────── */
.salt-gallery {
  overflow: hidden;
  padding: var(--salt-section-y) 0 64px;
}
.salt-gallery__tiles {
  align-items: center;
  display: flex;
  gap: 4px;
  justify-content: center;
  width: 100%;
}
.salt-gallery__tile {
  background-color: var(--salt-surface-alt);
  background-position: center;
  background-size: cover;
  box-shadow: 0 2px 14px rgb(0, 0, 0, 0.1);
  flex: 1 1 0;
  height: 400px;
  min-width: 0;
}
.salt-gallery__controls {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: center;
  margin-top: 56px;
}
/* ── DeckSlider ─────────────────────────────────────────────────────────── */
/*
 * Grid areas, not source order, place the three blocks: intro and caption
 * stack on the left with the deck on the right, and below 900px the deck moves
 * between the intro and the caption. The card size and the deck's offset in
 * the stage are custom properties so the expand button can be placed on the
 * front card's corner from the same numbers.
 */
.salt-deck {
  --deck-card-w: 340px;
  --deck-card-h: 440px;
  --deck-x: 40px;
  --deck-y: 60px;

  align-items: center;
  column-gap: 48px;
  display: grid;
  grid-template-areas:
    'intro stage'
    'detail stage';
  grid-template-columns: minmax(0, 400px) minmax(0, 1fr);
  margin-inline: auto;
  max-width: var(--salt-max-wide);
  row-gap: 32px;
}
/*
 * The text colours are one step darker than the library's usual ones so the
 * deck reads on both white and `.salt-section--sunken`. Measured on
 * --salt-surface-alt: --salt-sage 4.11:1 and --salt-orange 4.19:1 fall under
 * the 4.5:1 that 12-14px text needs, as --salt-body does at 4.40:1; their
 * replacements --salt-sage-hover 5.30:1, --salt-orange-deep 4.59:1 and
 * --salt-slate 7.03:1 clear it there and on white.
 */
.salt-deck__intro {
  align-self: end;
  display: flex;
  flex-direction: column;
  gap: 16px;
  grid-area: intro;
}
.salt-deck__eyebrow {
  color: var(--salt-sage-hover);
  font-size: var(--salt-text-xs);
  font-weight: 600;
  letter-spacing: 0.14em;
  margin: 0;
  text-transform: uppercase;
}
/* The repo's base styles capitalise every heading; Salt's headings are sentence case (see SectionHeading.astro). */
.salt-deck__heading {
  color: var(--salt-ink);
  font-size: var(--salt-text-h2);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.1;
  margin: 0;
  text-transform: none;
}
.salt-deck__lead {
  color: var(--salt-slate);
  font-size: var(--salt-text-base);
  line-height: 1.6;
  margin: 0;
}
.salt-deck__detail {
  align-self: start;
  display: flex;
  flex-direction: column;
  gap: 24px;
  grid-area: detail;
}
/* A floor, so a two-line description does not shift the controls below it. */
.salt-deck__caption {
  border-top: 1px solid var(--salt-line-strong);
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 120px;
  padding-top: 24px;
}
.salt-deck__counter {
  color: var(--salt-orange-deep);
  font-size: var(--salt-text-ui);
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  letter-spacing: 0.08em;
  margin: 0;
}
.salt-deck__title {
  color: var(--salt-ink);
  font-size: 20px;
  font-weight: 700;
  margin: 0;
}
.salt-deck__text {
  color: var(--salt-slate);
  font-size: var(--salt-text-base);
  line-height: 1.5;
  margin: 0;
}
/* Both wrap: at 320px six or more 36px dots beside the arrows would otherwise widen the page. */
.salt-deck__controls {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.salt-deck__dots {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  margin-left: 4px;
}
/* Doubled, and the 8px/24px dot inside a 36x44px button, for the reasons given at `.salt-testimonial__dot`. */
.salt-deck__dot.salt-deck__dot {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: var(--salt-radius-full);
  cursor: pointer;
  display: inline-flex;
  filter: none;
  height: var(--salt-target-min);
  justify-content: center;
  padding: 0;
  transform: none;
  width: 36px;
}
.salt-deck__dot::before {
  background: var(--salt-sage);
  border-radius: var(--salt-radius-full);
  content: '';
  height: 8px;
  width: 8px;
}
.salt-deck__dot[aria-current='true']::before {
  background: var(--salt-orange);
  width: 24px;
}
.salt-deck__dot.salt-deck__dot:focus-visible {
  outline: 2px solid var(--salt-ink);
  outline-offset: -4px;
}
/*
 * Clipped sideways only, so the cards fanned out behind the front one run off
 * the edge of a narrow viewport instead of widening the page. `clip`, unlike
 * `hidden`, lets the other axis stay visible, so the cards' shadow is not cut
 * flat along the bottom. Where the stage is narrower than the fan, the mask
 * fades the cut cards out over the last 48px instead of ending them on a hard
 * vertical edge, which shows on a sunken ground. `mask-clip: no-clip` stops the
 * mask from clipping to the stage box as well, which would cut the turned
 * cards and their shadow flat along the bottom again; a browser without it
 * falls back to that flat edge. `pan-y` keeps vertical scrolling with the
 * browser and hands horizontal drags to the swipe.
 */
.salt-deck__stage {
  grid-area: stage;
  height: calc(var(--deck-card-h) + 2 * var(--deck-y));

  /* The cards' z-index runs up to the photo count; isolate it from the page's header and overlays. */
  isolation: isolate;
  mask-clip: no-clip;
  mask-image: linear-gradient(to right, #000 calc(100% - 48px), transparent);
  overflow-x: clip;
  position: relative;
  touch-action: pan-y;
  user-select: none;
}
/*
 * One number per card, `--depth` (0 = front), set inline by the component; the
 * fan is derived from it here. Cards turn about their bottom edge, so the deck
 * spreads like a hand of cards. Doubled to beat `@fpkit/acss`'s button hover
 * and focus `filter`/`transform`, which would fight the fan's own.
 *
 * `--fan` caps the turn, offset and shading at the fifth card behind the
 * front: deeper cards sit squarely behind it, so a long list cannot turn cards
 * past horizontal or shade them below zero, where `brightness()` is invalid.
 * Stacking still uses the full `--depth`, so their order holds.
 */
.salt-deck__card.salt-deck__card {
  --fan: min(var(--depth), 5);

  background: var(--salt-surface);
  border: 0;
  border-radius: 20px;
  box-shadow: 0 25px 50px -12px rgb(24, 24, 27, 0.35);
  box-sizing: border-box;
  cursor: pointer;
  filter: brightness(calc(1 - var(--fan) * 0.05));
  height: var(--deck-card-h);
  left: var(--deck-x);
  margin: 0;
  padding: 10px;
  position: absolute;
  top: var(--deck-y);
  transform: translateX(calc(var(--fan) * 18px)) rotate(calc(var(--fan) * var(--spread)))
    scale(calc(1 - var(--fan) * 0.02));
  transform-origin: 50% 100%;
  width: var(--deck-card-w);
  z-index: calc(var(--count) - var(--depth));
}
.salt-deck__card.salt-deck__card[data-front] {
  cursor: zoom-in;
}
.salt-deck__card img {
  border-radius: var(--salt-radius-lg);
  display: block;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  width: 100%;
}
.salt-deck__expand.salt-deck__expand {
  align-items: center;
  background: var(--salt-surface);
  border: 0;
  border-radius: var(--salt-radius-full);
  box-shadow: 0 2px 8px rgb(24, 24, 27, 0.25);
  color: var(--salt-ink);
  cursor: pointer;
  display: inline-flex;
  filter: none;
  height: var(--salt-target-min);
  justify-content: center;
  left: calc(var(--deck-x) + var(--deck-card-w) - 12px - var(--salt-target-min));
  padding: 0;
  position: absolute;
  top: calc(var(--deck-y) + 12px);
  transform: none;
  width: var(--salt-target-min);
  z-index: calc(var(--count) + 1);
}
.salt-deck__expand.salt-deck__expand:focus-visible {
  outline: 2px solid var(--salt-ink);
  outline-offset: 3px;
}
/* Motion is opt-out by the operating system, as for `.salt-slide` below. */
@media (prefers-reduced-motion: no-preference) {
  .salt-deck__card.salt-deck__card {
    transition:
      transform 560ms cubic-bezier(0.2, 0.8, 0.2, 1),
      filter 560ms ease;
  }
}
/* ── PhotoLightbox ──────────────────────────────────────────────────────── */
/*
 * The dialog carries its own ink ground rather than relying on `::backdrop`
 * for the caption's contrast: axe, forced colours and some renderers ignore
 * the backdrop, and white type would then sit on whatever page is behind. The
 * backdrop is the same ink at 90%, so the edge barely shows.
 *
 * `fit-content` undoes `@fpkit/acss`'s fixed `--dialog-width` so the dialog
 * shrinks to the photo. Not `auto`: a modal dialog is fixed with zero inline
 * insets, so `auto` stretches it across the viewport and a portrait photo ends
 * up against one edge.
 */
.salt-lightbox {
  background: var(--salt-ink);
  border: 0;
  border-radius: 0;
  color: var(--salt-surface);
  max-height: none;
  max-width: none;
  overflow: visible;
  padding: 0;
  width: fit-content;
}
.salt-lightbox::backdrop {
  background: rgb(24, 24, 27, 0.9);
}
.salt-lightbox__panel {
  align-items: flex-end;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.salt-lightbox__close.salt-lightbox__close {
  align-items: center;
  background: var(--salt-surface);
  border: 0;
  border-radius: var(--salt-radius-full);
  color: var(--salt-ink);
  cursor: pointer;
  display: inline-flex;
  filter: none;
  height: var(--salt-target-min);
  justify-content: center;
  padding: 0;
  transform: none;
  width: var(--salt-target-min);
}
.salt-lightbox__close.salt-lightbox__close:focus-visible {
  outline: 2px solid var(--salt-surface);
  outline-offset: 3px;
}
/*
 * Doubled: `@fpkit/acss` paints `figure:has(img[alt])` (0,1,1) and its
 * `> figcaption` (0,1,2) as a light grey padded panel, and pins the caption
 * absolutely over the photo's bottom edge -- which put the white caption on
 * #f5f5f5, then over the picture. A single class (0,1,0) loses to both; two
 * reach (0,2,0), and the caption returns to the flow below the photo.
 */
.salt-lightbox__figure.salt-lightbox__figure {
  background: transparent;
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 0;
  padding: 0;
}
/*
 * Sized to fit the viewport whole -- the point of this view is the uncropped
 * photo. Doubled: `@fpkit/acss`'s `img[alt]` (0,1,1) sets `max-width: 100%`
 * and its own aspect ratio, which let a landscape photo run edge to edge.
 */
.salt-lightbox__image.salt-lightbox__image {
  aspect-ratio: auto;
  border-radius: var(--salt-radius-lg);
  display: block;
  height: auto;
  max-height: calc(100dvh - 160px);
  max-width: 90vw;
  width: auto;
}
.salt-lightbox__caption.salt-lightbox__caption {
  align-items: baseline;
  background: transparent;
  display: flex;
  font-size: 18px;
  font-weight: 700;
  gap: 12px;
  padding: 0;
  position: static;
}
.salt-lightbox__counter {
  color: var(--salt-line-strong);
  font-size: var(--salt-text-ui);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.08em;
}
/* ── PartnerGrid ────────────────────────────────────────────────────────── */
.salt-partners {
  padding: 24px var(--salt-gutter) var(--salt-section-y);
}
.salt-partners__inner {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 56px;
  margin: 0 auto;
  max-width: var(--salt-max-content);
}
.salt-partners__intro {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 640px;
  text-align: center;
}
.salt-partners__eyebrow {
  color: var(--salt-body);
  font-size: var(--salt-text-sm);
  font-weight: 500;
  margin: 0;
}
/* The repo's base styles capitalise every heading; Salt's headings are sentence case. */
.salt-partners__heading {
  color: var(--salt-ink);
  font-size: var(--salt-text-display);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.1;
  margin: 0;
  text-transform: none;
  text-wrap: balance;
}
.salt-partners__lead {
  color: var(--salt-body);
  font-size: var(--salt-text-md);
  line-height: 1.6;
  margin: 0;
  text-wrap: pretty;
}
.salt-partners__grid {
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  list-style: none;
  margin: 0;
  padding: 0;
  width: 100%;
}
/* The zero padding undoes the global list-item indent. */
.salt-partners__item {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
  padding: 0;
}
/* The card and its caption are one target. The colour inks the caption and
   the `currentcolor` focus ring around both. */
.salt-partners__link.salt-partners__link {
  color: var(--salt-ink);
  display: flex;
  flex-direction: column;
  gap: 16px;
  text-decoration: none;
}
/* Percentage padding follows the card's width, so a logo keeps the same share
   of the card from three across at 641px to one across on a phone. The zero
   min-height holds the 16:9: an aspect-ratio box otherwise grows to its
   content, and a square logo stretched its card to 291px tall. The ground is
   the page white, framed by the hairline, as the system separates flat surfaces. */
.salt-partners__card {
  aspect-ratio: 16 / 9;
  background-color: var(--salt-surface);
  border: 1px solid var(--salt-line);
  border-radius: var(--salt-radius-lg);
  box-sizing: border-box;
  min-height: 0;
  padding: 10% 12%;
}
/* An unchosen logo: ImageSlot's dashed placeholder fills the card and is its frame. */
.salt-partners__card--empty {
  border: 0;
  padding: 0;
}
.salt-partners__card--invite {
  align-items: center;
  border: 1px dashed var(--salt-body);
  color: var(--salt-slate);
  display: flex;
  flex-direction: column;
  font-size: var(--salt-text-sm);
  font-weight: 500;
  gap: 12px;
  justify-content: center;
}
.salt-partners__link:hover .salt-partners__card {
  border-color: var(--salt-ink);
}
.salt-partners__caption {
  color: var(--salt-ink);
  font-size: var(--salt-text-card);
  line-height: 1.5;
  margin: 0;
  text-wrap: pretty;
}
.salt-partners__invite-label {
  color: var(--salt-orange);
  font-weight: 600;
}
.salt-partners__link:hover .salt-partners__invite-label {
  color: var(--salt-orange-hover);
}
/* ── SiteHeader ─────────────────────────────────────────────────────────── */
.salt-header {
  align-items: center;
  background: var(--salt-scrim-header);
  color: var(--salt-surface);
  display: flex;
  gap: 32px;
  justify-content: space-between;
  left: 0;
  padding: 22px var(--salt-gutter);
  position: absolute;
  right: 0;
  top: 0;
  z-index: 10;
}
/*
 * Interior pages have no hero photograph for the bar to overlay, so it sits in
 * the flow on a solid ground instead of a scrim over nothing. Passed through
 * SiteHeader's `className`. Must follow `.salt-header`: both are (0,1,0).
 */
.salt-header--solid {
  background: var(--salt-ink);
  position: static;
}
.salt-header__nav {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 34px;
  justify-content: flex-end;
}
.salt-header__link.salt-header__link {
  align-items: center;
  background-color: transparent;
  color: var(--salt-surface);
  display: inline-flex;
  font-size: var(--salt-text-ui);
  font-weight: 500;
  min-height: var(--salt-target-min);
  text-decoration: none;
}
.salt-header__link.salt-header__link:hover {
  text-decoration: underline;
}
/* ── Hero ───────────────────────────────────────────────────────────────── */
.salt-hero {
  /* The photograph itself arrives as an inline background-image from Hero's
   * imageSrc prop; these longhands size it. Keep them longhand -- the
   * background shorthand would reset that inline image. */
  background-color: var(--salt-slate);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  min-height: 460px;
  overflow: hidden;

  /* The base styles pad every `main > section` inline (measured 32px); the
     content column below carries the gutter, so the band stays edge to edge. */
  padding: 0;
  position: relative;
}
.salt-hero__scrim {
  background: var(--salt-scrim-hero);
  inset: 0;
  pointer-events: none;
  position: absolute;
}
.salt-hero__content {
  align-items: center;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 8px;
  justify-content: flex-end;
  min-height: 460px;
  padding: 120px var(--salt-gutter) 48px;
  position: relative;
  text-align: center;
}
/*
 * The design sizes hero type in `cqw`, which renders the eyebrow at roughly
 * five pixels on a 320px phone. Fixed sizes replace it; see step 11.
 */
.salt-hero__eyebrow {
  color: var(--salt-surface);
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.salt-hero__headline {
  color: var(--salt-surface);
  font-size: 52px;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.1;
  margin: 0;
}
.salt-hero__actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
  margin-top: 12px;
}
/* The page's calls to action -- hero, section intros, donate band -- step up
   from the 34px / 13px control the rest of the site uses. Scoped by context
   rather than on `.salt-action` so the nav pill, post links and form buttons
   keep the drawn size. */
.salt-hero__actions .salt-action.salt-action,
.salt-section-intro__actions .salt-action.salt-action,
.salt-donate__content .salt-action.salt-action {
  font-size: var(--salt-text-md);
  font-weight: 600;
  height: 52px;
  padding: 0 32px;
}
/* The rule above out-ranks the ghost's own padding. A ghost is a bare label:
   it takes the larger type to match its neighbour, not the filled gutter. */
.salt-section-intro__actions .salt-action--ghost.salt-action--ghost {
  padding: 0 6px;
}
/* ── DonateBand ─────────────────────────────────────────────────────────── */
.salt-donate {
  background: var(--salt-slate);
  min-height: 420px;
  overflow: hidden;

  /* See `.salt-hero`: the content column carries the gutter. */
  padding: 0;
  position: relative;
}
.salt-donate__image {
  display: block;
  height: 100%;
  inset: 0;
  object-fit: cover;
  position: absolute;
  width: 100%;
}
.salt-donate__scrim {
  background: var(--salt-scrim-flat);
  inset: 0;
  pointer-events: none;
  position: absolute;
}
.salt-donate__content {
  align-items: center;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 18px;
  justify-content: center;
  margin: 0 auto;
  max-width: var(--salt-max-narrow);
  min-height: 420px;
  padding: 72px var(--salt-gutter);
  position: relative;
  text-align: center;
}
.salt-donate__heading {
  color: var(--salt-surface);
  font-size: var(--salt-text-display);
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 0;
}
.salt-donate__body {
  color: var(--salt-surface);
  font-size: var(--salt-text-md);
  line-height: 1.7;
  margin: 0;
  text-wrap: pretty;
}
/* ── SiteFooter ─────────────────────────────────────────────────────────── */
.salt-footer {
  background: var(--salt-surface);
  border-top: 1px solid var(--salt-line);
  padding: 56px var(--salt-gutter) 28px;
}
/*
 * Both rows are centred columns, stated in full. Between them `@fpkit/acss`
 * and `src/styles/_base.scss` give every `footer > div` a column direction, a
 * 5rem minimum height and centred text, and the footer used to be centred only
 * by inheriting that -- which also left the legal row 80px tall for one 18px
 * line.
 */
.salt-footer__top,
.salt-footer__legal {
  align-items: center;
  display: flex;
  flex-direction: column;
  margin: 0 auto;
  max-width: var(--salt-max-wide);
  min-height: 0;
  text-align: center;
}
.salt-footer__top {
  gap: 40px;
}
.salt-footer__brand {
  display: flex;
  flex-direction: column;
  gap: 22px;
  min-width: 0;
}
.salt-footer__nav {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
  justify-content: center;
}
.salt-footer__link.salt-footer__link {
  align-items: center;
  background-color: transparent;
  color: var(--salt-slate);
  display: inline-flex;
  font-size: var(--salt-text-sm);
  font-weight: 400;
  min-height: var(--salt-target-min);
  text-decoration: none;
}
.salt-footer__link.salt-footer__link:hover {
  color: var(--salt-ink);
  text-decoration: underline;
}
.salt-footer__legal {
  border-top: 1px solid var(--salt-line);
  gap: 24px;
  margin-top: 40px;
  padding-top: 20px;
}
.salt-footer__legal-nav {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  justify-content: center;
}
.salt-footer__legal-link.salt-footer__legal-link {
  align-items: center;
  background-color: transparent;
  color: var(--salt-body);
  display: inline-flex;
  font-size: var(--salt-text-xs);
  font-weight: 400;
  min-height: var(--salt-target-min);
  text-decoration: underline;
}
.salt-footer__legal-link.salt-footer__legal-link:hover {
  color: var(--salt-ink);
}
.salt-footer__parent,
.salt-footer__copyright {
  color: var(--salt-body);
  font-size: var(--salt-text-xs);
}
.salt-footer__parent {
  margin: 0;
}
/* ── Field ──────────────────────────────────────────────────────────────── */
.salt-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.salt-field__label {
  color: var(--salt-ink);
  font-size: var(--salt-text-sm);
  font-weight: 600;
}
/*
 * This project's own `src/styles/components/_form.scss`, loaded globally
 * through `#styles/index.css`, appends " required *" to any form label that
 * precedes a required control, in `--error-color` at `font-size: smaller`. On
 * this white ground that is #ef4444 at 3.76:1 (computed with the WCAG formula)
 * and 11.67px (measured), under both the 4.5:1 text floor and this library's
 * 12px one. The marker is kept and re-inked. Its rule is (0,1,4); the doubled
 * class is (0,2,1).
 */
.salt-field__label.salt-field__label::after {
  color: var(--salt-danger);
  font-size: var(--salt-text-xs);
  font-weight: 400;
}
/*
 * Doubled for the same reason the link classes are: `@fpkit/acss` styles a bare
 * `input` and `input:focus-visible`, and the second is (0,1,1). Its bare rule
 * also gives every `input` a resting 1px outline that a `textarea` never gets,
 * which drew the single-line controls heavier than the message box; `outline`
 * is zeroed here and restored by the focus rule below.
 *
 * The border is `--salt-body`, not the `--salt-line-strong` the design names
 * for input borders: a control's boundary is a WCAG 1.4.11 non-text target and
 * needs 3:1 against the page. Computed with the WCAG formula, `--salt-line-strong`
 * is 1.48:1 on white and `--salt-body` is 4.83:1.
 *
 * 16px type, not the 13px UI size: iOS Safari zooms the viewport on focus for
 * any control set smaller than 16px.
 */
.salt-field__control.salt-field__control {
  background-color: var(--salt-surface);
  border: 1px solid var(--salt-body);
  border-radius: var(--salt-radius-sm);
  color: var(--salt-ink);
  font-family: inherit;
  font-size: var(--salt-text-md);
  line-height: 1.5;
  min-height: var(--salt-target-min);
  outline: 0;
  padding: 9px 12px;
  width: 100%;
}
textarea.salt-field__control.salt-field__control {
  resize: vertical;
}
.salt-field__control.salt-field__control:focus-visible {
  outline: 2px solid var(--salt-ink);
  outline-offset: 2px;
}
/*
 * The same `_form.scss` block paints validity on every form control at
 * (0,2,2) -- `form input:user-valid:not(:focus)` and its `:user-invalid`
 * twin: a green fill and ring on one, a pink fill and a #ef4444 ring on the
 * other. Neither fill is a Salt colour, and a field that turns green after one
 * keystroke is noise. Both are flattened here at (0,4,0); an invalid control
 * is marked by its border, a second pixel of it drawn as a shadow so nothing
 * reflows, and by its message.
 */
.salt-field__control.salt-field__control:user-valid:not(:focus),
.salt-field__control.salt-field__control:user-invalid:not(:focus) {
  background-color: var(--salt-surface);
  outline: 0;
}
.salt-field__control.salt-field__control:user-invalid {
  border-color: var(--salt-danger);
  box-shadow: 0 0 0 1px var(--salt-danger);
}
/* Adjacent-sibling: Field renders the message directly after the control. */
.salt-field__error {
  display: none;
  font-size: var(--salt-text-sm);
  margin: 0;
}
/*
 * The colour is set here rather than on `.salt-field__error` because the same
 * `_form.scss` block inks `:user-invalid + p` in #ef4444 at (0,2,3), which is
 * 3.76:1 on white. This is (0,4,0). Its "⚠ " prefix on the message is kept: it
 * is the cue that does not depend on colour.
 */
.salt-field__control.salt-field__control:user-invalid + .salt-field__error {
  color: var(--salt-danger);
  display: block;
}
/* ── MessageForm ────────────────────────────────────────────────────────── */
.salt-message-form {
  border: 1px solid var(--salt-line);
  border-radius: var(--salt-radius-lg);
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 40px auto 0;
  max-width: var(--salt-max-narrow);
  padding: 32px;
}
.salt-message-form > * {
  grid-column: 1 / -1;
}
.salt-message-form > .salt-message-form__half {
  grid-column: auto;
}
.salt-message-form > .salt-message-form__submit {
  justify-self: start;
}
/*
 * `ui.js` reveals the message by assigning `className = 'form-message success'`,
 * which replaces every class on the element. Anchored on the form, whose own
 * class is never rewritten, so the rule still matches at the moment it is
 * needed.
 */
.salt-message-form .form-message {
  border-radius: var(--salt-radius-sm);
  display: none;
  font-size: var(--salt-text-sm);
  padding: 12px;
}
.salt-message-form .form-message.success {
  background-color: #d4edda;
  border: 1px solid #c3e6cb;
  color: #155724;
  display: block;
}
.salt-message-form .form-message.error {
  background-color: #f8d7da;
  border: 1px solid #f5c6cb;
  color: #721c24;
  display: block;
}
/* ── Slide motion ───────────────────────────────────────────────────────── */
/*
 * The design specifies no motion. An instant content swap at this size reads
 * as a glitch, so slides cross-fade -- but only for people who have not asked
 * their system for reduced motion. Everything lives inside the
 * `no-preference` query, so under `reduce` no transition is declared at all
 * and `transition-duration` computes to `0s`.
 *
 * `@starting-style` supplies the "from" value, so the fade needs no JavaScript
 * state: each slide carries a React `key`, so a change remounts the element
 * and the browser animates it in from `opacity: 0`.
 */
@media (prefers-reduced-motion: no-preference) {
  .salt-slide {
    transition: opacity 240ms ease;
  }

  @starting-style {
    .salt-slide {
      opacity: 0;
    }
  }
}
/* ── Responsive ─────────────────────────────────────────────────────────── */
@media (width <= 900px) {
  /* Below 900px the 320px heading column leaves the statement too narrow. */
  .salt-mission-band--split .salt-mission {
    grid-template-areas:
      'eyebrow'
      'heading'
      'body';
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto;
  }

  .salt-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .salt-team-slider {
    grid-template-columns: minmax(0, 1fr);
  }

  .salt-team-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  /*
   * One column makes the box up to 805px wide, and a fixed 340px height showed
   * only the top 42% of a square portrait, cutting Nehiel off at the mouth.
   * 3:2 shows the top two thirds at any width; below 510px the 340px floor is
   * taller than 3:2 and keeps the phone crop as it was.
   */
  .salt-team-member__portrait.salt-image-slot {
    aspect-ratio: 3 / 2;
    height: auto;
    min-height: 340px;
  }

  /* The deck moves between the intro and the caption, and the cards shrink to fit a phone. */
  .salt-deck {
    --deck-card-w: 236px;
    --deck-card-h: 300px;
    --deck-x: 0px;
    --deck-y: 36px;

    grid-template-areas:
      'intro'
      'stage'
      'detail';
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (width <= 640px) {
  .salt-card-grid {
    gap: 32px;
    grid-template-columns: minmax(0, 1fr);
  }

  .salt-partners__inner {
    gap: 40px;
  }

  .salt-partners__heading {
    font-size: var(--salt-text-h2);
  }

  .salt-partners__grid {
    gap: 32px;
    grid-template-columns: minmax(0, 1fr);
  }

  .salt-header {
    flex-wrap: wrap;
    gap: 16px;
  }

  .salt-header__nav {
    gap: 18px;
  }

  .salt-message-form {
    grid-template-columns: minmax(0, 1fr);
    padding: 20px;
  }

  .salt-hero__eyebrow {
    font-size: 15px;
  }

  .salt-hero__headline {
    font-size: 34px;
  }

  .salt-donate__heading {
    font-size: 32px;
  }

  .salt-mission__heading.salt-mission__heading {
    font-size: 20px;
  }

  .salt-mission__body {
    font-size: 28px;
  }

  .salt-mission-band--split .salt-mission__heading.salt-mission__heading {
    font-size: 28px;
    margin-bottom: 8px;
  }

  .salt-mission-band--split .salt-mission__body {
    font-size: 18px;
  }

  .salt-testimonial__content {
    padding: 24px;
  }

  .salt-testimonial__quote {
    font-size: 22px;
  }

  .salt-testimonial__cite {
    font-size: 14px;
  }

  .salt-gallery__tile {
    height: 260px;
  }
}
/*
 * The header wraps to two rows below roughly 700px (measured with the four
 * links the site ships) and, being absolutely positioned, then covers the top
 * of the hero content where the display-size lockup sits. The header carries
 * the lockup already, so the hero one steps aside rather than hiding behind it.
 *
 * ponytail: a measured breakpoint, not a derived one -- if the navigation gains
 * a link, re-measure, or move the header into the hero's flow so the content
 * cannot be covered at any width.
 */
@media (width <= 720px) {
  .salt-wordmark--hero.salt-wordmark--hero {
    display: none;
  }
}
/*
 * Phone widths. The hero's two calls to action fit side by side at 320px only
 * because their labels are short; stacking them makes the layout independent
 * of the copy and gives each a full-width target.
 */
@media (width <= 420px) {
  .salt-hero__actions {
    align-items: stretch;
    flex-direction: column;
    width: 100%;
  }
}
