/* RSquared IT Technologies - static site stylesheet.
   This is the ONLY stylesheet the pages load, so the browser needs
   exactly one CSS request rather than chaining several through @import
   (which must each resolve before the next can even start fetching).

   Edit this file directly. It was originally concatenated from three
   separate source files, and those three lived alongside it for a
   while, but nothing referenced them and they drifted out of sync -
   the stale animations.css still held the un-gated
   `[data-reveal] { opacity: 0 }` rule that used to render the whole
   site blank without JavaScript. Keeping a dead copy of a fixed bug
   next to the fix is a trap, so they were removed; the sections below
   keep their original names as navigation markers.

   Structure, top to bottom:
   1. Hand-written overrides and site-specific rules (this block) -
      anything Tailwind's static output can't express. NOTE: only
      utility classes that appeared in the original Next.js source were
      compiled into section 2, so a brand-new Tailwind class written
      into the HTML is a SILENT NO-OP. Verify any new class exists in
      this file, or hand-write the rule here instead.
   2. The exact Tailwind v4 output from the Next.js production build -
      ground truth for every design token, spacing value and utility
      class actually used. Do not hand-edit; regenerate from the build.
      The self-hosted Geist/Geist Mono @font-face rules live in here
      too (see ../media/); the :root block just below wires the family
      names to the CSS variables next/font used.
   3. "--- animations.css ---" - reveal / mobile-nav transitions.
   4. "--- responsive.css ---" - global overflow/max-width safety. */

:root {
  --font-geist-sans: "Geist", ui-sans-serif, system-ui, sans-serif;
  --font-geist-mono: "Geist Mono", ui-monospace, monospace;
  --header-height: 72px;
}

/* Transparent header at the top of every page, per request. navigation.js
   already toggles the header between border-transparent/bg-transparent
   (scrollY <= 8) and a solid .glass-panel (scrolled) - that part worked -
   but the header still took up its own space in normal flow, so being
   "transparent" only ever exposed the plain page background sitting
   below it, never the page's own hero image right underneath. Pulling
   every page's first section up by exactly the header's height (and
   pushing its own text content back down by the same amount, so nothing
   visibly moves) lets that hero image extend up behind the header
   instead of starting after it. Every page shares the identical PageHero
   markup (a <section> immediately inside <main>, with a .container-page
   child carrying the py-20/md:py-28 padding fixed above) so this one
   rule covers all of them; header ~ main (not header + main) because the
   mobile-nav overlay/panel are fixed-position siblings sitting between
   the two in the DOM. */
header ~ main > section:first-child {
  margin-top: calc(-1 * var(--header-height));
}
header ~ main > section:first-child > .container-page {
  padding-top: calc(3rem + var(--header-height));
}
@media (min-width: 768px) {
  header ~ main > section:first-child > .container-page {
    padding-top: calc(4rem + var(--header-height));
  }
}

/* Adaptive header, per request: now that the header is genuinely
   transparent over each page's hero image (above), its links/icons and
   logo need to stay legible regardless of which theme is active - the
   normal light/dark tokens they use (text-foreground etc., and the
   theme-swapped logo pair below) assume an opaque, theme-coloured header
   bar, and in light mode that means near-black text and the dark-
   coloured logo sitting directly on the dark photo.

   Scoped with :has() to header.bg-transparent AND a first section that
   actually has a photo (~ main > section:first-child > img) - not every
   page does (legal/careers/resources/etc. just have the plain grid-
   pattern background), and those are light/near-white in light theme,
   where forcing white text would trade one invisible-header bug for
   another. Reverts automatically once scrolled (.glass-panel replaces
   .bg-transparent) or on a page with no hero photo. Hover/open states
   get a fixed white-tint chip instead of the theme's --surface (which
   is near-white in light mode and would make white text vanish on
   hover) for the same reason.

   [data-slot="navigation-menu-list"] scopes this to the top row's own
   <ul> (Home/Solutions/Services/Industries/Company/Contact) and nothing
   below it - the dropdown panels live in a sibling element and use
   [data-slot="navigation-menu-link"] for their own links, so without
   this the white-text rule also caught every link inside an open
   Industries/Company/etc. panel, turning them white-on-the-panel's-own-
   white-background and making the whole dropdown unreadable the moment
   it was opened at the top of the page. Panel text always keeps its
   normal theme-based colour, which was never broken. */
header.bg-transparent:has(~ main > section:first-child > img) nav[aria-label="Main"] [data-slot="navigation-menu-list"] a,
header.bg-transparent:has(~ main > section:first-child > img) nav[aria-label="Main"] [data-slot="navigation-menu-list"] button,
header.bg-transparent:has(~ main > section:first-child > img) [data-theme-toggle],
header.bg-transparent:has(~ main > section:first-child > img) [data-mobile-menu-open] {
  color: #fff;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.5);
}
header.bg-transparent:has(~ main > section:first-child > img) nav[aria-label="Main"] [data-slot="navigation-menu-list"] a:hover,
header.bg-transparent:has(~ main > section:first-child > img) nav[aria-label="Main"] [data-slot="navigation-menu-list"] button:hover,
header.bg-transparent:has(~ main > section:first-child > img) nav[aria-label="Main"] [data-slot="navigation-menu-list"] button[data-state="open"],
header.bg-transparent:has(~ main > section:first-child > img) [data-theme-toggle]:hover,
header.bg-transparent:has(~ main > section:first-child > img) [data-mobile-menu-open]:hover {
  color: #fff;
  background-color: rgba(255, 255, 255, 0.14);
}
header.bg-transparent:has(~ main > section:first-child > img) a[aria-label="RSquared IT Technologies home"] img.light\:hidden {
  display: block;
}
header.bg-transparent:has(~ main > section:first-child > img) a[aria-label="RSquared IT Technologies home"] img.light\:block {
  display: none;
}

/* Services/Solutions mega-menu promo card (the "Explore all
   solutions"/"View the full services catalogue" panel on the left of
   those two dropdowns) reads fine in light theme, where --popover is
   pure white and its bg-gradient-to-br from-surface to-background-
   elevated is a shade off that - but in dark theme --surface and
   --popover are the exact same value (#1c1c1c), so the "card" had no
   visible fill at all, just text floating with a barely-there border.
   Deriving the gradient from --popover itself (mixed toward
   --foreground) instead of separate tokens that can coincide
   guarantees it reads as a distinct card against its own container in
   either theme. */
