Back to buttons
import * as React from "react";
import { Slot } from "@radix-ui/react-slot";
import { cn } from "@/lib/utils";

type Color =
  | "default"
  | "blue"
  | "purple"
  | "pink"
  | "red"
  | "orange"
  | "yellow"
  | "green"
  | "teal"
  | "cyan"
  | "indigo"
  | "violet"
  | "rose"
  | "amber"
  | "lime"
  | "sky"
  | "slate"
  | "gray"
  | "zinc"
  | "neutral"
  | "stone"
  | "fuchsia"
  | "emerald";

type SizeVariant = "sm" | "default" | "lg";

interface RichButtonProps
  extends React.ButtonHTMLAttributes<HTMLButtonElement> {
  children: React.ReactNode;
  color?: Color;
  size?: SizeVariant;
  className?: string;
  asChild?: boolean;
}

const colorMap: Record<Color, string> = {
  default:
    "from-zinc-900/85 to-zinc-900 dark:from-zinc-100/85 dark:to-zinc-100",
  emerald: "from-emerald-600/85 to-emerald-600 dark:from-emerald-600/75",
  blue: "from-blue-600/85 to-blue-600 dark:from-blue-600/75",
  purple: "from-purple-600/85 to-purple-600 dark:from-purple-600/75",
  pink: "from-pink-600/85 to-pink-600 dark:from-pink-600/75",
  red: "from-red-600/85 to-red-600 dark:from-red-600/75",
  orange: "from-orange-600/85 to-orange-600 dark:from-orange-600/75",
  yellow: "from-yellow-600/85 to-yellow-600 dark:from-yellow-600/75",
  green: "from-green-600/85 to-green-600 dark:from-green-600/75",
  teal: "from-teal-600/85 to-teal-600 dark:from-teal-600/75",
  cyan: "from-cyan-600/85 to-cyan-600 dark:from-cyan-600/75",
  indigo: "from-indigo-600/85 to-indigo-600 dark:from-indigo-600/75",
  violet: "from-violet-600/85 to-violet-600 dark:from-violet-600/75",
  rose: "from-rose-600/85 to-rose-600 dark:from-rose-600/75",
  amber: "from-amber-600/85 to-amber-600 dark:from-amber-600/75",
  lime: "from-lime-600/85 to-lime-600 dark:from-lime-600/75",
  sky: "from-sky-600/85 to-sky-600 dark:from-sky-600/75",
  slate: "from-slate-600/85 to-slate-600 dark:from-slate-600/75",
  gray: "from-gray-600/85 to-gray-600 dark:from-gray-600/75",
  zinc: "from-zinc-700/85 to-zinc-700 dark:from-zinc-700/75",
  neutral: "from-neutral-600/85 to-neutral-600 dark:from-neutral-600/75",
  stone: "from-stone-600/85 to-stone-600 dark:from-stone-600/75",
  fuchsia: "from-fuchsia-600/85 to-fuchsia-600 dark:from-fuchsia-600/75",
};

const textShadowMap: Record<Color, string> = {
  default:
    "[text-shadow:0_1px_0_rgb(0,0,0)] dark:[text-shadow:0_1px_0_rgb(255,255,255)]",
  emerald: "[text-shadow:0_1px_0_var(--color-emerald-800)]",
  blue: "[text-shadow:0_1px_0_var(--color-blue-800)]",
  purple: "[text-shadow:0_1px_0_var(--color-purple-800)]",
  pink: "[text-shadow:0_1px_0_var(--color-pink-800)]",
  red: "[text-shadow:0_1px_0_var(--color-red-800)]",
  orange: "[text-shadow:0_1px_0_var(--color-orange-800)]",
  yellow: "[text-shadow:0_1px_0_var(--color-yellow-800)]",
  green: "[text-shadow:0_1px_0_var(--color-green-800)]",
  teal: "[text-shadow:0_1px_0_var(--color-teal-800)]",
  cyan: "[text-shadow:0_1px_0_var(--color-cyan-800)]",
  indigo: "[text-shadow:0_1px_0_var(--color-indigo-800)]",
  violet: "[text-shadow:0_1px_0_var(--color-violet-800)]",
  rose: "[text-shadow:0_1px_0_var(--color-rose-800)]",
  amber: "[text-shadow:0_1px_0_var(--color-amber-800)]",
  lime: "[text-shadow:0_1px_0_var(--color-lime-800)]",
  sky: "[text-shadow:0_1px_0_var(--color-sky-800)]",
  slate: "[text-shadow:0_1px_0_var(--color-slate-800)]",
  gray: "[text-shadow:0_1px_0_var(--color-gray-800)]",
  zinc: "[text-shadow:0_1px_0_var(--color-zinc-800)]",
  neutral: "[text-shadow:0_1px_0_var(--color-neutral-800)]",
  stone: "[text-shadow:0_1px_0_var(--color-stone-800)]",
  fuchsia: "[text-shadow:0_1px_0_var(--color-fuchsia-800)]",
};

const sizeMap: Record<SizeVariant, string> = {
  sm: "h-8 rounded-md gap-1.5 px-3 text-sm",
  default: "h-9 px-4 py-2 text-sm rounded-md",
  lg: "h-10 rounded-md px-6 text-base",
};

const RichButton = React.forwardRef<HTMLButtonElement, RichButtonProps>(
  (
    {
      children,
      color = "default",
      size = "default",
      className,
      asChild = false,
      ...props
    },
    ref,
  ) => {
    const Comp = asChild ? Slot : "button";
    const colorClasses = colorMap[color];
    const textShadowClasses = textShadowMap[color];
    const sizeClasses = sizeMap[size];
    const textColor = color === "default"
      ? "text-white dark:text-zinc-900"
      : "text-white";

    return (
      <Comp
        ref={ref}
        className={cn(
          "cursor-pointer inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 inset-shadow-2xs inset-shadow-white/25 bg-linear-to-b dark:bg-linear-to-t border border-zinc-950/35 shadow-md shadow-zinc-950/20 ring-0 transition-[filter] duration-200 hover:brightness-110 active:brightness-95 dark:border-0 dark:border-zinc-950/50",
          colorClasses,
          sizeClasses,
          textColor,
          className,
        )}
        {...props}
      >
        {asChild
          ? children
          : typeof children === "string"
          ? (
            <span className={cn("relative", textShadowClasses)}>
              {children}
            </span>
          )
          : (
            <div
              className={cn(
                "relative flex items-center gap-2",
                textShadowClasses,
              )}
            >
              {children}
            </div>
          )}
      </Comp>
    );
  },
);

