@layer reset, base, components, utilities;

/****************************************************************
* animation: var(--animate-fade-in) forwards;
*****************************************************************/

:root {
  --animate-fade-in: fade-in .5s var(--ease-3);
  --animate-fade-in-bloom: fade-in-bloom 2s var(--ease-3);
  --animate-fade-out: fade-out .5s var(--ease-3);
  --animate-fade-out-bloom: fade-out-bloom 2s var(--ease-3);
  --animate-scale-up: scale-up .5s var(--ease-3);
  --animate-scale-down: scale-down .5s var(--ease-3);
  --animate-slide-out-up: slide-out-up .5s var(--ease-3);
  --animate-slide-out-down: slide-out-down .5s var(--ease-3);
  --animate-slide-out-right: slide-out-right .5s var(--ease-3);
  --animate-slide-out-left: slide-out-left .5s var(--ease-3);
  --animate-slide-in-up: slide-in-up .5s var(--ease-3);
  --animate-slide-in-down: slide-in-down .5s var(--ease-3);
  --animate-slide-in-right: slide-in-right .5s var(--ease-3);
  --animate-slide-in-left: slide-in-left .5s var(--ease-3);
  --animate-shake-x: shake-x .75s var(--ease-out-5);
  --animate-shake-y: shake-y .75s var(--ease-out-5);
  --animate-shake-z: shake-z 1s var(--ease-in-out-3);
  --animate-spin: spin 2s linear infinite;
  --animate-ping: ping 5s var(--ease-out-3) infinite;
  --animate-blink: blink 1s var(--ease-out-3) infinite;
  --animate-float: float 3s var(--ease-in-out-3) infinite;
  --animate-bounce: bounce 2s var(--ease-squish-2) infinite;
  --animate-pulse: pulse 2s var(--ease-out-3) infinite;
}

@keyframes fade-in {
  to {
    opacity: 1
  }
}

@keyframes fade-in-bloom {
  0% {
    opacity: 0;
    filter: brightness(1) blur(20px)
  }

  10% {
    opacity: 1;
    filter: brightness(2) blur(10px)
  }

  100% {
    opacity: 1;
    filter: brightness(1) blur(0)
  }
}

@keyframes fade-out {
  to {
    opacity: 0
  }
}

@keyframes fade-out-bloom {
  100% {
    opacity: 0;
    filter: brightness(1) blur(20px)
  }

  10% {
    opacity: 1;
    filter: brightness(2) blur(10px)
  }

  0% {
    opacity: 1;
    filter: brightness(1) blur(0)
  }
}

@keyframes scale-up {
  to {
    transform: scale(1.25)
  }
}

@keyframes scale-down {
  to {
    transform: scale(.75)
  }
}

@keyframes slide-out-up {
  to {
    transform: translateY(-100%)
  }
}

@keyframes slide-out-down {
  to {
    transform: translateY(100%)
  }
}

@keyframes slide-out-right {
  to {
    transform: translateX(100%)
  }
}

@keyframes slide-out-left {
  to {
    transform: translateX(-100%)
  }
}

@keyframes slide-in-up {
  from {
    transform: translateY(100%)
  }
}

@keyframes slide-in-down {
  from {
    transform: translateY(-100%)
  }
}

@keyframes slide-in-right {
  from {
    transform: translateX(-100%)
  }
}

@keyframes slide-in-left {
  from {
    transform: translateX(100%)
  }
}

@keyframes shake-x {

  0%,
  100% {
    transform: translateX(0%)
  }

  20% {
    transform: translateX(-5%)
  }

  40% {
    transform: translateX(5%)
  }

  60% {
    transform: translateX(-5%)
  }

  80% {
    transform: translateX(5%)
  }
}

@keyframes shake-y {

  0%,
  100% {
    transform: translateY(0%)
  }

  20% {
    transform: translateY(-5%)
  }

  40% {
    transform: translateY(5%)
  }

  60% {
    transform: translateY(-5%)
  }

  80% {
    transform: translateY(5%)
  }
}

@keyframes shake-z {

  0%,
  100% {
    transform: rotate(0deg)
  }

  20% {
    transform: rotate(-2deg)
  }

  40% {
    transform: rotate(2deg)
  }

  60% {
    transform: rotate(-2deg)
  }

  80% {
    transform: rotate(2deg)
  }
}

@keyframes spin {
  to {
    transform: rotate(1turn)
  }
}

@keyframes ping {

  90%,
  100% {
    transform: scale(2);
    opacity: 0;
  }
}

@keyframes blink {

  0%,
  100% {
    opacity: 1
  }

  50% {
    opacity: .5
  }
}

@keyframes float {
  50% {
    transform: translateY(-25%)
  }
}

@keyframes bounce {
  25% {
    transform: translateY(-20%)
  }

  40% {
    transform: translateY(-3%)
  }

  0%,
  60%,
  100% {
    transform: translateY(0)
  }
}

@keyframes pulse {
  50% {
    transform: scale(.9, .9)
  }
}

@media (prefers-color-scheme: dark) {
  @keyframes fade-in-bloom {
    0% {
      opacity: 0;
      filter: brightness(1) blur(20px)
    }

    10% {
      opacity: 1;
      filter: brightness(0.5) blur(10px)
    }

    100% {
      opacity: 1;
      filter: brightness(1) blur(0)
    }
  }
}

@media (prefers-color-scheme: dark) {
  @keyframes fade-out-bloom {
    100% {
      opacity: 0;
      filter: brightness(1) blur(20px)
    }

    10% {
      opacity: 1;
      filter: brightness(0.5) blur(10px)
    }

    0% {
      opacity: 1;
      filter: brightness(1) blur(0)
    }
  }
}