[data-menu-panel] .bg-gradient-to-br.from-surface.to-background-elevated {
  background-image: linear-gradient(
    to bottom right,
    color-mix(in oklab, var(--popover) 90%, var(--foreground) 10%),
    var(--popover)
  );
}

/* Every section on every page shares one padding pattern from the
   original design (py-20 md:py-28 = 80px mobile / 112px desktop) -
   tightened site-wide per request, bringing desktop closer to mobile's
   tighter feel rather than just scaling both down independently.
   Targeting the exact class pair (not .py-20 or .md\:py-28 alone) so
   this can't affect an element that happens to use just one of them
   elsewhere; the two-class selector already outranks either single-
   class Tailwind utility on specificity, so source order doesn't
   matter here. */
.py-20.md\:py-28 {
  padding-block: 3rem;
}
@media (min-width: 768px) {
  .py-20.md\:py-28 {
    padding-block: 4rem;
  }
}

/* Homepage hero photo: no filter, no custom scrim, no oversized padding
   per request - it now uses exactly the same treatment as every other
   PageHero (Services included, whose photo this now is): .scrim-hero-
   soft (the shared left-to-right dark gradient, defined in the compiled
   Tailwind output below) and the shared .py-20/md:py-28 padding fixed
   above. The site-wide badge fix already covers .scrim-hero-soft
   sections, so no homepage-specific version of that is needed either.

   The heading and lead paragraph keep a fixed white + soft text-shadow
   rather than switching to the plain text-white/text-white/85 other
   PageHero pages use, since .scrim-hero-soft is fully transparent by
   its right edge and this photo's right side is a bright window - the
   shadow is what keeps the text reliably legible there regardless of
   theme. text-shadow inherits, so putting this on the <h1> also covers
   the .text-gradient span inside it without a separate rule. */
.hero-copy {
  color: #fff;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.6);
}

/* Homepage "Offerings" card photo area. h-56/sm:h-64 aren't in the
   compiled Tailwind output (never used at that size in the original
   TSX source), so without this the image's positioned parent collapses
   to 0 height and the photo doesn't render at all. */
.offering-card-media {
  height: 14rem;
}
@media (min-width: 640px) {
  .offering-card-media {
    height: 16rem;
  }
}

/* "Technology that works behind your business" marquee logos - each is
   a real vendor-supplied logo (black/colour art on transparent bg, not
   designed for a dark theme), so it sits on a small white chip rather
   than directly on the page background. A consistent height keeps the
   row's rhythm even though every logo has a different aspect ratio. */
/* Marquee logo sizing.

   These nine brand PNGs run from 1.02:1 (the square Ansible mark) to 8.03:1
   (the Fortinet wordmark) - a 7.9x spread. Giving them all one max-height
   matched their heights but let the widths run 82px to 642px, so Fortinet
   read as roughly eight times the size of Ansible and only about three
   logos fitted on screen at once.

   Sizing each one by a blend of height- and area-matching instead
   (h = target / aspect^0.35) keeps every logo comfortably readable while
   evening out how large each one *looks*. The compact marks are bigger
   than a flat height would make them, the wide wordmarks are smaller, and
   the row reads as one set. These values are scaled down again (~20%
   more, target 58px) per a second follow-up size request - two rounds
   down from the original 88px pass. Recompute if a logo file is replaced
   - the exponent is what keeps them consistent, not the individual
   numbers. */
.tech-logo-img {
  height: 2.625rem; /* fallback for any logo not listed below */
  width: auto;
  display: block;
}

.tech-logo-img[src$="Ansible.png"] { height: 3.625rem; }
.tech-logo-img[src$="AWS.png"] { height: 3.0625rem; }
.tech-logo-img[src$="Cisco.png"] { height: 2.875rem; }
.tech-logo-img[src$="Splunk.png"] { height: 2.375rem; }
.tech-logo-img[src$="Terraform.png"] { height: 2.1875rem; }
.tech-logo-img[src$="Huawei.png"] { height: 2.125rem; }
.tech-logo-img[src$="Microsoft.png"] { height: 2.125rem; }
.tech-logo-img[src$="Azure.png"] { height: 1.9375rem; }
.tech-logo-img[src$="Fortinet.png"] { height: 1.875rem; }

/* Spacing between marquee chips must be a per-item margin, not a gap
   on the flex parent. The seamless loop works by duplicating the whole
   sequence and animating translateX(-50%); that only lines up exactly
   if each item (including the last one in each copy) carries its own
   trailing space. A parent `gap` only inserts space *between* items
   (N-1 gaps for N items), which is asymmetric at the seam between the
   two copies and produces a visible stutter once per cycle. */
/* One fixed chip height, because the logos inside are now deliberately
   different heights - without this the cards would step up and down across
   the row. The flex centring comes from the markup's items-center; this
   just pins the box so every card is the same size. 5.25rem clears the
   tallest logo (3.625rem) plus its padding, scaled down with the logos
   themselves.

   No border and no shadow, per an explicit follow-up request - shadow-md
   was still reading as a faint line around each card (most visible at the
   rounded corners against the page's near-white background), which is
   exactly the boxed/bordered look that request was asking to remove. The
   white fill is the only thing separating a chip from the page now; that
   is enough contrast against both the light and dark page background to
   read as a card without an outline. */
.tech-logo-chip {
  margin-right: 1.75rem;
  padding: 0 1.5rem;
  height: 5.25rem;
  justify-content: center;
}

/* WCAG 2.5.8 (Target Size, Minimum) wants pointer targets of at least
   24x24 CSS px. Several text links here sit at text-sm/text-xs, giving
   18-20px tall hit boxes - fine with a mouse, fiddly with a thumb.
   Vertical padding on an *inline* element grows its hit box without
   contributing to the line box, so the type size, the column gaps and
   the visual rhythm all stay exactly as designed - measured cost is
   +8px on total footer height, from the one row whose links are
   block-level. Gaps between these links are >=10px, so the padded
   boxes never overlap each other.

   Links genuinely inline inside a sentence (e.g. "see the full service
   catalogue") are deliberately left alone - 2.5.8 exempts them, and
   padding them would put their hit boxes on top of the line above. */