RichButton.displayName = "RichButton";

export { RichButton };

Rich Button

By tom

Try the interaction, copy the React source files, or download the complete example.

About Rich Button

Rich Button is an animated React and Tailwind CSS button by tom. Try the interaction, copy the React source, or download the example with creator credit.

Effects and categories
Hover effects, Animated
Using this example
Copy a TSX file or download the original source and standalone demo. Test keyboard focus, motion and contrast in your own project.

Usage, Tailwind and licensing questions

Read the source files

docs/rich-button/demo.tsx

import { RichButton } from "@/registry/spell-ui/rich-button";

export function Demo() {
  return <RichButton>Default</RichButton>;
}

registry/spell-ui/rich-button.tsx

import * as React from "react";
import { Slot } from "@radix-ui/react-slot";
import { cn } from "@/lib/utils";

type Color =
  | "default"
  | "blue"
  | "purple"
  | "pink"
  | "red"
  | "orange"
  | "yellow"
  | "green"
  | "teal"
  | "cyan"
  | "indigo"
  | "violet"
  | "rose"
  | "amber"
  | "lime"
  | "sky"
  | "slate"
  | "gray"
  | "zinc"
  | "neutral"
  | "stone"
  | "fuchsia"
  | "emerald";

type SizeVariant = "sm" | "default" | "lg";

interface RichButtonProps
  extends React.ButtonHTMLAttributes<HTMLButtonElement> {
  children: React.ReactNode;
  color?: Color;
  size?: SizeVariant;
  className?: string;
  asChild?: boolean;
}

const colorMap: Record<Color, string> = {
  default:
    "from-zinc-900/85 to-zinc-900 dark:from-zinc-100/85 dark:to-zinc-100",
  emerald: "from-emerald-600/85 to-emerald-600 dark:from-emerald-600/75",
  blue: "from-blue-600/85 to-blue-600 dark:from-blue-600/75",
  purple: "from-purple-600/85 to-purple-600 dark:from-purple-600/75",
  pink: "from-pink-600/85 to-pink-600 dark:from-pink-600/75",
  red: "from-red-600/85 to-red-600 dark:from-red-600/75",
  orange: "from-orange-600/85 to-orange-600 dark:from-orange-600/75",
  yellow: "from-yellow-600/85 to-yellow-600 dark:from-yellow-600/75",
  green: "from-green-600/85 to-green-600 dark:from-green-600/75",
  teal: "from-teal-600/85 to-teal-600 dark:from-teal-600/75",
  cyan: "from-cyan-600/85 to-cyan-600 dark:from-cyan-600/75",
  indigo: "from-indigo-600/85 to-indigo-600 dark:from-indigo-600/75",
  violet: "from-violet-600/85 to-violet-600 dark:from-violet-600/75",
  rose: "from-rose-600/85 to-rose-600 dark:from-rose-600/75",
  amber: "from-amber-600/85 to-amber-600 dark:from-amber-600/75",
  lime: "from-lime-600/85 to-lime-600 dark:from-lime-600/75",
  sky: "from-sky-600/85 to-sky-600 dark:from-sky-600/75",
  slate: "from-slate-600/85 to-slate-600 dark:from-slate-600/75",
  gray: "from-gray-600/85 to-gray-600 dark:from-gray-600/75",
  zinc: "from-zinc-700/85 to-zinc-700 dark:from-zinc-700/75",
  neutral: "from-neutral-600/85 to-neutral-600 dark:from-neutral-600/75",
  stone: "from-stone-600/85 to-stone-600 dark:from-stone-600/75",
  fuchsia: "from-fuchsia-600/85 to-fuchsia-600 dark:from-fuchsia-600/75",
};

const textShadowMap: Record<Color, string> = {
  default:
    "[text-shadow:0_1px_0_rgb(0,0,0)] dark:[text-shadow:0_1px_0_rgb(255,255,255)]",
  emerald: "[text-shadow:0_1px_0_var(--color-emerald-800)]",
  blue: "[text-shadow:0_1px_0_var(--color-blue-800)]",
  purple: "[text-shadow:0_1px_0_var(--color-purple-800)]",
  pink: "[text-shadow:0_1px_0_var(--color-pink-800)]",
  red: "[text-shadow:0_1px_0_var(--color-red-800)]",
  orange: "[text-shadow:0_1px_0_var(--color-orange-800)]",
  yellow: "[text-shadow:0_1px_0_var(--color-yellow-800)]",
  green: "[text-shadow:0_1px_0_var(--color-green-800)]",
  teal: "[text-shadow:0_1px_0_var(--color-teal-800)]",
  cyan: "[text-shadow:0_1px_0_var(--color-cyan-800)]",
  indigo: "[text-shadow:0_1px_0_var(--color-indigo-800)]",
  violet: "[text-shadow:0_1px_0_var(--color-violet-800)]",
  rose: "[text-shadow:0_1px_0_var(--color-rose-800)]",
  amber: "[text-shadow:0_1px_0_var(--color-amber-800)]",
  lime: "[text-shadow:0_1px_0_var(--color-lime-800)]",
  sky: "[text-shadow:0_1px_0_var(--color-sky-800)]",
  slate: "[text-shadow:0_1px_0_var(--color-slate-800)]",
  gray: "[text-shadow:0_1px_0_var(--color-gray-800)]",
  zinc: "[text-shadow:0_1px_0_var(--color-zinc-800)]",
  neutral: "[text-shadow:0_1px_0_var(--color-neutral-800)]",
  stone: "[text-shadow:0_1px_0_var(--color-stone-800)]",
  fuchsia: "[text-shadow:0_1px_0_var(--color-fuchsia-800)]",
};

const sizeMap: Record<SizeVariant, string> = {
  sm: "h-8 rounded-md gap-1.5 px-3 text-sm",
  default: "h-9 px-4 py-2 text-sm rounded-md",
  lg: "h-10 rounded-md px-6 text-base",
};