:root {
  /****************************************************************
  * border-width: var(--border);
  *****************************************************************/
  --border: 1px;
  --border-2: 2px;
  --border-4: 4px;
  --border-8: 8px;

  /****************************************************************
  * border-radius: var(--rounded-sm);
  *****************************************************************/
  --rounded-xs: 0.125rem;
  /* 2px */
  --rounded-sm: 0.25rem;
  /* 4px */
  --rounded-md: 0.375rem;
  /* 6px */
  --rounded-lg: 0.5rem;
  /* 8px */
  --rounded-xl: 0.75rem;
  /* 12px */
  --rounded-2xl: 1rem;
  /* 16px */
  --rounded-3xl: 1.5rem;
  /* 24px */
  --rounded-full: 9999px;
}

:root {
  --slate-50: oklch(0.984 0.003 247.858);
  --slate-100: oklch(0.968 0.007 247.896);
  --slate-200: oklch(0.929 0.013 255.508);
  --slate-300: oklch(0.869 0.022 252.894);
  --slate-400: oklch(0.704 0.04 256.788);
  --slate-500: oklch(0.554 0.046 257.417);
  --slate-600: oklch(0.446 0.043 257.281);
  --slate-700: oklch(0.372 0.044 257.287);
  --slate-800: oklch(0.279 0.041 260.031);
  --slate-900: oklch(0.208 0.042 265.755);
  --slate-950: oklch(0.129 0.042 264.695);

  --gray-50: oklch(0.985 0.002 247.839);
  --gray-100: oklch(0.967 0.003 264.542);
  --gray-200: oklch(0.928 0.006 264.531);
  --gray-300: oklch(0.872 0.01 258.338);
  --gray-400: oklch(0.707 0.022 261.325);
  --gray-500: oklch(0.551 0.027 264.364);
  --gray-600: oklch(0.446 0.03 256.802);
  --gray-700: oklch(0.373 0.034 259.733);
  --gray-800: oklch(0.278 0.033 256.848);
  --gray-900: oklch(0.21 0.034 264.665);
  --gray-950: oklch(0.13 0.028 261.692);

  --zinc-50: oklch(0.985 0 0);
  --zinc-100: oklch(0.967 0.001 286.375);
  --zinc-200: oklch(0.92 0.004 286.32);
  --zinc-300: oklch(0.871 0.006 286.286);
  --zinc-400: oklch(0.705 0.015 286.067);
  --zinc-500: oklch(0.552 0.016 285.938);
  --zinc-600: oklch(0.442 0.017 285.786);
  --zinc-700: oklch(0.37 0.013 285.805);
  --zinc-800: oklch(0.274 0.006 286.033);
  --zinc-900: oklch(0.21 0.006 285.885);
  --zinc-950: oklch(0.141 0.005 285.823);

  --neutral-50: oklch(0.985 0 0);
  --neutral-100: oklch(0.97 0 0);
  --neutral-200: oklch(0.922 0 0);
  --neutral-300: oklch(0.87 0 0);
  --neutral-400: oklch(0.708 0 0);
  --neutral-500: oklch(0.556 0 0);
  --neutral-600: oklch(0.439 0 0);
  --neutral-700: oklch(0.371 0 0);
  --neutral-800: oklch(0.269 0 0);
  --neutral-900: oklch(0.205 0 0);
  --neutral-950: oklch(0.145 0 0);

  --stone-50: oklch(0.985 0.001 106.423);
  --stone-100: oklch(0.97 0.001 106.424);
  --stone-200: oklch(0.923 0.003 48.717);
  --stone-300: oklch(0.869 0.005 56.366);
  --stone-400: oklch(0.709 0.01 56.259);
  --stone-500: oklch(0.553 0.013 58.071);
  --stone-600: oklch(0.444 0.011 73.639);
  --stone-700: oklch(0.374 0.01 67.558);
  --stone-800: oklch(0.268 0.007 34.298);
  --stone-900: oklch(0.216 0.006 56.043);
  --stone-950: oklch(0.147 0.004 49.25);

  --red-50: oklch(0.971 0.013 17.38);
  --red-100: oklch(0.936 0.032 17.717);
  --red-200: oklch(0.885 0.062 18.334);
  --red-300: oklch(0.808 0.114 19.571);
  --red-400: oklch(0.704 0.191 22.216);
  --red-500: oklch(0.637 0.237 25.331);
  --red-600: oklch(0.577 0.245 27.325);
  --red-700: oklch(0.505 0.213 27.518);
  --red-800: oklch(0.444 0.177 26.899);
  --red-900: oklch(0.396 0.141 25.723);
  --red-950: oklch(0.258 0.092 26.042);

  --orange-50: oklch(0.98 0.016 73.684);
  --orange-100: oklch(0.954 0.038 75.164);
  --orange-200: oklch(0.901 0.076 70.697);
  --orange-300: oklch(0.837 0.128 66.29);
  --orange-400: oklch(0.75 0.183 55.934);
  --orange-500: oklch(0.705 0.213 47.604);
  --orange-600: oklch(0.646 0.222 41.116);
  --orange-700: oklch(0.553 0.195 38.402);
  --orange-800: oklch(0.47 0.157 37.304);
  --orange-900: oklch(0.408 0.123 38.172);
  --orange-950: oklch(0.266 0.079 36.259);

  --amber-50: oklch(0.987 0.022 95.277);
  --amber-100: oklch(0.962 0.059 95.617);
  --amber-200: oklch(0.924 0.12 95.746);
  --amber-300: oklch(0.879 0.169 91.605);
  --amber-400: oklch(0.828 0.189 84.429);
  --amber-500: oklch(0.769 0.188 70.08);
  --amber-600: oklch(0.666 0.179 58.318);
  --amber-700: oklch(0.555 0.163 48.998);
  --amber-800: oklch(0.473 0.137 46.201);
  --amber-900: oklch(0.414 0.112 45.904);
  --amber-950: oklch(0.279 0.077 45.635);

  --yellow-50: oklch(0.987 0.026 102.212);
  --yellow-100: oklch(0.973 0.071 103.193);
  --yellow-200: oklch(0.945 0.129 101.54);
  --yellow-300: oklch(0.905 0.182 98.111);
  --yellow-400: oklch(0.852 0.199 91.936);
  --yellow-500: oklch(0.795 0.184 86.047);
  --yellow-600: oklch(0.681 0.162 75.834);
  --yellow-700: oklch(0.554 0.135 66.442);
  --yellow-800: oklch(0.476 0.114 61.907);
  --yellow-900: oklch(0.421 0.095 57.708);
  --yellow-950: oklch(0.286 0.066 53.813);

  --lime-50: oklch(0.986 0.031 120.757);
  --lime-100: oklch(0.967 0.067 122.328);
  --lime-200: oklch(0.938 0.127 124.321);
  --lime-300: oklch(0.897 0.196 126.665);
  --lime-400: oklch(0.841 0.238 128.85);
  --lime-500: oklch(0.768 0.233 130.85);
  --lime-600: oklch(0.648 0.2 131.684);
  --lime-700: oklch(0.532 0.157 131.589);
  --lime-800: oklch(0.453 0.124 130.933);
  --lime-900: oklch(0.405 0.101 131.063);
  --lime-950: oklch(0.274 0.072 132.109);

  --green-50: oklch(0.982 0.018 155.826);
  --green-100: oklch(0.962 0.044 156.743);
  --green-200: oklch(0.925 0.084 155.995);
  --green-300: oklch(0.871 0.15 154.449);
  --green-400: oklch(0.792 0.209 151.711);
  --green-500: oklch(0.723 0.219 149.579);
  --green-600: oklch(0.627 0.194 149.214);
  --green-700: oklch(0.527 0.154 150.069);
  --green-800: oklch(0.448 0.119 151.328);
  --green-900: oklch(0.393 0.095 152.535);
  --green-950: oklch(0.266 0.065 152.934);

  --emerald-50: oklch(0.979 0.021 166.113);
  --emerald-100: oklch(0.95 0.052 163.051);
  --emerald-200: oklch(0.905 0.093 164.15);
  --emerald-300: oklch(0.845 0.143 164.978);
  --emerald-400: oklch(0.765 0.177 163.223);
  --emerald-500: oklch(0.696 0.17 162.48);
  --emerald-600: oklch(0.596 0.145 163.225);
  --emerald-700: oklch(0.508 0.118 165.612);
  --emerald-800: oklch(0.432 0.095 166.913);
  --emerald-900: oklch(0.378 0.077 168.94);
  --emerald-950: oklch(0.262 0.051 172.552);

  --teal-50: oklch(0.984 0.014 180.72);
  --teal-100: oklch(0.953 0.051 180.801);
  --teal-200: oklch(0.91 0.096 180.426);
  --teal-300: oklch(0.855 0.138 181.071);
  --teal-400: oklch(0.777 0.152 181.912);
  --teal-500: oklch(0.704 0.14 182.503);
  --teal-600: oklch(0.6 0.118 184.704);
  --teal-700: oklch(0.511 0.096 186.391);
  --teal-800: oklch(0.437 0.078 188.216);
  --teal-900: oklch(0.386 0.063 188.416);
  --teal-950: oklch(0.277 0.046 192.524);

  --cyan-50: oklch(0.984 0.019 200.873);
  --cyan-100: oklch(0.956 0.045 203.388);
  --cyan-200: oklch(0.917 0.08 205.041);
  --cyan-300: oklch(0.865 0.127 207.078);
  --cyan-400: oklch(0.789 0.154 211.53);
  --cyan-500: oklch(0.715 0.143 215.221);
  --cyan-600: oklch(0.609 0.126 221.723);
  --cyan-700: oklch(0.52 0.105 223.128);
  --cyan-800: oklch(0.45 0.085 224.283);
  --cyan-900: oklch(0.398 0.07 227.392);
  --cyan-950: oklch(0.302 0.056 229.695);

  --sky-50: oklch(0.977 0.013 236.62);
  --sky-100: oklch(0.951 0.026 236.824);
  --sky-200: oklch(0.901 0.058 230.902);
  --sky-300: oklch(0.828 0.111 230.318);
  --sky-400: oklch(0.746 0.16 232.661);
  --sky-500: oklch(0.685 0.169 237.323);
  --sky-600: oklch(0.588 0.158 241.966);
  --sky-700: oklch(0.5 0.134 242.749);
  --sky-800: oklch(0.443 0.11 240.79);
  --sky-900: oklch(0.391 0.09 240.876);
  --sky-950: oklch(0.293 0.066 243.157);

  --blue-50: oklch(0.97 0.014 254.604);
  --blue-100: oklch(0.932 0.032 255.585);
  --blue-200: oklch(0.882 0.059 254.128);
  --blue-300: oklch(0.809 0.105 251.813);
  --blue-400: oklch(0.707 0.165 254.624);
  --blue-500: oklch(0.623 0.214 259.815);
  --blue-600: oklch(0.546 0.245 262.881);
  --blue-700: oklch(0.488 0.243 264.376);
  --blue-800: oklch(0.424 0.199 265.638);
  --blue-900: oklch(0.379 0.146 265.522);
  --blue-950: oklch(0.282 0.091 267.935);

  --indigo-50: oklch(0.962 0.018 272.314);
  --indigo-100: oklch(0.93 0.034 272.788);
  --indigo-200: oklch(0.87 0.065 274.039);
  --indigo-300: oklch(0.785 0.115 274.713);
  --indigo-400: oklch(0.673 0.182 276.935);
  --indigo-500: oklch(0.585 0.233 277.117);
  --indigo-600: oklch(0.511 0.262 276.966);
  --indigo-700: oklch(0.457 0.24 277.023);
  --indigo-800: oklch(0.398 0.195 277.366);
  --indigo-900: oklch(0.359 0.144 278.697);
  --indigo-950: oklch(0.257 0.09 281.288);

  --violet-50: oklch(0.969 0.016 293.756);
  --violet-100: oklch(0.943 0.029 294.588);
  --violet-200: oklch(0.894 0.057 293.283);
  --violet-300: oklch(0.811 0.111 293.571);
  --violet-400: oklch(0.702 0.183 293.541);
  --violet-500: oklch(0.606 0.25 292.717);
  --violet-600: oklch(0.541 0.281 293.009);
  --violet-700: oklch(0.491 0.27 292.581);
  --violet-800: oklch(0.432 0.232 292.759);
  --violet-900: oklch(0.38 0.189 293.745);
  --violet-950: oklch(0.283 0.141 291.089);

  --purple-50: oklch(0.977 0.014 308.299);
  --purple-100: oklch(0.946 0.033 307.174);
  --purple-200: oklch(0.902 0.063 306.703);
  --purple-300: oklch(0.827 0.119 306.383);
  --purple-400: oklch(0.714 0.203 305.504);
  --purple-500: oklch(0.627 0.265 303.9);
  --purple-600: oklch(0.558 0.288 302.321);
  --purple-700: oklch(0.496 0.265 301.924);
  --purple-800: oklch(0.438 0.218 303.724);
  --purple-900: oklch(0.381 0.176 304.987);
  --purple-950: oklch(0.291 0.149 302.717);

  --fuchsia-50: oklch(0.977 0.017 320.058);
  --fuchsia-100: oklch(0.952 0.037 318.852);
  --fuchsia-200: oklch(0.903 0.076 319.62);
  --fuchsia-300: oklch(0.833 0.145 321.434);
  --fuchsia-400: oklch(0.74 0.238 322.16);
  --fuchsia-500: oklch(0.667 0.295 322.15);
  --fuchsia-600: oklch(0.591 0.293 322.896);
  --fuchsia-700: oklch(0.518 0.253 323.949);
  --fuchsia-800: oklch(0.452 0.211 324.591);
  --fuchsia-900: oklch(0.401 0.17 325.612);
  --fuchsia-950: oklch(0.293 0.136 325.661);

  --pink-50: oklch(0.971 0.014 343.198);
  --pink-100: oklch(0.948 0.028 342.258);
  --pink-200: oklch(0.899 0.061 343.231);
  --pink-300: oklch(0.823 0.12 346.018);
  --pink-400: oklch(0.718 0.202 349.761);
  --pink-500: oklch(0.656 0.241 354.308);
  --pink-600: oklch(0.592 0.249 0.584);
  --pink-700: oklch(0.525 0.223 3.958);
  --pink-800: oklch(0.459 0.187 3.815);
  --pink-900: oklch(0.408 0.153 2.432);
  --pink-950: oklch(0.284 0.109 3.907);

  --rose-50: oklch(0.969 0.015 12.422);
  --rose-100: oklch(0.941 0.03 12.58);
  --rose-200: oklch(0.892 0.058 10.001);
  --rose-300: oklch(0.81 0.117 11.638);
  --rose-400: oklch(0.712 0.194 13.428);
  --rose-500: oklch(0.645 0.246 16.439);
  --rose-600: oklch(0.586 0.253 17.585);
  --rose-700: oklch(0.514 0.222 16.935);
  --rose-800: oklch(0.455 0.188 13.697);
  --rose-900: oklch(0.41 0.159 10.272);
  --rose-950: oklch(0.271 0.105 12.094);
}