footer li > a,
nav[aria-label="Breadcrumb"] a,
.contact-detail-link {
  padding-block: 0.25rem; /* 16-20px text box -> 24-28px target */
}

/* These two are already inline-flex (icon + label), so they're atomic
   boxes that vertical padding would visibly grow. Set the box height
   instead - a 4px change on a standalone link with margins either
   side. */
a.inline-flex.items-center.gap-1\.5 {
  min-height: 1.5rem;
}

/* Hero eyebrow badges are `text-accent-strong` on `bg-accent/10` - violet
   text on a 10%-violet tint. That reads fine on a flat page background,
   but every photo hero puts it directly over the image, where the tint is
   effectively transparent and the violet lands on whatever the photo
   happens to be (measured as low as 1.4:1 over the light areas of the
   About and Packages photos). A solid brand-violet chip with white text
   is opaque, so the photo can't leak through at all: white on #7c3aed is
   5.67:1, comfortably past the 4.5:1 AA threshold, and it reads as a
   stronger brand mark rather than a washed-out outline.

   Scoped with :has() to heroes that actually have a photo scrim, so
   badges elsewhere on the site (package cards, service tags) keep the
   subtle tinted treatment they were designed with. Browsers without
   :has() simply skip the rule and get today's appearance. */
section:has(> .scrim-hero-soft) [data-slot="badge"] {
  background-color: var(--accent);
  border-color: color-mix(in oklab, var(--accent-strong) 60%, transparent);
  color: #fff;
}

/* The homepage hero's badge is covered by the .scrim-hero-soft rule
   above now that it uses the same shared scrim as every other PageHero
   - no separate override needed here any more.

   "Transform." in the hero heading still needs one, though:
   .text-gradient's default stops start at var(--foreground) -
   near-black in light mode - and depending on where the word lands over
   this photo, that can be as dark as the near-black jacket in the old
   photo it was written for. Fixed stops (white through the dark theme's
   brighter accent shades, not the theme-dependent var()) keep every
   letter legible regardless of what part of the photo is behind it or
   which theme is active - same reasoning as .hero-copy above. Scoped by
   .hero-copy rather than the scrim class, since .text-gradient is also
   used elsewhere on the page (the stat numbers) and .hero-copy is the
   homepage hero's own, unique marker. */