const RichButton = React.forwardRef<HTMLButtonElement, RichButtonProps>(
  (
    {
      children,
      color = "default",
      size = "default",
      className,
      asChild = false,
      ...props
    },
    ref,
  ) => {
    const Comp = asChild ? Slot : "button";
    const colorClasses = colorMap[color];
    const textShadowClasses = textShadowMap[color];
    const sizeClasses = sizeMap[size];
    const textColor = color === "default"
      ? "text-white dark:text-zinc-900"
      : "text-white";

    return (
      <Comp
        ref={ref}
        className={cn(
          "cursor-pointer inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 inset-shadow-2xs inset-shadow-white/25 bg-linear-to-b dark:bg-linear-to-t border border-zinc-950/35 shadow-md shadow-zinc-950/20 ring-0 transition-[filter] duration-200 hover:brightness-110 active:brightness-95 dark:border-0 dark:border-zinc-950/50",
          colorClasses,
          sizeClasses,
          textColor,
          className,
        )}
        {...props}
      >
        {asChild
          ? children
          : typeof children === "string"
          ? (
            <span className={cn("relative", textShadowClasses)}>
              {children}
            </span>
          )
          : (
            <div
              className={cn(
                "relative flex items-center gap-2",
                textShadowClasses,
              )}
            >
              {children}
            </div>
          )}
      </Comp>
    );
  },
);

RichButton.displayName = "RichButton";

export { RichButton };

lib/utils.ts

import type { Metadata } from "next";
import { type ClassValue, clsx } from "clsx";
import { twMerge } from "tailwind-merge";
import { siteConfig } from "@/lib/config";

export function cn(...inputs: ClassValue[]) {
  return twMerge(clsx(inputs));
}

export function absoluteUrl(path: string) {
  const base = process.env.NEXT_PUBLIC_APP_URL ?? siteConfig.url;
  return `${base.replace(/\/$/, "")}${path.startsWith("/") ? path : `/${path}`}`;
}

export function buildOgUrl(params?: { title?: string; description?: string }) {
  const url = new URL(absoluteUrl("/og"));
  if (params?.title) url.searchParams.set("title", params.title);
  if (params?.description) url.searchParams.set("description", params.description);
  return url.toString();
}

export function constructMetadata({
  title = siteConfig.name,
  description = siteConfig.description,
  image = absoluteUrl("/og"),
  ...props
}: {
  title?: string;
  description?: string;
  image?: string;
} & Partial<Metadata> = {}): Metadata {
  return {
    title,
    description,
    keywords: siteConfig.keywords,
    openGraph: {
      title,
      description,
      type: "website",
      url: siteConfig.url,
      siteName: siteConfig.name,
      images: [
        {
          url: image,
          width: 1200,
          height: 628,
          alt: title,
        },
      ],
    },
    twitter: {
      card: "summary_large_image",
      title,
      description,
      images: [image],
      creator: siteConfig.links.tom.replace("https://x.com/", "@"),
    },
    metadataBase: new URL(siteConfig.url),
    icons: "/icon.svg",
    ...props,
  };
}

lib/config.ts

export const siteConfig = {
  name: "Spell UI",
  url: "https://spell.sh",
  ogImage: "https://spell.sh/og",
  description:
    "Beautiful, sophisticated UI components designed for modern React and Tailwind CSS applications.",
  carbon: {
    // Setting serve to "" disables ads entirely.
    serve: "CWBDE53E",
    placement: "spellsh",
  },
  links: {
    tom: "https://x.com/sushidrip",
    x: "https://x.com/intent/follow?screen_name=sushidrip",
    discord: "https://discord.gg/CxzqwQ2EAa",
    github: "https://github.com/xxtomm/spell-ui",
    // instagram: "https://instagram.com/spellui/",
  },
  keywords: [
    "React",
    "Tailwind CSS",
    "Motion",
    "Landing Page",
    "Components",
    "Next.js",
  ],
};

export type SiteConfig = typeof siteConfig;

demo.tsx


export { Demo as default } from "@/docs/rich-button/demo";

CSS