:root {
  /****************************************************************
  * box-shadow: var(--shadow-sm);
  ****************************************************************/
  --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --shadow-sm: 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);

  /****************************************************************
  * opacity: var(--opacity-25);
  ****************************************************************/
  --opacity-5: 0.05;
  --opacity-10: 0.1;
  --opacity-20: 0.2;
  --opacity-25: 0.25;
  --opacity-30: 0.3;
  --opacity-40: 0.4;
  --opacity-50: 0.5;
  --opacity-60: 0.6;
  --opacity-70: 0.7;
  --opacity-75: 0.75;
  --opacity-80: 0.8;
  --opacity-90: 0.9;
  --opacity-95: 0.95;
  --opacity-100: 1;
}

:root {
  /****************************************************************
  * filter|backdrop-filter: var(--blur-sm);
  *****************************************************************/
  --blur-none: blur(0);
  --blur-xs: blur(4px);
  --blur-sm: blur(8px);
  --blur-md: blur(12px);
  --blur-lg: blur(16px);
  --blur-xl: blur(24px);
  --blur-2xl: blur(40px);
  --blur-3xl: blur(64px);

  /****************************************************************
  * filter|backdrop-filter: var(--brightness-50);
  *****************************************************************/
  --brightness-0: brightness(0);
  --brightness-50: brightness(0.5);
  --brightness-75: brightness(0.75);
  --brightness-90: brightness(0.9);
  --brightness-95: brightness(0.95);
  --brightness-100: brightness(1);
  --brightness-105: brightness(1.05);
  --brightness-110: brightness(1.1);
  --brightness-125: brightness(1.25);
  --brightness-150: brightness(1.5);
  --brightness-200: brightness(2);

  /****************************************************************
  * filter|backdrop-filter: var(--contrast-50);
  *****************************************************************/
  --contrast-0: contrast(0);
  --contrast-50: contrast(0.5);
  --contrast-75: contrast(0.75);
  --contrast-100: contrast(1);
  --contrast-125: contrast(1.25);
  --contrast-150: contrast(1.5);
  --contrast-200: contrast(2);

  /****************************************************************
  * Drop Shadow
  * Variables for applying drop-shadow filters to an element.
  * filter: var(--drop-shadow);
  *****************************************************************/
  --drop-shadow-none: drop-shadow(0 0 #0000);
  --drop-shadow-sm: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.05));
  --drop-shadow: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1)) drop-shadow(0 1px 1px rgba(0, 0, 0, 0.06));
  --drop-shadow-md: drop-shadow(0 4px 3px rgba(0, 0, 0, 0.07)) drop-shadow(0 2px 2px rgba(0, 0, 0, 0.06));
  --drop-shadow-lg: drop-shadow(0 10px 8px rgba(0, 0, 0, 0.04)) drop-shadow(0 4px 3px rgba(0, 0, 0, 0.1));
  --drop-shadow-xl: drop-shadow(0 20px 13px rgba(0, 0, 0, 0.03)) drop-shadow(0 8px 5px rgba(0, 0, 0, 0.08));
  --drop-shadow-2xl: drop-shadow(0 25px 25px rgba(0, 0, 0, 0.15));

  /****************************************************************
  * Grayscale
  * Variables for applying grayscale filters to an element.
  * filter|backdrop-filter: var(--grayscale);
  *****************************************************************/
  --grayscale-0: grayscale(0);
  --grayscale: grayscale(100%);

  /****************************************************************
  * Hue Rotate
  * Variables for applying hue-rotate filters to an element.
  * filter|backdrop-filter: var(--hue-rotate-15);
  *****************************************************************/
  --hue-rotate-0: hue-rotate(0deg);
  --hue-rotate-15: hue-rotate(15deg);
  --hue-rotate-30: hue-rotate(30deg);
  --hue-rotate-60: hue-rotate(60deg);
  --hue-rotate-90: hue-rotate(90deg);
  --hue-rotate-180: hue-rotate(180deg);

  /****************************************************************
  * Invert
  * Variables for applying invert filters to an element.
  * filter|backdrop-filter: var(--invert);
  *****************************************************************/
  --invert-0: invert(0);
  --invert: invert(100%);

  /****************************************************************
  * Saturate
  * Variables for applying saturation filters to an element.
  * filter|backdrop-filter: var(--saturate-50);
  *****************************************************************/
  --saturate-0: saturate(0);
  --saturate-50: saturate(0.5);
  --saturate-100: saturate(1);
  --saturate-150: saturate(1.5);
  --saturate-200: saturate(2);

  /****************************************************************
  * Sepia
  * Variables for applying sepia filters to an element.
  * filter|backdrop-filter: var(--sepia);
  *****************************************************************/
  --sepia-0: sepia(0);
  --sepia: sepia(100%);

  /****************************************************************
  * Opacity
  * Utilities for applying backdrop opacity filters to an element.
  * backdrop-filter: var(--alpha-45);
  *****************************************************************/
  --alpha-0: opacity(0);
  --alpha-5: opacity(0.05);
  --alpha-10: opacity(0.1);
  --alpha-15: opacity(0.15);
  --alpha-20: opacity(0.2);
  --alpha-25: opacity(0.25);
  --alpha-30: opacity(0.3);
  --alpha-35: opacity(0.35);
  --alpha-40: opacity(0.4);
  --alpha-45: opacity(0.45);
  --alpha-50: opacity(0.5);
  --alpha-55: opacity(0.55);
  --alpha-60: opacity(0.6);
  --alpha-65: opacity(0.65);
  --alpha-70: opacity(0.7);
  --alpha-75: opacity(0.75);
  --alpha-80: opacity(0.8);
  --alpha-85: opacity(0.85);
  --alpha-90: opacity(0.9);
  --alpha-95: opacity(0.95);
  --alpha-100: opacity(1);
}

