*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*//*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: #e5e7eb; /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -moz-tab-size: 4; /* 3 */
  -o-tab-size: 4;
     tab-size: 4; /* 3 */
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */
  font-feature-settings: normal; /* 5 */
  font-variation-settings: normal; /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0; /* 1 */
  line-height: inherit; /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: var(--font-mono), monospace; /* 1 */
  font-feature-settings: normal; /* 2 */
  font-variation-settings: normal; /* 3 */
  font-size: 1em; /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  font-size: 100%; /* 1 */
  font-weight: inherit; /* 1 */
  line-height: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button; /* 1 */
  background-color: transparent; /* 2 */
  background-image: none; /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/
dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/
:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */
[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}
  :root {
    --font-display: "Orbitron", "Space Grotesk", sans-serif;
    --font-wordmark: "Michroma", "Orbitron", sans-serif;
    --font-body: "Inter", "DM Sans", sans-serif;
    --font-mono: "JetBrains Mono", monospace;
    --radius: 0.375rem;

    /* Dark-first "Molten Infinity" palette (ENGINE mascot brand) — true
       near-black void, hotter molten-orange energy, platinum-white accent,
       metallic silver-grey titanium surfaces. Neutrals sit at hue ~45 (warm
       graphite) so the whole deck reads as hot metal on black, not cool grey. */
    /* ENGINE art direction: pure black #050505 void, white text */
    --background: 0.115 0 0;
    --foreground: 0.985 0 0;
    --card: 0.16 0.003 270;
    --card-foreground: 0.985 0 0;
    --popover: 0.17 0.003 270;
    --popover-foreground: 0.97 0.004 60;

    /* Molten orange — the ENGINE energy signal (hotter, more saturated) */
    /* #FF7A00 */
    --primary: 0.723 0.19 50.5;
    --primary-foreground: 0.115 0 0;

    --secondary: 0.21 0.005 265;
    --secondary-foreground: 0.844 0.008 260.7;
    --muted: 0.2 0.004 265;
    --muted-foreground: 0.68 0.01 261.8;

    /* Platinum white — the high-contrast brand accent (mascot gloves/sneakers).
       Warm-neutral white, not pure #fff, so it sits in the molten family. */
    --accent: 0.94 0.008 70;
    --accent-foreground: 0.14 0.015 46;

    --destructive: 0.6 0.22 25;
    --destructive-foreground: 0.96 0.008 25;

    --success: 0.73 0.17 152;
    --success-foreground: 0.12 0.02 152;
    --warning: 0.8 0.16 75;

    --border: 0.27 0.006 265;
    --input: 0.27 0.006 265;
    --ring: 0.723 0.19 50.5;

    --chart-1: 0.72 0.212 46;
    --chart-2: 0.94 0.008 70;
    --chart-3: 0.73 0.17 152;
    --chart-4: 0.8 0.16 75;
    --chart-5: 0.6 0.22 25;

    --sidebar: 0.11 0.007 45;
    --sidebar-foreground: 0.97 0.004 60;
    --sidebar-primary: 0.72 0.212 46;
    --sidebar-primary-foreground: 0.13 0.02 46;
    --sidebar-accent: 0.2 0.01 45;
    --sidebar-accent-foreground: 0.9 0.005 60;
    --sidebar-border: 0.25 0.011 45;
    --sidebar-ring: 0.72 0.212 46;

    /* Molten energy gradient — primary actions, hero accents */
    --gradient-primary: linear-gradient(
      135deg,
      var(--engine-orange-glow),
      var(--engine-orange)
    );
    /* Platinum core gradient — white-hot infinity-core highlights */
    --gradient-core: linear-gradient(
      135deg,
      oklch(0.99 0.006 80),
      oklch(0.86 0.02 62)
    );
    /* Titanium plate wash — section and card backdrops */
    --gradient-subtle: linear-gradient(
      180deg,
      oklch(0.17 0.009 45 / 0.7),
      oklch(0.11 0.007 45 / 0.2)
    );
    /* Die-cast metal bevel — 3D brand mark + icon tiles (top light, bottom shade) */
    --gradient-metal: linear-gradient(
      160deg,
      oklch(0.4 0.008 50),
      oklch(0.2 0.008 45) 55%,
      oklch(0.1 0.006 45)
    );
    /* Emissive core glass — the molten infinity orb interior */
    --gradient-emissive: radial-gradient(
      circle at 50% 42%,
      oklch(0.94 0.14 78),
      oklch(0.72 0.212 46) 55%,
      oklch(0.5 0.19 36) 100%
    );
    /* Glass panel — frosted futuristic surface for header, cards, consoles */
    --gradient-glass: linear-gradient(
      160deg,
      oklch(0.2 0.01 45 / 0.72),
      oklch(0.12 0.007 45 / 0.55)
    );
    /* Depth field — deep-space backdrop behind every route */
    --gradient-depth: radial-gradient(
        120% 90% at 50% -10%,
        oklch(0.94 0.008 70 / 0.07),
        transparent 55%
      ),
      radial-gradient(
        100% 80% at 50% 115%,
        oklch(0.72 0.212 46 / 0.18),
        transparent 60%
      ), linear-gradient(180deg, oklch(0.1 0.007 45), oklch(0.06 0.005 48));
    /* Brand-asset material tokens — shared by 3D mark, mascot and icon set */
    --brand-bevel-light: 0.46 0.008 50;
    --brand-bevel-shade: 0.06 0.005 45;
    --brand-core: 0.75 0.212 52;
    --brand-core-hot: 0.93 0.15 78;
    --brand-rim: 0.95 0.01 72;
    /* Mascot-brand tokens — the ENGINE character's signature materials */
    --brand-orb: 0.8 0.2 55;
    --brand-orb-hot: 0.96 0.13 82;
    --brand-platinum: 0.95 0.006 75;
    --brand-pixel: 0.1 0.005 45;
    --brand-ember: 0.7 0.19 44;
    /* 3D-first stage tokens — WebGL surfaces and their CSS fallback share these */
    --stage-void: 0.05 0.005 48;
    --stage-vignette: 0.03 0.004 50;
    --stage-horizon: 0.72 0.212 46;
    --stage-zenith: 0.95 0.01 72;
    /* Milestone-flight tokens — the 1M-MCap track, its marker and arrival pose.
       Shared by the WebGL flight scene and its CSS fallback so both read alike. */
    --flight-track: 0.29 0.014 45;
    --flight-track-hot: 0.72 0.212 46;
    --flight-marker: 0.95 0.01 72;
    --flight-thruster: 0.88 0.17 72;
    --flight-arrival: 0.78 0.19 148;
    --flight-grid: 0.23 0.011 45;
    --transition-smooth: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    /* Motion tokens — one choreographed storyboard, not scattered effects */
    --ease-ignite: cubic-bezier(0.16, 1, 0.3, 1);
    --ease-settle: cubic-bezier(0.4, 0, 0.2, 1);
    --duration-fast: 150ms;
    --duration-base: 220ms;
    --duration-slow: 320ms;
    --stagger-step: 55ms;

    /* ---------------------------------------------------------------
       ENGINE design system (Round 1). Raw brand values live here only;
       components consume them through the utilities below.
       --------------------------------------------------------------- */
    --engine-black: #050505;
    --engine-orange: #ff7a00;
    --engine-orange-glow: #ffa53d;
    --engine-steel: #c9ccd1;
    --engine-steel-dark: #8a8e95;
    --engine-white: #ffffff;
    --engine-hairline: rgb(255 122 0 / 0.22);
    --engine-hairline-hot: rgb(255 140 30 / 0.6);
    --engine-glow-sm: 0 0 0 1px rgb(255 122 0 / 0.35), 0 0 18px -4px
      rgb(255 122 0 / 0.55);
    --engine-glow-lg: 0 0 0 1px rgb(255 140 30 / 0.55), 0 0 32px -6px
      rgb(255 122 0 / 0.7), 0 0 80px -20px rgb(255 165 61 / 0.5);
    --engine-steel-gradient: linear-gradient(
      180deg,
      #e3e5e8 0%,
      var(--engine-steel) 22%,
      var(--engine-steel-dark) 58%,
      #4b4e53 100%
    );
    /* Spacing scale (4px base) */
    --space-1: 0.25rem;
    --space-2: 0.5rem;
    --space-3: 0.75rem;
    --space-4: 1rem;
    --space-6: 1.5rem;
    --space-8: 2rem;
    --space-12: 3rem;
    --space-16: 4rem;
    --space-24: 6rem;
    /* Radii */
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 16px;
    --radius-xl: 24px;
    --radius-pill: 9999px;
  }

  .light {
    --background: 0.98 0.003 60;
    --foreground: 0.16 0.008 45;
    --card: 1 0.002 60;
    --card-foreground: 0.16 0.008 45;
    --popover: 1 0.002 60;
    --popover-foreground: 0.16 0.008 45;

    --primary: 0.56 0.2 46;
    --primary-foreground: 0.99 0.004 60;

    --secondary: 0.94 0.005 55;
    --secondary-foreground: 0.26 0.008 45;
    --muted: 0.94 0.005 55;
    --muted-foreground: 0.48 0.008 50;

    --accent: 0.32 0.02 46;
    --accent-foreground: 0.99 0.004 60;

    --destructive: 0.55 0.22 25;
    --destructive-foreground: 0.99 0.004 25;

    --success: 0.55 0.16 152;
    --success-foreground: 0.99 0.004 152;
    --warning: 0.66 0.14 75;

    --border: 0.9 0.005 55;
    --input: 0.9 0.005 55;
    --ring: 0.56 0.2 46;

    --sidebar: 0.96 0.004 55;
    --sidebar-foreground: 0.16 0.008 45;
    --sidebar-primary: 0.56 0.2 46;
    --sidebar-primary-foreground: 0.99 0.004 60;
    --sidebar-accent: 0.94 0.005 55;
    --sidebar-accent-foreground: 0.26 0.008 45;
    --sidebar-border: 0.9 0.005 55;
    --sidebar-ring: 0.56 0.2 46;

    /* Light-theme brand material — darker bevels keep 3D icons legible on white */
    --brand-bevel-light: 0.74 0.006 55;
    --brand-bevel-shade: 0.42 0.008 48;
    --brand-core: 0.58 0.2 46;
    --brand-core-hot: 0.74 0.17 64;
    --brand-rim: 0.5 0.02 60;
    --brand-orb: 0.6 0.2 48;
    --brand-orb-hot: 0.76 0.16 68;
    --brand-platinum: 0.36 0.008 50;
    --brand-pixel: 0.2 0.006 45;
    --brand-ember: 0.58 0.19 44;
    --stage-void: 0.94 0.005 55;
    --stage-vignette: 0.89 0.007 55;
    --stage-horizon: 0.58 0.2 46;
    --stage-zenith: 0.36 0.02 46;
    --flight-track: 0.83 0.01 55;
    --flight-track-hot: 0.58 0.2 46;
    --flight-marker: 0.36 0.02 46;
    --flight-thruster: 0.74 0.17 64;
    --flight-arrival: 0.55 0.16 152;
    --flight-grid: 0.87 0.008 55;
  }

  * {
  border-color: oklch(var(--border));
}

  @supports not (color: oklch(0 0 0)) {
  * {
    border-color: #2a2a2f;
  }
}
  body {
  background-color: oklch(var(--background));
  font-family: var(--font-body), sans-serif;
  color: oklch(var(--foreground));
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
  @supports not (color: oklch(0 0 0)) {
  body {
    background-color: #0a0a0a;
    color: #fafafa;
  }
}
  h1,
  h2,
  h3 {
  font-family: var(--font-display), serif;
  letter-spacing: -0.025em;
}
.container {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2rem;
  padding-left: 2rem;
}
@media (min-width: 1400px) {

  .container {
    max-width: 1400px;
  }
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}
.pointer-events-none {
  pointer-events: none;
}
.visible {
  visibility: visible;
}
.invisible {
  visibility: hidden;
}
.collapse {
  visibility: collapse;
}
.static {
  position: static;
}
.fixed {
  position: fixed;
}
.absolute {
  position: absolute;
}
.relative {
  position: relative;
}
.sticky {
  position: sticky;
}
.inset-0 {
  inset: 0px;
}
.inset-x-0 {
  left: 0px;
  right: 0px;
}
.inset-x-4 {
  left: 1rem;
  right: 1rem;
}
.inset-x-6 {
  left: 1.5rem;
  right: 1.5rem;
}
.inset-y-0 {
  top: 0px;
  bottom: 0px;
}
.-bottom-12 {
  bottom: -3rem;
}
.-bottom-2 {
  bottom: -0.5rem;
}
.-left-12 {
  left: -3rem;
}
.-right-12 {
  right: -3rem;
}
.-top-12 {
  top: -3rem;
}
.bottom-0 {
  bottom: 0px;
}
.bottom-10 {
  bottom: 2.5rem;
}
.bottom-2 {
  bottom: 0.5rem;
}
.bottom-3 {
  bottom: 0.75rem;
}
.bottom-8 {
  bottom: 2rem;
}
.bottom-\[22\%\] {
  bottom: 22%;
}
.bottom-\[34\%\] {
  bottom: 34%;
}
.bottom-\[5\.5rem\] {
  bottom: 5.5rem;
}
.left-0 {
  left: 0px;
}
.left-1\/2 {
  left: 50%;
}
.left-2 {
  left: 0.5rem;
}
.left-3 {
  left: 0.75rem;
}
.left-3\.5 {
  left: 0.875rem;
}
.left-\[42\%\] {
  left: 42%;
}
.left-\[50\%\] {
  left: 50%;
}
.left-\[8\%\] {
  left: 8%;
}
.right-0 {
  right: 0px;
}
.right-1 {
  right: 0.25rem;
}
.right-1\/4 {
  right: 25%;
}
.right-2 {
  right: 0.5rem;
}
.right-2\.5 {
  right: 0.625rem;
}
.right-3 {
  right: 0.75rem;
}
.right-4 {
  right: 1rem;
}
.right-\[10\%\] {
  right: 10%;
}
.right-\[30\%\] {
  right: 30%;
}
.right-\[6\%\] {
  right: 6%;
}
.top-0 {
  top: 0px;
}
.top-1\.5 {
  top: 0.375rem;
}
.top-1\/2 {
  top: 50%;
}
.top-1\/3 {
  top: 33.333333%;
}
.top-10 {
  top: 2.5rem;
}
.top-12 {
  top: 3rem;
}
.top-2 {
  top: 0.5rem;
}
.top-3\.5 {
  top: 0.875rem;
}
.top-4 {
  top: 1rem;
}
.top-\[14\%\] {
  top: 14%;
}
.top-\[18\%\] {
  top: 18%;
}
.top-\[1px\] {
  top: 1px;
}
.top-\[50\%\] {
  top: 50%;
}
.top-\[60\%\] {
  top: 60%;
}
.top-\[8\%\] {
  top: 8%;
}
.top-full {
  top: 100%;
}
.isolate {
  isolation: isolate;
}
.z-0 {
  z-index: 0;
}
.z-10 {
  z-index: 10;
}
.z-20 {
  z-index: 20;
}
.z-30 {
  z-index: 30;
}
.z-40 {
  z-index: 40;
}
.z-50 {
  z-index: 50;
}
.z-\[1\] {
  z-index: 1;
}
.z-\[5\] {
  z-index: 5;
}
.z-\[6\] {
  z-index: 6;
}
.order-first {
  order: -9999;
}
.col-span-2 {
  grid-column: span 2 / span 2;
}
.col-span-full {
  grid-column: 1 / -1;
}
.col-start-2 {
  grid-column-start: 2;
}
.row-span-2 {
  grid-row: span 2 / span 2;
}
.row-start-1 {
  grid-row-start: 1;
}
.-mx-1 {
  margin-left: -0.25rem;
  margin-right: -0.25rem;
}
.-mx-4 {
  margin-left: -1rem;
  margin-right: -1rem;
}
.mx-1 {
  margin-left: 0.25rem;
  margin-right: 0.25rem;
}
.mx-2 {
  margin-left: 0.5rem;
  margin-right: 0.5rem;
}
.mx-3\.5 {
  margin-left: 0.875rem;
  margin-right: 0.875rem;
}
.mx-auto {
  margin-left: auto;
  margin-right: auto;
}
.my-0\.5 {
  margin-top: 0.125rem;
  margin-bottom: 0.125rem;
}
.my-1 {
  margin-top: 0.25rem;
  margin-bottom: 0.25rem;
}
.-ml-4 {
  margin-left: -1rem;
}
.-mt-2 {
  margin-top: -0.5rem;
}
.-mt-4 {
  margin-top: -1rem;
}
.mb-1 {
  margin-bottom: 0.25rem;
}
.mb-10 {
  margin-bottom: 2.5rem;
}
.mb-2 {
  margin-bottom: 0.5rem;
}
.mb-3 {
  margin-bottom: 0.75rem;
}
.mb-4 {
  margin-bottom: 1rem;
}
.mb-6 {
  margin-bottom: 1.5rem;
}
.mb-8 {
  margin-bottom: 2rem;
}
.ml-1 {
  margin-left: 0.25rem;
}
.ml-1\.5 {
  margin-left: 0.375rem;
}
.ml-2 {
  margin-left: 0.5rem;
}
.ml-4 {
  margin-left: 1rem;
}
.ml-6 {
  margin-left: 1.5rem;
}
.ml-auto {
  margin-left: auto;
}
.mr-2 {
  margin-right: 0.5rem;
}
.mt-0\.5 {
  margin-top: 0.125rem;
}
.mt-1 {
  margin-top: 0.25rem;
}
.mt-1\.5 {
  margin-top: 0.375rem;
}
.mt-10 {
  margin-top: 2.5rem;
}
.mt-12 {
  margin-top: 3rem;
}
.mt-2 {
  margin-top: 0.5rem;
}
.mt-3 {
  margin-top: 0.75rem;
}
.mt-4 {
  margin-top: 1rem;
}
.mt-5 {
  margin-top: 1.25rem;
}
.mt-6 {
  margin-top: 1.5rem;
}
.mt-8 {
  margin-top: 2rem;
}
.mt-auto {
  margin-top: auto;
}
.line-clamp-1 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}
.line-clamp-2 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.block {
  display: block;
}
.inline-block {
  display: inline-block;
}
.inline {
  display: inline;
}
.flex {
  display: flex;
}
.inline-flex {
  display: inline-flex;
}
.table {
  display: table;
}
.table-caption {
  display: table-caption;
}
.table-cell {
  display: table-cell;
}
.table-row {
  display: table-row;
}
.grid {
  display: grid;
}
.hidden {
  display: none;
}
.aspect-\[3\/4\] {
  aspect-ratio: 3/4;
}
.aspect-\[320\/140\] {
  aspect-ratio: 320/140;
}
.aspect-\[640\/280\] {
  aspect-ratio: 640/280;
}
.aspect-square {
  aspect-ratio: 1 / 1;
}
.aspect-video {
  aspect-ratio: 16 / 9;
}
.size-1\.5 {
  width: 0.375rem;
  height: 0.375rem;
}
.size-1\/2 {
  width: 50%;
  height: 50%;
}
.size-10 {
  width: 2.5rem;
  height: 2.5rem;
}
.size-11 {
  width: 2.75rem;
  height: 2.75rem;
}
.size-12 {
  width: 3rem;
  height: 3rem;
}
.size-14 {
  width: 3.5rem;
  height: 3.5rem;
}
.size-16 {
  width: 4rem;
  height: 4rem;
}
.size-2 {
  width: 0.5rem;
  height: 0.5rem;
}
.size-2\.5 {
  width: 0.625rem;
  height: 0.625rem;
}
.size-20 {
  width: 5rem;
  height: 5rem;
}
.size-24 {
  width: 6rem;
  height: 6rem;
}
.size-28 {
  width: 7rem;
  height: 7rem;
}
.size-3 {
  width: 0.75rem;
  height: 0.75rem;
}
.size-3\.5 {
  width: 0.875rem;
  height: 0.875rem;
}
.size-4 {
  width: 1rem;
  height: 1rem;
}
.size-40 {
  width: 10rem;
  height: 10rem;
}
.size-5 {
  width: 1.25rem;
  height: 1.25rem;
}
.size-6 {
  width: 1.5rem;
  height: 1.5rem;
}
.size-7 {
  width: 1.75rem;
  height: 1.75rem;
}
.size-8 {
  width: 2rem;
  height: 2rem;
}
.size-9 {
  width: 2.25rem;
  height: 2.25rem;
}
.size-\[28rem\] {
  width: 28rem;
  height: 28rem;
}
.size-auto {
  width: auto;
  height: auto;
}
.size-full {
  width: 100%;
  height: 100%;
}
.h-0\.5 {
  height: 0.125rem;
}
.h-1 {
  height: 0.25rem;
}
.h-1\.5 {
  height: 0.375rem;
}
.h-10 {
  height: 2.5rem;
}
.h-11 {
  height: 2.75rem;
}
.h-12 {
  height: 3rem;
}
.h-14 {
  height: 3.5rem;
}
.h-16 {
  height: 4rem;
}
.h-2 {
  height: 0.5rem;
}
.h-2\.5 {
  height: 0.625rem;
}
.h-2\/3 {
  height: 66.666667%;
}
.h-24 {
  height: 6rem;
}
.h-28 {
  height: 7rem;
}
.h-3 {
  height: 0.75rem;
}
.h-32 {
  height: 8rem;
}
.h-4 {
  height: 1rem;
}
.h-40 {
  height: 10rem;
}
.h-5 {
  height: 1.25rem;
}
.h-56 {
  height: 14rem;
}
.h-64 {
  height: 16rem;
}
.h-7 {
  height: 1.75rem;
}
.h-8 {
  height: 2rem;
}
.h-9 {
  height: 2.25rem;
}
.h-\[1\.15rem\] {
  height: 1.15rem;
}
.h-\[246px\] {
  height: 246px;
}
.h-\[360px\] {
  height: 360px;
}
.h-\[calc\(100\%-1px\)\] {
  height: calc(100% - 1px);
}
.h-\[var\(--radix-navigation-menu-viewport-height\)\] {
  height: var(--radix-navigation-menu-viewport-height);
}
.h-\[var\(--radix-select-trigger-height\)\] {
  height: var(--radix-select-trigger-height);
}
.h-auto {
  height: auto;
}
.h-full {
  height: 100%;
}
.h-px {
  height: 1px;
}
.h-svh {
  height: 100svh;
}
.max-h-\[300px\] {
  max-height: 300px;
}
.min-h-0 {
  min-height: 0px;
}
.min-h-16 {
  min-height: 4rem;
}
.min-h-4 {
  min-height: 1rem;
}
.min-h-\[16rem\] {
  min-height: 16rem;
}
.min-h-\[2\.5rem\] {
  min-height: 2.5rem;
}
.min-h-\[4\.5rem\] {
  min-height: 4.5rem;
}
.min-h-\[calc\(100dvh-4rem\)\] {
  min-height: calc(100dvh - 4rem);
}
.min-h-dvh {
  min-height: 100dvh;
}
.min-h-svh {
  min-height: 100svh;
}
.w-0 {
  width: 0px;
}
.w-0\.5 {
  width: 0.125rem;
}
.w-1 {
  width: 0.25rem;
}
.w-1\/2 {
  width: 50%;
}
.w-1\/4 {
  width: 25%;
}
.w-1\/5 {
  width: 20%;
}
.w-12 {
  width: 3rem;
}
.w-14 {
  width: 3.5rem;
}
.w-16 {
  width: 4rem;
}
.w-2 {
  width: 0.5rem;
}
.w-2\.5 {
  width: 0.625rem;
}
.w-2\/3 {
  width: 66.666667%;
}
.w-2\/5 {
  width: 40%;
}
.w-20 {
  width: 5rem;
}
.w-24 {
  width: 6rem;
}
.w-28 {
  width: 7rem;
}
.w-3 {
  width: 0.75rem;
}
.w-3\/4 {
  width: 75%;
}
.w-32 {
  width: 8rem;
}
.w-4 {
  width: 1rem;
}
.w-40 {
  width: 10rem;
}
.w-48 {
  width: 12rem;
}
.w-5 {
  width: 1.25rem;
}
.w-5\/6 {
  width: 83.333333%;
}
.w-6 {
  width: 1.5rem;
}
.w-64 {
  width: 16rem;
}
.w-72 {
  width: 18rem;
}
.w-8 {
  width: 2rem;
}
.w-9 {
  width: 2.25rem;
}
.w-\[100px\] {
  width: 100px;
}
.w-\[38\%\] {
  width: 38%;
}
.w-auto {
  width: auto;
}
.w-fit {
  width: -moz-fit-content;
  width: fit-content;
}
.w-full {
  width: 100%;
}
.w-max {
  width: -moz-max-content;
  width: max-content;
}
.w-px {
  width: 1px;
}
.min-w-0 {
  min-width: 0px;
}
.min-w-0\.5 {
  min-width: 0.125rem;
}
.min-w-10 {
  min-width: 2.5rem;
}
.min-w-28 {
  min-width: 7rem;
}
.min-w-4 {
  min-width: 1rem;
}
.min-w-5 {
  min-width: 1.25rem;
}
.min-w-8 {
  min-width: 2rem;
}
.min-w-9 {
  min-width: 2.25rem;
}
.min-w-\[12rem\] {
  min-width: 12rem;
}
.min-w-\[8rem\] {
  min-width: 8rem;
}
.min-w-\[var\(--radix-select-trigger-width\)\] {
  min-width: var(--radix-select-trigger-width);
}
.max-w-2xl {
  max-width: 42rem;
}
.max-w-3xl {
  max-width: 48rem;
}
.max-w-4xl {
  max-width: 56rem;
}
.max-w-5xl {
  max-width: 64rem;
}
.max-w-6xl {
  max-width: 72rem;
}
.max-w-7xl {
  max-width: 80rem;
}
.max-w-\[1600px\] {
  max-width: 1600px;
}
.max-w-\[16rem\] {
  max-width: 16rem;
}
.max-w-\[220px\] {
  max-width: 220px;
}
.max-w-\[calc\(100\%-2rem\)\] {
  max-width: calc(100% - 2rem);
}
.max-w-\[min\(16rem\2c calc\(100vw-2rem\)\)\] {
  max-width: min(16rem, calc(100vw - 2rem));
}
.max-w-full {
  max-width: 100%;
}
.max-w-max {
  max-width: -moz-max-content;
  max-width: max-content;
}
.max-w-md {
  max-width: 28rem;
}
.max-w-sm {
  max-width: 24rem;
}
.max-w-xl {
  max-width: 36rem;
}
.max-w-xs {
  max-width: 20rem;
}
.flex-1 {
  flex: 1 1 0%;
}
.shrink-0 {
  flex-shrink: 0;
}
.grow {
  flex-grow: 1;
}
.grow-0 {
  flex-grow: 0;
}
.basis-full {
  flex-basis: 100%;
}
.caption-bottom {
  caption-side: bottom;
}
.border-collapse {
  border-collapse: collapse;
}
.-translate-x-1\/2 {
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-x-px {
  --tw-translate-x: -1px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-y-1\/2 {
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-y-2 {
  --tw-translate-y: -0.5rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-x-\[-50\%\] {
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-x-px {
  --tw-translate-x: 1px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-y-0 {
  --tw-translate-y: 0px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-y-0\.5 {
  --tw-translate-y: 0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-y-\[-50\%\] {
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-y-\[calc\(-50\%_-_2px\)\] {
  --tw-translate-y: calc(-50% - 2px);
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-y-full {
  --tw-translate-y: 100%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-rotate-90 {
  --tw-rotate: -90deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-45 {
  --tw-rotate: 45deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-90 {
  --tw-rotate: 90deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
@keyframes depth-drift {

  0% {
    background-position: 0% 0%, 0% 0%, 0% 0%, 0% 0%;
  }

  100% {
    background-position: 240px 240px, -320px 320px, 400px -400px, -280px -280px;
  }
}
.animate-depth-drift {
  animation: depth-drift 60s linear infinite;
}
@keyframes energy-flow {

  0% {
    background-position: 0% 50%;
  }

  100% {
    background-position: 200% 50%;
  }
}
.animate-energy-flow {
  animation: energy-flow 4s linear infinite;
}
@keyframes fade-in-up {

  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.animate-fade-in-up {
  animation: fade-in-up 0.5s cubic-bezier(0.4, 0, 0.2, 1) both;
}
@keyframes orb-pulse {

  0%, 100% {
    opacity: 0.85;
    transform: scale(1);
    filter: brightness(1);
  }

  50% {
    opacity: 1;
    transform: scale(1.05);
    filter: brightness(1.15);
  }
}
.animate-orb-pulse {
  animation: orb-pulse 4.4s ease-in-out infinite;
}
@keyframes pulse {

  50% {
    opacity: .5;
  }
}
.animate-pulse {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes pulse-core {

  0%, 100% {
    opacity: 0.85;
    transform: scale(1);
  }

  50% {
    opacity: 1;
    transform: scale(1.06);
  }
}
.animate-pulse-core {
  animation: pulse-core 3.2s ease-in-out infinite;
}
@keyframes pulse-dot {

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

  50% {
    opacity: 0.5;
    transform: scale(0.85);
  }
}
.animate-pulse-dot {
  animation: pulse-dot 2s ease-in-out infinite;
}
@keyframes spin {

  to {
    transform: rotate(360deg);
  }
}
.animate-spin {
  animation: spin 1s linear infinite;
}
@keyframes spin-slow {

  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}
.animate-spin-slow {
  animation: spin-slow 18s linear infinite;
}
@keyframes wordmark-sheen {

  0% {
    background-position: -120% 0;
  }

  100% {
    background-position: 220% 0;
  }
}
.animate-wordmark-sheen {
  animation: wordmark-sheen 6s ease-in-out infinite;
}
.cursor-default {
  cursor: default;
}
.cursor-pointer {
  cursor: pointer;
}
.touch-none {
  touch-action: none;
}
.touch-pan-y {
  --tw-pan-y: pan-y;
  touch-action: var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom);
}
.select-none {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.resize {
  resize: both;
}
.snap-x {
  scroll-snap-type: x var(--tw-scroll-snap-strictness);
}
.snap-start {
  scroll-snap-align: start;
}
.scroll-my-1 {
  scroll-margin-top: 0.25rem;
  scroll-margin-bottom: 0.25rem;
}
.scroll-mt-24 {
  scroll-margin-top: 6rem;
}
.scroll-py-1 {
  scroll-padding-top: 0.25rem;
  scroll-padding-bottom: 0.25rem;
}
.list-disc {
  list-style-type: disc;
}
.list-none {
  list-style-type: none;
}
.auto-rows-min {
  grid-auto-rows: min-content;
}
.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid-cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.grid-cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.grid-cols-\[0_1fr\] {
  grid-template-columns: 0 1fr;
}
.grid-cols-\[3\.25rem_1fr_auto\] {
  grid-template-columns: 3.25rem 1fr auto;
}
.grid-cols-\[88px_1fr_auto_auto\] {
  grid-template-columns: 88px 1fr auto auto;
}
.grid-rows-\[auto_auto\] {
  grid-template-rows: auto auto;
}
.flex-row {
  flex-direction: row;
}
.flex-col {
  flex-direction: column;
}
.flex-col-reverse {
  flex-direction: column-reverse;
}
.flex-wrap {
  flex-wrap: wrap;
}
.place-items-center {
  place-items: center;
}
.items-start {
  align-items: flex-start;
}
.items-end {
  align-items: flex-end;
}
.items-center {
  align-items: center;
}
.items-baseline {
  align-items: baseline;
}
.items-stretch {
  align-items: stretch;
}
.justify-end {
  justify-content: flex-end;
}
.justify-center {
  justify-content: center;
}
.justify-between {
  justify-content: space-between;
}
.justify-items-start {
  justify-items: start;
}
.gap-0\.5 {
  gap: 0.125rem;
}
.gap-1 {
  gap: 0.25rem;
}
.gap-1\.5 {
  gap: 0.375rem;
}
.gap-10 {
  gap: 2.5rem;
}
.gap-12 {
  gap: 3rem;
}
.gap-2 {
  gap: 0.5rem;
}
.gap-2\.5 {
  gap: 0.625rem;
}
.gap-3 {
  gap: 0.75rem;
}
.gap-4 {
  gap: 1rem;
}
.gap-5 {
  gap: 1.25rem;
}
.gap-6 {
  gap: 1.5rem;
}
.gap-8 {
  gap: 2rem;
}
.gap-x-2 {
  -moz-column-gap: 0.5rem;
       column-gap: 0.5rem;
}
.gap-x-3 {
  -moz-column-gap: 0.75rem;
       column-gap: 0.75rem;
}
.gap-x-4 {
  -moz-column-gap: 1rem;
       column-gap: 1rem;
}
.gap-x-5 {
  -moz-column-gap: 1.25rem;
       column-gap: 1.25rem;
}
.gap-x-6 {
  -moz-column-gap: 1.5rem;
       column-gap: 1.5rem;
}
.gap-y-0\.5 {
  row-gap: 0.125rem;
}
.gap-y-1 {
  row-gap: 0.25rem;
}
.gap-y-2 {
  row-gap: 0.5rem;
}
.gap-y-3 {
  row-gap: 0.75rem;
}
.gap-y-5 {
  row-gap: 1.25rem;
}
.space-y-1\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.375rem * var(--tw-space-y-reverse));
}
.space-y-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}
.space-y-3 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
}
.space-y-4 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}
.space-y-5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.25rem * var(--tw-space-y-reverse));
}
.space-y-8 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(2rem * var(--tw-space-y-reverse));
}
.divide-y > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-y-reverse: 0;
  border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
  border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
}
.divide-\[color\:var\(--engine-hairline\)\] > :not([hidden]) ~ :not([hidden]) {
  border-color: var(--engine-hairline);
}
.divide-border > :not([hidden]) ~ :not([hidden]) {
  border-color: oklch(var(--border));
}
.self-start {
  align-self: flex-start;
}
.self-center {
  align-self: center;
}
.justify-self-end {
  justify-self: end;
}
.overflow-auto {
  overflow: auto;
}
.overflow-hidden {
  overflow: hidden;
}
.overflow-x-auto {
  overflow-x: auto;
}
.overflow-y-auto {
  overflow-y: auto;
}
.overflow-x-hidden {
  overflow-x: hidden;
}
.overflow-x-clip {
  overflow-x: clip;
}
.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.whitespace-nowrap {
  white-space: nowrap;
}
.whitespace-pre-line {
  white-space: pre-line;
}
.text-balance {
  text-wrap: balance;
}
.break-words {
  overflow-wrap: break-word;
}
.break-all {
  word-break: break-all;
}
.rounded {
  border-radius: 0.25rem;
}
.rounded-2xl {
  border-radius: 1rem;
}
.rounded-\[22\%\] {
  border-radius: 22%;
}
.rounded-\[2px\] {
  border-radius: 2px;
}
.rounded-\[4px\] {
  border-radius: 4px;
}
.rounded-\[inherit\] {
  border-radius: inherit;
}
.rounded-\[var\(--radius-lg\)\] {
  border-radius: var(--radius-lg);
}
.rounded-\[var\(--radius-md\)\] {
  border-radius: var(--radius-md);
}
.rounded-\[var\(--radius-sm\)\] {
  border-radius: var(--radius-sm);
}
.rounded-\[var\(--radius-xl\)\] {
  border-radius: var(--radius-xl);
}
.rounded-full {
  border-radius: 9999px;
}
.rounded-lg {
  border-radius: var(--radius);
}
.rounded-md {
  border-radius: calc(var(--radius) - 2px);
}
.rounded-none {
  border-radius: 0px;
}
.rounded-sm {
  border-radius: calc(var(--radius) - 4px);
}
.rounded-xl {
  border-radius: 0.75rem;
}
.rounded-l-md {
  border-top-left-radius: calc(var(--radius) - 2px);
  border-bottom-left-radius: calc(var(--radius) - 2px);
}
.rounded-r-md {
  border-top-right-radius: calc(var(--radius) - 2px);
  border-bottom-right-radius: calc(var(--radius) - 2px);
}
.rounded-tl-sm {
  border-top-left-radius: calc(var(--radius) - 4px);
}
.border {
  border-width: 1px;
}
.border-\[1\.5px\] {
  border-width: 1.5px;
}
.border-y {
  border-top-width: 1px;
  border-bottom-width: 1px;
}
.border-b {
  border-bottom-width: 1px;
}
.border-l {
  border-left-width: 1px;
}
.border-r {
  border-right-width: 1px;
}
.border-t {
  border-top-width: 1px;
}
.border-dashed {
  border-style: dashed;
}
.border-\[color\:var\(--engine-hairline\)\] {
  border-color: var(--engine-hairline);
}
.border-\[color\:var\(--engine-hairline-hot\)\] {
  border-color: var(--engine-hairline-hot);
}
.border-accent\/30 {
  border-color: oklch(var(--accent) / 0.3);
}
.border-accent\/40 {
  border-color: oklch(var(--accent) / 0.4);
}
.border-accent\/50 {
  border-color: oklch(var(--accent) / 0.5);
}
.border-border {
  border-color: oklch(var(--border));
}
.border-current {
  border-color: currentColor;
}
.border-destructive {
  --tw-border-opacity: 1;
  border-color: oklch(var(--destructive) / var(--tw-border-opacity, 1));
}
.border-destructive\/40 {
  border-color: oklch(var(--destructive) / 0.4);
}
.border-destructive\/50 {
  border-color: oklch(var(--destructive) / 0.5);
}
.border-destructive\/60 {
  border-color: oklch(var(--destructive) / 0.6);
}
.border-input {
  border-color: oklch(var(--input));
}
.border-muted-foreground\/40 {
  border-color: oklch(var(--muted-foreground) / 0.4);
}
.border-primary {
  --tw-border-opacity: 1;
  border-color: oklch(var(--primary) / var(--tw-border-opacity, 1));
}
.border-primary\/30 {
  border-color: oklch(var(--primary) / 0.3);
}
.border-primary\/40 {
  border-color: oklch(var(--primary) / 0.4);
}
.border-primary\/50 {
  border-color: oklch(var(--primary) / 0.5);
}
.border-primary\/60 {
  border-color: oklch(var(--primary) / 0.6);
}
.border-primary\/70 {
  border-color: oklch(var(--primary) / 0.7);
}
.border-sidebar-border {
  border-color: oklch(var(--sidebar-border));
}
.border-success\/40 {
  border-color: oklch(var(--success) / 0.4);
}
.border-success\/50 {
  border-color: oklch(var(--success) / 0.5);
}
.border-success\/60 {
  border-color: oklch(var(--success) / 0.6);
}
.border-transparent {
  border-color: transparent;
}
.border-l-transparent {
  border-left-color: transparent;
}
.border-t-transparent {
  border-top-color: transparent;
}
.bg-\[rgb\(5_5_5\/0\.55\)\] {
  background-color: rgb(5 5 5/0.55);
}
.bg-accent {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--accent) / var(--tw-bg-opacity, 1));
}
.bg-accent\/10 {
  background-color: oklch(var(--accent) / 0.1);
}
.bg-accent\/15 {
  background-color: oklch(var(--accent) / 0.15);
}
.bg-accent\/5 {
  background-color: oklch(var(--accent) / 0.05);
}
.bg-amber-500\/15 {
  background-color: rgb(245 158 11 / 0.15);
}
.bg-background {
  background-color: oklch(var(--background));
}
.bg-black {
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
}
.bg-black\/40 {
  background-color: rgb(0 0 0 / 0.4);
}
.bg-black\/50 {
  background-color: rgb(0 0 0 / 0.5);
}
.bg-black\/60 {
  background-color: rgb(0 0 0 / 0.6);
}
.bg-black\/70 {
  background-color: rgb(0 0 0 / 0.7);
}
.bg-black\/85 {
  background-color: rgb(0 0 0 / 0.85);
}
.bg-black\/90 {
  background-color: rgb(0 0 0 / 0.9);
}
.bg-border {
  background-color: oklch(var(--border));
}
.bg-card {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--card) / var(--tw-bg-opacity, 1));
}
.bg-card\/50 {
  background-color: oklch(var(--card) / 0.5);
}
.bg-card\/60 {
  background-color: oklch(var(--card) / 0.6);
}
.bg-card\/70 {
  background-color: oklch(var(--card) / 0.7);
}
.bg-current {
  background-color: currentColor;
}
.bg-destructive {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--destructive) / var(--tw-bg-opacity, 1));
}
.bg-destructive\/10 {
  background-color: oklch(var(--destructive) / 0.1);
}
.bg-destructive\/15 {
  background-color: oklch(var(--destructive) / 0.15);
}
.bg-foreground {
  background-color: oklch(var(--foreground));
}
.bg-muted {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--muted) / var(--tw-bg-opacity, 1));
}
.bg-muted-foreground\/40 {
  background-color: oklch(var(--muted-foreground) / 0.4);
}
.bg-muted\/50 {
  background-color: oklch(var(--muted) / 0.5);
}
.bg-popover {
  background-color: oklch(var(--popover));
}
.bg-primary {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--primary) / var(--tw-bg-opacity, 1));
}
.bg-primary\/10 {
  background-color: oklch(var(--primary) / 0.1);
}
.bg-primary\/15 {
  background-color: oklch(var(--primary) / 0.15);
}
.bg-primary\/20 {
  background-color: oklch(var(--primary) / 0.2);
}
.bg-primary\/25 {
  background-color: oklch(var(--primary) / 0.25);
}
.bg-primary\/45 {
  background-color: oklch(var(--primary) / 0.45);
}
.bg-primary\/5 {
  background-color: oklch(var(--primary) / 0.05);
}
.bg-primary\/50 {
  background-color: oklch(var(--primary) / 0.5);
}
.bg-primary\/75 {
  background-color: oklch(var(--primary) / 0.75);
}
.bg-primary\/90 {
  background-color: oklch(var(--primary) / 0.9);
}
.bg-secondary {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--secondary) / var(--tw-bg-opacity, 1));
}
.bg-secondary\/20 {
  background-color: oklch(var(--secondary) / 0.2);
}
.bg-secondary\/30 {
  background-color: oklch(var(--secondary) / 0.3);
}
.bg-secondary\/40 {
  background-color: oklch(var(--secondary) / 0.4);
}
.bg-secondary\/50 {
  background-color: oklch(var(--secondary) / 0.5);
}
.bg-secondary\/60 {
  background-color: oklch(var(--secondary) / 0.6);
}
.bg-sidebar {
  background-color: oklch(var(--sidebar));
}
.bg-sidebar-border {
  background-color: oklch(var(--sidebar-border));
}
.bg-success {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--success) / var(--tw-bg-opacity, 1));
}
.bg-success\/10 {
  background-color: oklch(var(--success) / 0.1);
}
.bg-success\/15 {
  background-color: oklch(var(--success) / 0.15);
}
.bg-transparent {
  background-color: transparent;
}
.bg-\[radial-gradient\(60\%_80\%_at_50\%_100\%\2c rgb\(255_122_0\/0\.22\)\2c transparent_70\%\)\] {
  background-image: radial-gradient(60% 80% at 50% 100%,rgb(255 122 0/0.22),transparent 70%);
}
.bg-gradient-to-b {
  background-image: linear-gradient(to bottom, var(--tw-gradient-stops));
}
.via-transparent {
  --tw-gradient-to: rgb(0 0 0 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), transparent var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.fill-current {
  fill: currentColor;
}
.fill-muted-foreground {
  fill: oklch(var(--muted-foreground) / 1);
}
.fill-primary {
  fill: oklch(var(--primary) / 1);
}
.fill-primary-foreground {
  fill: oklch(var(--primary-foreground));
}
.stroke-secondary {
  stroke: oklch(var(--secondary) / 1);
}
.object-contain {
  -o-object-fit: contain;
     object-fit: contain;
}
.object-cover {
  -o-object-fit: cover;
     object-fit: cover;
}
.object-right {
  -o-object-position: right;
     object-position: right;
}
.p-0 {
  padding: 0px;
}
.p-0\.5 {
  padding: 0.125rem;
}
.p-1 {
  padding: 0.25rem;
}
.p-10 {
  padding: 2.5rem;
}
.p-2 {
  padding: 0.5rem;
}
.p-3 {
  padding: 0.75rem;
}
.p-4 {
  padding: 1rem;
}
.p-5 {
  padding: 1.25rem;
}
.p-6 {
  padding: 1.5rem;
}
.p-8 {
  padding: 2rem;
}
.p-\[12\%\] {
  padding: 12%;
}
.p-\[3px\] {
  padding: 3px;
}
.p-\[6\%\] {
  padding: 6%;
}
.p-px {
  padding: 1px;
}
.px-0\.5 {
  padding-left: 0.125rem;
  padding-right: 0.125rem;
}
.px-1 {
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}
.px-1\.5 {
  padding-left: 0.375rem;
  padding-right: 0.375rem;
}
.px-2 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.px-2\.5 {
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}
.px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
.px-3\.5 {
  padding-left: 0.875rem;
  padding-right: 0.875rem;
}
.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}
.px-5 {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}
.px-6 {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.px-7 {
  padding-left: 1.75rem;
  padding-right: 1.75rem;
}
.py-0\.5 {
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}
.py-1 {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
.py-1\.5 {
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}
.py-10 {
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}
.py-12 {
  padding-top: 3rem;
  padding-bottom: 3rem;
}
.py-14 {
  padding-top: 3.5rem;
  padding-bottom: 3.5rem;
}
.py-16 {
  padding-top: 4rem;
  padding-bottom: 4rem;
}
.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.py-2\.5 {
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}
.py-20 {
  padding-top: 5rem;
  padding-bottom: 5rem;
}
.py-24 {
  padding-top: 6rem;
  padding-bottom: 6rem;
}
.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.py-3\.5 {
  padding-top: 0.875rem;
  padding-bottom: 0.875rem;
}
.py-4 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.py-6 {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
.py-8 {
  padding-top: 2rem;
  padding-bottom: 2rem;
}
.pb-10 {
  padding-bottom: 2.5rem;
}
.pb-2 {
  padding-bottom: 0.5rem;
}
.pb-28 {
  padding-bottom: 7rem;
}
.pb-3 {
  padding-bottom: 0.75rem;
}
.pb-4 {
  padding-bottom: 1rem;
}
.pb-8 {
  padding-bottom: 2rem;
}
.pl-10 {
  padding-left: 2.5rem;
}
.pl-2 {
  padding-left: 0.5rem;
}
.pl-4 {
  padding-left: 1rem;
}
.pl-8 {
  padding-left: 2rem;
}
.pr-1 {
  padding-right: 0.25rem;
}
.pr-10 {
  padding-right: 2.5rem;
}
.pr-2 {
  padding-right: 0.5rem;
}
.pr-2\.5 {
  padding-right: 0.625rem;
}
.pr-3 {
  padding-right: 0.75rem;
}
.pr-8 {
  padding-right: 2rem;
}
.pt-0 {
  padding-top: 0px;
}
.pt-1 {
  padding-top: 0.25rem;
}
.pt-10 {
  padding-top: 2.5rem;
}
.pt-3 {
  padding-top: 0.75rem;
}
.pt-4 {
  padding-top: 1rem;
}
.pt-6 {
  padding-top: 1.5rem;
}
.pt-\[46vh\] {
  padding-top: 46vh;
}
.text-left {
  text-align: left;
}
.text-center {
  text-align: center;
}
.text-right {
  text-align: right;
}
.align-middle {
  vertical-align: middle;
}
.font-body {
  font-family: var(--font-body), sans-serif;
}
.font-display {
  font-family: var(--font-display), serif;
}
.font-mono {
  font-family: var(--font-mono), monospace;
}
.text-2xl {
  font-size: 1.5rem;
  line-height: 2rem;
}
.text-3xl {
  font-size: 1.875rem;
  line-height: 2.25rem;
}
.text-4xl {
  font-size: 2.25rem;
  line-height: 2.5rem;
}
.text-\[0\.8rem\] {
  font-size: 0.8rem;
}
.text-\[10px\] {
  font-size: 10px;
}
.text-\[11px\] {
  font-size: 11px;
}
.text-\[12px\] {
  font-size: 12px;
}
.text-\[2\.6rem\] {
  font-size: 2.6rem;
}
.text-\[7px\] {
  font-size: 7px;
}
.text-\[8px\] {
  font-size: 8px;
}
.text-\[9px\] {
  font-size: 9px;
}
.text-base {
  font-size: 1rem;
  line-height: 1.5rem;
}
.text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem;
}
.text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.text-xl {
  font-size: 1.25rem;
  line-height: 1.75rem;
}
.text-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}
.font-bold {
  font-weight: 700;
}
.font-medium {
  font-weight: 500;
}
.font-normal {
  font-weight: 400;
}
.font-semibold {
  font-weight: 600;
}
.uppercase {
  text-transform: uppercase;
}
.lowercase {
  text-transform: lowercase;
}
.tabular-nums {
  --tw-numeric-spacing: tabular-nums;
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.leading-none {
  line-height: 1;
}
.leading-relaxed {
  line-height: 1.625;
}
.leading-snug {
  line-height: 1.375;
}
.leading-tight {
  line-height: 1.25;
}
.tracking-\[0\.12em\] {
  letter-spacing: 0.12em;
}
.tracking-\[0\.18em\] {
  letter-spacing: 0.18em;
}
.tracking-\[0\.22em\] {
  letter-spacing: 0.22em;
}
.tracking-\[0\.2em\] {
  letter-spacing: 0.2em;
}
.tracking-tight {
  letter-spacing: -0.025em;
}
.tracking-wider {
  letter-spacing: 0.05em;
}
.tracking-widest {
  letter-spacing: 0.1em;
}
.text-accent {
  --tw-text-opacity: 1;
  color: oklch(var(--accent) / var(--tw-text-opacity, 1));
}
.text-accent-foreground {
  color: oklch(var(--accent-foreground));
}
.text-amber-500 {
  --tw-text-opacity: 1;
  color: rgb(245 158 11 / var(--tw-text-opacity, 1));
}
.text-black {
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
}
.text-border {
  color: oklch(var(--border));
}
.text-card-foreground {
  color: oklch(var(--card-foreground));
}
.text-current {
  color: currentColor;
}
.text-destructive {
  --tw-text-opacity: 1;
  color: oklch(var(--destructive) / var(--tw-text-opacity, 1));
}
.text-destructive-foreground {
  color: oklch(var(--destructive-foreground));
}
.text-foreground {
  color: oklch(var(--foreground));
}
.text-muted-foreground {
  --tw-text-opacity: 1;
  color: oklch(var(--muted-foreground) / var(--tw-text-opacity, 1));
}
.text-popover-foreground {
  color: oklch(var(--popover-foreground));
}
.text-primary {
  --tw-text-opacity: 1;
  color: oklch(var(--primary) / var(--tw-text-opacity, 1));
}
.text-primary-foreground {
  color: oklch(var(--primary-foreground));
}
.text-secondary-foreground {
  color: oklch(var(--secondary-foreground));
}
.text-sidebar-foreground {
  color: oklch(var(--sidebar-foreground));
}
.text-success {
  --tw-text-opacity: 1;
  color: oklch(var(--success) / var(--tw-text-opacity, 1));
}
.underline {
  text-decoration-line: underline;
}
.underline-offset-2 {
  text-underline-offset: 2px;
}
.underline-offset-4 {
  text-underline-offset: 4px;
}
.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.accent-\[\#ff7a00\] {
  accent-color: #ff7a00;
}
.opacity-0 {
  opacity: 0;
}
.opacity-100 {
  opacity: 1;
}
.opacity-20 {
  opacity: 0.2;
}
.opacity-25 {
  opacity: 0.25;
}
.opacity-40 {
  opacity: 0.4;
}
.opacity-45 {
  opacity: 0.45;
}
.opacity-50 {
  opacity: 0.5;
}
.opacity-60 {
  opacity: 0.6;
}
.opacity-70 {
  opacity: 0.7;
}
.opacity-90 {
  opacity: 0.9;
}
.shadow {
  --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\] {
  --tw-shadow: 0 0 0 1px hsl(var(--sidebar-border));
  --tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-elevated {
  --tw-shadow: 0 1px 0 0 rgba(255,255,255,0.04) inset, 0 8px 24px -8px rgba(0,0,0,0.6);
  --tw-shadow-colored: inset 0 1px 0 0 var(--tw-shadow-color), 0 8px 24px -8px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-flight-glow {
  --tw-shadow: 0 0 0 1px oklch(0.72 0.212 46 / 0.35), 0 18px 44px -18px oklch(0.03 0.004 50 / 0.95);
  --tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color), 0 18px 44px -18px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-lg {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-md {
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-none {
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-reactor-glow {
  --tw-shadow: 0 0 0 1px oklch(0.72 0.212 46 / 0.35), 0 8px 26px -8px oklch(0.72 0.212 46 / 0.45);
  --tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color), 0 8px 26px -8px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-signal-glow {
  --tw-shadow: 0 0 0 1px oklch(0.73 0.17 152 / 0.35), 0 8px 24px -8px oklch(0.73 0.17 152 / 0.45);
  --tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color), 0 8px 24px -8px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-sm {
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-subtle {
  --tw-shadow: 0 1px 0 0 rgba(255,255,255,0.03) inset, 0 1px 3px 0 rgba(0,0,0,0.4);
  --tw-shadow-colored: inset 0 1px 0 0 var(--tw-shadow-color), 0 1px 3px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-xl {
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-xs {
  --tw-shadow: 0 1px 2px 0 rgba(0,0,0,0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.outline-none {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.outline {
  outline-style: solid;
}
.ring {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-0 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-1 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-accent\/40 {
  --tw-ring-color: oklch(var(--accent) / 0.4);
}
.ring-border {
  --tw-ring-color: oklch(var(--border));
}
.ring-primary\/40 {
  --tw-ring-color: oklch(var(--primary) / 0.4);
}
.ring-ring\/50 {
  --tw-ring-color: oklch(var(--ring) / 0.5);
}
.ring-sidebar-ring {
  --tw-ring-color: oklch(var(--sidebar-ring));
}
.ring-offset-background {
  --tw-ring-offset-color: oklch(var(--background));
}
.blur {
  --tw-blur: blur(8px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.blur-3xl {
  --tw-blur: blur(64px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.blur-\[2px\] {
  --tw-blur: blur(2px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.drop-shadow {
  --tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / 0.1)) drop-shadow(0 1px 1px rgb(0 0 0 / 0.06));
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.backdrop-blur {
  --tw-backdrop-blur: blur(8px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-blur-xl {
  --tw-backdrop-blur: blur(24px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-filter {
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.transition {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-\[color\2c box-shadow\] {
  transition-property: color,box-shadow;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-\[left\2c right\2c width\] {
  transition-property: left,right,width;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-\[margin\2c opacity\] {
  transition-property: margin,opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-\[width\2c height\2c padding\] {
  transition-property: width,height,padding;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-\[width\] {
  transition-property: width;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-all {
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-colors {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-none {
  transition-property: none;
}
.transition-opacity {
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-shadow {
  transition-property: box-shadow;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-transform {
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.duration-1000 {
  transition-duration: 1000ms;
}
.duration-200 {
  transition-duration: 200ms;
}
.duration-300 {
  transition-duration: 300ms;
}
.duration-500 {
  transition-duration: 500ms;
}
.duration-700 {
  transition-duration: 700ms;
}
.ease-in-out {
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.ease-linear {
  transition-timing-function: linear;
}
.ease-out {
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
.\@container\/card-header {
  container-type: inline-size;
  container-name: card-header;
}
@keyframes enter {

  from {
    opacity: var(--tw-enter-opacity, 1);
    transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));
  }
}
@keyframes exit {

  to {
    opacity: var(--tw-exit-opacity, 1);
    transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));
  }
}
.animate-in {
  animation-name: enter;
  animation-duration: 150ms;
  --tw-enter-opacity: initial;
  --tw-enter-scale: initial;
  --tw-enter-rotate: initial;
  --tw-enter-translate-x: initial;
  --tw-enter-translate-y: initial;
}
.fade-in-0 {
  --tw-enter-opacity: 0;
}
.zoom-in-95 {
  --tw-enter-scale: .95;
}
.duration-1000 {
  animation-duration: 1000ms;
}
.duration-200 {
  animation-duration: 200ms;
}
.duration-300 {
  animation-duration: 300ms;
}
.duration-500 {
  animation-duration: 500ms;
}
.duration-700 {
  animation-duration: 700ms;
}
.ease-in-out {
  animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.ease-linear {
  animation-timing-function: linear;
}
.ease-out {
  animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
.running {
  animation-play-state: running;
}
.\!paused {
  animation-play-state: paused !important;
}
.paused {
  animation-play-state: paused;
}
  /* ---------------- ENGINE Round 1 components ---------------- */
  .engine-card {
    background-image: linear-gradient(
      160deg,
      rgb(28 28 31 / 0.72),
      rgb(10 10 11 / 0.6)
    );
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border: 1px solid var(--engine-hairline);
    border-radius: var(--radius-lg);
    box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.05), 0 18px 40px -22px
      rgb(0 0 0 / 0.9);
    transition: border-color var(--duration-base) var(--ease-settle), box-shadow
      var(--duration-base) var(--ease-settle);
  }
  .engine-card:hover {
    border-color: var(--engine-hairline-hot);
    box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.06), var(--engine-glow-sm);
  }
  /* Primary: molten orange fill with a warm glow */
  .btn-engine {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  white-space: nowrap;
  font-weight: 600;
  text-transform: uppercase;
    border-radius: var(--radius-pill);
    letter-spacing: 0.12em;
    transition:
      transform var(--duration-fast) var(--ease-settle),
      box-shadow var(--duration-base) var(--ease-settle),
      background-color var(--duration-base) var(--ease-settle),
      border-color var(--duration-base) var(--ease-settle),
      color var(--duration-base) var(--ease-settle);
}
  .btn-engine:focus-visible {
    outline: 2px solid var(--engine-orange-glow);
    outline-offset: 3px;
  }
  .btn-engine-primary {
    background-image: linear-gradient(
      180deg,
      var(--engine-orange-glow),
      var(--engine-orange)
    );
    color: var(--engine-black);
    box-shadow: var(--engine-glow-sm);
  }
  .btn-engine-primary:hover {
    box-shadow: var(--engine-glow-lg);
    transform: translateY(-1px);
  }
  /* Secondary: brushed-steel outline */
  .btn-engine-steel {
    background-color: rgb(201 204 209 / 0.04);
    border: 1px solid rgb(201 204 209 / 0.55);
    color: var(--engine-steel);
  }
  .btn-engine-steel:hover {
    border-color: var(--engine-steel);
    background-color: rgb(201 204 209 / 0.1);
    color: var(--engine-white);
    transform: translateY(-1px);
  }
  .text-steel {
    color: var(--engine-steel);
  }
  .text-gradient-steel {
    background-image: var(--engine-steel-gradient);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
  }
  /* "SOON" badge — white text, final N in orange */
  .soon-pill {
  display: inline-flex;
  align-items: center;
  border-radius: 9999px;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 0.75rem;
  line-height: 1rem;
    font-family: var(--font-wordmark);
    letter-spacing: 0.3em;
    color: var(--engine-white);
    border: 1px solid rgb(255 255 255 / 0.28);
    background-color: rgb(255 255 255 / 0.04);
}
  .soon-pill .soon-n {
    color: var(--engine-orange);
    text-shadow: 0 0 10px rgb(255 122 0 / 0.6);
  }
  /* Hero wordmark: E N G I N E at display size */
  .wordmark-hero {
    letter-spacing: 0.42em;
    margin-right: -0.42em;
    line-height: 1;
  }
  .wordmark-hero-rule {
    height: 3px;
    border-radius: 9999px;
    background-image: linear-gradient(
      90deg,
      var(--engine-orange),
      var(--engine-orange-glow) 60%,
      transparent
    );
    box-shadow: 0 0 14px rgb(255 122 0 / 0.65);
  }
  /* Floating code-glyph sparks ({} and </>) over the hero */
  .code-spark {
    position: absolute;
    font-family: var(--font-mono);
    color: rgb(255 165 61 / 0.7);
    text-shadow: 0 0 10px rgb(255 122 0 / 0.7);
    animation: code-spark 7s ease-in-out infinite;
    animation-delay: var(--delay, 0s);
  }
  @keyframes code-spark {
    0%,
    100% {
      transform: translateY(0) rotate(-4deg);
      opacity: 0.15;
    }
    50% {
      transform: translateY(-18px) rotate(4deg);
      opacity: 0.85;
    }
  }
  /* Header: sticky blurred black glass with an orange hairline */
  .engine-header {
    background-color: rgb(5 5 5 / 0.72);
    backdrop-filter: blur(18px) saturate(140%);
    -webkit-backdrop-filter: blur(18px) saturate(140%);
    border-bottom: 1px solid var(--engine-hairline);
  }
  .nav-link-active {
    color: var(--engine-white);
    background-color: rgb(255 122 0 / 0.1);
    box-shadow: inset 0 0 0 1px rgb(255 122 0 / 0.4);
  }
  .balance-pill {
    border: 1px solid rgb(201 204 209 / 0.35);
    background-image: linear-gradient(
      180deg,
      rgb(201 204 209 / 0.1),
      rgb(138 142 149 / 0.04)
    );
  }
  .balance-pill:hover {
    border-color: rgb(255 140 30 / 0.55);
  }

  /* CSS engine-cube fallback (no WebGL): static gradient + 3D CSS cube */
  .engine-fallback {
    background-image: radial-gradient(
        50% 45% at 68% 50%,
        rgb(255 122 0 / 0.28),
        transparent 70%
      ),
      radial-gradient(90% 60% at 50% 120%, rgb(255 122 0 / 0.16), transparent);
  }
  .css-cube {
    position: relative;
    width: var(--cube, 180px);
    height: var(--cube, 180px);
    transform-style: preserve-3d;
    transform: rotateX(-22deg) rotateY(38deg);
  }
  .css-cube-face {
    position: absolute;
    inset: 0;
    border: 3px solid var(--engine-steel-dark);
    border-radius: 14px;
    background-image: repeating-linear-gradient(
        90deg,
        rgb(201 204 209 / 0.08) 0 6px,
        transparent 6px 14px
      ), var(--engine-steel-gradient);
    box-shadow: inset 0 0 0 2px rgb(255 122 0 / 0.75), inset 0 0 24px
      rgb(0 0 0 / 0.7), 0 0 26px rgb(255 122 0 / 0.35);
    opacity: 0.92;
  }
  .css-cube-face.front {
    background-image: none;
    background-color: rgb(5 5 5 / 0.35);
    transform: translateZ(calc(var(--cube, 180px) / 2));
  }
  .css-cube-face.back {
    transform: rotateY(180deg) translateZ(calc(var(--cube, 180px) / 2));
  }
  .css-cube-face.right {
    transform: rotateY(90deg) translateZ(calc(var(--cube, 180px) / 2));
  }
  .css-cube-face.left {
    transform: rotateY(-90deg) translateZ(calc(var(--cube, 180px) / 2));
  }
  .css-cube-face.top {
    transform: rotateX(90deg) translateZ(calc(var(--cube, 180px) / 2));
  }
  .css-cube-face.bottom {
    transform: rotateX(-90deg) translateZ(calc(var(--cube, 180px) / 2));
  }
  .css-cube-core {
    position: absolute;
    inset: 32%;
    border-radius: 8px;
    background-image: radial-gradient(
      circle at 45% 40%,
      #fff3dc,
      var(--engine-orange-glow) 35%,
      var(--engine-orange) 70%,
      #a33a00
    );
    box-shadow: 0 0 40px 10px rgb(255 122 0 / 0.7), 0 0 90px 30px
      rgb(255 122 0 / 0.3);
  }
  .transition-smooth {
    transition: var(--transition-smooth);
  }
  .bg-gradient-primary {
    background-image: var(--gradient-primary);
  }
  .bg-gradient-core {
    background-image: var(--gradient-core);
  }
  .bg-gradient-subtle {
    background-image: var(--gradient-subtle);
  }
  .text-gradient-primary {
    background-image: var(--gradient-primary);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
  }
  .text-gradient-core {
    background-image: var(--gradient-core);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
  }
  /* Industrial plate: 1px border with a titanium top-highlight */
  .plate {
  border-width: 1px;
  border-color: oklch(var(--border));
  --tw-bg-opacity: 1;
  background-color: oklch(var(--card) / var(--tw-bg-opacity, 1));
  --tw-shadow: 0 1px 0 0 rgba(255,255,255,0.03) inset, 0 1px 3px 0 rgba(0,0,0,0.4);
  --tw-shadow-colored: inset 0 1px 0 0 var(--tw-shadow-color), 0 1px 3px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
  @supports not (color: oklch(0 0 0)) {
  .plate {
    background-color: #151517;
    border-color: #2a2a2f;
  }
}
  .ticker {
  font-family: var(--font-mono), monospace;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
  /* Telemetry numerals — tabular so live values do not jitter */
  .telemetry {
  font-family: var(--font-mono), monospace;
  --tw-numeric-spacing: tabular-nums;
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
  letter-spacing: -0.025em;
}
  /* Molten progress rail — bonding-curve fill toward graduation */
  .curve-rail {
  height: 0.5rem;
  width: 100%;
  overflow: hidden;
  border-radius: 9999px;
  --tw-bg-opacity: 1;
  background-color: oklch(var(--muted) / var(--tw-bg-opacity, 1));
}
  @supports not (color: oklch(0 0 0)) {
  .curve-rail {
    background-color: #1f1f23;
  }
}
  .curve-fill {
  height: 100%;
  border-radius: 9999px;
    transition: var(--transition-smooth);
    background-image: var(--gradient-primary);
}
  /* Reactor console panel — denser plate for trade/rig/fee control decks */
  .console {
  border-width: 1px;
  border-color: oklch(var(--border));
  --tw-bg-opacity: 1;
  background-color: oklch(var(--card) / var(--tw-bg-opacity, 1));
  --tw-shadow: 0 1px 0 0 rgba(255,255,255,0.03) inset, 0 1px 3px 0 rgba(0,0,0,0.4);
  --tw-shadow-colored: inset 0 1px 0 0 var(--tw-shadow-color), 0 1px 3px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
  @supports not (color: oklch(0 0 0)) {
  .console {
    background-color: #151517;
    border-color: #2a2a2f;
  }
}
  /* Status lamp — small colored dot signalling live/pending/paid state */
  .lamp {
  display: inline-block;
  height: 0.5rem;
  width: 0.5rem;
  flex-shrink: 0;
  border-radius: 9999px;
}
  @keyframes pulse-dot {

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

  50% {
    opacity: 0.5;
    transform: scale(0.85);
  }
}
  .lamp-live {
  animation: pulse-dot 2s ease-in-out infinite;
  --tw-bg-opacity: 1;
  background-color: oklch(var(--primary) / var(--tw-bg-opacity, 1));
  display: inline-block;
  height: 0.5rem;
  width: 0.5rem;
  flex-shrink: 0;
  border-radius: 9999px;
}
  @supports not (color: oklch(0 0 0)) {
  .lamp-live {
    background-color: #ff7a00;
    color: #0a0a0a;
  }
}
  @media (prefers-reduced-motion: reduce) {

  .lamp-live {
    animation: none;
  }
}
  @keyframes pulse-core {

  0%, 100% {
    opacity: 0.85;
    transform: scale(1);
  }

  50% {
    opacity: 1;
    transform: scale(1.06);
  }
}
  .lamp-core {
  animation: pulse-core 3.2s ease-in-out infinite;
  --tw-bg-opacity: 1;
  background-color: oklch(var(--accent) / var(--tw-bg-opacity, 1));
  display: inline-block;
  height: 0.5rem;
  width: 0.5rem;
  flex-shrink: 0;
  border-radius: 9999px;
}
  @media (prefers-reduced-motion: reduce) {

  .lamp-core {
    animation: none;
  }
}
  .lamp-idle {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--muted-foreground) / var(--tw-bg-opacity, 1));
  display: inline-block;
  height: 0.5rem;
  width: 0.5rem;
  flex-shrink: 0;
  border-radius: 9999px;
}
  /* Featured coin on the home page: a slow glow that pulls the eye */
  .featured-pill,
  .featured-coin {
    animation: featured-glow 2.8s ease-in-out infinite;
  }
  .featured-coin {
    border-color: oklch(0.68 0.2 46 / 0.6);
    background-image: radial-gradient(
      120% 140% at 0% 0%,
      oklch(0.68 0.2 46 / 0.16),
      transparent 60%
    );
  }
  @media (prefers-reduced-motion: reduce) {
    .featured-pill,
    .featured-coin {
      animation: none;
    }
  }
  @keyframes featured-glow {
    0%,
    100% {
      box-shadow: 0 0 0 0 oklch(0.68 0.2 46 / 0);
    }
    50% {
      box-shadow: 0 0 28px 2px oklch(0.68 0.2 46 / 0.45);
    }
  }
  /* Energy pipe — flowing gradient used on active rigs and fee rails */
  .energy-pipe {
    background-image: linear-gradient(
      90deg,
      oklch(0.68 0.2 46 / 0.1),
      oklch(0.86 0.16 74 / 0.9),
      oklch(0.68 0.2 46 / 0.1)
    );
    background-size: 200% 100%;
  }
  @keyframes energy-flow {

  0% {
    background-position: 0% 50%;
  }

  100% {
    background-position: 200% 50%;
  }
}
  .energy-pipe {
  animation: energy-flow 4s linear infinite;
}
  @media (prefers-reduced-motion: reduce) {

  .energy-pipe {
    animation: none;
  }
}
  /* Motion-safe variants for the shared entrance + spin animations */
  @keyframes fade-in-up {

  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}
  .animate-fade-in-up-motion {
  animation: fade-in-up 0.5s cubic-bezier(0.4, 0, 0.2, 1) both;
}
  @media (prefers-reduced-motion: reduce) {

  .animate-fade-in-up-motion {
    animation: none;
  }
}
  @keyframes spin-slow {

  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}
  .animate-spin-slow-motion {
  animation: spin-slow 18s linear infinite;
}
  @media (prefers-reduced-motion: reduce) {

  .animate-spin-slow-motion {
    animation: none;
  }
}
  /* ===== Motion system — entrance, stagger, hover lift, dialog ===== */
  /* Entrance: rise + settle. Plays once on mount, holds its end state.
     Reduced motion is handled by the unlayered override block below. */
  .animate-ignite {
    animation: ignite 0.55s var(--ease-ignite) both;
  }
  .animate-rise {
    animation: rise 0.4s var(--ease-ignite) both;
  }
  /* Stagger: apply .stagger to a container and .stagger-item to each child.
     Each item delays by its index — cap the list with style={{ "--i": n }}. */
  .stagger > .stagger-item {
    animation: ignite 0.55s var(--ease-ignite) both;
    animation-delay: calc(var(--i, 0) * var(--stagger-step));
  }
  /* Hover lift: cards, rows and tiles rise 1px and deepen their shadow.
     Pair with transition-smooth for the return. */
  .hover-lift {
    transition: transform var(--duration-base) var(--ease-settle), box-shadow
      var(--duration-base) var(--ease-settle), border-color var(--duration-base)
      var(--ease-settle);
  }
  .hover-lift:hover {
    transform: translateY(-1px);
    border-color: oklch(var(--primary) / 0.4);
    --tw-shadow: 0 1px 0 0 rgba(255,255,255,0.04) inset, 0 8px 24px -8px rgba(0,0,0,0.6);
    --tw-shadow-colored: inset 0 1px 0 0 var(--tw-shadow-color), 0 8px 24px -8px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  }
  /* Row hover: list and table rows shift surface + nudge, no lift */
  .row-hover {
    transition: background-color var(--duration-fast) var(--ease-settle),
      border-color var(--duration-fast) var(--ease-settle), transform
      var(--duration-fast) var(--ease-settle);
  }
  .row-hover:hover {
  border-color: oklch(var(--primary) / 0.3);
  background-color: oklch(var(--muted) / 0.5);
    transform: translateX(2px);
}
  /* Dialog / overlay entrance — Radix data-state driven, no JS timing */
  .dialog-motion[data-state="open"] {
    animation: overlay-in var(--duration-base) var(--ease-settle) both;
  }
  .dialog-motion[data-state="closed"] {
    animation: overlay-out var(--duration-fast) var(--ease-settle) both;
  }
  .dialog-motion-content[data-state="open"] {
    animation: dialog-in var(--duration-slow) var(--ease-ignite) both;
  }
  .dialog-motion-content[data-state="closed"] {
    animation: dialog-out var(--duration-fast) var(--ease-settle) both;
  }
  /* Landing hero: translucent molten-floor / cyan-zenith atmosphere layered
     over the app-wide animated depth field. Deliberately has NO opaque base
     color, so the shared AppBackground stays visible through the hero on first
     paint; the atmosphere comes from translucent gradients only. */
  .hero-stage {
    background-color: transparent;
    background-image: radial-gradient(
        120% 80% at 50% 120%,
        oklch(0.71 0.21 47 / 0.28),
        transparent 60%
      ),
      radial-gradient(
        70% 60% at 50% 30%,
        oklch(0.77 0.15 208 / 0.14),
        transparent 70%
      );
  }
  /* Hero legibility scrim: a light directional wash that keeps headline text
     readable over the reactor without washing out its motion and glow. Kept
     translucent (never an opaque fill) so the 3D scene reads through it. */
  .hero-scrim {
    background-image: linear-gradient(
      90deg,
      oklch(var(--stage-vignette) / 0.55),
      oklch(var(--stage-vignette) / 0.22) 45%,
      transparent 75%
    );
  }
  /* Mascot brand artwork: the generated render ships on a solid black
     backdrop, so it is feathered with a radial mask and blended with `lighten`
     to drop the black into the animated depth field rather than painting an
     opaque rectangle over it. */
  .mascot-art {
    mix-blend-mode: lighten;
    -webkit-mask-image: radial-gradient(
      72% 72% at 50% 48%,
      black 58%,
      transparent 88%
    );
    mask-image: radial-gradient(72% 72% at 50% 48%, black 58%, transparent 88%);
  }
  /* Brand logo: the generated crest ships on a solid black field, so it is
     blended with `lighten` and feathered with a radial mask to drop the black
     into the animated depth field instead of painting an opaque rectangle over
     it. Keeps its intrinsic 1:1 aspect and stays crisp from header to hero. */
  .domain-logo {
    mix-blend-mode: lighten;
    -webkit-mask-image: radial-gradient(
      68% 68% at 50% 50%,
      black 62%,
      transparent 92%
    );
    mask-image: radial-gradient(68% 68% at 50% 50%, black 62%, transparent 92%);
  }
  /* Faint engineering grid behind the reactor stage */
  .grid-floor {
    background-image: linear-gradient(
        oklch(var(--border) / 0.5) 1px,
        transparent 1px
      ), linear-gradient(90deg, oklch(var(--border) / 0.5) 1px, transparent 1px);
    background-size: 48px 48px;
    -webkit-mask-image: radial-gradient(80% 70% at 50% 40%, black, transparent 75%);
            mask-image: radial-gradient(80% 70% at 50% 40%, black, transparent 75%);
  }
  /* Infinity-core ring: platinum-white halo used behind the hero mark */
  .core-ring {
    background-image: radial-gradient(
      circle at center,
      oklch(var(--brand-platinum) / 0.3),
      transparent 65%
    );
  }
  /* Section eyebrow rule — a short molten tick before a label */
  .eyebrow-rule::before {
    content: "";
    margin-right: 0.5rem;
    display: inline-block;
    height: 1px;
    width: 1.5rem;
    --tw-bg-opacity: 1;
    background-color: oklch(var(--primary) / var(--tw-bg-opacity, 1));
    vertical-align: middle;
  }
  @supports not (color: oklch(0 0 0)) {
  .eyebrow-rule::before {
    background-color: #ff7a00;
    color: #0a0a0a;
  }
}
  /* Telemetry stat tile used across dashboard / rig / fee decks */
  .stat-tile {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  border-radius: var(--radius);
  border-width: 1px;
  border-color: oklch(var(--border));
  --tw-bg-opacity: 1;
  background-color: oklch(var(--card) / var(--tw-bg-opacity, 1));
  padding: 1rem;
  --tw-shadow: 0 1px 0 0 rgba(255,255,255,0.03) inset, 0 1px 3px 0 rgba(0,0,0,0.4);
  --tw-shadow-colored: inset 0 1px 0 0 var(--tw-shadow-color), 0 1px 3px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
  @supports not (color: oklch(0 0 0)) {
  .stat-tile {
    background-color: #151517;
    border-color: #2a2a2f;
  }
}
  /* ===== Futuristic atmosphere — depth field, glass, glow edges ===== */
  /* Full-route deep-space backdrop: cyan zenith + molten nadir over void */
  .depth-field {
    background-image: var(--gradient-depth);
  }
  /* Frosted glass panel — header, cards, consoles in the refreshed look */
  .glass-panel {
    background-image: var(--gradient-glass);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-width: 1px;
    border-color: oklch(var(--border));
  }
  @supports not (color: oklch(0 0 0)) {
  .glass-panel {
    border-color: #2a2a2f;
  }
}
  .glass-panel {
    border-color: var(--engine-hairline);
    transition: border-color var(--duration-base) var(--ease-settle), box-shadow
      var(--duration-base) var(--ease-settle), transform var(--duration-base)
      var(--ease-settle);
  }
  .glass-panel:hover {
    border-color: var(--engine-hairline-hot);
    box-shadow: var(--engine-glow-sm);
  }
  /* Glow edge — 1px emissive hairline on top of a glass surface */
  .glow-edge {
    position: relative;
  }
  .glow-edge::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 1px;
    background-image: linear-gradient(
      90deg,
      transparent,
      oklch(var(--brand-platinum) / 0.5),
      oklch(var(--brand-core) / 0.6),
      transparent
    );
    pointer-events: none;
  }
  /* Ambient drifting ember field — animated depth dots behind all content.
     Molten-orange embers plus a few platinum sparks over the void. */
  .starfield {
    background-image: radial-gradient(
        1px 1px at 20% 30%,
        oklch(var(--brand-platinum) / 0.5),
        transparent
      ),
      radial-gradient(
        1px 1px at 70% 60%,
        oklch(var(--brand-ember) / 0.45),
        transparent
      ),
      radial-gradient(
        1.5px 1.5px at 45% 80%,
        oklch(var(--brand-core-hot) / 0.5),
        transparent
      ),
      radial-gradient(
        1px 1px at 85% 20%,
        oklch(var(--brand-core) / 0.4),
        transparent
      );
    background-size: 240px 240px, 320px 320px, 400px 400px, 280px 280px;
  }
  @keyframes depth-drift {

  0% {
    background-position: 0% 0%, 0% 0%, 0% 0%, 0% 0%;
  }

  100% {
    background-position: 240px 240px, -320px 320px, 400px -400px, -280px -280px;
  }
}
  .starfield {
  animation: depth-drift 60s linear infinite;
}
  @media (prefers-reduced-motion: reduce) {

  .starfield {
    animation: none;
  }
}
  /* Ambient slow drift for the background depth layer */
  @keyframes depth-drift {

  0% {
    background-position: 0% 0%, 0% 0%, 0% 0%, 0% 0%;
  }

  100% {
    background-position: 240px 240px, -320px 320px, 400px -400px, -280px -280px;
  }
}
  .animate-depth-drift-motion {
  animation: depth-drift 60s linear infinite;
}
  @media (prefers-reduced-motion: reduce) {

  .animate-depth-drift-motion {
    animation: none;
  }
}
  /* ===== 3D brand assets — mark, icon tiles, emissive cores ===== */
  /* Brand mark tile: die-cast gunmetal cube with a top-light bevel */
  .brand-tile {
    background-image: var(--gradient-metal);
    box-shadow: 0 1px 0 0 oklch(var(--brand-bevel-light) / 0.5) inset, 0 -1px 0
      0 oklch(var(--brand-bevel-shade) / 0.8) inset, 0 6px 18px -8px
      oklch(0.09 0.006 250 / 0.9);
  }
  /* Icon frame: square containment for the 3D icon set (16/24/32/48 sizes) */
  .icon-cube {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  border-radius: calc(var(--radius) - 2px);
    background-image: var(--gradient-metal);
    box-shadow: 0 1px 0 0 oklch(var(--brand-bevel-light) / 0.45) inset, 0 -1px 0
      0 oklch(var(--brand-bevel-shade) / 0.7) inset;
}
  /* Emissive core: molten infinity core / orb interior */
  .core-emissive {
    background-image: var(--gradient-emissive);
    box-shadow: 0 0 0 1px oklch(var(--brand-core) / 0.5) inset, 0 0 16px -2px
      oklch(var(--brand-core) / 0.55);
  }
  /* Infinity glyph rim-light — the cyan counterpoint on 3D marks */
  .glyph-rim {
    filter: drop-shadow(0 0 6px oklch(var(--brand-rim) / 0.55));
  }
  /* Orange sunburst halo behind hero icons — energy without clutter */
  .sunburst-halo {
    background-image: radial-gradient(
      circle at center,
      oklch(var(--brand-core) / 0.3),
      transparent 62%
    );
  }
  /* ===== ENGINE mascot brand — infinity orb, platinum, pixel glass ===== */
  /* Infinity orb: the molten sphere held by the mascot, and the app's core
     brand motif. Emissive molten fill with a white-hot centre and soft halo. */
  .infinity-orb {
    border-radius: 9999px;
    background-image: radial-gradient(
      circle at 42% 34%,
      oklch(var(--brand-orb-hot)),
      oklch(var(--brand-orb)) 52%,
      oklch(0.42 0.18 36) 100%
    );
    box-shadow: 0 0 0 1px oklch(var(--brand-orb) / 0.55) inset, 0 0 24px -3px
      oklch(var(--brand-orb) / 0.7), 0 0 60px -12px
      oklch(var(--brand-core) / 0.5);
  }
  /* Slow-breathing halo for the orb — motion-reduce safe */
  @keyframes orb-pulse {

  0%, 100% {
    opacity: 0.85;
    transform: scale(1);
    filter: brightness(1);
  }

  50% {
    opacity: 1;
    transform: scale(1.05);
    filter: brightness(1.15);
  }
}
  .animate-infinity-orb {
  animation: orb-pulse 4.4s ease-in-out infinite;
}
  @media (prefers-reduced-motion: reduce) {

  .animate-infinity-orb {
    animation: none;
  }
}
  /* Platinum edge: crisp white-hot hairline rim for premium surfaces */
  .platinum-edge {
    box-shadow: 0 0 0 1px oklch(var(--brand-platinum) / 0.25), 0 1px 0 0
      oklch(var(--brand-platinum) / 0.12) inset;
  }
  /* Pixel glass: the mascot's pixel-sunglass motif as a dark glass chip */
  .pixel-glass {
    background-color: oklch(var(--brand-pixel) / 0.85);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-width: 1px;
    border-color: oklch(var(--border));
  }
  @supports not (color: oklch(0 0 0)) {
  .pixel-glass {
    border-color: #2a2a2f;
  }
}
  /* Molten text: the hero wordmark fill — white core into molten orange */
  .text-gradient-molten {
    background-image: linear-gradient(
      180deg,
      oklch(var(--brand-platinum)),
      oklch(var(--brand-core)) 62%,
      oklch(var(--brand-ember))
    );
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
  }
  /* Wide-tracked ENGINE wordmark lockup with the thin molten underline */
  .wordmark {
  text-transform: uppercase;
    font-family: var(--font-wordmark);
    font-weight: 400;
    letter-spacing: 0.32em;
    /* trailing tracking would push the rule past the last letter */
    margin-right: -0.32em;
}
  /* Brand mark idle animation (pulse + slow rotation), motion-reduce safe */
  @keyframes pulse-core {

  0%, 100% {
    opacity: 0.85;
    transform: scale(1);
  }

  50% {
    opacity: 1;
    transform: scale(1.06);
  }
}
  .animate-brand-core {
  animation: pulse-core 3.2s ease-in-out infinite;
}
  @media (prefers-reduced-motion: reduce) {

  .animate-brand-core {
    animation: none;
  }
}
  @keyframes spin-slow {

  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}
  .animate-brand-spin {
  animation: spin-slow 18s linear infinite;
}
  @media (prefers-reduced-motion: reduce) {

  .animate-brand-spin {
    animation: none;
  }
}
  /* Static pose for reduced motion: freeze the mark, no transform */
  .motion-reduce .brand-tile,
  .motion-reduce .icon-cube {
    animation: none !important;
    transform: none !important;
  }
  /* ===== 3D-first stage — every WebGL surface and its CSS fallback ===== */
  /* Reactor stage backdrop: void base with molten horizon + cyan zenith,
     used behind the hero canvas AND as the static fallback when WebGL is off,
     so the surface is never blank either way. */
  .reactor-stage {
    background-color: oklch(var(--stage-void));
    background-image: radial-gradient(
        90% 70% at 50% 118%,
        oklch(var(--stage-horizon) / 0.3),
        transparent 62%
      ),
      radial-gradient(
        70% 60% at 50% -8%,
        oklch(var(--stage-zenith) / 0.16),
        transparent 66%
      ),
      linear-gradient(
        180deg,
        oklch(var(--stage-void)),
        oklch(var(--stage-vignette))
      );
  }
  /* Canvas containment: transparent WebGL layer sits over the stage backdrop,
     never intercepts pointer events, and holds a fixed aspect on mobile. */
  .stage-canvas {
  pointer-events: none;
  position: absolute;
  inset: 0px;
  height: 100%;
  width: 100%;
}
  /* Static fallback pose — a legible frozen 3D-ish mark when no WebGL context
     can be created; keeps the same material tokens as the live object. */
  .stage-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
    background-image: var(--gradient-metal);
    box-shadow: 0 1px 0 0 oklch(var(--brand-bevel-light) / 0.5) inset, 0 -1px 0
      0 oklch(var(--brand-bevel-shade) / 0.8) inset, 0 18px 40px -18px
      oklch(0.05 0.006 258 / 0.9);
}
  /* Vignette scrim: darkens the stage edges so foreground copy stays readable
     over any WebGL motion. */
  .stage-scrim {
    background-image: radial-gradient(
        120% 90% at 50% 40%,
        transparent 40%,
        oklch(var(--stage-vignette) / 0.72) 100%
      ),
      linear-gradient(
        180deg,
        oklch(var(--stage-vignette) / 0.5),
        transparent 30%,
        transparent 70%,
        oklch(var(--stage-vignette) / 0.6)
      );
  }
  /* ===== Milestone flight — the 1M-MCap track, marker and arrival ===== */
  /* Flight stage: a deeper, more focused reactor stage for the launch-detail
     milestone scene. Composes over the shared AppBackground depth field. */
  .flight-stage {
    position: relative;
    overflow: hidden;
    border-radius: 0.75rem;
    background-color: oklch(var(--stage-void));
    background-image: radial-gradient(
        80% 60% at 50% 120%,
        oklch(var(--flight-track-hot) / 0.26),
        transparent 62%
      ),
      radial-gradient(
        70% 55% at 50% -10%,
        oklch(var(--flight-marker) / 0.16),
        transparent 66%
      ),
      linear-gradient(
        180deg,
        oklch(var(--stage-void)),
        oklch(var(--stage-vignette))
      );
  }
  /* Perspective floor grid receding toward the milestone marker */
  .flight-grid {
    background-image: linear-gradient(
        oklch(var(--flight-grid) / 0.55) 1px,
        transparent 1px
      ),
      linear-gradient(
        90deg,
        oklch(var(--flight-grid) / 0.55) 1px,
        transparent 1px
      );
    background-size: 56px 56px;
    -webkit-mask-image: linear-gradient(180deg, transparent, black 55%, transparent);
            mask-image: linear-gradient(180deg, transparent, black 55%, transparent);
    transform: perspective(420px) rotateX(62deg);
    transform-origin: 50% 100%;
  }
  /* Track rail: the visible flight path from launch point to the 1M marker.
     The fill width is driven by real curve progress (set --flight-progress). */
  .flight-rail {
    position: relative;
    height: 0.5rem;
    width: 100%;
    overflow: hidden;
    border-radius: 9999px;
    background-color: oklch(var(--flight-track) / 0.55);
  }
  .flight-rail-fill {
    height: 100%;
    width: calc(var(--flight-progress, 0) * 100%);
    border-radius: 9999px;
    background-image: linear-gradient(
      90deg,
      oklch(var(--flight-track-hot) / 0.55),
      oklch(var(--flight-thruster))
    );
    transition: width var(--duration-slow) var(--ease-settle);
  }
  /* Milestone marker: the 1M target node at the end of the track */
  .flight-marker {
    position: absolute;
    top: 50%;
    right: 0;
    translate: 0 -50%;
    height: 1.25rem;
    width: 1.25rem;
    border-radius: 9999px;
    border: 2px solid oklch(var(--flight-marker));
    background-color: oklch(var(--stage-void));
    box-shadow: 0 0 0 3px oklch(var(--flight-marker) / 0.18), 0 0 18px -2px
      oklch(var(--flight-marker) / 0.6);
  }
  /* Character node: the rocket rider whose position tracks curve progress */
  .flight-character {
    position: absolute;
    top: 50%;
    left: calc(var(--flight-progress, 0) * 100%);
    translate: -50% -50%;
    transition: left var(--duration-slow) var(--ease-settle);
  }
  /* Thruster glow beneath the character while in flight */
  .flight-thruster {
    background-image: radial-gradient(
      circle at 50% 30%,
      oklch(var(--flight-thruster) / 0.9),
      oklch(var(--flight-track-hot) / 0.35) 45%,
      transparent 72%
    );
  }
  @keyframes pulse-core {

  0%, 100% {
    opacity: 0.85;
    transform: scale(1);
  }

  50% {
    opacity: 1;
    transform: scale(1.06);
  }
}
  .flight-thruster {
  animation: pulse-core 3.2s ease-in-out infinite;
}
  @media (prefers-reduced-motion: reduce) {

  .flight-thruster {
    animation: none;
  }
}
  /* Arrival pose: distinct settled state once the milestone is reached */
  .flight-arrival {
    box-shadow: 0 0 0 1px oklch(var(--flight-arrival) / 0.5), 0 0 22px -4px
      oklch(var(--flight-arrival) / 0.55);
  }
  /* HUD readout chip — real price / progress over the flight scene */
  .flight-hud {
  pointer-events: none;
  border-radius: calc(var(--radius) - 2px);
  border-width: 1px;
  border-color: oklch(var(--border));
  background-color: oklch(var(--card) / 0.7);
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  --tw-backdrop-blur: blur(4px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
  @supports not (color: oklch(0 0 0)) {
  .flight-hud {
    border-color: #2a2a2f;
  }
}
  .flight-hud-value {
  font-family: var(--font-mono), monospace;
  --tw-numeric-spacing: tabular-nums;
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
  letter-spacing: -0.025em;
  color: oklch(var(--foreground));
}
  @supports not (color: oklch(0 0 0)) {
  .flight-hud-value {
    color: #fafafa;
  }
}
  .showcase-glow {
    background-image: radial-gradient(
      60% 70% at 70% 100%,
      rgb(255 122 0 / 0.22),
      transparent 70%
    );
  }
  .showcase-stage {
    position: relative;
    height: clamp(340px, 92vw, 520px);
    perspective: 1400px;
    transform-style: preserve-3d;
  }
  .showcase-card {
    --tilt-x: 0deg;
    --tilt-y: 0deg;
    --sheen-x: 30%;
    --sheen-y: 20%;
    position: absolute;
    top: 50%;
    left: 50%;
    width: min(68vw, 420px);
    aspect-ratio: 1;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
    transform-style: preserve-3d;
    transition: transform 0.9s var(--ease-ignite), opacity 0.9s
      var(--ease-ignite), filter 0.9s var(--ease-ignite);
    -webkit-tap-highlight-color: transparent;
  }
  .showcase-card[data-slot="0"] {
    z-index: 3;
    cursor: default;
    transform: translate(-50%, -50%) translateZ(60px);
  }
  .showcase-card[data-slot="1"] {
    z-index: 2;
    opacity: 0.78;
    filter: saturate(0.85) brightness(0.78);
    transform: translate(-12%, -50%) translateZ(-160px) rotateY(-32deg)
      scale(0.82);
  }
  .showcase-card[data-slot="-1"] {
    z-index: 1;
    opacity: 0.78;
    filter: saturate(0.85) brightness(0.78);
    transform: translate(-88%, -50%) translateZ(-160px) rotateY(32deg)
      scale(0.82);
  }
  .showcase-card:not([data-slot="0"]):hover {
    opacity: 0.8;
    filter: none;
  }
  .showcase-card:focus-visible {
    outline: none;
  }
  .showcase-card:focus-visible .showcase-card-inner {
    box-shadow: 0 0 0 2px var(--engine-orange-glow), var(--engine-glow-lg);
  }
  .showcase-card-inner {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
    border-radius: var(--radius-xl);
    border: 1px solid var(--engine-hairline);
    background-color: var(--engine-black);
    transform: rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
    transition: transform 0.25s var(--ease-settle), box-shadow 0.4s
      var(--ease-settle);
    box-shadow: 0 30px 60px -30px rgb(0 0 0 / 0.95), 0 0 0 1px
      rgb(255 255 255 / 0.03);
  }
  .showcase-card[data-slot="0"] .showcase-card-inner {
    border-color: var(--engine-hairline-hot);
    box-shadow: 0 40px 80px -30px rgb(0 0 0 / 0.95), var(--engine-glow-lg);
  }
  .showcase-card-motion[data-slot="0"] .showcase-card-inner {
    animation: showcase-float 6s ease-in-out infinite;
  }
  .showcase-card-motion[data-slot="0"]:hover .showcase-card-inner {
    animation-play-state: paused;
  }
  @keyframes showcase-float {
    0%,
    100% {
      transform: rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(0);
    }
    50% {
      transform: rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(-10px);
    }
  }
  .showcase-sheen {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image: radial-gradient(
      circle at var(--sheen-x) var(--sheen-y),
      rgb(255 255 255 / 0.16),
      transparent 45%
    );
    mix-blend-mode: screen;
    opacity: 0;
    transition: opacity 0.3s var(--ease-settle);
  }
  .showcase-card[data-slot="0"]:hover .showcase-sheen {
    opacity: 1;
  }
  .showcase-edge {
    position: absolute;
    inset: 0;
    pointer-events: none;
    border-radius: inherit;
    background-image: linear-gradient(
      115deg,
      transparent 40%,
      rgb(255 165 61 / 0.18) 50%,
      transparent 60%
    );
    background-size: 250% 100%;
    background-position: 120% 0;
  }
  .showcase-card-motion[data-slot="0"] .showcase-edge {
    animation: showcase-shine 5.2s var(--ease-settle) infinite;
  }
  @keyframes showcase-shine {
    0% {
      background-position: 120% 0;
    }
    45%,
    100% {
      background-position: -60% 0;
    }
  }
  .showcase-floor {
    position: absolute;
    left: 50%;
    bottom: 2%;
    width: 70%;
    height: 40px;
    transform: translateX(-50%);
    border-radius: 100%;
    background-image: radial-gradient(
      closest-side,
      rgb(255 122 0 / 0.55),
      rgb(255 122 0 / 0.12) 60%,
      transparent
    );
    filter: blur(6px);
    pointer-events: none;
  }
  .cta-mascot {
    animation: cta-mascot-bob 4.8s ease-in-out infinite;
    transform-origin: 70% 90%;
  }
  @keyframes cta-mascot-bob {
    0%,
    100% {
      transform: translateY(0) rotate(0deg);
    }
    50% {
      transform: translateY(-8px) rotate(-1.5deg);
    }
  }
  .nft-card {
    transition: transform var(--duration-slow) var(--ease-ignite), border-color
      var(--duration-base) var(--ease-settle), box-shadow var(--duration-base)
      var(--ease-settle);
  }
  .nft-card:hover {
    transform: translateY(-4px) rotateX(2deg);
  }
  .rarity-badge {
    font-weight: 700;
    letter-spacing: 0.16em;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
  }
  .rarity-common {
    color: var(--engine-steel);
    background-color: rgb(20 20 22 / 0.8);
    box-shadow: inset 0 0 0 1px rgb(201 204 209 / 0.45);
  }
  .rarity-rare {
    color: #ffffff;
    background-color: rgb(255 122 0 / 0.25);
    box-shadow: inset 0 0 0 1px rgb(255 165 61 / 0.7);
  }
  .rarity-epic {
    color: var(--engine-black);
    background-image: linear-gradient(
      135deg,
      var(--engine-orange-glow),
      var(--engine-orange)
    );
    box-shadow: 0 0 12px rgb(255 122 0 / 0.6);
  }
  .rarity-legendary {
    color: var(--engine-black);
    background-image: linear-gradient(
      110deg,
      #fff1c9 0%,
      var(--engine-orange-glow) 30%,
      #ffffff 50%,
      var(--engine-orange-glow) 70%,
      #fff1c9 100%
    );
    background-size: 220% 100%;
    box-shadow: 0 0 16px rgb(255 190 90 / 0.8);
    animation: rarity-shine 3s linear infinite;
  }
  @keyframes rarity-shine {
    from {
      background-position: 120% 0;
    }
    to {
      background-position: -120% 0;
    }
  }
  .genesis-stage {
    background-image: radial-gradient(
        70% 60% at 30% 0%,
        rgb(255 122 0 / 0.16),
        transparent 70%
      ), linear-gradient(180deg, rgb(5 5 5 / 0.2), rgb(5 5 5 / 0.55));
    border-top: 1px solid var(--engine-hairline);
    border-bottom: 1px solid var(--engine-hairline);
  }
  /* The always-visible "Mint Genesis" nav pill. */
  .genesis-nav {
    color: var(--engine-black) !important;
    background-image: linear-gradient(
      180deg,
      var(--engine-orange-glow),
      var(--engine-orange)
    );
    box-shadow: var(--engine-glow-sm);
    animation: genesis-pulse 2.8s ease-in-out infinite;
  }
  .genesis-nav:hover {
    box-shadow: var(--engine-glow-lg);
  }
  .genesis-cta {
    animation: genesis-pulse 2.8s ease-in-out infinite;
  }
  @keyframes genesis-pulse {
    0%,
    100% {
      box-shadow: 0 0 0 1px rgb(255 122 0 / 0.35), 0 0 16px -4px
        rgb(255 122 0 / 0.55);
    }
    50% {
      box-shadow: 0 0 0 1px rgb(255 160 60 / 0.6), 0 0 30px -2px
        rgb(255 122 0 / 0.8);
    }
  }
  /* A molten edge and a slow sheen: these two cards outrank everything else. */
  .flagship-card {
    position: relative;
    overflow: hidden;
    border-color: oklch(0.68 0.2 46 / 0.55);
    background-image: radial-gradient(
        120% 90% at 0% 0%,
        oklch(0.68 0.2 46 / 0.18),
        transparent 60%
      ),
      radial-gradient(
        90% 80% at 100% 100%,
        oklch(0.68 0.2 46 / 0.08),
        transparent 65%
      );
    transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s
      ease;
  }
  .flagship-card::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(
      105deg,
      transparent 40%,
      rgb(255 160 60 / 0.1) 50%,
      transparent 60%
    );
    transform: translateX(-100%);
    animation: flagship-sheen 6s ease-in-out infinite;
  }
  .flagship-card:hover {
    transform: translateY(-2px);
    border-color: oklch(0.72 0.2 50 / 0.9);
    box-shadow: 0 0 34px -6px rgb(255 122 0 / 0.5);
  }
  .flagship-art {
    box-shadow: 0 0 26px -6px rgb(255 122 0 / 0.6);
  }
  .flagship-tile {
    background-image: linear-gradient(
      90deg,
      oklch(0.68 0.2 46 / 0.1),
      transparent 70%
    );
  }
  @keyframes flagship-sheen {
    0%,
    55% {
      transform: translateX(-100%);
    }
    85%,
    100% {
      transform: translateX(100%);
    }
  }
  .race-track {
    position: relative;
    display: block;
    height: 10px;
    margin: 8px 14px 8px 12px;
    border-radius: 999px;
    background: repeating-linear-gradient(
        90deg,
        rgb(255 255 255 / 0.05) 0 10px,
        transparent 10px 20px
      ), var(--color-secondary, rgb(255 255 255 / 0.06));
  }
  .race-fill {
    position: absolute;
    inset: 0 auto 0 0;
    border-radius: 999px;
    background: linear-gradient(
      90deg,
      rgb(255 122 0 / 0.25),
      var(--engine-orange, #ff7a00)
    );
    transform-origin: left;
    animation: race-grow 1.4s cubic-bezier(0.2, 0.8, 0.2, 1) both;
  }
  .race-runner {
    position: absolute;
    top: 50%;
    display: block;
    translate: -50% -50%;
    border-radius: 6px;
    box-shadow: 0 0 0 1px rgb(255 122 0 / 0.5), 0 0 12px -2px
      rgb(255 122 0 / 0.7);
    animation: race-arrive 1.4s cubic-bezier(0.2, 0.8, 0.2, 1) both;
  }
  .race-leader .race-runner {
    box-shadow: 0 0 0 1px rgb(255 160 60 / 0.9), 0 0 22px 0 rgb(255 122 0 / 0.9);
    animation: race-arrive 1.4s cubic-bezier(0.2, 0.8, 0.2, 1) both, race-lead
      1.8s ease-in-out 1.4s infinite;
  }
  .race-finish {
    position: absolute;
    top: -4px;
    right: -3px;
    bottom: -4px;
    width: 6px;
    border-radius: 2px;
    background: repeating-linear-gradient(0deg, #fff 0 3px, #111 3px 6px);
    opacity: 0.8;
  }
  @keyframes race-grow {
    from {
      transform: scaleX(0);
    }
    to {
      transform: scaleX(1);
    }
  }
  @keyframes race-arrive {
    from {
      left: 0%;
      opacity: 0;
    }
  }
  @keyframes race-lead {
    0%,
    100% {
      scale: 1;
    }
    50% {
      scale: 1.14;
    }
  }
  .heat-blazing {
    animation: heat-pulse 1.6s ease-in-out infinite;
  }
  @keyframes heat-pulse {
    0%,
    100% {
      box-shadow: 0 0 0 0 rgb(255 122 0 / 0);
    }
    50% {
      box-shadow: 0 0 18px 0 rgb(255 122 0 / 0.55);
    }
  }
  .buy-celebration {
    animation: celebrate-in 0.45s cubic-bezier(0.2, 1.4, 0.4, 1) both;
  }
  @keyframes celebrate-in {
    from {
      transform: scale(0.94);
      opacity: 0;
    }
  }
  .ember-burst {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    pointer-events: none;
  }
  .ember-burst i {
    position: absolute;
    width: 8px;
    height: 8px;
    margin: -4px;
    border-radius: 50%;
    background: var(--engine-orange-glow, #ffa53d);
    box-shadow: 0 0 12px 3px rgb(255 122 0 / 0.9);
    opacity: 0;
    animation: ember-fly 1.3s cubic-bezier(0.1, 0.7, 0.3, 1) var(--delay) 1 both;
  }
  @keyframes ember-fly {
    0% {
      transform: rotate(var(--angle)) translateX(0) scale(1.2);
      opacity: 1;
    }
    60% {
      opacity: 1;
    }
    100% {
      transform: rotate(var(--angle)) translateX(var(--reach)) scale(0.3);
      opacity: 0;
    }
  }
.\[--cell-size\:--spacing\(8\)\] {
  --cell-size: var(--spacing(8));
}
.\[perspective\:1200px\] {
  perspective: 1200px;
}
.\[perspective\:900px\] {
  perspective: 900px;
}
.\[scrollbar-width\:none\] {
  scrollbar-width: none;
}

@font-face {
  font-family: "Space Grotesk";
  src: url("/assets/fonts/SpaceGrotesk.woff2") format("woff2");
  font-display: swap;
}

@font-face {
  font-family: "DM Sans";
  src: url("/assets/fonts/DMSans.woff2") format("woff2");
  font-display: swap;
}

/* ENGINE Round 1 type system — self-hosted (OFL) so first paint never waits
   on a third-party font CDN. Orbitron = wide display headings, Michroma = thin
   ultra-wide wordmark, Inter = body copy. */
@font-face {
  font-family: "Orbitron";
  src: url("/assets/fonts/Orbitron.woff2") format("woff2");
  font-weight: 400 900;
  font-display: swap;
}

@font-face {
  font-family: "Michroma";
  src: url("/assets/fonts/Michroma.woff2") format("woff2");
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Inter";
  src: url("/assets/fonts/Inter.woff2") format("woff2");
  font-weight: 400 700;
  font-display: swap;
}

@font-face {
  font-family: "JetBrains Mono";
  src: url("/assets/fonts/JetBrainsMono.woff2") format("woff2");
  font-display: swap;
}

/* Motion system keyframes — declared unlayered so they are always available
   to the utilities above (Tailwind's own keyframes live in tailwind.config.js). */
@keyframes ignite {
  from {
    opacity: 0;
    transform: translateY(12px) scale(0.985);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes rise {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes overlay-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes overlay-out {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}

@keyframes dialog-in {
  from {
    opacity: 0;
    transform: translateY(8px) scale(0.97);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes dialog-out {
  from {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
  to {
    opacity: 0;
    transform: translateY(4px) scale(0.98);
  }
}

/* Reduced motion: kill every entrance/hover/dialog motion and hold end state.
   Unlayered so it wins over the @layer utilities declarations above. */
@media (prefers-reduced-motion: reduce) {
  .code-spark {
    animation: none;
    opacity: 0.4;
  }
  .animate-ignite,
  .animate-rise,
  .stagger > .stagger-item,
  .dialog-motion[data-state],
  .dialog-motion-content[data-state] {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
  .hover-lift:hover,
  .row-hover:hover {
    transform: none !important;
  }
  .flight-rail-fill,
  .flight-character {
    transition: none !important;
  }
  .animate-infinity-orb,
  .animate-ember-drift,
  .animate-wordmark-sheen {
    animation: none !important;
  }
}

/* ---------------- ENGINE artwork showcase (live 3D carousel) ---------------- */

@media (prefers-reduced-motion: reduce) {
  .showcase-card,
  .showcase-card-inner {
    transition: none;
  }
  .showcase-card-inner,
  .showcase-edge {
    animation: none !important;
  }
  .cta-mascot {
    animation: none;
  }
  .nft-card:hover {
    transform: none;
  }
}

/* ---------------- NFT rarity badges ---------------- */

@media (prefers-reduced-motion: reduce) {
  .rarity-legendary {
    animation: none;
  }
}

/* ---------------- ENGINE Genesis spotlight ---------------- */

@media (prefers-reduced-motion: reduce) {
  .genesis-nav,
  .genesis-cta {
    animation: none;
  }
}

/* Loop 8: minted-NFT reveal (flip in with a molten flash). */
@keyframes mint-reveal-in {
  0% {
    transform: perspective(600px) rotateY(90deg) scale(0.8);
    filter: brightness(2.2);
  }
  60% {
    transform: perspective(600px) rotateY(-8deg) scale(1.05);
    filter: brightness(1.4);
  }
  100% {
    transform: perspective(600px) rotateY(0) scale(1);
    filter: brightness(1);
  }
}
.mint-reveal {
  animation: mint-reveal-in 900ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

/* Loop 11: pointer-driven 3D tilt with a holographic sheen (see useTilt). */
.tilt-card {
  transform: perspective(900px) rotateX(var(--tilt-x, 0deg))
    rotateY(var(--tilt-y, 0deg));
  transition: transform 250ms ease-out;
  transform-style: preserve-3d;
  will-change: transform;
}
.tilt-card::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  background: radial-gradient(
    circle at var(--sheen-x, 50%) var(--sheen-y, 50%),
    rgba(255, 190, 120, 0.28),
    rgba(255, 120, 40, 0.08) 35%,
    transparent 60%
  );
  mix-blend-mode: screen;
  opacity: var(--sheen-o, 0);
  transition: opacity 250ms ease-out;
}
@media (prefers-reduced-motion: reduce) {
  .mint-reveal {
    animation: none;
  }
  .tilt-card {
    transform: none;
    transition: none;
  }
  .tilt-card::after {
    display: none;
  }
}

/* Loop 5: fade the edges of the scrolling phone menu so it reads as swipeable. */
.mobile-nav {
  -webkit-mask-image: linear-gradient(
    to right,
    transparent,
    #000 14px,
    #000 calc(100% - 28px),
    transparent
  );
  mask-image: linear-gradient(
    to right,
    transparent,
    #000 14px,
    #000 calc(100% - 28px),
    transparent
  );
}

/* Older in-app browsers (e.g. old Android WebViews) can't parse oklch(), which
   every theme colour uses; without these fallbacks the page shows white with
   near-invisible text. Plain hex base colours work everywhere. */
html {
  background-color: #0a0a0a;
  color: #fafafa;
  color-scheme: dark;
}
@supports not (color: oklch(0 0 0)) {
  body,
  .bg-background {
    background-color: #0a0a0a !important;
    color: #fafafa;
  }
  .engine-card,
  .bg-card,
  .bg-popover {
    background-color: #151517 !important;
  }
  .bg-secondary,
  .bg-muted {
    background-color: #1f1f23 !important;
  }
  .text-foreground,
  .text-card-foreground,
  h1,
  h2,
  h3 {
    color: #fafafa !important;
  }
  .text-muted-foreground,
  .text-steel {
    color: #a1a1aa !important;
  }
  .text-primary,
  .ticker.text-primary {
    color: #ff7a00 !important;
  }
  .bg-primary,
  .btn-engine-primary {
    background-color: #ff7a00 !important;
    color: #0a0a0a !important;
  }
  .border,
  .border-border {
    border-color: #2a2a2f !important;
  }
  .text-success {
    color: #34d399 !important;
  }
  .text-destructive {
    color: #f87171 !important;
  }
  .engine-header {
    background-color: rgba(10, 10, 10, 0.92) !important;
  }
}

/* ------------------------------------------------------------------ *
 * Launchpad live visuals (UI loops, 2026-11-06)
 * ------------------------------------------------------------------ */
/* "You are here" dot on the bonding curve: a soft breathing halo. */
.lp-curve-dot {
  transform-box: fill-box;
  transform-origin: center;
  animation: lp-breathe 2.4s ease-in-out infinite;
}
@keyframes lp-breathe {
  0%,
  100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.6);
    opacity: 0.55;
  }
}
/* Price tick flash: green when the price rises, red when it falls. */
.lp-flash-up {
  animation: lp-flash-up 1.2s ease-out;
}
.lp-flash-down {
  animation: lp-flash-down 1.2s ease-out;
}
@keyframes lp-flash-up {
  0% {
    background-color: oklch(var(--success) / 0.35);
  }
  100% {
    background-color: transparent;
  }
}
@keyframes lp-flash-down {
  0% {
    background-color: oklch(var(--destructive) / 0.35);
  }
  100% {
    background-color: transparent;
  }
}
/* 3D tilt card: follows the pointer (set --rx/--ry from JS), with a light
 * sheen; flat on touch screens and with reduced motion. */
.lp-tilt {
  transform: perspective(900px) rotateX(var(--rx, 0deg))
    rotateY(var(--ry, 0deg));
  transform-style: preserve-3d;
  transition: transform 180ms ease-out;
  will-change: transform;
}
.lp-tilt::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background: radial-gradient(
    circle at var(--mx, 50%) var(--my, 50%),
    oklch(1 0 0 / 0.08),
    transparent 55%
  );
  opacity: var(--sheen, 0);
  transition: opacity 180ms ease-out;
}
.lp-tilt-pop {
  transform: translateZ(28px);
}
@media (hover: none), (pointer: coarse) {
  .lp-tilt {
    transform: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .lp-curve-dot,
  .lp-flash-up,
  .lp-flash-down {
    animation: none;
  }
  .lp-tilt {
    transform: none;
    transition: none;
  }
}

/* ------------------------------------------------------------------ *
 * Hero HUD + frost reveals (design loops, 2026-11-06)
 * ------------------------------------------------------------------ */
.hud-label {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: oklch(var(--muted-foreground));
  white-space: nowrap;
}
.hud-arrow {
  display: inline-block;
  color: oklch(var(--primary));
  animation: hud-nudge 2.4s ease-in-out infinite;
}
.hud-tick {
  display: inline-block;
  color: oklch(var(--primary));
  animation: hud-drop 1.8s ease-in-out infinite;
}
@keyframes hud-nudge {
  0%,
  100% {
    transform: translateX(0);
  }
  50% {
    transform: translateX(4px);
  }
}
@keyframes hud-drop {
  0%,
  100% {
    transform: translateY(0);
    opacity: 1;
  }
  50% {
    transform: translateY(3px);
    opacity: 0.5;
  }
}
[data-frost] {
  transition: opacity 0.9s ease, filter 0.9s ease, transform 0.9s
    cubic-bezier(0.2, 0.7, 0.2, 1);
}
[data-frost].frost-pending {
  opacity: 0;
  filter: blur(10px) saturate(0.6);
  transform: translateY(18px);
}
@media (prefers-reduced-motion: reduce) {
  .hud-arrow,
  .hud-tick {
    animation: none;
  }
  [data-frost],
  [data-frost].frost-pending {
    transition: none;
    opacity: 1;
    filter: none;
    transform: none;
  }
}

/* Home page momentum bar: a slow light sweep (owner, 2026-11-08). */
.momentum-fill {
  background-size: 200% 100%;
  animation: momentum-sweep 2.8s linear infinite;
}
@keyframes momentum-sweep {
  from {
    background-position: 100% 0;
  }
  to {
    background-position: -100% 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .momentum-fill {
    animation: none;
  }
}

/* ---------------- Platform flagships: $CENGINE + ENGINE Genesis ---------------- */

@media (prefers-reduced-motion: reduce) {
  .flagship-card::after {
    animation: none;
    display: none;
  }
  .flagship-card:hover {
    transform: none;
  }
}

/* ---------------- Live energy: race to listing, heat, buy burst ---------------- */

@media (prefers-reduced-motion: reduce) {
  .race-fill,
  .race-runner,
  .race-leader .race-runner,
  .heat-blazing,
  .buy-celebration {
    animation: none;
  }
  .ember-burst {
    display: none;
  }
}

/* Wallet: the flight path between sender, ledger and recipient, the turning
   outer ring of a sigil while a send is signed, and the holdings ring. */
.flight-line {
  border-radius: 1px;
  background: repeating-linear-gradient(
    90deg,
    currentColor 0 6px,
    transparent 6px 12px
  );
  color: #8a8e95;
  opacity: 0.6;
}
.flight-line-live {
  color: #ff7a00;
  opacity: 1;
  background-size: 12px 100%;
  animation: flight-run 0.5s linear infinite;
}
.flight-line-done {
  color: #22c55e;
  opacity: 1;
  background: currentColor;
}
.flight-line-failed {
  color: #ef4444;
  opacity: 0.8;
}
@keyframes flight-run {
  to {
    background-position: 12px 0;
  }
}
.sigil-orbit {
  transform-box: view-box;
  transform-origin: 50% 50%;
  animation: sigil-orbit 6s linear infinite;
}
@keyframes sigil-orbit {
  to {
    rotate: 360deg;
  }
}
.ring-slice {
  transition: stroke-dasharray 0.6s ease, stroke-dashoffset 0.6s ease;
}
@media (prefers-reduced-motion: reduce) {
  .flight-line-live,
  .sigil-orbit {
    animation: none;
  }
  .ring-slice {
    transition: none;
  }
}
.selection\:bg-primary *::-moz-selection {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--primary) / var(--tw-bg-opacity, 1));
}
.selection\:bg-primary *::selection {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--primary) / var(--tw-bg-opacity, 1));
}
.selection\:text-primary-foreground *::-moz-selection {
  color: oklch(var(--primary-foreground));
}
.selection\:text-primary-foreground *::selection {
  color: oklch(var(--primary-foreground));
}
.selection\:bg-primary::-moz-selection {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--primary) / var(--tw-bg-opacity, 1));
}
.selection\:bg-primary::selection {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--primary) / var(--tw-bg-opacity, 1));
}
.selection\:text-primary-foreground::-moz-selection {
  color: oklch(var(--primary-foreground));
}
.selection\:text-primary-foreground::selection {
  color: oklch(var(--primary-foreground));
}
.file\:inline-flex::file-selector-button {
  display: inline-flex;
}
.file\:h-7::file-selector-button {
  height: 1.75rem;
}
.file\:border-0::file-selector-button {
  border-width: 0px;
}
.file\:bg-transparent::file-selector-button {
  background-color: transparent;
}
.file\:text-sm::file-selector-button {
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.file\:font-medium::file-selector-button {
  font-weight: 500;
}
.file\:text-foreground::file-selector-button {
  color: oklch(var(--foreground));
}
.placeholder\:text-muted-foreground::-moz-placeholder {
  --tw-text-opacity: 1;
  color: oklch(var(--muted-foreground) / var(--tw-text-opacity, 1));
}
.placeholder\:text-muted-foreground::placeholder {
  --tw-text-opacity: 1;
  color: oklch(var(--muted-foreground) / var(--tw-text-opacity, 1));
}
.after\:absolute::after {
  content: var(--tw-content);
  position: absolute;
}
.after\:-inset-2::after {
  content: var(--tw-content);
  inset: -0.5rem;
}
.after\:inset-y-0::after {
  content: var(--tw-content);
  top: 0px;
  bottom: 0px;
}
.after\:left-1\/2::after {
  content: var(--tw-content);
  left: 50%;
}
.after\:w-1::after {
  content: var(--tw-content);
  width: 0.25rem;
}
.after\:w-\[2px\]::after {
  content: var(--tw-content);
  width: 2px;
}
.after\:-translate-x-1\/2::after {
  content: var(--tw-content);
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.first\:rounded-l-md:first-child {
  border-top-left-radius: calc(var(--radius) - 2px);
  border-bottom-left-radius: calc(var(--radius) - 2px);
}
.first\:border-l:first-child {
  border-left-width: 1px;
}
.first\:border-t-0:first-child {
  border-top-width: 0px;
}
.last\:rounded-r-md:last-child {
  border-top-right-radius: calc(var(--radius) - 2px);
  border-bottom-right-radius: calc(var(--radius) - 2px);
}
.last\:border-b-0:last-child {
  border-bottom-width: 0px;
}
.hover\:-translate-y-0\.5:hover {
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.hover\:-translate-y-px:hover {
  --tw-translate-y: -1px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.hover\:scale-105:hover {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.hover\:border-\[color\:var\(--engine-hairline\)\]:hover {
  border-color: var(--engine-hairline);
}
.hover\:border-destructive\/70:hover {
  border-color: oklch(var(--destructive) / 0.7);
}
.hover\:border-primary:hover {
  --tw-border-opacity: 1;
  border-color: oklch(var(--primary) / var(--tw-border-opacity, 1));
}
.hover\:border-primary\/40:hover {
  border-color: oklch(var(--primary) / 0.4);
}
.hover\:border-primary\/50:hover {
  border-color: oklch(var(--primary) / 0.5);
}
.hover\:border-primary\/60:hover {
  border-color: oklch(var(--primary) / 0.6);
}
.hover\:bg-accent:hover {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--accent) / var(--tw-bg-opacity, 1));
}
.hover\:bg-accent\/10:hover {
  background-color: oklch(var(--accent) / 0.1);
}
.hover\:bg-destructive\/90:hover {
  background-color: oklch(var(--destructive) / 0.9);
}
.hover\:bg-muted:hover {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--muted) / var(--tw-bg-opacity, 1));
}
.hover\:bg-muted-foreground\/70:hover {
  background-color: oklch(var(--muted-foreground) / 0.7);
}
.hover\:bg-muted\/50:hover {
  background-color: oklch(var(--muted) / 0.5);
}
.hover\:bg-primary\/10:hover {
  background-color: oklch(var(--primary) / 0.1);
}
.hover\:bg-primary\/90:hover {
  background-color: oklch(var(--primary) / 0.9);
}
.hover\:bg-secondary:hover {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--secondary) / var(--tw-bg-opacity, 1));
}
.hover\:bg-secondary\/40:hover {
  background-color: oklch(var(--secondary) / 0.4);
}
.hover\:bg-secondary\/60:hover {
  background-color: oklch(var(--secondary) / 0.6);
}
.hover\:bg-secondary\/80:hover {
  background-color: oklch(var(--secondary) / 0.8);
}
.hover\:bg-sidebar-accent:hover {
  background-color: oklch(var(--sidebar-accent));
}
.hover\:text-accent-foreground:hover {
  color: oklch(var(--accent-foreground));
}
.hover\:text-destructive:hover {
  --tw-text-opacity: 1;
  color: oklch(var(--destructive) / var(--tw-text-opacity, 1));
}
.hover\:text-destructive\/80:hover {
  color: oklch(var(--destructive) / 0.8);
}
.hover\:text-foreground:hover {
  color: oklch(var(--foreground));
}
.hover\:text-muted-foreground:hover {
  --tw-text-opacity: 1;
  color: oklch(var(--muted-foreground) / var(--tw-text-opacity, 1));
}
.hover\:text-primary:hover {
  --tw-text-opacity: 1;
  color: oklch(var(--primary) / var(--tw-text-opacity, 1));
}
.hover\:text-sidebar-accent-foreground:hover {
  color: oklch(var(--sidebar-accent-foreground));
}
.hover\:underline:hover {
  text-decoration-line: underline;
}
.hover\:opacity-100:hover {
  opacity: 1;
}
.hover\:opacity-90:hover {
  opacity: 0.9;
}
.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover {
  --tw-shadow: 0 0 0 1px hsl(var(--sidebar-accent));
  --tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-subtle:hover {
  --tw-shadow: 0 1px 0 0 rgba(255,255,255,0.03) inset, 0 1px 3px 0 rgba(0,0,0,0.4);
  --tw-shadow-colored: inset 0 1px 0 0 var(--tw-shadow-color), 0 1px 3px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:ring-4:hover {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.hover\:brightness-110:hover {
  --tw-brightness: brightness(1.1);
  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);
}
.hover\:after\:bg-sidebar-border:hover::after {
  content: var(--tw-content);
  background-color: oklch(var(--sidebar-border));
}
.focus\:z-10:focus {
  z-index: 10;
}
.focus\:border-primary:focus {
  --tw-border-opacity: 1;
  border-color: oklch(var(--primary) / var(--tw-border-opacity, 1));
}
.focus\:bg-accent:focus {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--accent) / var(--tw-bg-opacity, 1));
}
.focus\:text-accent-foreground:focus {
  color: oklch(var(--accent-foreground));
}
.focus\:outline-none:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.focus\:ring-2:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus\:ring-ring:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: oklch(var(--ring) / var(--tw-ring-opacity, 1));
}
.focus\:ring-offset-2:focus {
  --tw-ring-offset-width: 2px;
}
.focus-visible\:z-10:focus-visible {
  z-index: 10;
}
.focus-visible\:border-primary:focus-visible {
  --tw-border-opacity: 1;
  border-color: oklch(var(--primary) / var(--tw-border-opacity, 1));
}
.focus-visible\:border-primary\/50:focus-visible {
  border-color: oklch(var(--primary) / 0.5);
}
.focus-visible\:border-primary\/60:focus-visible {
  border-color: oklch(var(--primary) / 0.6);
}
.focus-visible\:border-ring:focus-visible {
  --tw-border-opacity: 1;
  border-color: oklch(var(--ring) / var(--tw-border-opacity, 1));
}
.focus-visible\:outline:focus-visible {
  outline-style: solid;
}
.focus-visible\:outline-1:focus-visible {
  outline-width: 1px;
}
.focus-visible\:outline-2:focus-visible {
  outline-width: 2px;
}
.focus-visible\:outline-offset-2:focus-visible {
  outline-offset: 2px;
}
.focus-visible\:outline-ring:focus-visible {
  outline-color: oklch(var(--ring) / 1);
}
.focus-visible\:ring-1:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus-visible\:ring-2:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus-visible\:ring-4:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus-visible\:ring-\[3px\]:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus-visible\:ring-destructive\/20:focus-visible {
  --tw-ring-color: oklch(var(--destructive) / 0.2);
}
.focus-visible\:ring-ring:focus-visible {
  --tw-ring-opacity: 1;
  --tw-ring-color: oklch(var(--ring) / var(--tw-ring-opacity, 1));
}
.focus-visible\:ring-ring\/50:focus-visible {
  --tw-ring-color: oklch(var(--ring) / 0.5);
}
.focus-visible\:ring-offset-1:focus-visible {
  --tw-ring-offset-width: 1px;
}
.active\:bg-sidebar-accent:active {
  background-color: oklch(var(--sidebar-accent));
}
.active\:text-sidebar-accent-foreground:active {
  color: oklch(var(--sidebar-accent-foreground));
}
.disabled\:pointer-events-none:disabled {
  pointer-events: none;
}
.disabled\:cursor-not-allowed:disabled {
  cursor: not-allowed;
}
.disabled\:opacity-45:disabled {
  opacity: 0.45;
}
.disabled\:opacity-50:disabled {
  opacity: 0.5;
}
.disabled\:opacity-60:disabled {
  opacity: 0.6;
}
.group[open] .group-open\:rotate-180 {
  --tw-rotate: 180deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100 {
  opacity: 1;
}
.group\/icon:hover .group-hover\/icon\:-translate-y-0\.5 {
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group\/icon:hover .group-hover\/icon\:scale-110 {
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:scale-\[1\.04\] {
  --tw-scale-x: 1.04;
  --tw-scale-y: 1.04;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:text-primary {
  --tw-text-opacity: 1;
  color: oklch(var(--primary) / var(--tw-text-opacity, 1));
}
.group\/menu-item:hover .group-hover\/menu-item\:opacity-100 {
  opacity: 1;
}
.peer\/menu-button:hover ~ .peer-hover\/menu-button\:text-sidebar-accent-foreground {
  color: oklch(var(--sidebar-accent-foreground));
}
.peer:disabled ~ .peer-disabled\:cursor-not-allowed {
  cursor: not-allowed;
}
.peer:disabled ~ .peer-disabled\:opacity-50 {
  opacity: 0.5;
}
.has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(>svg) {
  grid-template-columns: calc(var(--spacing) * 4) 1fr;
}
.has-\[\>svg\]\:gap-x-3:has(>svg) {
  -moz-column-gap: 0.75rem;
       column-gap: 0.75rem;
}
.has-\[\>svg\]\:px-2\.5:has(>svg) {
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}
.has-\[\>svg\]\:px-3:has(>svg) {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
.has-\[\>svg\]\:px-4:has(>svg) {
  padding-left: 1rem;
  padding-right: 1rem;
}
.aria-disabled\:pointer-events-none[aria-disabled="true"] {
  pointer-events: none;
}
.aria-disabled\:opacity-50[aria-disabled="true"] {
  opacity: 0.5;
}
.aria-selected\:text-muted-foreground[aria-selected="true"] {
  --tw-text-opacity: 1;
  color: oklch(var(--muted-foreground) / var(--tw-text-opacity, 1));
}
.data-\[disabled\=true\]\:pointer-events-none[data-disabled="true"] {
  pointer-events: none;
}
.data-\[disabled\]\:pointer-events-none[data-disabled] {
  pointer-events: none;
}
.data-\[vaul-drawer-direction\=bottom\]\:inset-x-0[data-vaul-drawer-direction="bottom"] {
  left: 0px;
  right: 0px;
}
.data-\[vaul-drawer-direction\=left\]\:inset-y-0[data-vaul-drawer-direction="left"] {
  top: 0px;
  bottom: 0px;
}
.data-\[vaul-drawer-direction\=right\]\:inset-y-0[data-vaul-drawer-direction="right"] {
  top: 0px;
  bottom: 0px;
}
.data-\[vaul-drawer-direction\=top\]\:inset-x-0[data-vaul-drawer-direction="top"] {
  left: 0px;
  right: 0px;
}
.data-\[vaul-drawer-direction\=bottom\]\:bottom-0[data-vaul-drawer-direction="bottom"] {
  bottom: 0px;
}
.data-\[vaul-drawer-direction\=left\]\:left-0[data-vaul-drawer-direction="left"] {
  left: 0px;
}
.data-\[vaul-drawer-direction\=right\]\:right-0[data-vaul-drawer-direction="right"] {
  right: 0px;
}
.data-\[vaul-drawer-direction\=top\]\:top-0[data-vaul-drawer-direction="top"] {
  top: 0px;
}
.data-\[active\=true\]\:z-10[data-active="true"] {
  z-index: 10;
}
.data-\[vaul-drawer-direction\=bottom\]\:mt-24[data-vaul-drawer-direction="bottom"] {
  margin-top: 6rem;
}
.data-\[vaul-drawer-direction\=top\]\:mb-24[data-vaul-drawer-direction="top"] {
  margin-bottom: 6rem;
}
.data-\[orientation\=horizontal\]\:h-1\.5[data-orientation="horizontal"] {
  height: 0.375rem;
}
.data-\[orientation\=horizontal\]\:h-full[data-orientation="horizontal"] {
  height: 100%;
}
.data-\[orientation\=horizontal\]\:h-px[data-orientation="horizontal"] {
  height: 1px;
}
.data-\[orientation\=vertical\]\:h-full[data-orientation="vertical"] {
  height: 100%;
}
.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction="vertical"] {
  height: 1px;
}
.data-\[size\=default\]\:h-9[data-size="default"] {
  height: 2.25rem;
}
.data-\[size\=sm\]\:h-8[data-size="sm"] {
  height: 2rem;
}
.data-\[vaul-drawer-direction\=bottom\]\:max-h-\[80vh\][data-vaul-drawer-direction="bottom"] {
  max-height: 80vh;
}
.data-\[vaul-drawer-direction\=top\]\:max-h-\[80vh\][data-vaul-drawer-direction="top"] {
  max-height: 80vh;
}
.data-\[orientation\=vertical\]\:min-h-44[data-orientation="vertical"] {
  min-height: 11rem;
}
.data-\[orientation\=horizontal\]\:w-full[data-orientation="horizontal"] {
  width: 100%;
}
.data-\[orientation\=vertical\]\:w-1\.5[data-orientation="vertical"] {
  width: 0.375rem;
}
.data-\[orientation\=vertical\]\:w-auto[data-orientation="vertical"] {
  width: auto;
}
.data-\[orientation\=vertical\]\:w-full[data-orientation="vertical"] {
  width: 100%;
}
.data-\[orientation\=vertical\]\:w-px[data-orientation="vertical"] {
  width: 1px;
}
.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction="vertical"] {
  width: 100%;
}
.data-\[vaul-drawer-direction\=left\]\:w-3\/4[data-vaul-drawer-direction="left"] {
  width: 75%;
}
.data-\[vaul-drawer-direction\=right\]\:w-3\/4[data-vaul-drawer-direction="right"] {
  width: 75%;
}
.data-\[side\=bottom\]\:translate-y-1[data-side="bottom"] {
  --tw-translate-y: 0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.data-\[side\=left\]\:-translate-x-1[data-side="left"] {
  --tw-translate-x: -0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.data-\[side\=right\]\:translate-x-1[data-side="right"] {
  --tw-translate-x: 0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.data-\[side\=top\]\:-translate-y-1[data-side="top"] {
  --tw-translate-y: -0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.data-\[state\=checked\]\:translate-x-\[calc\(100\%-2px\)\][data-state="checked"] {
  --tw-translate-x: calc(100% - 2px);
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.data-\[state\=unchecked\]\:translate-x-0[data-state="unchecked"] {
  --tw-translate-x: 0px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
@keyframes accordion-up {

  from {
    height: var(--radix-accordion-content-height);
  }

  to {
    height: 0;
  }
}
.data-\[state\=closed\]\:animate-accordion-up[data-state="closed"] {
  animation: accordion-up 0.2s ease-out;
}
@keyframes accordion-down {

  from {
    height: 0;
  }

  to {
    height: var(--radix-accordion-content-height);
  }
}
.data-\[state\=open\]\:animate-accordion-down[data-state="open"] {
  animation: accordion-down 0.2s ease-out;
}
.data-\[orientation\=vertical\]\:flex-col[data-orientation="vertical"] {
  flex-direction: column;
}
.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction="vertical"] {
  flex-direction: column;
}
.data-\[range-end\=true\]\:rounded-md[data-range-end="true"] {
  border-radius: calc(var(--radius) - 2px);
}
.data-\[range-middle\=true\]\:rounded-none[data-range-middle="true"] {
  border-radius: 0px;
}
.data-\[range-start\=true\]\:rounded-md[data-range-start="true"] {
  border-radius: calc(var(--radius) - 2px);
}
.data-\[selected\=true\]\:rounded-none[data-selected="true"] {
  border-radius: 0px;
}
.data-\[range-end\=true\]\:rounded-r-md[data-range-end="true"] {
  border-top-right-radius: calc(var(--radius) - 2px);
  border-bottom-right-radius: calc(var(--radius) - 2px);
}
.data-\[range-start\=true\]\:rounded-l-md[data-range-start="true"] {
  border-top-left-radius: calc(var(--radius) - 2px);
  border-bottom-left-radius: calc(var(--radius) - 2px);
}
.data-\[vaul-drawer-direction\=bottom\]\:rounded-t-lg[data-vaul-drawer-direction="bottom"] {
  border-top-left-radius: var(--radius);
  border-top-right-radius: var(--radius);
}
.data-\[vaul-drawer-direction\=top\]\:rounded-b-lg[data-vaul-drawer-direction="top"] {
  border-bottom-right-radius: var(--radius);
  border-bottom-left-radius: var(--radius);
}
.data-\[variant\=outline\]\:border-l-0[data-variant="outline"] {
  border-left-width: 0px;
}
.data-\[vaul-drawer-direction\=bottom\]\:border-t[data-vaul-drawer-direction="bottom"] {
  border-top-width: 1px;
}
.data-\[vaul-drawer-direction\=left\]\:border-r[data-vaul-drawer-direction="left"] {
  border-right-width: 1px;
}
.data-\[vaul-drawer-direction\=right\]\:border-l[data-vaul-drawer-direction="right"] {
  border-left-width: 1px;
}
.data-\[vaul-drawer-direction\=top\]\:border-b[data-vaul-drawer-direction="top"] {
  border-bottom-width: 1px;
}
.data-\[active\=true\]\:border-ring[data-active="true"] {
  --tw-border-opacity: 1;
  border-color: oklch(var(--ring) / var(--tw-border-opacity, 1));
}
.data-\[state\=checked\]\:border-primary[data-state="checked"] {
  --tw-border-opacity: 1;
  border-color: oklch(var(--primary) / var(--tw-border-opacity, 1));
}
.data-\[active\=true\]\:bg-accent\/50[data-active="true"] {
  background-color: oklch(var(--accent) / 0.5);
}
.data-\[active\=true\]\:bg-sidebar-accent[data-active="true"] {
  background-color: oklch(var(--sidebar-accent));
}
.data-\[range-end\=true\]\:bg-primary[data-range-end="true"] {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--primary) / var(--tw-bg-opacity, 1));
}
.data-\[range-middle\=true\]\:bg-accent[data-range-middle="true"] {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--accent) / var(--tw-bg-opacity, 1));
}
.data-\[range-start\=true\]\:bg-primary[data-range-start="true"] {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--primary) / var(--tw-bg-opacity, 1));
}
.data-\[selected-single\=true\]\:bg-primary[data-selected-single="true"] {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--primary) / var(--tw-bg-opacity, 1));
}
.data-\[selected\=true\]\:bg-accent[data-selected="true"] {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--accent) / var(--tw-bg-opacity, 1));
}
.data-\[state\=active\]\:bg-background[data-state="active"] {
  background-color: oklch(var(--background));
}
.data-\[state\=active\]\:bg-destructive[data-state="active"] {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--destructive) / var(--tw-bg-opacity, 1));
}
.data-\[state\=active\]\:bg-primary[data-state="active"] {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--primary) / var(--tw-bg-opacity, 1));
}
.data-\[state\=checked\]\:bg-primary[data-state="checked"] {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--primary) / var(--tw-bg-opacity, 1));
}
.data-\[state\=on\]\:bg-accent[data-state="on"] {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--accent) / var(--tw-bg-opacity, 1));
}
.data-\[state\=open\]\:bg-accent[data-state="open"] {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--accent) / var(--tw-bg-opacity, 1));
}
.data-\[state\=open\]\:bg-accent\/50[data-state="open"] {
  background-color: oklch(var(--accent) / 0.5);
}
.data-\[state\=open\]\:bg-secondary[data-state="open"] {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--secondary) / var(--tw-bg-opacity, 1));
}
.data-\[state\=selected\]\:bg-muted[data-state="selected"] {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--muted) / var(--tw-bg-opacity, 1));
}
.data-\[state\=unchecked\]\:bg-input[data-state="unchecked"] {
  background-color: oklch(var(--input));
}
.data-\[inset\]\:pl-8[data-inset] {
  padding-left: 2rem;
}
.data-\[active\=true\]\:font-medium[data-active="true"] {
  font-weight: 500;
}
.data-\[active\=true\]\:text-accent-foreground[data-active="true"] {
  color: oklch(var(--accent-foreground));
}
.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active="true"] {
  color: oklch(var(--sidebar-accent-foreground));
}
.data-\[error\=true\]\:text-destructive[data-error="true"] {
  --tw-text-opacity: 1;
  color: oklch(var(--destructive) / var(--tw-text-opacity, 1));
}
.data-\[placeholder\]\:text-muted-foreground[data-placeholder] {
  --tw-text-opacity: 1;
  color: oklch(var(--muted-foreground) / var(--tw-text-opacity, 1));
}
.data-\[range-end\=true\]\:text-primary-foreground[data-range-end="true"] {
  color: oklch(var(--primary-foreground));
}
.data-\[range-middle\=true\]\:text-accent-foreground[data-range-middle="true"] {
  color: oklch(var(--accent-foreground));
}
.data-\[range-start\=true\]\:text-primary-foreground[data-range-start="true"] {
  color: oklch(var(--primary-foreground));
}
.data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single="true"] {
  color: oklch(var(--primary-foreground));
}
.data-\[selected\=true\]\:text-accent-foreground[data-selected="true"] {
  color: oklch(var(--accent-foreground));
}
.data-\[state\=active\]\:text-destructive-foreground[data-state="active"] {
  color: oklch(var(--destructive-foreground));
}
.data-\[state\=active\]\:text-primary-foreground[data-state="active"] {
  color: oklch(var(--primary-foreground));
}
.data-\[state\=checked\]\:text-primary-foreground[data-state="checked"] {
  color: oklch(var(--primary-foreground));
}
.data-\[state\=on\]\:text-accent-foreground[data-state="on"] {
  color: oklch(var(--accent-foreground));
}
.data-\[state\=open\]\:text-accent-foreground[data-state="open"] {
  color: oklch(var(--accent-foreground));
}
.data-\[state\=open\]\:text-muted-foreground[data-state="open"] {
  --tw-text-opacity: 1;
  color: oklch(var(--muted-foreground) / var(--tw-text-opacity, 1));
}
.data-\[variant\=destructive\]\:text-destructive[data-variant="destructive"] {
  --tw-text-opacity: 1;
  color: oklch(var(--destructive) / var(--tw-text-opacity, 1));
}
.data-\[disabled\=true\]\:opacity-50[data-disabled="true"] {
  opacity: 0.5;
}
.data-\[disabled\]\:opacity-50[data-disabled] {
  opacity: 0.5;
}
.data-\[state\=open\]\:opacity-100[data-state="open"] {
  opacity: 1;
}
.data-\[state\=active\]\:shadow-sm[data-state="active"] {
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.data-\[variant\=outline\]\:shadow-xs[data-variant="outline"] {
  --tw-shadow: 0 1px 2px 0 rgba(0,0,0,0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.data-\[active\=true\]\:ring-\[3px\][data-active="true"] {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.data-\[active\=true\]\:ring-ring\/50[data-active="true"] {
  --tw-ring-color: oklch(var(--ring) / 0.5);
}
.data-\[state\=closed\]\:duration-300[data-state="closed"] {
  transition-duration: 300ms;
}
.data-\[state\=open\]\:duration-500[data-state="open"] {
  transition-duration: 500ms;
}
.data-\[motion\^\=from-\]\:animate-in[data-motion^="from-"] {
  animation-name: enter;
  animation-duration: 150ms;
  --tw-enter-opacity: initial;
  --tw-enter-scale: initial;
  --tw-enter-rotate: initial;
  --tw-enter-translate-x: initial;
  --tw-enter-translate-y: initial;
}
.data-\[state\=open\]\:animate-in[data-state="open"] {
  animation-name: enter;
  animation-duration: 150ms;
  --tw-enter-opacity: initial;
  --tw-enter-scale: initial;
  --tw-enter-rotate: initial;
  --tw-enter-translate-x: initial;
  --tw-enter-translate-y: initial;
}
.data-\[state\=visible\]\:animate-in[data-state="visible"] {
  animation-name: enter;
  animation-duration: 150ms;
  --tw-enter-opacity: initial;
  --tw-enter-scale: initial;
  --tw-enter-rotate: initial;
  --tw-enter-translate-x: initial;
  --tw-enter-translate-y: initial;
}
.data-\[motion\^\=to-\]\:animate-out[data-motion^="to-"] {
  animation-name: exit;
  animation-duration: 150ms;
  --tw-exit-opacity: initial;
  --tw-exit-scale: initial;
  --tw-exit-rotate: initial;
  --tw-exit-translate-x: initial;
  --tw-exit-translate-y: initial;
}
.data-\[state\=closed\]\:animate-out[data-state="closed"] {
  animation-name: exit;
  animation-duration: 150ms;
  --tw-exit-opacity: initial;
  --tw-exit-scale: initial;
  --tw-exit-rotate: initial;
  --tw-exit-translate-x: initial;
  --tw-exit-translate-y: initial;
}
.data-\[state\=hidden\]\:animate-out[data-state="hidden"] {
  animation-name: exit;
  animation-duration: 150ms;
  --tw-exit-opacity: initial;
  --tw-exit-scale: initial;
  --tw-exit-rotate: initial;
  --tw-exit-translate-x: initial;
  --tw-exit-translate-y: initial;
}
.data-\[motion\^\=from-\]\:fade-in[data-motion^="from-"] {
  --tw-enter-opacity: 0;
}
.data-\[motion\^\=to-\]\:fade-out[data-motion^="to-"] {
  --tw-exit-opacity: 0;
}
.data-\[state\=closed\]\:fade-out-0[data-state="closed"] {
  --tw-exit-opacity: 0;
}
.data-\[state\=hidden\]\:fade-out[data-state="hidden"] {
  --tw-exit-opacity: 0;
}
.data-\[state\=open\]\:fade-in-0[data-state="open"] {
  --tw-enter-opacity: 0;
}
.data-\[state\=visible\]\:fade-in[data-state="visible"] {
  --tw-enter-opacity: 0;
}
.data-\[state\=closed\]\:zoom-out-95[data-state="closed"] {
  --tw-exit-scale: .95;
}
.data-\[state\=open\]\:zoom-in-90[data-state="open"] {
  --tw-enter-scale: .9;
}
.data-\[state\=open\]\:zoom-in-95[data-state="open"] {
  --tw-enter-scale: .95;
}
.data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion="from-end"] {
  --tw-enter-translate-x: 13rem;
}
.data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion="from-start"] {
  --tw-enter-translate-x: -13rem;
}
.data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion="to-end"] {
  --tw-exit-translate-x: 13rem;
}
.data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion="to-start"] {
  --tw-exit-translate-x: -13rem;
}
.data-\[side\=bottom\]\:slide-in-from-top-2[data-side="bottom"] {
  --tw-enter-translate-y: -0.5rem;
}
.data-\[side\=left\]\:slide-in-from-right-2[data-side="left"] {
  --tw-enter-translate-x: 0.5rem;
}
.data-\[side\=right\]\:slide-in-from-left-2[data-side="right"] {
  --tw-enter-translate-x: -0.5rem;
}
.data-\[side\=top\]\:slide-in-from-bottom-2[data-side="top"] {
  --tw-enter-translate-y: 0.5rem;
}
.data-\[state\=closed\]\:slide-out-to-bottom[data-state="closed"] {
  --tw-exit-translate-y: 100%;
}
.data-\[state\=closed\]\:slide-out-to-left[data-state="closed"] {
  --tw-exit-translate-x: -100%;
}
.data-\[state\=closed\]\:slide-out-to-right[data-state="closed"] {
  --tw-exit-translate-x: 100%;
}
.data-\[state\=closed\]\:slide-out-to-top[data-state="closed"] {
  --tw-exit-translate-y: -100%;
}
.data-\[state\=open\]\:slide-in-from-bottom[data-state="open"] {
  --tw-enter-translate-y: 100%;
}
.data-\[state\=open\]\:slide-in-from-left[data-state="open"] {
  --tw-enter-translate-x: -100%;
}
.data-\[state\=open\]\:slide-in-from-right[data-state="open"] {
  --tw-enter-translate-x: 100%;
}
.data-\[state\=open\]\:slide-in-from-top[data-state="open"] {
  --tw-enter-translate-y: -100%;
}
.data-\[state\=closed\]\:duration-300[data-state="closed"] {
  animation-duration: 300ms;
}
.data-\[state\=open\]\:duration-500[data-state="open"] {
  animation-duration: 500ms;
}
.\*\:data-\[slot\=select-value\]\:line-clamp-1[data-slot="select-value"] > * {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}
.\*\:data-\[slot\=select-value\]\:flex[data-slot="select-value"] > * {
  display: flex;
}
.\*\:data-\[slot\=select-value\]\:items-center[data-slot="select-value"] > * {
  align-items: center;
}
.\*\:data-\[slot\=select-value\]\:gap-2[data-slot="select-value"] > * {
  gap: 0.5rem;
}
.\*\:data-\[slot\=alert-description\]\:text-destructive\/90[data-slot="alert-description"] > * {
  color: oklch(var(--destructive) / 0.9);
}
.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction="vertical"]::after {
  content: var(--tw-content);
  left: 0px;
}
.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction="vertical"]::after {
  content: var(--tw-content);
  height: 0.25rem;
}
.data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction="vertical"]::after {
  content: var(--tw-content);
  width: 100%;
}
.data-\[panel-group-direction\=vertical\]\:after\:-translate-y-1\/2[data-panel-group-direction="vertical"]::after {
  content: var(--tw-content);
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction="vertical"]::after {
  content: var(--tw-content);
  --tw-translate-x: 0px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.data-\[variant\=outline\]\:first\:border-l:first-child[data-variant="outline"] {
  border-left-width: 1px;
}
.data-\[active\=true\]\:hover\:bg-accent:hover[data-active="true"] {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--accent) / var(--tw-bg-opacity, 1));
}
.data-\[state\=open\]\:hover\:bg-accent:hover[data-state="open"] {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--accent) / var(--tw-bg-opacity, 1));
}
.data-\[state\=open\]\:hover\:bg-sidebar-accent:hover[data-state="open"] {
  background-color: oklch(var(--sidebar-accent));
}
.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground:hover[data-state="open"] {
  color: oklch(var(--sidebar-accent-foreground));
}
.data-\[active\=true\]\:focus\:bg-accent:focus[data-active="true"] {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--accent) / var(--tw-bg-opacity, 1));
}
.data-\[state\=open\]\:focus\:bg-accent:focus[data-state="open"] {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--accent) / var(--tw-bg-opacity, 1));
}
.data-\[variant\=destructive\]\:focus\:bg-destructive\/10:focus[data-variant="destructive"] {
  background-color: oklch(var(--destructive) / 0.1);
}
.data-\[variant\=destructive\]\:focus\:text-destructive:focus[data-variant="destructive"] {
  --tw-text-opacity: 1;
  color: oklch(var(--destructive) / var(--tw-text-opacity, 1));
}
.group[data-disabled="true"] .group-data-\[disabled\=true\]\:pointer-events-none {
  pointer-events: none;
}
.group\/day[data-focused="true"] .group-data-\[focused\=true\]\/day\:relative {
  position: relative;
}
.group[data-collapsible="offcanvas"] .group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\] {
  left: calc(var(--sidebar-width) * -1);
}
.group[data-collapsible="offcanvas"] .group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\] {
  right: calc(var(--sidebar-width) * -1);
}
.group[data-side="left"] .group-data-\[side\=left\]\:-right-4 {
  right: -1rem;
}
.group[data-side="right"] .group-data-\[side\=right\]\:left-0 {
  left: 0px;
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:top-full {
  top: 100%;
}
.group\/day[data-focused="true"] .group-data-\[focused\=true\]\/day\:z-10 {
  z-index: 10;
}
.group[data-collapsible="icon"] .group-data-\[collapsible\=icon\]\:-mt-8 {
  margin-top: -2rem;
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:mt-1\.5 {
  margin-top: 0.375rem;
}
.group\/drawer-content[data-vaul-drawer-direction="bottom"] .group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:block {
  display: block;
}
.group[data-collapsible="icon"] .group-data-\[collapsible\=icon\]\:hidden {
  display: none;
}
.group[data-collapsible="icon"] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\)\] {
  width: calc(var(--sidebar-width-icon) + (--spacing(4)));
}
.group[data-collapsible="icon"] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\+2px\)\] {
  width: calc(var(--sidebar-width-icon) + (--spacing(4)) + 2px);
}
.group[data-collapsible="offcanvas"] .group-data-\[collapsible\=offcanvas\]\:w-0 {
  width: 0px;
}
.group[data-collapsible="offcanvas"] .group-data-\[collapsible\=offcanvas\]\:translate-x-0 {
  --tw-translate-x: 0px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group[data-side="right"] .group-data-\[side\=right\]\:rotate-180 {
  --tw-rotate: 180deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group[data-state="open"] .group-data-\[state\=open\]\:rotate-180 {
  --tw-rotate: 180deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group[data-collapsible="icon"] .group-data-\[collapsible\=icon\]\:overflow-hidden {
  overflow: hidden;
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:overflow-hidden {
  overflow: hidden;
}
.group[data-variant="floating"] .group-data-\[variant\=floating\]\:rounded-lg {
  border-radius: var(--radius);
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:rounded-md {
  border-radius: calc(var(--radius) - 2px);
}
.group[data-variant="floating"] .group-data-\[variant\=floating\]\:border {
  border-width: 1px;
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:border {
  border-width: 1px;
}
.group[data-side="left"] .group-data-\[side\=left\]\:border-r {
  border-right-width: 1px;
}
.group[data-side="right"] .group-data-\[side\=right\]\:border-l {
  border-left-width: 1px;
}
.group\/day[data-focused="true"] .group-data-\[focused\=true\]\/day\:border-ring {
  --tw-border-opacity: 1;
  border-color: oklch(var(--ring) / var(--tw-border-opacity, 1));
}
.group[data-variant="floating"] .group-data-\[variant\=floating\]\:border-sidebar-border {
  border-color: oklch(var(--sidebar-border));
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:bg-popover {
  background-color: oklch(var(--popover));
}
.group\/drawer-content[data-vaul-drawer-direction="bottom"] .group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:text-center {
  text-align: center;
}
.group\/drawer-content[data-vaul-drawer-direction="top"] .group-data-\[vaul-drawer-direction\=top\]\/drawer-content\:text-center {
  text-align: center;
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:text-popover-foreground {
  color: oklch(var(--popover-foreground));
}
.group[data-collapsible="icon"] .group-data-\[collapsible\=icon\]\:opacity-0 {
  opacity: 0;
}
.group[data-disabled="true"] .group-data-\[disabled\=true\]\:opacity-50 {
  opacity: 0.5;
}
.group[data-variant="floating"] .group-data-\[variant\=floating\]\:shadow-sm {
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:shadow {
  --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.group\/day[data-focused="true"] .group-data-\[focused\=true\]\/day\:ring-\[3px\] {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.group\/day[data-focused="true"] .group-data-\[focused\=true\]\/day\:ring-ring\/50 {
  --tw-ring-color: oklch(var(--ring) / 0.5);
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:duration-200 {
  transition-duration: 200ms;
  animation-duration: 200ms;
}
.group[data-collapsible="offcanvas"] .group-data-\[collapsible\=offcanvas\]\:after\:left-full::after {
  content: var(--tw-content);
  left: 100%;
}
.group[data-collapsible="offcanvas"] .hover\:group-data-\[collapsible\=offcanvas\]\:bg-sidebar:hover {
  background-color: oklch(var(--sidebar));
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=open\]\:animate-in[data-state="open"] {
  animation-name: enter;
  animation-duration: 150ms;
  --tw-enter-opacity: initial;
  --tw-enter-scale: initial;
  --tw-enter-rotate: initial;
  --tw-enter-translate-x: initial;
  --tw-enter-translate-y: initial;
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=closed\]\:animate-out[data-state="closed"] {
  animation-name: exit;
  animation-duration: 150ms;
  --tw-exit-opacity: initial;
  --tw-exit-scale: initial;
  --tw-exit-rotate: initial;
  --tw-exit-translate-x: initial;
  --tw-exit-translate-y: initial;
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=closed\]\:fade-out-0[data-state="closed"] {
  --tw-exit-opacity: 0;
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=open\]\:fade-in-0[data-state="open"] {
  --tw-enter-opacity: 0;
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=closed\]\:zoom-out-95[data-state="closed"] {
  --tw-exit-scale: .95;
}
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=open\]\:zoom-in-95[data-state="open"] {
  --tw-enter-scale: .95;
}
.peer\/menu-button[data-size="default"] ~ .peer-data-\[size\=default\]\/menu-button\:top-1\.5 {
  top: 0.375rem;
}
.peer\/menu-button[data-size="lg"] ~ .peer-data-\[size\=lg\]\/menu-button\:top-2\.5 {
  top: 0.625rem;
}
.peer\/menu-button[data-size="sm"] ~ .peer-data-\[size\=sm\]\/menu-button\:top-1 {
  top: 0.25rem;
}
.peer\/menu-button[data-active="true"] ~ .peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground {
  color: oklch(var(--sidebar-accent-foreground));
}
@media (prefers-reduced-motion: no-preference) {

  @keyframes pulse {

    50% {
      opacity: .5;
    }
  }

  .motion-safe\:animate-pulse {
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
  }
}
@media (prefers-reduced-motion: reduce) {

  .motion-reduce\:animate-none {
    animation: none;
  }

  .motion-reduce\:transition-none {
    transition-property: none;
  }

  .motion-reduce\:hover\:translate-y-0:hover {
    --tw-translate-y: 0px;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }

  .motion-reduce\:hover\:scale-100:hover {
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }

  .group\/icon:hover .motion-reduce\:group-hover\/icon\:translate-y-0 {
    --tw-translate-y: 0px;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }

  .group\/icon:hover .motion-reduce\:group-hover\/icon\:scale-100 {
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }
}
.dark\:border-input:is(.dark *) {
  border-color: oklch(var(--input));
}
.dark\:bg-destructive\/60:is(.dark *) {
  background-color: oklch(var(--destructive) / 0.6);
}
.dark\:text-muted-foreground:is(.dark *) {
  --tw-text-opacity: 1;
  color: oklch(var(--muted-foreground) / var(--tw-text-opacity, 1));
}
.dark\:hover\:bg-accent\/50:hover:is(.dark *) {
  background-color: oklch(var(--accent) / 0.5);
}
.dark\:hover\:text-accent-foreground:hover:is(.dark *) {
  color: oklch(var(--accent-foreground));
}
.dark\:focus-visible\:ring-destructive\/40:focus-visible:is(.dark *) {
  --tw-ring-color: oklch(var(--destructive) / 0.4);
}
.dark\:data-\[state\=active\]\:border-input[data-state="active"]:is(.dark *) {
  border-color: oklch(var(--input));
}
.dark\:data-\[state\=checked\]\:bg-primary[data-state="checked"]:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--primary) / var(--tw-bg-opacity, 1));
}
.dark\:data-\[state\=checked\]\:bg-primary-foreground[data-state="checked"]:is(.dark *) {
  background-color: oklch(var(--primary-foreground));
}
.dark\:data-\[state\=unchecked\]\:bg-foreground[data-state="unchecked"]:is(.dark *) {
  background-color: oklch(var(--foreground));
}
.dark\:data-\[state\=active\]\:text-foreground[data-state="active"]:is(.dark *) {
  color: oklch(var(--foreground));
}
.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:focus[data-variant="destructive"]:is(.dark *) {
  background-color: oklch(var(--destructive) / 0.2);
}
@media (min-width: 640px) {

  .sm\:-mx-6 {
    margin-left: -1.5rem;
    margin-right: -1.5rem;
  }

  .sm\:block {
    display: block;
  }

  .sm\:inline {
    display: inline;
  }

  .sm\:flex {
    display: flex;
  }

  .sm\:inline-flex {
    display: inline-flex;
  }

  .sm\:hidden {
    display: none;
  }

  .sm\:size-16 {
    width: 4rem;
    height: 4rem;
  }

  .sm\:h-80 {
    height: 20rem;
  }

  .sm\:min-h-\[20rem\] {
    min-height: 20rem;
  }

  .sm\:w-1\/2 {
    width: 50%;
  }

  .sm\:w-auto {
    width: auto;
  }

  .sm\:max-w-\[260px\] {
    max-width: 260px;
  }

  .sm\:max-w-lg {
    max-width: 32rem;
  }

  .sm\:max-w-sm {
    max-width: 24rem;
  }

  .sm\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sm\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .sm\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .sm\:grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .sm\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .sm\:flex-row {
    flex-direction: row;
  }

  .sm\:items-start {
    align-items: flex-start;
  }

  .sm\:items-end {
    align-items: flex-end;
  }

  .sm\:items-center {
    align-items: center;
  }

  .sm\:items-baseline {
    align-items: baseline;
  }

  .sm\:justify-end {
    justify-content: flex-end;
  }

  .sm\:justify-between {
    justify-content: space-between;
  }

  .sm\:gap-2\.5 {
    gap: 0.625rem;
  }

  .sm\:gap-3 {
    gap: 0.75rem;
  }

  .sm\:gap-4 {
    gap: 1rem;
  }

  .sm\:p-5 {
    padding: 1.25rem;
  }

  .sm\:p-6 {
    padding: 1.5rem;
  }

  .sm\:px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }

  .sm\:py-14 {
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
  }

  .sm\:py-16 {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }

  .sm\:pl-2\.5 {
    padding-left: 0.625rem;
  }

  .sm\:pr-2\.5 {
    padding-right: 0.625rem;
  }

  .sm\:text-left {
    text-align: left;
  }

  .sm\:text-3xl {
    font-size: 1.875rem;
    line-height: 2.25rem;
  }

  .sm\:text-4xl {
    font-size: 2.25rem;
    line-height: 2.5rem;
  }

  .sm\:text-6xl {
    font-size: 3.75rem;
    line-height: 1;
  }

  .sm\:text-\[11px\] {
    font-size: 11px;
  }

  .sm\:text-base {
    font-size: 1rem;
    line-height: 1.5rem;
  }

  .sm\:text-sm {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }

  .data-\[vaul-drawer-direction\=left\]\:sm\:max-w-sm[data-vaul-drawer-direction="left"] {
    max-width: 24rem;
  }

  .data-\[vaul-drawer-direction\=right\]\:sm\:max-w-sm[data-vaul-drawer-direction="right"] {
    max-width: 24rem;
  }
}
@media (min-width: 768px) {

  .md\:absolute {
    position: absolute;
  }

  .md\:left-auto {
    left: auto;
  }

  .md\:right-6 {
    right: 1.5rem;
  }

  .md\:right-\[9\%\] {
    right: 9%;
  }

  .md\:top-6 {
    top: 1.5rem;
  }

  .md\:top-\[16\%\] {
    top: 16%;
  }

  .md\:ml-2 {
    margin-left: 0.5rem;
  }

  .md\:block {
    display: block;
  }

  .md\:inline {
    display: inline;
  }

  .md\:flex {
    display: flex;
  }

  .md\:hidden {
    display: none;
  }

  .md\:size-20 {
    width: 5rem;
    height: 5rem;
  }

  .md\:size-24 {
    width: 6rem;
    height: 6rem;
  }

  .md\:size-32 {
    width: 8rem;
    height: 8rem;
  }

  .md\:w-\[var\(--radix-navigation-menu-viewport-width\)\] {
    width: var(--radix-navigation-menu-viewport-width);
  }

  .md\:w-auto {
    width: auto;
  }

  .md\:max-w-none {
    max-width: none;
  }

  .md\:translate-x-0 {
    --tw-translate-x: 0px;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }

  .md\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .md\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .md\:grid-cols-\[1fr_1\.25fr\] {
    grid-template-columns: 1fr 1.25fr;
  }

  .md\:grid-cols-\[minmax\(0\2c 260px\)_1fr\] {
    grid-template-columns: minmax(0,260px) 1fr;
  }

  .md\:flex-row {
    flex-direction: row;
  }

  .md\:items-end {
    align-items: flex-end;
  }

  .md\:items-center {
    align-items: center;
  }

  .md\:justify-end {
    justify-content: flex-end;
  }

  .md\:justify-between {
    justify-content: space-between;
  }

  .md\:gap-1\.5 {
    gap: 0.375rem;
  }

  .md\:gap-8 {
    gap: 2rem;
  }

  .md\:self-auto {
    align-self: auto;
  }

  .md\:p-6 {
    padding: 1.5rem;
  }

  .md\:p-7 {
    padding: 1.75rem;
  }

  .md\:py-12 {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }

  .md\:py-14 {
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
  }

  .md\:py-16 {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }

  .md\:py-20 {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }

  .md\:py-24 {
    padding-top: 6rem;
    padding-bottom: 6rem;
  }

  .md\:pr-\[12\%\] {
    padding-right: 12%;
  }

  .md\:pt-0 {
    padding-top: 0px;
  }

  .md\:pt-10 {
    padding-top: 2.5rem;
  }

  .md\:text-left {
    text-align: left;
  }

  .md\:text-2xl {
    font-size: 1.5rem;
    line-height: 2rem;
  }

  .md\:text-3xl {
    font-size: 1.875rem;
    line-height: 2.25rem;
  }

  .md\:text-4xl {
    font-size: 2.25rem;
    line-height: 2.5rem;
  }

  .md\:text-5xl {
    font-size: 3rem;
    line-height: 1;
  }

  .md\:text-base {
    font-size: 1rem;
    line-height: 1.5rem;
  }

  .md\:text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem;
  }

  .md\:text-sm {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }

  .md\:text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem;
  }

  .md\:opacity-0 {
    opacity: 0;
  }

  .md\:after\:hidden::after {
    content: var(--tw-content);
    display: none;
  }

  .peer[data-variant="inset"] ~ .md\:peer-data-\[variant\=inset\]\:m-2 {
    margin: 0.5rem;
  }

  .peer[data-variant="inset"] ~ .md\:peer-data-\[variant\=inset\]\:ml-0 {
    margin-left: 0px;
  }

  .peer[data-variant="inset"][data-state="collapsed"] ~ .md\:peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:ml-2 {
    margin-left: 0.5rem;
  }

  .peer[data-variant="inset"] ~ .md\:peer-data-\[variant\=inset\]\:rounded-xl {
    border-radius: 0.75rem;
  }

  .peer[data-variant="inset"] ~ .md\:peer-data-\[variant\=inset\]\:shadow-sm {
    --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  }
}
@media (min-width: 1024px) {

  .lg\:sticky {
    position: sticky;
  }

  .lg\:top-24 {
    top: 6rem;
  }

  .lg\:order-none {
    order: 0;
  }

  .lg\:col-span-2 {
    grid-column: span 2 / span 2;
  }

  .lg\:col-start-1 {
    grid-column-start: 1;
  }

  .lg\:col-start-2 {
    grid-column-start: 2;
  }

  .lg\:row-span-2 {
    grid-row: span 2 / span 2;
  }

  .lg\:row-start-1 {
    grid-row-start: 1;
  }

  .lg\:row-start-2 {
    grid-row-start: 2;
  }

  .lg\:hidden {
    display: none;
  }

  .lg\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .lg\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .lg\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .lg\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .lg\:grid-cols-\[1\.4fr_1fr\] {
    grid-template-columns: 1.4fr 1fr;
  }

  .lg\:grid-cols-\[1fr_300px\] {
    grid-template-columns: 1fr 300px;
  }

  .lg\:grid-cols-\[1fr_320px\] {
    grid-template-columns: 1fr 320px;
  }

  .lg\:grid-cols-\[minmax\(0\2c 1\.6fr\)_minmax\(0\2c 1fr\)\] {
    grid-template-columns: minmax(0,1.6fr) minmax(0,1fr);
  }

  .lg\:grid-cols-\[minmax\(0\2c 1fr\)_22rem\] {
    grid-template-columns: minmax(0,1fr) 22rem;
  }

  .lg\:grid-cols-\[minmax\(0\2c 1fr\)_300px\] {
    grid-template-columns: minmax(0,1fr) 300px;
  }

  .lg\:grid-cols-\[minmax\(0\2c 1fr\)_360px\] {
    grid-template-columns: minmax(0,1fr) 360px;
  }

  .lg\:grid-cols-\[minmax\(0\2c 1fr\)_minmax\(0\2c 1\.4fr\)\] {
    grid-template-columns: minmax(0,1fr) minmax(0,1.4fr);
  }

  .lg\:grid-cols-\[minmax\(0\2c 1fr\)_minmax\(0\2c 440px\)\] {
    grid-template-columns: minmax(0,1fr) minmax(0,440px);
  }

  .lg\:grid-rows-\[auto_1fr\] {
    grid-template-rows: auto 1fr;
  }

  .lg\:items-start {
    align-items: flex-start;
  }

  .lg\:self-start {
    align-self: flex-start;
  }

  .lg\:pb-14 {
    padding-bottom: 3.5rem;
  }

  .lg\:text-7xl {
    font-size: 4.5rem;
    line-height: 1;
  }
}
@media (min-width: 1280px) {

  .xl\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .xl\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .xl\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
}
@media (min-width: 1536px) {

  .\32xl\:flex {
    display: flex;
  }

  .\32xl\:hidden {
    display: none;
  }
}
.\[\&\:\:-webkit-search-cancel-button\]\:hidden::-webkit-search-cancel-button {
  display: none;
}
.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button {
  border-top-left-radius: calc(var(--radius) - 2px);
  border-bottom-left-radius: calc(var(--radius) - 2px);
}
.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]) {
  padding-right: 0px;
}
.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button {
  border-top-right-radius: calc(var(--radius) - 2px);
  border-bottom-right-radius: calc(var(--radius) - 2px);
}
  .\[\&\>\[data-slot\=progress-indicator\]\]\:bg-gradient-primary>[data-slot=progress-indicator] {
    background-image: var(--gradient-primary);
  }
.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox] {
  --tw-translate-y: 2px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.\[\&\>button\]\:hidden>button {
  display: none;
}
.\[\&\>span\:last-child\]\:truncate>span:last-child {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.\[\&\>span\]\:text-xs>span {
  font-size: 0.75rem;
  line-height: 1rem;
}
.\[\&\>span\]\:opacity-70>span {
  opacity: 0.7;
}
.\[\&\>svg\]\:pointer-events-none>svg {
  pointer-events: none;
}
.\[\&\>svg\]\:size-3>svg {
  width: 0.75rem;
  height: 0.75rem;
}
.\[\&\>svg\]\:size-3\.5>svg {
  width: 0.875rem;
  height: 0.875rem;
}
.\[\&\>svg\]\:size-4>svg {
  width: 1rem;
  height: 1rem;
}
.\[\&\>svg\]\:h-2\.5>svg {
  height: 0.625rem;
}
.\[\&\>svg\]\:h-3>svg {
  height: 0.75rem;
}
.\[\&\>svg\]\:w-2\.5>svg {
  width: 0.625rem;
}
.\[\&\>svg\]\:w-3>svg {
  width: 0.75rem;
}
.\[\&\>svg\]\:shrink-0>svg {
  flex-shrink: 0;
}
.\[\&\>svg\]\:translate-y-0\.5>svg {
  --tw-translate-y: 0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.\[\&\>svg\]\:text-current>svg {
  color: currentColor;
}
.\[\&\>svg\]\:text-muted-foreground>svg {
  --tw-text-opacity: 1;
  color: oklch(var(--muted-foreground) / var(--tw-text-opacity, 1));
}
.\[\&\>svg\]\:text-sidebar-accent-foreground>svg {
  color: oklch(var(--sidebar-accent-foreground));
}
.\[\&\>tr\]\:last\:border-b-0:last-child>tr {
  border-bottom-width: 0px;
}
.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div {
  --tw-rotate: 90deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg {
  --tw-rotate: 180deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text {
  fill: oklch(var(--muted-foreground) / 1);
}
.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor {
  stroke: oklch(var(--border));
}
.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke='#fff'] {
  stroke: transparent;
}
.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke='#ccc'] {
  stroke: oklch(var(--border));
}
.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector {
  fill: oklch(var(--muted) / 1);
}
.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor {
  fill: oklch(var(--muted) / 1);
}
.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke='#ccc'] {
  stroke: oklch(var(--border));
}
.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke='#fff'] {
  stroke: transparent;
}
.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading] {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading] {
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}
.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading] {
  font-size: 0.75rem;
  line-height: 1rem;
}
.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading] {
  font-weight: 500;
}
.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading] {
  --tw-text-opacity: 1;
  color: oklch(var(--muted-foreground) / var(--tw-text-opacity, 1));
}
.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden]) ~[cmdk-group] {
  padding-top: 0px;
}
.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group] {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg {
  height: 1.25rem;
}
.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg {
  width: 1.25rem;
}
.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input] {
  height: 3rem;
}
.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item] {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item] {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg {
  height: 1.25rem;
}
.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg {
  width: 1.25rem;
}
.\[\&_p\]\:leading-relaxed p {
  line-height: 1.625;
}
.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*='size-']) {
  width: 1rem;
  height: 1rem;
}
.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*='text-']) {
  --tw-text-opacity: 1;
  color: oklch(var(--muted-foreground) / var(--tw-text-opacity, 1));
}
.\[\&_svg\]\:pointer-events-none svg {
  pointer-events: none;
}
.\[\&_svg\]\:shrink-0 svg {
  flex-shrink: 0;
}
.\[\&_tr\:last-child\]\:border-0 tr:last-child {
  border-width: 0px;
}
.\[\&_tr\]\:border-b tr {
  border-bottom-width: 1px;
}
[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2 {
  right: -0.5rem;
}
[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize {
  cursor: e-resize;
}
[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2 {
  left: -0.5rem;
}
[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize {
  cursor: w-resize;
}
[data-slot=card-content] .\[\[data-slot\=card-content\]_\&\]\:bg-transparent {
  background-color: transparent;
}
[data-slot=popover-content] .\[\[data-slot\=popover-content\]_\&\]\:bg-transparent {
  background-color: transparent;
}
a.\[a\&\]\:hover\:bg-accent:hover {
  --tw-bg-opacity: 1;
  background-color: oklch(var(--accent) / var(--tw-bg-opacity, 1));
}
a.\[a\&\]\:hover\:bg-destructive\/90:hover {
  background-color: oklch(var(--destructive) / 0.9);
}
a.\[a\&\]\:hover\:bg-primary\/90:hover {
  background-color: oklch(var(--primary) / 0.9);
}
a.\[a\&\]\:hover\:bg-secondary\/90:hover {
  background-color: oklch(var(--secondary) / 0.9);
}
a.\[a\&\]\:hover\:text-accent-foreground:hover {
  color: oklch(var(--accent-foreground));
}