/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties;
@layer theme, base, components, utilities;
@layer theme {
  :root, :host {
    --color-red-600: oklch(57.7% 0.245 27.325);
    --color-red-800: oklch(44.4% 0.177 26.899);
    --color-orange-600: oklch(64.6% 0.222 41.116);
    --color-orange-800: oklch(47% 0.157 37.304);
    --color-amber-600: oklch(66.6% 0.179 58.318);
    --color-amber-800: oklch(47.3% 0.137 46.201);
    --color-yellow-600: oklch(68.1% 0.162 75.834);
    --color-yellow-800: oklch(47.6% 0.114 61.907);
    --color-lime-600: oklch(64.8% 0.2 131.684);
    --color-lime-800: oklch(45.3% 0.124 130.933);
    --color-green-600: oklch(62.7% 0.194 149.214);
    --color-green-800: oklch(44.8% 0.119 151.328);
    --color-emerald-600: oklch(59.6% 0.145 163.225);
    --color-emerald-800: oklch(43.2% 0.095 166.913);
    --color-teal-600: oklch(60% 0.118 184.704);
    --color-teal-800: oklch(43.7% 0.078 188.216);
    --color-cyan-600: oklch(60.9% 0.126 221.723);
    --color-cyan-800: oklch(45% 0.085 224.283);
    --color-sky-600: oklch(58.8% 0.158 241.966);
    --color-sky-800: oklch(44.3% 0.11 240.79);
    --color-blue-600: oklch(54.6% 0.245 262.881);
    --color-blue-800: oklch(42.4% 0.199 265.638);
    --color-indigo-600: oklch(51.1% 0.262 276.966);
    --color-indigo-800: oklch(39.8% 0.195 277.366);
    --color-violet-600: oklch(54.1% 0.281 293.009);
    --color-violet-800: oklch(43.2% 0.232 292.759);
    --color-purple-600: oklch(55.8% 0.288 302.321);
    --color-purple-800: oklch(43.8% 0.218 303.724);
    --color-fuchsia-600: oklch(59.1% 0.293 322.896);
    --color-fuchsia-800: oklch(45.2% 0.211 324.591);
    --color-pink-600: oklch(59.2% 0.249 0.584);
    --color-pink-800: oklch(45.9% 0.187 3.815);
    --color-rose-600: oklch(58.6% 0.253 17.585);
    --color-rose-800: oklch(45.5% 0.188 13.697);
    --color-slate-600: oklch(44.6% 0.043 257.281);
    --color-slate-800: oklch(27.9% 0.041 260.031);
    --color-gray-600: oklch(44.6% 0.03 256.802);
    --color-gray-800: oklch(27.8% 0.033 256.848);
    --color-zinc-100: oklch(96.7% 0.001 286.375);
    --color-zinc-700: oklch(37% 0.013 285.805);
    --color-zinc-800: oklch(27.4% 0.006 286.033);
    --color-zinc-900: oklch(21% 0.006 285.885);
    --color-zinc-950: oklch(14.1% 0.005 285.823);
    --color-neutral-200: oklch(92.2% 0 none);
    --color-neutral-600: oklch(43.9% 0 none);
    --color-neutral-800: oklch(26.9% 0 none);
    --color-stone-600: oklch(44.4% 0.011 73.639);
    --color-stone-800: oklch(26.8% 0.007 34.298);
    --color-white: #fff;
    --spacing: 0.25rem;
    --text-sm: 0.875rem;
    --text-sm--line-height: calc(1.25 / 0.875);
    --text-base: 1rem;
    --text-base--line-height: calc(1.5 / 1);
    --font-weight-medium: 500;
    --default-transition-duration: 150ms;
    --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    --default-font-family: var(--font-geist-sans);
    --default-mono-font-family: var(--font-geist-mono);
  }
}
@layer base {
  *, ::after, ::before, ::backdrop, ::file-selector-button {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border: 0 solid;
  }
  html, :host {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    font-family: var(--default-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }
  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
  }
  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
  }
  h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-weight: inherit;
  }
  a {
    color: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit;
  }
  b, strong {
    font-weight: bolder;
  }
  code, kbd, samp, pre {
    font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(--default-mono-font-variation-settings, normal);
    font-size: 1em;
  }
  small {
    font-size: 80%;
  }
  sub, sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }
  sub {
    bottom: -0.25em;
  }
  sup {
    top: -0.5em;
  }
  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }
  :-moz-focusring:where(:not(iframe)) {
    outline: auto;
  }
  progress {
    vertical-align: baseline;
  }
  summary {
    display: list-item;
  }
  ol, ul, menu {
    list-style: none;
  }
  img, svg, video, canvas, audio, iframe, embed, object {
    display: block;
    vertical-align: middle;
  }
  img, video {
    max-width: 100%;
    height: auto;
  }
  button, input, select, optgroup, textarea, ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    border-radius: 0;
    background-color: transparent;
    opacity: 1;
  }
  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder;
  }
  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }
  ::file-selector-button {
    margin-inline-end: 4px;
  }
  ::placeholder {
    opacity: 1;
  }
  @supports (not (-webkit-appearance: -apple-pay-button))  or (contain-intrinsic-size: 1px) {
    ::placeholder {
      color: currentcolor;
      @supports (color: color-mix(in lab, red, red)) {
        color: color-mix(in oklab, currentcolor 50%, transparent);
      }
    }
  }
  textarea {
    resize: vertical;
  }
  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }
  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit;
  }
  ::-webkit-datetime-edit {
    display: inline-flex;
  }
  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }
  ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0;
  }
  ::-webkit-calendar-picker-indicator {
    line-height: 1;
  }
  :-moz-ui-invalid {
    box-shadow: none;
  }
  button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button {
    appearance: button;
  }
  ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
    height: auto;
  }
  [hidden]:where(:not([hidden="until-found"])) {
    display: none !important;
  }
}
@layer utilities {
  .relative {
    position: relative;
  }
  .flex {
    display: flex;
  }
  .inline-flex {
    display: inline-flex;
  }
  .h-8 {
    height: calc(var(--spacing) * 8);
  }
  .h-9 {
    height: calc(var(--spacing) * 9);
  }
  .h-10 {
    height: calc(var(--spacing) * 10);
  }
  .cursor-pointer {
    cursor: pointer;
  }
  .items-center {
    align-items: center;
  }
  .justify-center {
    justify-content: center;
  }
  .gap-1\.5 {
    gap: calc(var(--spacing) * 1.5);
  }
  .gap-2 {
    gap: calc(var(--spacing) * 2);
  }
  .rounded-md {
    border-radius: calc(var(--radius) - 2px);
  }
  .border {
    border-style: var(--tw-border-style);
    border-width: 1px;
  }
  .border-zinc-950\/35 {
    border-color: color-mix(in srgb, oklch(14.1% 0.005 285.823) 35%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-zinc-950) 35%, transparent);
    }
  }
  .bg-linear-to-b {
    --tw-gradient-position: to bottom;
    @supports (background-image: linear-gradient(in lab, red, red)) {
      --tw-gradient-position: to bottom in oklab;
    }
    background-image: linear-gradient(var(--tw-gradient-stops));
  }
  .from-amber-600\/85 {
    --tw-gradient-from: color-mix(in srgb, oklch(66.6% 0.179 58.318) 85%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-amber-600) 85%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-blue-600\/85 {
    --tw-gradient-from: color-mix(in srgb, oklch(54.6% 0.245 262.881) 85%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-blue-600) 85%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-cyan-600\/85 {
    --tw-gradient-from: color-mix(in srgb, oklch(60.9% 0.126 221.723) 85%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-cyan-600) 85%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-emerald-600\/85 {
    --tw-gradient-from: color-mix(in srgb, oklch(59.6% 0.145 163.225) 85%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-emerald-600) 85%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-fuchsia-600\/85 {
    --tw-gradient-from: color-mix(in srgb, oklch(59.1% 0.293 322.896) 85%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-fuchsia-600) 85%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-gray-600\/85 {
    --tw-gradient-from: color-mix(in srgb, oklch(44.6% 0.03 256.802) 85%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-gray-600) 85%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-green-600\/85 {
    --tw-gradient-from: color-mix(in srgb, oklch(62.7% 0.194 149.214) 85%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-green-600) 85%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-indigo-600\/85 {
    --tw-gradient-from: color-mix(in srgb, oklch(51.1% 0.262 276.966) 85%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-indigo-600) 85%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-lime-600\/85 {
    --tw-gradient-from: color-mix(in srgb, oklch(64.8% 0.2 131.684) 85%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-lime-600) 85%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-neutral-600\/85 {
    --tw-gradient-from: color-mix(in srgb, oklch(43.9% 0 none) 85%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-neutral-600) 85%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-orange-600\/85 {
    --tw-gradient-from: color-mix(in srgb, oklch(64.6% 0.222 41.116) 85%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-orange-600) 85%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-pink-600\/85 {
    --tw-gradient-from: color-mix(in srgb, oklch(59.2% 0.249 0.584) 85%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-pink-600) 85%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-purple-600\/85 {
    --tw-gradient-from: color-mix(in srgb, oklch(55.8% 0.288 302.321) 85%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-purple-600) 85%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-red-600\/85 {
    --tw-gradient-from: color-mix(in srgb, oklch(57.7% 0.245 27.325) 85%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-red-600) 85%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-rose-600\/85 {
    --tw-gradient-from: color-mix(in srgb, oklch(58.6% 0.253 17.585) 85%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-rose-600) 85%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-sky-600\/85 {
    --tw-gradient-from: color-mix(in srgb, oklch(58.8% 0.158 241.966) 85%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-sky-600) 85%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-slate-600\/85 {
    --tw-gradient-from: color-mix(in srgb, oklch(44.6% 0.043 257.281) 85%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-slate-600) 85%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-stone-600\/85 {
    --tw-gradient-from: color-mix(in srgb, oklch(44.4% 0.011 73.639) 85%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-stone-600) 85%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-teal-600\/85 {
    --tw-gradient-from: color-mix(in srgb, oklch(60% 0.118 184.704) 85%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-teal-600) 85%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-violet-600\/85 {
    --tw-gradient-from: color-mix(in srgb, oklch(54.1% 0.281 293.009) 85%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-violet-600) 85%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-yellow-600\/85 {
    --tw-gradient-from: color-mix(in srgb, oklch(68.1% 0.162 75.834) 85%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-yellow-600) 85%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-zinc-700\/85 {
    --tw-gradient-from: color-mix(in srgb, oklch(37% 0.013 285.805) 85%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-zinc-700) 85%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-zinc-900\/85 {
    --tw-gradient-from: color-mix(in srgb, oklch(21% 0.006 285.885) 85%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-zinc-900) 85%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-amber-600 {
    --tw-gradient-to: var(--color-amber-600);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-blue-600 {
    --tw-gradient-to: var(--color-blue-600);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-cyan-600 {
    --tw-gradient-to: var(--color-cyan-600);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-emerald-600 {
    --tw-gradient-to: var(--color-emerald-600);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-fuchsia-600 {
    --tw-gradient-to: var(--color-fuchsia-600);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-gray-600 {
    --tw-gradient-to: var(--color-gray-600);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-green-600 {
    --tw-gradient-to: var(--color-green-600);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-indigo-600 {
    --tw-gradient-to: var(--color-indigo-600);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-lime-600 {
    --tw-gradient-to: var(--color-lime-600);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-neutral-600 {
    --tw-gradient-to: var(--color-neutral-600);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-orange-600 {
    --tw-gradient-to: var(--color-orange-600);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-pink-600 {
    --tw-gradient-to: var(--color-pink-600);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-purple-600 {
    --tw-gradient-to: var(--color-purple-600);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-red-600 {
    --tw-gradient-to: var(--color-red-600);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-rose-600 {
    --tw-gradient-to: var(--color-rose-600);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-sky-600 {
    --tw-gradient-to: var(--color-sky-600);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-slate-600 {
    --tw-gradient-to: var(--color-slate-600);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-stone-600 {
    --tw-gradient-to: var(--color-stone-600);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-teal-600 {
    --tw-gradient-to: var(--color-teal-600);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-violet-600 {
    --tw-gradient-to: var(--color-violet-600);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-yellow-600 {
    --tw-gradient-to: var(--color-yellow-600);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-zinc-700 {
    --tw-gradient-to: var(--color-zinc-700);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-zinc-900 {
    --tw-gradient-to: var(--color-zinc-900);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .px-3 {
    padding-inline: calc(var(--spacing) * 3);
  }
  .px-4 {
    padding-inline: calc(var(--spacing) * 4);
  }
  .px-6 {
    padding-inline: calc(var(--spacing) * 6);
  }
  .py-2 {
    padding-block: calc(var(--spacing) * 2);
  }
  .text-base {
    font-size: var(--text-base);
    line-height: var(--tw-leading, var(--text-base--line-height));
  }
  .text-sm {
    font-size: var(--text-sm);
    line-height: var(--tw-leading, var(--text-sm--line-height));
  }
  .font-medium {
    --tw-font-weight: var(--font-weight-medium);
    font-weight: var(--font-weight-medium);
  }
  .whitespace-nowrap {
    white-space: nowrap;
  }
  .text-white {
    color: var(--color-white);
  }
  .shadow-md {
    --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .ring-0 {
    --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .inset-shadow-2xs {
    --tw-inset-shadow: inset 0 1px var(--tw-inset-shadow-color, rgb(0 0 0 / 0.05));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .shadow-zinc-950\/20 {
    --tw-shadow-color: color-mix(in srgb, oklch(14.1% 0.005 285.823) 20%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-zinc-950) 20%, transparent) var(--tw-shadow-alpha), transparent);
    }
  }
  .inset-shadow-white\/25 {
    --tw-inset-shadow-color: color-mix(in srgb, #fff 25%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-inset-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-white) 25%, transparent) var(--tw-inset-shadow-alpha), transparent);
    }
  }
  .transition-\[filter\] {
    transition-property: filter;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .duration-200 {
    --tw-duration: 200ms;
    transition-duration: 200ms;
  }
  .\[text-shadow\:0_1px_0_rgb\(0\,0\,0\)\] {
    text-shadow: 0 1px 0 rgb(0,0,0);
  }
  .\[text-shadow\:0_1px_0_var\(--color-amber-800\)\] {
    text-shadow: 0 1px 0 var(--color-amber-800);
  }
  .\[text-shadow\:0_1px_0_var\(--color-blue-800\)\] {
    text-shadow: 0 1px 0 var(--color-blue-800);
  }
  .\[text-shadow\:0_1px_0_var\(--color-cyan-800\)\] {
    text-shadow: 0 1px 0 var(--color-cyan-800);
  }
  .\[text-shadow\:0_1px_0_var\(--color-emerald-800\)\] {
    text-shadow: 0 1px 0 var(--color-emerald-800);
  }
  .\[text-shadow\:0_1px_0_var\(--color-fuchsia-800\)\] {
    text-shadow: 0 1px 0 var(--color-fuchsia-800);
  }
  .\[text-shadow\:0_1px_0_var\(--color-gray-800\)\] {
    text-shadow: 0 1px 0 var(--color-gray-800);
  }
  .\[text-shadow\:0_1px_0_var\(--color-green-800\)\] {
    text-shadow: 0 1px 0 var(--color-green-800);
  }
  .\[text-shadow\:0_1px_0_var\(--color-indigo-800\)\] {
    text-shadow: 0 1px 0 var(--color-indigo-800);
  }
  .\[text-shadow\:0_1px_0_var\(--color-lime-800\)\] {
    text-shadow: 0 1px 0 var(--color-lime-800);
  }
  .\[text-shadow\:0_1px_0_var\(--color-neutral-800\)\] {
    text-shadow: 0 1px 0 var(--color-neutral-800);
  }
  .\[text-shadow\:0_1px_0_var\(--color-orange-800\)\] {
    text-shadow: 0 1px 0 var(--color-orange-800);
  }
  .\[text-shadow\:0_1px_0_var\(--color-pink-800\)\] {
    text-shadow: 0 1px 0 var(--color-pink-800);
  }
  .\[text-shadow\:0_1px_0_var\(--color-purple-800\)\] {
    text-shadow: 0 1px 0 var(--color-purple-800);
  }
  .\[text-shadow\:0_1px_0_var\(--color-red-800\)\] {
    text-shadow: 0 1px 0 var(--color-red-800);
  }
  .\[text-shadow\:0_1px_0_var\(--color-rose-800\)\] {
    text-shadow: 0 1px 0 var(--color-rose-800);
  }
  .\[text-shadow\:0_1px_0_var\(--color-sky-800\)\] {
    text-shadow: 0 1px 0 var(--color-sky-800);
  }
  .\[text-shadow\:0_1px_0_var\(--color-slate-800\)\] {
    text-shadow: 0 1px 0 var(--color-slate-800);
  }
  .\[text-shadow\:0_1px_0_var\(--color-stone-800\)\] {
    text-shadow: 0 1px 0 var(--color-stone-800);
  }
  .\[text-shadow\:0_1px_0_var\(--color-teal-800\)\] {
    text-shadow: 0 1px 0 var(--color-teal-800);
  }
  .\[text-shadow\:0_1px_0_var\(--color-violet-800\)\] {
    text-shadow: 0 1px 0 var(--color-violet-800);
  }
  .\[text-shadow\:0_1px_0_var\(--color-yellow-800\)\] {
    text-shadow: 0 1px 0 var(--color-yellow-800);
  }
  .\[text-shadow\:0_1px_0_var\(--color-zinc-800\)\] {
    text-shadow: 0 1px 0 var(--color-zinc-800);
  }
  @media (hover: hover) {
    .hover\:brightness-110:hover {
      --tw-brightness: brightness(110%);
      filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
    }
  }
  .focus-visible\:ring-1:focus-visible {
    --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .focus-visible\:ring-ring:focus-visible {
    --tw-ring-color: var(--ring);
  }
  .focus-visible\:outline-none:focus-visible {
    --tw-outline-style: none;
    outline-style: none;
  }
  .active\:brightness-95:active {
    --tw-brightness: brightness(95%);
    filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
  }
  .disabled\:pointer-events-none:disabled {
    pointer-events: none;
  }
  .disabled\:opacity-50:disabled {
    opacity: 50%;
  }
  .dark\:border-0:where(.dark, .dark *) {
    border-style: var(--tw-border-style);
    border-width: 0px;
  }
  .dark\:border-zinc-950\/50:where(.dark, .dark *) {
    border-color: color-mix(in srgb, oklch(14.1% 0.005 285.823) 50%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-zinc-950) 50%, transparent);
    }
  }
  .dark\:bg-linear-to-t:where(.dark, .dark *) {
    --tw-gradient-position: to top;
    @supports (background-image: linear-gradient(in lab, red, red)) {
      --tw-gradient-position: to top in oklab;
    }
    background-image: linear-gradient(var(--tw-gradient-stops));
  }
  .dark\:from-amber-600\/75:where(.dark, .dark *) {
    --tw-gradient-from: color-mix(in srgb, oklch(66.6% 0.179 58.318) 75%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-amber-600) 75%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .dark\:from-blue-600\/75:where(.dark, .dark *) {
    --tw-gradient-from: color-mix(in srgb, oklch(54.6% 0.245 262.881) 75%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-blue-600) 75%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .dark\:from-cyan-600\/75:where(.dark, .dark *) {
    --tw-gradient-from: color-mix(in srgb, oklch(60.9% 0.126 221.723) 75%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-cyan-600) 75%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .dark\:from-emerald-600\/75:where(.dark, .dark *) {
    --tw-gradient-from: color-mix(in srgb, oklch(59.6% 0.145 163.225) 75%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-emerald-600) 75%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .dark\:from-fuchsia-600\/75:where(.dark, .dark *) {
    --tw-gradient-from: color-mix(in srgb, oklch(59.1% 0.293 322.896) 75%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-fuchsia-600) 75%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .dark\:from-gray-600\/75:where(.dark, .dark *) {
    --tw-gradient-from: color-mix(in srgb, oklch(44.6% 0.03 256.802) 75%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-gray-600) 75%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .dark\:from-green-600\/75:where(.dark, .dark *) {
    --tw-gradient-from: color-mix(in srgb, oklch(62.7% 0.194 149.214) 75%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-green-600) 75%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .dark\:from-indigo-600\/75:where(.dark, .dark *) {
    --tw-gradient-from: color-mix(in srgb, oklch(51.1% 0.262 276.966) 75%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-indigo-600) 75%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .dark\:from-lime-600\/75:where(.dark, .dark *) {
    --tw-gradient-from: color-mix(in srgb, oklch(64.8% 0.2 131.684) 75%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-lime-600) 75%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .dark\:from-neutral-600\/75:where(.dark, .dark *) {
    --tw-gradient-from: color-mix(in srgb, oklch(43.9% 0 none) 75%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-neutral-600) 75%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .dark\:from-orange-600\/75:where(.dark, .dark *) {
    --tw-gradient-from: color-mix(in srgb, oklch(64.6% 0.222 41.116) 75%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-orange-600) 75%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .dark\:from-pink-600\/75:where(.dark, .dark *) {
    --tw-gradient-from: color-mix(in srgb, oklch(59.2% 0.249 0.584) 75%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-pink-600) 75%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .dark\:from-purple-600\/75:where(.dark, .dark *) {
    --tw-gradient-from: color-mix(in srgb, oklch(55.8% 0.288 302.321) 75%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-purple-600) 75%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .dark\:from-red-600\/75:where(.dark, .dark *) {
    --tw-gradient-from: color-mix(in srgb, oklch(57.7% 0.245 27.325) 75%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-red-600) 75%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .dark\:from-rose-600\/75:where(.dark, .dark *) {
    --tw-gradient-from: color-mix(in srgb, oklch(58.6% 0.253 17.585) 75%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-rose-600) 75%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .dark\:from-sky-600\/75:where(.dark, .dark *) {
    --tw-gradient-from: color-mix(in srgb, oklch(58.8% 0.158 241.966) 75%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-sky-600) 75%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .dark\:from-slate-600\/75:where(.dark, .dark *) {
    --tw-gradient-from: color-mix(in srgb, oklch(44.6% 0.043 257.281) 75%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-slate-600) 75%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .dark\:from-stone-600\/75:where(.dark, .dark *) {
    --tw-gradient-from: color-mix(in srgb, oklch(44.4% 0.011 73.639) 75%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-stone-600) 75%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .dark\:from-teal-600\/75:where(.dark, .dark *) {
    --tw-gradient-from: color-mix(in srgb, oklch(60% 0.118 184.704) 75%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-teal-600) 75%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .dark\:from-violet-600\/75:where(.dark, .dark *) {
    --tw-gradient-from: color-mix(in srgb, oklch(54.1% 0.281 293.009) 75%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-violet-600) 75%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .dark\:from-yellow-600\/75:where(.dark, .dark *) {
    --tw-gradient-from: color-mix(in srgb, oklch(68.1% 0.162 75.834) 75%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-yellow-600) 75%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .dark\:from-zinc-100\/85:where(.dark, .dark *) {
    --tw-gradient-from: color-mix(in srgb, oklch(96.7% 0.001 286.375) 85%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-zinc-100) 85%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .dark\:from-zinc-700\/75:where(.dark, .dark *) {
    --tw-gradient-from: color-mix(in srgb, oklch(37% 0.013 285.805) 75%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-zinc-700) 75%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .dark\:to-zinc-100:where(.dark, .dark *) {
    --tw-gradient-to: var(--color-zinc-100);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .dark\:text-zinc-900:where(.dark, .dark *) {
    color: var(--color-zinc-900);
  }
  .dark\:\[text-shadow\:0_1px_0_rgb\(255\,255\,255\)\]:where(.dark, .dark *) {
    text-shadow: 0 1px 0 rgb(255,255,255);
  }
  .\[\&_svg\]\:pointer-events-none svg {
    pointer-events: none;
  }
  .\[\&_svg\]\:size-4 svg {
    width: calc(var(--spacing) * 4);
    height: calc(var(--spacing) * 4);
  }
  .\[\&_svg\]\:shrink-0 svg {
    flex-shrink: 0;
  }
}
:root {
  --background: #fff;
  --foreground: #111;
  --primary: #171717;
  --primary-foreground: #fff;
  --secondary: #eee;
  --secondary-foreground: #171717;
  --muted: #eee;
  --muted-foreground: #666;
  --accent: #eee;
  --accent-foreground: #171717;
  --border: #ddd;
  --input: #ddd;
  --ring: #777;
  --destructive: #dc2626;
  --destructive-foreground: #fff;
  --popover: #fff;
  --popover-foreground: #111;
  --success: #15803d;
  --success-foreground: #fff;
  --radius: .625rem;
  --hairline: 1px;
}
.dark {
  --background: #090909;
  --foreground: #fafafa;
  --primary: #fafafa;
  --primary-foreground: #171717;
  --secondary: #262626;
  --secondary-foreground: #fafafa;
  --muted: #262626;
  --muted-foreground: #a3a3a3;
  --accent: #262626;
  --accent-foreground: #fafafa;
  --border: #333;
  --input: #333;
  --popover: #171717;
  --popover-foreground: #fafafa;
}
:root {
  --radius: 0.625rem;
  --background: oklch(1 0 0);
  --foreground: oklch(0.145 0 0);
  --card: oklch(1 0 0);
  --card-foreground: oklch(0.145 0 0);
  --popover: oklch(1 0 0);
  --popover-foreground: oklch(0.145 0 0);
  --primary: oklch(0.205 0 0);
  --primary-foreground: oklch(0.985 0 0);
  --secondary: oklch(0.97 0 0);
  --secondary-foreground: oklch(0.205 0 0);
  --muted: oklch(0.97 0 0);
  --muted-foreground: oklch(0.556 0 0);
  --accent: oklch(0.97 0 0);
  --accent-foreground: oklch(0.205 0 0);
  --destructive: oklch(0.577 0.245 27.325);
  --border: oklch(0.922 0 0);
  --input: oklch(0.922 0 0);
  --ring: oklch(0.708 0 0);
  --chart-1: oklch(0.646 0.222 41.116);
  --chart-2: oklch(0.6 0.118 184.704);
  --chart-3: oklch(0.398 0.07 227.392);
  --chart-4: oklch(0.828 0.189 84.429);
  --chart-5: oklch(0.769 0.188 70.08);
  --sidebar: oklch(1 0 0);
  --sidebar-foreground: oklch(0.145 0 0);
  --sidebar-primary: oklch(0.205 0 0);
  --sidebar-primary-foreground: oklch(0.985 0 0);
  --sidebar-accent: oklch(0.97 0 0);
  --sidebar-accent-foreground: oklch(0.205 0 0);
  --sidebar-border: oklch(0.922 0 0);
  --sidebar-ring: oklch(0.708 0 0);
  --rotating-border-color: var(--color-neutral-200);
}
.dark {
  --background: oklch(0.1149 0 0);
  --foreground: oklch(0.985 0 0);
  --card: oklch(0.205 0 0);
  --card-foreground: oklch(0.985 0 0);
  --popover: oklch(0.205 0 0);
  --popover-foreground: oklch(0.985 0 0);
  --primary: oklch(0.922 0 0);
  --primary-foreground: oklch(0.205 0 0);
  --secondary: oklch(22.213% 0.00003 271.152);
  --secondary-foreground: oklch(0.985 0 0);
  --muted: oklch(0.269 0 0);
  --muted-foreground: oklch(0.708 0 0);
  --accent: oklch(0.269 0 0);
  --accent-foreground: oklch(0.985 0 0);
  --destructive: oklch(0.704 0.191 22.216);
  --border: oklch(1 0 0 / 10%);
  --input: oklch(1 0 0 / 15%);
  --ring: oklch(0.556 0 0);
  --chart-1: oklch(0.488 0.243 264.376);
  --chart-2: oklch(0.696 0.17 162.48);
  --chart-3: oklch(0.769 0.188 70.08);
  --chart-4: oklch(0.627 0.265 303.9);
  --chart-5: oklch(0.645 0.246 16.439);
  --sidebar: oklch(0.1149 0 0);
  --sidebar-foreground: oklch(0.985 0 0);
  --sidebar-primary: oklch(0.488 0.243 264.376);
  --sidebar-primary-foreground: oklch(0.985 0 0);
  --sidebar-accent: oklch(0.269 0 0);
  --sidebar-accent-foreground: oklch(0.985 0 0);
  --sidebar-border: oklch(1 0 0 / 10%);
  --sidebar-ring: oklch(0.556 0 0);
  --rotating-border-color: var(--muted);
}
.dark .shiki, .dark .shiki span {
  color: var(--shiki-dark) !important;
  background-color: #0f0f0f !important;
}
@property --tw-border-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}
@property --tw-gradient-position {
  syntax: "*";
  inherits: false;
}
@property --tw-gradient-from {
  syntax: "<color>";
  inherits: false;
  initial-value: #0000;
}
@property --tw-gradient-via {
  syntax: "<color>";
  inherits: false;
  initial-value: #0000;
}
@property --tw-gradient-to {
  syntax: "<color>";
  inherits: false;
  initial-value: #0000;
}
@property --tw-gradient-stops {
  syntax: "*";
  inherits: false;
}
@property --tw-gradient-via-stops {
  syntax: "*";
  inherits: false;
}
@property --tw-gradient-from-position {
  syntax: "<length-percentage>";
  inherits: false;
  initial-value: 0%;
}
@property --tw-gradient-via-position {
  syntax: "<length-percentage>";
  inherits: false;
  initial-value: 50%;
}
@property --tw-gradient-to-position {
  syntax: "<length-percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-font-weight {
  syntax: "*";
  inherits: false;
}
@property --tw-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-inset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-inset-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-inset-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-ring-color {
  syntax: "*";
  inherits: false;
}
@property --tw-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-inset-ring-color {
  syntax: "*";
  inherits: false;
}
@property --tw-inset-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-ring-inset {
  syntax: "*";
  inherits: false;
}
@property --tw-ring-offset-width {
  syntax: "<length>";
  inherits: false;
  initial-value: 0px;
}
@property --tw-ring-offset-color {
  syntax: "*";
  inherits: false;
  initial-value: #fff;
}
@property --tw-ring-offset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-duration {
  syntax: "*";
  inherits: false;
}
@property --tw-blur {
  syntax: "*";
  inherits: false;
}
@property --tw-brightness {
  syntax: "*";
  inherits: false;
}
@property --tw-contrast {
  syntax: "*";
  inherits: false;
}
@property --tw-grayscale {
  syntax: "*";
  inherits: false;
}
@property --tw-hue-rotate {
  syntax: "*";
  inherits: false;
}
@property --tw-invert {
  syntax: "*";
  inherits: false;
}
@property --tw-opacity {
  syntax: "*";
  inherits: false;
}
@property --tw-saturate {
  syntax: "*";
  inherits: false;
}
@property --tw-sepia {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-drop-shadow-size {
  syntax: "*";
  inherits: false;
}
@layer properties {
  @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
    *, ::before, ::after, ::backdrop {
      --tw-border-style: solid;
      --tw-gradient-position: initial;
      --tw-gradient-from: #0000;
      --tw-gradient-via: #0000;
      --tw-gradient-to: #0000;
      --tw-gradient-stops: initial;
      --tw-gradient-via-stops: initial;
      --tw-gradient-from-position: 0%;
      --tw-gradient-via-position: 50%;
      --tw-gradient-to-position: 100%;
      --tw-font-weight: initial;
      --tw-shadow: 0 0 #0000;
      --tw-shadow-color: initial;
      --tw-shadow-alpha: 100%;
      --tw-inset-shadow: 0 0 #0000;
      --tw-inset-shadow-color: initial;
      --tw-inset-shadow-alpha: 100%;
      --tw-ring-color: initial;
      --tw-ring-shadow: 0 0 #0000;
      --tw-inset-ring-color: initial;
      --tw-inset-ring-shadow: 0 0 #0000;
      --tw-ring-inset: initial;
      --tw-ring-offset-width: 0px;
      --tw-ring-offset-color: #fff;
      --tw-ring-offset-shadow: 0 0 #0000;
      --tw-duration: initial;
      --tw-blur: initial;
      --tw-brightness: initial;
      --tw-contrast: initial;
      --tw-grayscale: initial;
      --tw-hue-rotate: initial;
      --tw-invert: initial;
      --tw-opacity: initial;
      --tw-saturate: initial;
      --tw-sepia: initial;
      --tw-drop-shadow: initial;
      --tw-drop-shadow-color: initial;
      --tw-drop-shadow-alpha: 100%;
      --tw-drop-shadow-size: initial;
    }
  }
}