:root {
  /****************************************************************
  * Fixed Size
  *****************************************************************/
  --size-0_5: 0.125rem;
  /* 2px */
  --size-1: 0.25rem;
  /* 4px */
  --size-1_5: 0.375rem;
  /* 6px */
  --size-2: 0.5rem;
  /* 8px */
  --size-2_5: 0.625rem;
  /* 10px */
  --size-3: 0.75rem;
  /* 12px */
  --size-3_5: 0.875rem;
  /* 14px */
  --size-4: 1rem;
  /* 16px */
  --size-5: 1.25rem;
  /* 20px */
  --size-6: 1.5rem;
  /* 24px */
  --size-7: 1.75rem;
  /* 28px */
  --size-8: 2rem;
  /* 32px */
  --size-9: 2.25rem;
  /* 36px */
  --size-10: 2.5rem;
  /* 40px */
  --size-11: 2.75rem;
  /* 44px */
  --size-12: 3rem;
  /* 48px */
  --size-14: 3.5rem;
  /* 56px */
  --size-16: 4rem;
  /* 64px */
  --size-20: 5rem;
  /* 80px */
  --size-24: 6rem;
  /* 96px */
  --size-28: 7rem;
  /* 112px */
  --size-32: 8rem;
  /* 128px */
  --size-36: 9rem;
  /* 144px */
  --size-40: 10rem;
  /* 160px */
  --size-44: 11rem;
  /* 176px */
  --size-48: 12rem;
  /* 192px */
  --size-52: 13rem;
  /* 208px */
  --size-56: 14rem;
  /* 224px */
  --size-60: 15rem;
  /* 240px */
  --size-64: 16rem;
  /* 256px */
  --size-72: 18rem;
  /* 288px */
  --size-80: 20rem;
  /* 320px */
  --size-96: 24rem;
  /* 384px */

  /****************************************************************
  * Percentual Size
  *****************************************************************/
  --size-1-2: 50%;
  --size-1-3: 33.333333%;
  --size-2-3: 66.666667%;
  --size-1-4: 25%;
  --size-2-4: 50%;
  --size-3-4: 75%;
  --size-1-5: 20%;
  --size-2-5: 40%;
  --size-3-5: 60%;
  --size-4-5: 80%;
  --size-1-6: 16.666667%;
  --size-2-6: 33.333333%;
  --size-3-6: 50%;
  --size-4-6: 66.666667%;
  --size-5-6: 83.333333%;
  --size-1-12: 8.333333%;
  --size-2-12: 16.666667%;
  --size-3-12: 25%;
  --size-4-12: 33.333333%;
  --size-5-12: 41.666667%;
  --size-6-12: 50%;
  --size-7-12: 58.333333%;
  --size-8-12: 66.666667%;
  --size-9-12: 75%;
  --size-10-12: 83.333333%;
  --size-11-12: 91.666667%;
  --size-full: 100%;

  /****************************************************************
  * Max Inline Sizes
  *****************************************************************/
  --max-i-3xs: 16rem;
  /* 256px */
  --max-i-2xs: 18rem;
  /* 288px */
  --max-i-xs: 20rem;
  /* 320px */
  --max-i-sm: 24rem;
  /* 384px */
  --max-i-md: 28rem;
  /* 448px */
  --max-i-lg: 32rem;
  /* 512px */
  --max-i-xl: 36rem;
  /* 576px */
  --max-i-2xl: 42rem;
  /* 672px */
  --max-i-3xl: 48rem;
  /* 768px */
  --max-i-4xl: 56rem;
  /* 896px */
  --max-i-5xl: 64rem;
  /* 1024px */
  --max-i-6xl: 72rem;
  /* 1152px */
  --max-i-7xl: 80rem;
  /* 1280px */

  /****************************************************************
  * Aspect Ratio
  *****************************************************************/
  --aspect-square: 1/1;
  --aspect-widescreen: 16/9;

  /****************************************************************
  * Breakpoints
  *****************************************************************/
  --breakpoint-sm: 40rem;
  /* Mobile 640px */
  --breakpoint-md: 48rem;
  /* Tablet 768px */
  --breakpoint-lg: 64rem;
  /* Laptop 1024px */
  --breakpoint-xl: 80rem;
  /* Desktop 1280px */
}