.hero-copy .text-gradient {
  /* background-image, not the background shorthand - the shorthand resets
     every sub-property it doesn't mention, including background-clip,
     which would silently undo .text-gradient's clip-to-text and paint
     this as a solid rectangle instead of gradient-filled letters. */
  background-image: linear-gradient(110deg, #fff 15%, #c9a6fb 50%, #a855f7 85%);
}

/* Homepage "Who We Help" section - a black-and-white photo with a purple
   filter over it, per request, layered the same way as the homepage
   hero: grayscale the photo first so the multiply-blend purple modulates
   pure lightness instead of fighting the photo's original colour (this
   is a duotone, in effect), then a solid --primary layer on the section
   itself as the fallback if the image fails to load, so it still reads
   as the brand purple the earlier "solid purple background" request
   asked for. Both the photo and the scrim are theme-independent - same
   reasoning as the hero: the filter is the point, not something that
   should differ by toggle. */
.who-we-help-photo {
  /* brightness(0.82): darkened a bit further per request, on top of the
     grayscale + purple multiply above. */
  filter: grayscale(1) contrast(1.05) brightness(0.82);
}
.who-we-help-scrim {
  background: color-mix(in oklab, var(--accent) 82%, transparent);
  mix-blend-mode: multiply;
}

/* Everything inside was styled for a neutral page background via the
   light/dark theme tokens, so each of those needs an explicit
   light-on-purple override here - left alone, the badge's
   accent-on-accent/10 treatment and the pills' translucent-surface glass
   effect would both nearly vanish against a matching purple fill. */
.who-we-help h2 {
  color: #fff;
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.45);
}
.who-we-help p {
  color: color-mix(in oklab, #fff 85%, transparent);
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.45);
}
.who-we-help [data-slot="badge"] {
  background-color: color-mix(in oklab, #fff 15%, transparent);
  border-color: color-mix(in oklab, #fff 35%, transparent);
  color: #fff;
}
.who-we-help .glass-panel-clear {
  background-color: color-mix(in oklab, #fff 10%, transparent);
  border-color: color-mix(in oklab, #fff 25%, transparent);
  color: #fff;
}
.who-we-help .glass-panel-clear:hover {
  background-color: #fff;
  border-color: #fff;
  color: var(--accent-2-strong);
}

/* The consent checkbox is an 18px square by design. Rather than resize
   the control (and desync it from the input field styling), extend the
   hit area with a transparent pseudo-element that belongs to the same
   button, so a tap 3px outside the box still toggles it. */
[data-slot="checkbox"] {
  position: relative;
}
[data-slot="checkbox"]::before {
  content: "";
  position: absolute;
  inset: -3px; /* 18px control -> 24x24 target */
}

@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.390ncx5urfkfu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_deef94d5-module__Sms4YG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_deef94d5-module__Sms4YG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.31988l_ccedte.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0r6juujl39pe6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_1bf8cbf6-module__FlyLvG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_1bf8cbf6-module__FlyLvG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:var(--font-geist-sans);--color-red-900:#82181a;--color-amber-50:#fffbeb;--color-slate-200:#e2e8f0;--color-gray-100:#f3f4f6;--color-gray-600:#4a5565;--color-gray-900:#101828;--color-zinc-200:#e4e4e7;--color-zinc-900:#18181b;--color-zinc-950:#09090b;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-lg:var(--radius);--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--blur-sm:8px;--blur-md:12px;--blur-2xl:40px;--blur-3xl:64px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-mono);--color-background:var(--background);--color-accent:var(--accent)}@supports (color:lab(0% 0 0)){:root,:host{--color-red-900:lab(28.5139% 44.5539 29.0463);--color-amber-50:lab(98.6252% -.635922 8.42309);--color-slate-200:lab(91.7353% -.998765 -4.76968);--color-gray-100:lab(96.1596% -.0823438 -1.13575);--color-gray-600:lab(35.6337% -1.58697 -10.8425);--color-gray-900:lab(8.11897% .811279 -12.254);--color-zinc-200:lab(90.6853% .399232 -1.45452);--color-zinc-900:lab(8.30603% .618205 -2.16572);--color-zinc-950:lab(2.51107% .242703 -.886115)}}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}body{background:var(--background);color:var(--foreground);font-feature-settings:"cv02", "cv03", "cv04", "cv11"}::selection{background:var(--accent);color:var(--accent-foreground)}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{inset-block:0}.top-0{top:0}.top-4{top:calc(var(--spacing) * 4)}.top-full{top:100%}.top-px{top:1px}.right-0{right:0}.right-4{right:calc(var(--spacing) * 4)}.left-0{left:0}.left-2{left:calc(var(--spacing) * 2)}.isolate{isolation:isolate}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[60\]{z-index:60}.z-\[9999\]{z-index:9999}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-4{grid-column:span 4/span 4}.col-span-8{grid-column:span 8/span 8}.row-span-2{grid-row:span 2/span 2}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-mx-5{margin-inline:calc(var(--spacing) * -5)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.-mt-3{margin-top:calc(var(--spacing) * -3)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-9{margin-top:calc(var(--spacing) * 9)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mt-14{margin-top:calc(var(--spacing) * 14)}.mr-12{margin-right:calc(var(--spacing) * 12)}.mb-1{margin-bottom:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.mb-12{margin-bottom:calc(var(--spacing) * 12)}.ml-1{margin-left:var(--spacing)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-\[4\/3\]{aspect-ratio:4/3}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-4\.5{width:calc(var(--spacing) * 4.5);height:calc(var(--spacing) * 4.5)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-\[18px\]{width:18px;height:18px}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-18{height:calc(var(--spacing) * 18)}.h-\[100dvh\]{height:100dvh}.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-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-96{max-height:calc(var(--spacing) * 96)}.min-h-28{min-height:calc(var(--spacing) * 28)}.min-h-\[60vh\]{min-height:60vh}.min-h-\[100dvh\]{min-height:100dvh}.min-h-full{min-height:100%}.w-1\/2{width:50%}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-24{width:calc(var(--spacing) * 24)}.w-72{width:calc(var(--spacing) * 72)}.w-\[calc\(33\%-1rem\)\]{width:calc(33% - 1rem)}.w-\[min\(90vw\,260px\)\]{width:min(90vw,260px)}.w-\[min\(90vw\,420px\)\]{width:min(90vw,420px)}.w-\[min\(92vw\,880px\)\]{width:min(92vw,880px)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[65ch\]{max-width:65ch}.max-w-\[220px\]{max-width:220px}.max-w-\[1400px\]{max-width:1400px}.max-w-full{max-width:100%}.max-w-max{max-width:max-content}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-y-\[1px\]{--tw-translate-y:calc(1px * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0{--tw-translate-y:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-12{--tw-translate-y:calc(var(--spacing) * 12);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-16{--tw-translate-y:calc(var(--spacing) * 16);translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-105{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-\[0\.98\]{scale:.98}.-rotate-45{rotate:-45deg}.rotate-45{rotate:45deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-marquee{animation:32s linear infinite marquee}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-flow-dense{grid-auto-flow:dense}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-10{gap:calc(var(--spacing) * 10)}.gap-12{gap:calc(var(--spacing) * 12)}.gap-14{gap:calc(var(--spacing) * 14)}.gap-16{gap:calc(var(--spacing) * 16)}.gap-x-8{column-gap:calc(var(--spacing) * 8)}.gap-y-12{row-gap:calc(var(--spacing) * 12)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}.self-start{align-self:flex-start}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:calc(var(--radius) + .85rem)}.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-\[2rem\]{border-radius:2rem}.rounded-\[4px\]{border-radius:4px}.rounded-\[calc\(2rem-0\.375rem\)\]{border-radius:1.625rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - .15rem)}.rounded-sm{border-radius:calc(var(--radius) - .3rem)}.rounded-xl{border-radius:calc(var(--radius) + .4rem)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-accent-2\/30{border-color:var(--accent-2)}@supports (color:color-mix(in lab, red, red)){.border-accent-2\/30{border-color:color-mix(in oklab, var(--accent-2) 30%, transparent)}}.border-accent\/30{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.border-accent\/30{border-color:color-mix(in oklab, var(--accent) 30%, transparent)}}.border-accent\/40{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.border-accent\/40{border-color:color-mix(in oklab, var(--accent) 40%, transparent)}}.border-accent\/50{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.border-accent\/50{border-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.border-border{border-color:var(--border)}.border-border-strong{border-color:var(--border-strong)}.border-destructive\/30{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/30{border-color:color-mix(in oklab, var(--destructive) 30%, transparent)}}.border-input{border-color:var(--input)}.border-slate-200\/50{border-color:#e2e8f080}@supports (color:color-mix(in lab, red, red)){.border-slate-200\/50{border-color:color-mix(in oklab, var(--color-slate-200) 50%, transparent)}}.border-success\/30{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.border-success\/30{border-color:color-mix(in oklab, var(--success) 30%, transparent)}}.border-transparent{border-color:#0000}.border-warning\/30{border-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.border-warning\/30{border-color:color-mix(in oklab, var(--warning) 30%, transparent)}}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.border-white\/10{border-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.bg-accent-2\/10{background-color:var(--accent-2)}@supports (color:color-mix(in lab, red, red)){.bg-accent-2\/10{background-color:color-mix(in oklab, var(--accent-2) 10%, transparent)}}.bg-accent\/10{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/10{background-color:color-mix(in oklab, var(--accent) 10%, transparent)}}.bg-accent\/15{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/15{background-color:color-mix(in oklab, var(--accent) 15%, transparent)}}.bg-amber-50{background-color:var(--color-amber-50)}.bg-background{background-color:var(--background)}.bg-background-elevated{background-color:var(--background-elevated)}.bg-background\/40{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/40{background-color:color-mix(in oklab, var(--background) 40%, transparent)}}.bg-black\/5{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.bg-black\/5{background-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab, red, red)){.bg-black\/70{background-color:color-mix(in oklab, var(--color-black) 70%, transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab, red, red)){.bg-black\/80{background-color:color-mix(in oklab, var(--color-black) 80%, transparent)}}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive,.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/10{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-success\/5{background-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.bg-success\/5{background-color:color-mix(in oklab, var(--success) 5%, transparent)}}.bg-success\/10{background-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.bg-success\/10{background-color:color-mix(in oklab, var(--success) 10%, transparent)}}.bg-success\/15{background-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.bg-success\/15{background-color:color-mix(in oklab, var(--success) 15%, transparent)}}.bg-surface{background-color:var(--surface)}.bg-transparent{background-color:#0000}.bg-warning\/10{background-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.bg-warning\/10{background-color:color-mix(in oklab, var(--warning) 10%, transparent)}}.bg-white{background-color:var(--color-white)}.bg-white\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.bg-white\/5{background-color:color-mix(in oklab, var(--color-white) 5%, transparent)}}.bg-white\/80{background-color:#fffc}@supports (color:color-mix(in lab, red, red)){.bg-white\/80{background-color:color-mix(in oklab, var(--color-white) 80%, transparent)}}.bg-zinc-200{background-color:var(--color-zinc-200)}.bg-zinc-900{background-color:var(--color-zinc-900)}.bg-zinc-950{background-color:var(--color-zinc-950)}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-accent\/10{--tw-gradient-from:var(--accent)}@supports (color:color-mix(in lab, red, red)){.from-accent\/10{--tw-gradient-from:color-mix(in oklab, var(--accent) 10%, transparent)}}.from-accent\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-surface{--tw-gradient-from:var(--surface);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-transparent{--tw-gradient-via:transparent;--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-accent-2\/10{--tw-gradient-to:var(--accent-2)}@supports (color:color-mix(in lab, red, red)){.to-accent-2\/10{--tw-gradient-to:color-mix(in oklab, var(--accent-2) 10%, transparent)}}.to-accent-2\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-background-elevated{--tw-gradient-to:var(--background-elevated);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.\[mask-image\:linear-gradient\(to_right\,transparent\,black_10\%\,black_90\%\,transparent\)\]{-webkit-mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000);mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000)}.\[mask-image\:radial-gradient\(ellipse_60\%_80\%_at_50\%_50\%\,black\,transparent\)\]{-webkit-mask-image:radial-gradient(60% 80%,#000,#0000);mask-image:radial-gradient(60% 80%,#000,#0000)}.\[mask-image\:radial-gradient\(ellipse_65\%_55\%_at_50\%_0\%\,black\,transparent\)\]{-webkit-mask-image:radial-gradient(65% 55% at 50% 0,#000,#0000);mask-image:radial-gradient(65% 55% at 50% 0,#000,#0000)}.\[mask-image\:radial-gradient\(ellipse_70\%_60\%_at_50\%_0\%\,black\,transparent\)\]{-webkit-mask-image:radial-gradient(70% 60% at 50% 0,#000,#0000);mask-image:radial-gradient(70% 60% at 50% 0,#000,#0000)}.bg-cover{background-size:cover}.bg-center{background-position:50%}.object-cover{object-fit:cover}.p-0{padding:0}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-7{padding-inline:calc(var(--spacing) * 7)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-20{padding-block:calc(var(--spacing) * 20)}.py-24{padding-block:calc(var(--spacing) * 24)}.py-32{padding-block:calc(var(--spacing) * 32)}.py-40{padding-block:calc(var(--spacing) * 40)}.py-48{padding-block:calc(var(--spacing) * 48)}.pt-0{padding-top:0}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pt-14{padding-top:calc(var(--spacing) * 14)}.pt-24{padding-top:calc(var(--spacing) * 24)}.pr-0{padding-right:0}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-geist-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-\[1\.1\]{--tw-leading:1.1;line-height:1.1}.leading-\[1\],.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.2em\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-\[0\.18em\]{--tw-tracking:.18em;letter-spacing:.18em}.tracking-\[0\.22em\]{--tw-tracking:.22em;letter-spacing:.22em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.text-wrap{text-wrap:wrap}.whitespace-nowrap{white-space:nowrap}.\!text-red-900{color:var(--color-red-900)!important}.text-accent-2-strong{color:var(--accent-2-strong)}.text-accent-strong{color:var(--accent-strong)}.text-card-foreground{color:var(--card-foreground)}.text-destructive{color:var(--destructive)}.text-destructive-foreground{color:var(--destructive-foreground)}.text-foreground{color:var(--foreground)}.text-foreground-muted{color:var(--foreground-muted)}.text-foreground-subtle{color:var(--foreground-subtle)}.text-gray-600{color:var(--color-gray-600)}.text-gray-900{color:var(--color-gray-900)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary-foreground{color:var(--primary-foreground)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-white{color:var(--color-white)}.text-white\/65{color:#ffffffa6}@supports (color:color-mix(in lab, red, red)){.text-white\/65{color:color-mix(in oklab, var(--color-white) 65%, transparent)}}.text-white\/85{color:#ffffffd9}@supports (color:color-mix(in lab, red, red)){.text-white\/85{color:color-mix(in oklab, var(--color-white) 85%, transparent)}}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.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,)}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-90{opacity:.9}.opacity-100{opacity:1}.opacity-\[0\.03\]{opacity:.03}.mix-blend-luminosity{mix-blend-mode:luminosity}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_0_1px_rgba\(255\,255\,255\,0\.06\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#ffffff0f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_20px_40px_-15px_rgba\(0\,0\,0\,0\.05\)\]{--tw-shadow:0 20px 40px -15px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[inset_0_1px_0_rgba\(255\,255\,255\,0\.1\)\]{--tw-shadow:inset 0 1px 0 var(--tw-shadow-color,#ffffff1a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[inset_0_1px_1px_rgba\(255\,255\,255\,0\.15\)\]{--tw-shadow:inset 0 1px 1px var(--tw-shadow-color,#ffffff26);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-black\/5{--tw-ring-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.ring-black\/5{--tw-ring-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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-md{--tw-blur:blur(var(--blur-md));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,)}.contrast-125{--tw-contrast:contrast(125%);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,)}.grayscale{--tw-grayscale:grayscale(100%);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,)}.invert{--tw-invert:invert(100%);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);-webkit-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: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-2xl{--tw-backdrop-blur:blur(var(--blur-2xl));-webkit-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: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-3xl{--tw-backdrop-blur:blur(var(--blur-3xl));-webkit-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: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-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-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: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{-webkit-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: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,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,background-color\,border-color\,box-shadow\,transform\]{transition-property:color,background-color,border-color,box-shadow,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.delay-100{transition-delay:.1s}.delay-150{transition-delay:.15s}.delay-200{transition-delay:.2s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.ease-\[cubic-bezier\(0\.32\,0\.72\,0\,1\)\]{--tw-ease:cubic-bezier(.32,.72,0,1);transition-timing-function:cubic-bezier(.32,.72,0,1)}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.delay-100{--tw-animation-delay:.1s;animation-delay:.1s}.delay-150{--tw-animation-delay:.15s;animation-delay:.15s}.delay-200{--tw-animation-delay:.2s;animation-delay:.2s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.running{animation-play-state:running}@media (hover:hover){.group-hover\:translate-x-0\.5:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:translate-x-1:is(:where(.group):hover *){--tw-translate-x:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:-translate-y-0\.5:is(:where(.group):hover *){--tw-translate-y:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:-translate-y-\[1px\]:is(:where(.group):hover *){--tw-translate-y:calc(1px * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:scale-105:is(:where(.group):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\:border-accent\/50:is(:where(.group):hover *){border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.group-hover\:border-accent\/50:is(:where(.group):hover *){border-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.group-hover\:text-accent-strong:is(:where(.group):hover *){color:var(--accent-strong)}}.group-data-\[state\=open\]\:rotate-45:is(:where(.group)[data-state=open] *){rotate:45deg}.group-data-\[state\=open\]\:rotate-180:is(:where(.group)[data-state=open] *){rotate:180deg}.group-data-\[state\=open\]\:text-accent-strong:is(:where(.group)[data-state=open] *){color:var(--accent-strong)}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.placeholder\:text-foreground-subtle::placeholder{color:var(--foreground-subtle)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:border-accent\/40:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:border-accent\/40:hover{border-color:color-mix(in oklab, var(--accent) 40%, transparent)}}.hover\:border-accent\/50:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:border-accent\/50:hover{border-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.hover\:bg-accent-strong:hover{background-color:var(--accent-strong)}.hover\:bg-surface:hover{background-color:var(--surface)}.hover\:bg-surface-hover:hover{background-color:var(--surface-hover)}.hover\:text-accent-strong:hover{color:var(--accent-strong)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-white:hover{color:var(--color-white)}.hover\:no-underline:hover{text-decoration-line:none}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-\[0_0_40px_-14px_var\(--accent-strong\)\]:hover{--tw-shadow:0 0 40px -14px var(--tw-shadow-color,var(--accent-strong));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.focus\:not-sr-only:focus{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.focus\:fixed:focus{position:fixed}.focus\:top-4:focus{top:calc(var(--spacing) * 4)}.focus\:left-4:focus{left:calc(var(--spacing) * 4)}.focus\:z-\[100\]:focus{z-index:100}.focus\:rounded-md:focus{border-radius:calc(var(--radius) - .15rem)}.focus\:border-accent\/60:focus{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.focus\:border-accent\/60:focus{border-color:color-mix(in oklab, var(--accent) 60%, transparent)}}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:bg-surface-hover:focus{background-color:var(--surface-hover)}.focus\:px-4:focus{padding-inline:calc(var(--spacing) * 4)}.focus\:py-2:focus{padding-block:calc(var(--spacing) * 2)}.focus\:text-sm:focus{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.focus\:font-medium:focus{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:text-accent-strong:focus{color:var(--accent-strong)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:border-accent\/60:focus-visible{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:border-accent\/60:focus-visible{border-color:color-mix(in oklab, var(--accent) 60%, transparent)}}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--ring)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:var(--background)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:scale-\[0\.98\]:active{scale:.98}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:active\:scale-100:disabled:active{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/30[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/30[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 30%, transparent)}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[motion\=from-end\]\:slide-in-from-right-16[data-motion=from-end]{--tw-enter-translate-x:calc(16*var(--spacing))}.data-\[motion\=from-start\]\:slide-in-from-left-16[data-motion=from-start]{--tw-enter-translate-x:calc(16*var(--spacing)*-1)}.data-\[motion\=to-end\]\:slide-out-to-right-16[data-motion=to-end]{--tw-exit-translate-x:calc(16*var(--spacing))}.data-\[motion\=to-start\]\:slide-out-to-left-16[data-motion=to-start]{--tw-exit-translate-x:calc(16*var(--spacing)*-1)}.data-\[motion\^\=from-\]\:animate-in[data-motion^=from-]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[motion\^\=from-\]\:fade-in[data-motion^=from-]{--tw-enter-opacity:0}.data-\[motion\^\=to-\]\:animate-out[data-motion^=to-]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[motion\^\=to-\]\:fade-out[data-motion^=to-]{--tw-exit-opacity:0}.data-\[placeholder\]\:text-foreground-subtle[data-placeholder]{color:var(--foreground-subtle)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=active\]\:bg-primary[data-state=active]{background-color:var(--primary)}.data-\[state\=active\]\:text-primary-foreground[data-state=active]{color:var(--primary-foreground)}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:var(--primary)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:.25s ease-out accordion-up}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:duration-200[data-state=closed]{--tw-duration:.2s;transition-duration:.2s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:.25s ease-out accordion-down}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-surface[data-state=open]{background-color:var(--surface)}.data-\[state\=open\]\:text-foreground[data-state=open]{color:var(--foreground)}.data-\[state\=open\]\:duration-300[data-state=open]{--tw-duration:.3s;transition-duration:.3s}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.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-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x:100%}@media (min-width:40rem){.sm\:col-span-1{grid-column:span 1/span 1}.sm\:h-9{height:calc(var(--spacing) * 9)}.sm\:w-80{width:calc(var(--spacing) * 80)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-between{justify-content:space-between}.sm\:p-8{padding:calc(var(--spacing) * 8)}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.sm\:text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}}@media (min-width:48rem){.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-\[0\.8fr_1fr_1fr_1fr\]{grid-template-columns:.8fr 1fr 1fr 1fr}.md\:py-28{padding-block:calc(var(--spacing) * 28)}.md\:py-48{padding-block:calc(var(--spacing) * 48)}.md\:pt-12{padding-top:calc(var(--spacing) * 12)}.md\:pt-16{padding-top:calc(var(--spacing) * 16)}.md\:pb-10{padding-bottom:calc(var(--spacing) * 10)}.md\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.md\:text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.md\:text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}}@media (min-width:64rem){.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:inline-flex{display:inline-flex}.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-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-\[0\.9fr_1\.1fr\]{grid-template-columns:.9fr 1.1fr}.lg\:grid-cols-\[1fr_1\.3fr\]{grid-template-columns:1fr 1.3fr}.lg\:grid-cols-\[1fr_1fr\]{grid-template-columns:1fr 1fr}.lg\:items-center{align-items:center}.lg\:justify-end{justify-content:flex-end}.lg\:justify-start{justify-content:flex-start}.lg\:pr-6{padding-right:calc(var(--spacing) * 6)}.lg\:text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.lg\:text-\[3\.4rem\]{font-size:3.4rem}.lg\:leading-\[1\.08\]{--tw-leading:1.08;line-height:1.08}}.dark\:bg-background\/70:where(.dark,.dark *){background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-background\/70:where(.dark,.dark *){background-color:color-mix(in oklab, var(--background) 70%, transparent)}}.dark\:bg-white\/10:where(.dark,.dark *){background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.dark\:bg-white\/10:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.dark\:bg-zinc-950:where(.dark,.dark *){background-color:var(--color-zinc-950)}.dark\:text-foreground-muted:where(.dark,.dark *){color:var(--foreground-muted)}.dark\:text-gray-100:where(.dark,.dark *){color:var(--color-gray-100)}.light\:block:where(.light,.light *){display:block}.light\:hidden:where(.light,.light *){display:none}.light\:text-white:where(.light,.light *){color:var(--color-white)}.light\:\[text-shadow\:0_1px_10px_rgba\(0\,0\,0\,0\.55\)\]:where(.light,.light *){text-shadow:0 1px 10px #0000008c}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&\>span\]\:line-clamp-1>span{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.bg-grid{background-image:linear-gradient(to right, var(--grid-line) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);background-size:44px 44px}.bg-radial-fade{background:radial-gradient(60% 50% at 50% 0%, var(--accent), transparent 70%)}@supports (color:color-mix(in lab, red, red)){.bg-radial-fade{background:radial-gradient(60% 50% at 50% 0%, color-mix(in oklab, var(--accent) 16%, transparent), transparent 70%)}}.scrim-hero{background:linear-gradient(to right, var(--background-elevated) 0%, var(--background-elevated) 45%, var(--background-elevated) 100%)}@supports (color:color-mix(in lab, red, red)){.scrim-hero{background:linear-gradient(to right, color-mix(in oklab, var(--background-elevated) 82%, transparent) 0%, color-mix(in oklab, var(--background-elevated) 50%, transparent) 45%, color-mix(in oklab, var(--background-elevated) 8%, transparent) 100%)}}.dark .scrim-hero{background:linear-gradient(to right, var(--background-elevated) 0%, var(--background-elevated) 45%, var(--background-elevated) 100%)}@supports (color:color-mix(in lab, red, red)){.dark .scrim-hero{background:linear-gradient(to right, color-mix(in oklab, var(--background-elevated) 90%, transparent) 0%, color-mix(in oklab, var(--background-elevated) 65%, transparent) 45%, color-mix(in oklab, var(--background-elevated) 15%, transparent) 100%)}}.scrim-hero-soft{background:linear-gradient(90deg,#0000008c 0%,#00000052 45%,#0000000d 100%);background:linear-gradient(90deg,lab(0% 0 0/.55) 0%,lab(0% 0 0/.32) 45%,lab(0% 0 0/.05) 100%)}.scrim-section{background:radial-gradient(ellipse 70% 65% at 50% 40%, var(--background) 0%, var(--background) 55%, var(--background) 100%)}@supports (color:color-mix(in lab, red, red)){.scrim-section{background:radial-gradient(ellipse 70% 65% at 50% 40%, color-mix(in oklab, var(--background) 88%, transparent) 0%, color-mix(in oklab, var(--background) 60%, transparent) 55%, color-mix(in oklab, var(--background) 5%, transparent) 100%)}}.dark .scrim-section{background:radial-gradient(ellipse 70% 65% at 50% 40%, var(--background) 0%, var(--background) 55%, var(--background) 100%)}@supports (color:color-mix(in lab, red, red)){.dark .scrim-section{background:radial-gradient(ellipse 70% 65% at 50% 40%, color-mix(in oklab, var(--background) 95%, transparent) 0%, color-mix(in oklab, var(--background) 78%, transparent) 55%, color-mix(in oklab, var(--background) 12%, transparent) 100%)}}.scrim-section-soft{background:radial-gradient(ellipse 70% 65% at 50% 40%, var(--background) 0%, var(--background) 55%, var(--background) 100%)}@supports (color:color-mix(in lab, red, red)){.scrim-section-soft{background:radial-gradient(ellipse 70% 65% at 50% 40%, color-mix(in oklab, var(--background) 45%, transparent) 0%, color-mix(in oklab, var(--background) 28%, transparent) 55%, color-mix(in oklab, var(--background) 2%, transparent) 100%)}}.dark .scrim-section-soft{background:radial-gradient(ellipse 70% 65% at 50% 40%, var(--background) 0%, var(--background) 55%, var(--background) 100%)}@supports (color:color-mix(in lab, red, red)){.dark .scrim-section-soft{background:radial-gradient(ellipse 70% 65% at 50% 40%, color-mix(in oklab, var(--background) 50%, transparent) 0%, color-mix(in oklab, var(--background) 36%, transparent) 55%, color-mix(in oklab, var(--background) 6%, transparent) 100%)}}.scrim-brand-glow{position:absolute;inset:0}.scrim-brand-glow:before{content:"";background:linear-gradient(160deg,#0c0916e0 0%,#0c0916b8 50%,#0c0916eb 100%);position:absolute;inset:0}.scrim-brand-glow:after{content:"";background:radial-gradient(60% 55% at 6% 8%,#a855f766 0%,#0000 60%),radial-gradient(60% 55% at 94% 92%,#9333ea66 0%,#0000 60%);position:absolute;inset:0}.brand-glow-text{--foreground:#fff;--foreground-muted:#ffffffc7;--foreground-subtle:#fff9;--border:#ffffff29;--border-strong:#ffffff3d;--surface:#ffffff14;--accent-strong:#a855f7}.text-gradient{background:linear-gradient(110deg, var(--foreground) 20%, var(--accent-strong) 55%, var(--accent-2-strong) 85%);color:#0000;-webkit-background-clip:text;background-clip:text}.glass-panel{background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.glass-panel{background:color-mix(in oklab, var(--surface) 72%, transparent)}}.glass-panel{-webkit-backdrop-filter:blur(18px);border:1px solid var(--border)}.glass-panel-clear{background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.glass-panel-clear{background:color-mix(in oklab, var(--surface) 28%, transparent)}}.glass-panel-clear{-webkit-backdrop-filter:blur(14px);border:1px solid var(--border)}@supports (color:color-mix(in lab, red, red)){.glass-panel-clear{border:1px solid color-mix(in oklab, var(--border) 65%, transparent)}}.glow-border{box-shadow:0 0 0 1px var(--border), 0 0 40px -12px var(--accent)}@supports (color:color-mix(in lab, red, red)){.glow-border{box-shadow:0 0 0 1px var(--border), 0 0 40px -12px color-mix(in oklab, var(--accent) 45%, transparent)}}.container-page{width:100%;max-width:84rem;margin-inline:auto;padding-inline:1.25rem}@media (min-width:640px){.container-page{padding-inline:1.5rem}}@media (min-width:1024px){.container-page{padding-inline:2rem}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root,.light{--radius:.65rem;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#fff;--background-elevated:#f7f7f8;--surface:#f3f3f5;--surface-hover:#ebebee;--surface-2:#ebebee;--foreground:#141416;--foreground-muted:#5c5c66;--foreground-subtle:#71717a;--border:#e4e4e8;--border-strong:#d4d4d9;--input:#d4d4d9;--ring:#7c3aed;--accent:#7c3aed;--accent-strong:#6d28d9;--accent-foreground:#fff;--accent-2:#9333ea;--accent-2-strong:#6d28d9;--card:#fff;--card-foreground:#141416;--popover:#fff;--popover-foreground:#141416;--primary:#7c3aed;--primary-foreground:#fff;--secondary:#f3f3f5;--secondary-foreground:#141416;--muted:#f3f3f5;--muted-foreground:#5c5c66;--success:#059669;--warning:#b45309;--destructive:#dc2626;--destructive-foreground:#fff;--chart-1:#7c3aed;--chart-2:#6d28d9;--chart-3:#059669;--chart-4:#b45309;--chart-5:#dc2626;--grid-line:#0000000b}.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#0a0a0a;--background-elevated:#111;--surface:#1c1c1c;--surface-hover:#2a2a2a;--surface-2:#2a2a2a;--foreground:#e8e8e8;--foreground-muted:#9a9a9a;--foreground-subtle:#666;--border:#2a2a2a;--border-strong:#3d3d3d;--input:#3d3d3d;--ring:#a855f7;--accent:#7c3aed;--accent-strong:#a855f7;--accent-foreground:#fff;--accent-2:#5b21b6;--accent-2-strong:#9333ea;--card:#111;--card-foreground:#e8e8e8;--popover:#1c1c1c;--popover-foreground:#e8e8e8;--primary:#7c3aed;--primary-foreground:#fff;--secondary:#1c1c1c;--secondary-foreground:#e8e8e8;--muted:#1c1c1c;--muted-foreground:#9a9a9a;--success:#34d399;--warning:#fbbf24;--destructive:#f2555c;--destructive-foreground:#fff5f5;--chart-1:#7c3aed;--chart-2:#a855f7;--chart-3:#34d399;--chart-4:#fbbf24;--chart-5:#f2555c;--grid-line:#ffffff0d}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes enter{0%{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));filter:blur(var(--tw-enter-blur,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));filter:blur(var(--tw-exit-blur,0))}}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}

/* --- animations.css --- */
/* Vanilla-JS equivalent of components/layout/reveal.tsx (Framer Motion).
   Scoped to .js (set by the inline script in <head>) so the starting
   opacity:0 only applies when JavaScript is actually available to add
   .is-visible again. Unscoped, every no-JS visitor and every bot that
   doesn't execute JS got a page of invisible content. */
.js [data-reveal] {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.55s cubic-bezier(0.16, 1, 0.3, 1), transform 0.55s cubic-bezier(0.16, 1, 0.3, 1);
}
[data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}
[data-reveal].reveal-reduced {
  transform: none;
  transition: opacity 0.01s linear;
}

@media (prefers-reduced-motion: reduce) {
  [data-reveal] {
    transform: none;
    transition: opacity 0.01s linear;
  }
}

/* Mobile nav sheet slide-in. The original drives this via Radix's
   data-state animation classes (compiled Tailwind only includes classes
   literally present in the source, so an arbitrary translate-x-full
   utility isn't in the compiled output) - reproduced here directly to
   match its 300ms slide-in-from-right / 200ms slide-out timing. */
[data-mobile-nav-panel] {
  transform: translateX(100%);
  transition: transform 0.3s ease-in-out;
}
[data-mobile-nav-panel].is-open {
  transform: translateX(0);
}

/* --- responsive.css --- */
/* Most responsive behavior is already baked into compiled-tailwind.css via
   Tailwind's sm:/md:/lg: breakpoint utilities (the same ones the original
   React components used). This file only holds cross-cutting guards. */
/* overflow-x: hidden here (instead of clip) would force the browser to
   compute overflow-y as auto per the CSS Overflow spec, turning body into
   its own scroll container and silently breaking the header's
   position: sticky - clip avoids that pairing while still preventing
   horizontal scroll. */
html, body {
  overflow-x: clip;
  max-width: 100vw;
}