:root {
  /****************************************************************
  * transform: var(--scale-100);
  *****************************************************************/
  --scale-50: scale(0.50);
  --scale-75: scale(0.75);
  --scale-90: scale(0.90);
  --scale-95: scale(0.95);
  --scale-100: scale(1);
  --scale-105: scale(1.05);
  --scale-110: scale(1.10);
  --scale-125: scale(1.25);
  --scale-150: scale(1.50);

  /****************************************************************
  * transform: var(--rotate-45);
  *****************************************************************/
  --rotate-0: rotate(0deg);
  --rotate-1: rotate(1deg);
  --rotate-2: rotate(2deg);
  --rotate-3: rotate(3deg);
  --rotate-6: rotate(6deg);
  --rotate-12: rotate(12deg);
  --rotate-45: rotate(45deg);
  --rotate-90: rotate(90deg);
  --rotate-180: rotate(180deg);

  /****************************************************************
  * transform: var(--skew-x-3);
  *****************************************************************/
  --skew-x-0: skewX(0deg);
  --skew-y-0: skewY(0deg);
  --skew-x-1: skewX(1deg);
  --skew-y-1: skewY(1deg);
  --skew-x-2: skewX(2deg);
  --skew-y-2: skewY(2deg);
  --skew-x-3: skewX(3deg);
  --skew-y-3: skewY(3deg);
  --skew-x-6: skewX(6deg);
  --skew-y-6: skewY(6deg);
  --skew-x-12: skewX(12deg);
  --skew-y-12: skewY(12deg);
}

:root {
  /****************************************************************
  * transition-property: var(--transition);
  *****************************************************************/
  --transition: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, translate, scale, rotate, filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
  --transition-colors: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke;
  --transition-transform: transform, translate, scale, rotate;

  /****************************************************************
  * transition-duration|transition-delay: var(--time-75);
  *****************************************************************/
  --time-75: 75ms;
  --time-100: 100ms;
  --time-150: 150ms;
  --time-200: 200ms;
  --time-300: 300ms;
  --time-500: 500ms;
  --time-700: 700ms;
  --time-1000: 1000ms;

  /****************************************************************
  * transition-timing-function: var(--ease-3);
  *****************************************************************/
  --ease-1: cubic-bezier(.25, 0, .5, 1);
  --ease-2: cubic-bezier(.25, 0, .4, 1);
  --ease-3: cubic-bezier(.25, 0, .3, 1);
  --ease-4: cubic-bezier(.25, 0, .2, 1);
  --ease-5: cubic-bezier(.25, 0, .1, 1);

  --ease-in-1: cubic-bezier(.25, 0, 1, 1);
  --ease-in-2: cubic-bezier(.50, 0, 1, 1);
  --ease-in-3: cubic-bezier(.70, 0, 1, 1);
  --ease-in-4: cubic-bezier(.90, 0, 1, 1);
  --ease-in-5: cubic-bezier(1, 0, 1, 1);

  --ease-out-1: cubic-bezier(0, 0, .75, 1);
  --ease-out-2: cubic-bezier(0, 0, .50, 1);
  --ease-out-3: cubic-bezier(0, 0, .3, 1);
  --ease-out-4: cubic-bezier(0, 0, .1, 1);
  --ease-out-5: cubic-bezier(0, 0, 0, 1);

  --ease-in-out-1: cubic-bezier(.1, 0, .9, 1);
  --ease-in-out-2: cubic-bezier(.3, 0, .7, 1);
  --ease-in-out-3: cubic-bezier(.5, 0, .5, 1);
  --ease-in-out-4: cubic-bezier(.7, 0, .3, 1);
  --ease-in-out-5: cubic-bezier(.9, 0, .1, 1);

  --ease-elastic-out-1: cubic-bezier(.5, .75, .75, 1.25);
  --ease-elastic-out-2: cubic-bezier(.5, 1, .75, 1.25);
  --ease-elastic-out-3: cubic-bezier(.5, 1.25, .75, 1.25);
  --ease-elastic-out-4: cubic-bezier(.5, 1.5, .75, 1.25);
  --ease-elastic-out-5: cubic-bezier(.5, 1.75, .75, 1.25);

  --ease-elastic-in-1: cubic-bezier(.5, -0.25, .75, 1);
  --ease-elastic-in-2: cubic-bezier(.5, -0.50, .75, 1);
  --ease-elastic-in-3: cubic-bezier(.5, -0.75, .75, 1);
  --ease-elastic-in-4: cubic-bezier(.5, -1.00, .75, 1);
  --ease-elastic-in-5: cubic-bezier(.5, -1.25, .75, 1);

  --ease-elastic-in-out-1: cubic-bezier(.5, -.1, .1, 1.5);
  --ease-elastic-in-out-2: cubic-bezier(.5, -.3, .1, 1.5);
  --ease-elastic-in-out-3: cubic-bezier(.5, -.5, .1, 1.5);
  --ease-elastic-in-out-4: cubic-bezier(.5, -.7, .1, 1.5);
  --ease-elastic-in-out-5: cubic-bezier(.5, -.9, .1, 1.5);

  --ease-spring-1: linear(0, 0.006, 0.025 2.8%, 0.101 6.1%, 0.539 18.9%, 0.721 25.3%, 0.849 31.5%, 0.937 38.1%, 0.968 41.8%, 0.991 45.7%, 1.006 50.1%, 1.015 55%, 1.017 63.9%, 1.001);
  --ease-spring-2: linear(0, 0.007, 0.029 2.2%, 0.118 4.7%, 0.625 14.4%, 0.826 19%, 0.902, 0.962, 1.008 26.1%, 1.041 28.7%, 1.064 32.1%, 1.07 36%, 1.061 40.5%, 1.015 53.4%, 0.999 61.6%, 0.995 71.2%, 1);
  --ease-spring-3: linear(0, 0.009, 0.035 2.1%, 0.141 4.4%, 0.723 12.9%, 0.938 16.7%, 1.017, 1.077, 1.121, 1.149 24.3%, 1.159, 1.163, 1.161, 1.154 29.9%, 1.129 32.8%, 1.051 39.6%, 1.017 43.1%, 0.991, 0.977 51%, 0.974 53.8%, 0.975 57.1%, 0.997 69.8%, 1.003 76.9%, 1);
  --ease-spring-4: linear(0, 0.009, 0.037 1.7%, 0.153 3.6%, 0.776 10.3%, 1.001, 1.142 16%, 1.185, 1.209 19%, 1.215 19.9% 20.8%, 1.199, 1.165 25%, 1.056 30.3%, 1.008 33%, 0.973, 0.955 39.2%, 0.953 41.1%, 0.957 43.3%, 0.998 53.3%, 1.009 59.1% 63.7%, 0.998 78.9%, 1);
  --ease-spring-5: linear(0, 0.01, 0.04 1.6%, 0.161 3.3%, 0.816 9.4%, 1.046, 1.189 14.4%, 1.231, 1.254 17%, 1.259, 1.257 18.6%, 1.236, 1.194 22.3%, 1.057 27%, 0.999 29.4%, 0.955 32.1%, 0.942, 0.935 34.9%, 0.933, 0.939 38.4%, 1 47.3%, 1.011, 1.017 52.6%, 1.016 56.4%, 1 65.2%, 0.996 70.2%, 1.001 87.2%, 1);

  --ease-bounce-1: linear(0, 0.004, 0.016, 0.035, 0.063, 0.098, 0.141, 0.191, 0.25, 0.316, 0.391 36.8%, 0.563, 0.766, 1 58.8%, 0.946, 0.908 69.1%, 0.895, 0.885, 0.879, 0.878, 0.879, 0.885, 0.895, 0.908 89.7%, 0.946, 1);
  --ease-bounce-2: linear(0, 0.004, 0.016, 0.035, 0.063, 0.098, 0.141 15.1%, 0.25, 0.391, 0.562, 0.765, 1, 0.892 45.2%, 0.849, 0.815, 0.788, 0.769, 0.757, 0.753, 0.757, 0.769, 0.788, 0.815, 0.85, 0.892 75.2%, 1 80.2%, 0.973, 0.954, 0.943, 0.939, 0.943, 0.954, 0.973, 1);
  --ease-bounce-3: linear(0, 0.004, 0.016, 0.035, 0.062, 0.098, 0.141 11.4%, 0.25, 0.39, 0.562, 0.764, 1 30.3%, 0.847 34.8%, 0.787, 0.737, 0.699, 0.672, 0.655, 0.65, 0.656, 0.672, 0.699, 0.738, 0.787, 0.847 61.7%, 1 66.2%, 0.946, 0.908, 0.885 74.2%, 0.879, 0.878, 0.879, 0.885 79.5%, 0.908, 0.946, 1 87.4%, 0.981, 0.968, 0.96, 0.957, 0.96, 0.968, 0.981, 1);
  --ease-bounce-4: linear(0, 0.004, 0.016 3%, 0.062, 0.141, 0.25, 0.391, 0.562 18.2%, 1 24.3%, 0.81, 0.676 32.3%, 0.629, 0.595, 0.575, 0.568, 0.575, 0.595, 0.629, 0.676 48.2%, 0.811, 1 56.2%, 0.918, 0.86, 0.825, 0.814, 0.825, 0.86, 0.918, 1 77.2%, 0.94 80.6%, 0.925, 0.92, 0.925, 0.94 87.5%, 1 90.9%, 0.974, 0.965, 0.974, 1);
  --ease-bounce-5: linear(0, 0.004, 0.016 2.5%, 0.063, 0.141, 0.25 10.1%, 0.562, 1 20.2%, 0.783, 0.627, 0.534 30.9%, 0.511, 0.503, 0.511, 0.534 38%, 0.627, 0.782, 1 48.7%, 0.892, 0.815, 0.769 56.3%, 0.757, 0.753, 0.757, 0.769 61.3%, 0.815, 0.892, 1 68.8%, 0.908 72.4%, 0.885, 0.878, 0.885, 0.908 79.4%, 1 83%, 0.954 85.5%, 0.943, 0.939, 0.943, 0.954 90.5%, 1 93%, 0.977, 0.97, 0.977, 1);
}

:root {
  /****************************************************************
  * font-size: var(--text-xs);
  *****************************************************************/
  --text-xs: 0.75rem;
  /* 12px */
  --text-sm: 0.875rem;
  /* 14px */
  --text-base: 1rem;
  /* 16px */
  --text-lg: 1.125rem;
  /* 18px */
  --text-xl: 1.25rem;
  /* 20px */
  --text-2xl: 1.5rem;
  /* 24px */
  --text-3xl: 1.875rem;
  /* 30px */
  --text-4xl: 2.25rem;
  /* 36px */
  --text-5xl: 3rem;
  /* 48px */
  --text-6xl: 3.75rem;
  /* 60px */
  --text-7xl: 4.5rem;
  /* 72px */
  --text-8xl: 6rem;
  /* 96px */
  --text-9xl: 8rem;
  /* 128px */

  --text-fluid-xs: clamp(0.75rem, 0.64rem + 0.57vw, 1rem);
  /* 12px..16px */
  --text-fluid-sm: clamp(0.875rem, 0.761rem + 0.568vw, 1.125rem);
  /* 14px..18px */
  --text-fluid-base: clamp(1rem, 0.89rem + 0.57vw, 1.25rem);
  /* 16px..20px */
  --text-fluid-lg: clamp(1.125rem, 0.955rem + 0.852vw, 1.5rem);
  /* 18px..24px */
  --text-fluid-xl: clamp(1.25rem, 0.966rem + 1.42vw, 1.875rem);
  /* 20px..30px */
  --text-fluid-2xl: clamp(1.5rem, 1.16rem + 1.7vw, 2.25rem);
  /* 24px..36px */
  --text-fluid-3xl: clamp(1.875rem, 1.364rem + 2.557vw, 3rem);
  /* 30px..48px */
  --text-fluid-4xl: clamp(2.25rem, 1.57rem + 3.41vw, 3.75rem);
  /* 36px..60px */
  --text-fluid-5xl: clamp(3rem, 2.32rem + 3.41vw, 4.5rem);
  /* 48px..72px */
  --text-fluid-6xl: clamp(3.75rem, 2.73rem + 5.11vw, 6rem);
  /* 60px..96px */
  --text-fluid-7xl: clamp(4.5rem, 2.91rem + 7.95vw, 8rem);
  /* 72px..128px */

  /****************************************************************
  * font-weight: var(--font-hairline);
  *****************************************************************/
  --font-thin: 100;
  --font-extralight: 200;
  --font-light: 300;
  --font-normal: 400;
  --font-medium: 500;
  --font-semibold: 600;
  --font-bold: 700;
  --font-extrabold: 800;
  --font-black: 900;

  /****************************************************************
  * line-height: var(--leading-tight);
  *****************************************************************/
  --leading-none: 1;
  --leading-tight: 1.25;
  --leading-snug: 1.375;
  --leading-normal: 1.5;
  --leading-relaxed: 1.625;
  --leading-loose: 2;
  --leading-3: .75rem;
  /* 12px */
  --leading-4: 1rem;
  /* 16px */
  --leading-5: 1.25rem;
  /* 20px */
  --leading-6: 1.5rem;
  /* 24px */
  --leading-7: 1.75rem;
  /* 28px */
  --leading-8: 2rem;
  /* 32px */
  --leading-9: 2.25rem;
  /* 36px */
  --leading-10: 2.5rem;
  /* 40px */

  /****************************************************************
  * font-family: var(--font-sans);
  *****************************************************************/
  --font-system-ui: system-ui, sans-serif;
  --font-transitional: Charter, Bitstream Charter, Sitka Text, Cambria, serif;
  --font-old-style: Iowan Old Style, Palatino Linotype, URW Palladio L, P052, serif;
  --font-humanist: Seravek, Gill Sans Nova, Ubuntu, Calibri, DejaVu Sans, source-sans-pro, sans-serif;
  --font-geometric-humanist: Avenir, Montserrat, Corbel, URW Gothic, source-sans-pro, sans-serif;
  --font-classical-humanist: Optima, Candara, Noto Sans, source-sans-pro, sans-serif;
  --font-neo-grotesque: Inter, Roboto, Helvetica Neue, Arial Nova, Nimbus Sans, Arial, sans-serif;
  --font-monospace-slab-serif: Nimbus Mono PS, Courier New, monospace;
  --font-monospace-code: Dank Mono, Operator Mono, Inconsolata, Fira Mono, ui-monospace, SF Mono, Monaco, Droid Sans Mono, Source Code Pro, Cascadia Code, Menlo, Consolas, DejaVu Sans Mono, monospace;
  --font-industrial: Bahnschrift, DIN Alternate, Franklin Gothic Medium, Nimbus Sans Narrow, sans-serif-condensed, sans-serif;
  --font-rounded-sans: ui-rounded, Hiragino Maru Gothic ProN, Quicksand, Comfortaa, Manjari, Arial Rounded MT, Arial Rounded MT Bold, Calibri, source-sans-pro, sans-serif;
  --font-slab-serif: Rockwell, Rockwell Nova, Roboto Slab, DejaVu Serif, Sitka Small, serif;
  --font-antique: Superclarendon, Bookman Old Style, URW Bookman, URW Bookman L, Georgia Pro, Georgia, serif;
  --font-didone: Didot, Bodoni MT, Noto Serif Display, URW Palladio L, P052, Sylfaen, serif;
  --font-handwritten: Segoe Print, Bradley Hand, Chilanka, TSCu_Comic, casual, cursive;

  /****************************************************************
  * letter-spacing: var(--tracking-tighter);
  *****************************************************************/
  --tracking-tighter: -0.05em;
  --tracking-tight: -0.025em;
  --tracking-normal: 0em;
  --tracking-wide: 0.025em;
  --tracking-wider: 0.05em;
  --tracking-widest: 0.1em;
}
