/* // ORIGINAL: /assets/styles-NGfeLJck.css (lines 401-1200)
// CHANGES MADE: Removed ~500+ unused utility classes (sidebar, accordion, dialog, select,
// popover, tooltip, context-menu, dropdown-menu, menubar, navigation-menu, badge, button,
// input variants, skeleton, and more). Kept only classes referenced by index.html &
// privacy/terms.html. Organized by category with comments. Removed redundant @supports
// wrappers where modern browser support is universal. */

/* ============================================
   UTILITIES — LAYOUT & POSITIONING
   ============================================ */

@layer utilities {
  /* Display */
  .block { display: block; }
  .flex { display: flex; }
  .grid { display: grid; }
  .hidden { display: none; }
  .inline { display: inline; }
  .inline-flex { display: inline-flex; }

  /* Position */
  .absolute { position: absolute; }
  .fixed { position: fixed; }
  .relative { position: relative; }
  .sticky { position: sticky; }

  .inset-0 { inset: calc(var(--spacing) * 0); }
  .inset-x-0 { inset-inline: calc(var(--spacing) * 0); }

  .top-0 { top: calc(var(--spacing) * 0); }
  .top-4 { top: calc(var(--spacing) * 4); }
  .-bottom-6 { bottom: calc(var(--spacing) * -6); }
  .bottom-0 { bottom: calc(var(--spacing) * 0); }
  .bottom-4 { bottom: calc(var(--spacing) * 4); }
  .-left-6 { left: calc(var(--spacing) * -6); }
  .left-4 { left: calc(var(--spacing) * 4); }
  .right-4 { right: calc(var(--spacing) * 4); }

  /* Z-Index */
  .z-50 { z-index: 50; }

  /* ============================================
     MARGIN & PADDING
     ============================================ */

  .mx-auto { margin-inline: auto; }

  .mt-0\.5 { margin-top: calc(var(--spacing) * .5); }
  .mt-1 { margin-top: calc(var(--spacing) * 1); }
  .mt-3 { margin-top: calc(var(--spacing) * 3); }

  .mb-2 { margin-bottom: calc(var(--spacing) * 2); }
  .mb-3 { margin-bottom: calc(var(--spacing) * 3); }
  .mb-6 { margin-bottom: calc(var(--spacing) * 6); }
  .mb-8 { margin-bottom: calc(var(--spacing) * 8); }
  .mb-10 { margin-bottom: calc(var(--spacing) * 10); }
  .mb-16 { margin-bottom: calc(var(--spacing) * 16); }

  .p-1 { padding: calc(var(--spacing) * 1); }
  .p-4 { padding: calc(var(--spacing) * 4); }
  .p-5 { padding: calc(var(--spacing) * 5); }
  .p-6 { padding: calc(var(--spacing) * 6); }
  .p-12 { padding: calc(var(--spacing) * 12); }

  .px-3 { padding-inline: calc(var(--spacing) * 3); }
  .px-4 { padding-inline: calc(var(--spacing) * 4); }
  .px-6 { padding-inline: calc(var(--spacing) * 6); }
  .px-7 { padding-inline: calc(var(--spacing) * 7); }

  .py-1\.5 { padding-block: calc(var(--spacing) * 1.5); }
  .py-2 { padding-block: calc(var(--spacing) * 2); }
  .py-3 { padding-block: calc(var(--spacing) * 3); }
  .py-3\.5 { padding-block: calc(var(--spacing) * 3.5); }
  .py-10 { padding-block: calc(var(--spacing) * 10); }
  .py-24 { padding-block: calc(var(--spacing) * 24); }

  .pt-2 { padding-top: calc(var(--spacing) * 2); }
  .pt-8 { padding-top: calc(var(--spacing) * 8); }
  .pt-20 { padding-top: calc(var(--spacing) * 20); }
  .pb-24 { padding-bottom: calc(var(--spacing) * 24); }

  /* ============================================
     FLEXBOX & GRID
     ============================================ */

  .flex-1 { flex: 1; }
  .shrink-0 { flex-shrink: 0; }

  .flex-col { flex-direction: column; }
  .flex-row { flex-direction: row; }
  .flex-wrap { flex-wrap: wrap; }

  .place-items-center { place-items: center; }
  .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; }

  .gap-1\.5 { gap: calc(var(--spacing) * 1.5); }
  .gap-2 { gap: calc(var(--spacing) * 2); }
  .gap-3 { gap: calc(var(--spacing) * 3); }
  .gap-4 { gap: calc(var(--spacing) * 4); }
  .gap-6 { gap: calc(var(--spacing) * 6); }
  .gap-8 { gap: calc(var(--spacing) * 8); }
  .gap-12 { gap: calc(var(--spacing) * 12); }
  .gap-16 { gap: calc(var(--spacing) * 16); }

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

  :where(.space-y-3 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));
  }
  :where(.space-y-4 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));
  }
  :where(.space-y-6 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));
  }
  :where(.space-y-8 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)));
  }

  /* ============================================
     SIZING
     ============================================ */

  .aspect-\[3\/4\] { aspect-ratio: 3/4; }
  .aspect-\[4\/5\] { aspect-ratio: 4/5; }

  .h-1\.5 { height: calc(var(--spacing) * 1.5); }
  .h-3 { height: calc(var(--spacing) * 3); }
  .h-3\.5 { height: calc(var(--spacing) * 3.5); }
  .h-4 { height: calc(var(--spacing) * 4); }
  .h-5 { height: calc(var(--spacing) * 5); }
  .h-6 { height: calc(var(--spacing) * 6); }
  .h-10 { height: calc(var(--spacing) * 10); }
  .h-14 { height: calc(var(--spacing) * 14); }
  .h-16 { height: calc(var(--spacing) * 16); }
  .h-auto { height: auto; }
  .h-full { height: 100%; }

  .min-w-0 { min-width: calc(var(--spacing) * 0); }
  .min-h-screen { min-height: 100vh; }

  .w-1\.5 { width: calc(var(--spacing) * 1.5); }
  .w-3 { width: calc(var(--spacing) * 3); }
  .w-3\.5 { width: calc(var(--spacing) * 3.5); }
  .w-4 { width: calc(var(--spacing) * 4); }
  .w-5 { width: calc(var(--spacing) * 5); }
  .w-6 { width: calc(var(--spacing) * 6); }
  .w-10 { width: calc(var(--spacing) * 10); }
  .w-auto { width: auto; }
  .w-full { width: 100%; }

  .max-w-2xl { max-width: var(--container-2xl); }
  .max-w-3xl { max-width: 48rem; }
  .max-w-7xl { max-width: var(--container-7xl); }
  .max-w-none { max-width: none; }
  .max-w-xl { max-width: var(--container-xl); }

  /* ============================================
     TYPOGRAPHY
     ============================================ */

  .text-center { text-align: center; }

  .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-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-xs { font-size: var(--text-xs); line-height: var(--tw-leading, var(--text-xs--line-height)); }

  .leading-\[0\.95\] { --tw-leading: .95; line-height: .95; }
  .leading-relaxed { --tw-leading: var(--leading-relaxed); line-height: var(--leading-relaxed); }

  .font-bold { --tw-font-weight: var(--font-weight-bold); font-weight: var(--font-weight-bold); }
  .font-medium { --tw-font-weight: var(--font-weight-medium); font-weight: var(--font-weight-medium); }
  .font-semibold { --tw-font-weight: var(--font-weight-semibold); font-weight: var(--font-weight-semibold); }

  .tracking-tight { --tw-tracking: var(--tracking-tight); letter-spacing: var(--tracking-tight); }
  .tracking-wider { --tw-tracking: var(--tracking-wider); letter-spacing: var(--tracking-wider); }

  .uppercase { text-transform: uppercase; }

  .truncate { text-overflow: ellipsis; white-space: nowrap; overflow: hidden; }

  /* ============================================
     VISUALS: BORDERS, BACKGROUNDS, SHADOWS
     ============================================ */

  .overflow-hidden { overflow: hidden; }

  .rounded-2xl { border-radius: calc(var(--radius) + 8px); }
  .rounded-3xl { border-radius: calc(var(--radius) + 12px); }
  .rounded-full { border-radius: 3.40282e38px; }
  .rounded-xl { border-radius: calc(var(--radius) + 4px); }

  .border { border-style: var(--tw-border-style); border-width: 1px; }
  .border-y { border-block-style: var(--tw-border-style); border-block-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-border { border-color: var(--border); }
  .border-primary\/20 { border-color: color-mix(in oklab, var(--primary) 20%, transparent); }

  .bg-background { background-color: var(--background); }
  .bg-background\/80 { background-color: color-mix(in oklab, var(--background) 80%, transparent); }
  .bg-background\/95 { background-color: color-mix(in oklab, var(--background) 95%, transparent); }
  .bg-card { background-color: var(--card); }
  .bg-foreground { background-color: var(--foreground); }
  .bg-primary { background-color: var(--primary); }
  .bg-primary\/10 { background-color: color-mix(in oklab, var(--primary) 10%, transparent); }
  .bg-secondary { background-color: var(--secondary); }
  .bg-secondary\/40 { background-color: color-mix(in oklab, var(--secondary) 40%, transparent); }
  .bg-transparent { background-color: #0000; }

  /* Gradients */
  .bg-gradient-warm {
    background-image: linear-gradient(135deg, var(--primary) 0%, oklch(78% 0.16 55) 100%);
  }
  .bg-gradient-to-t { --tw-gradient-position: to top in oklab; background-image: linear-gradient(var(--tw-gradient-stops)); }
  .from-foreground\/60 {
    --tw-gradient-from: color-mix(in oklab, var(--foreground) 60%, transparent);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-foreground\/80 {
    --tw-gradient-from: color-mix(in oklab, var(--foreground) 80%, transparent);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .via-foreground\/20 {
    --tw-gradient-via: color-mix(in oklab, var(--foreground) 20%, 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);
  }
  .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-transparent {
    --tw-gradient-to: transparent;
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .fill-primary { fill: var(--primary); }

  .object-cover { object-fit: cover; }

  /* Shadows */
  .shadow-glow { box-shadow: 0 20px 60px -20px var(--primary); }
  .shadow-sm { --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-soft { box-shadow: 0 10px 40px -15px oklch(23.5% 0.006 17 / 0.15); }

  /* ============================================
     VISUALS: COLORS & OPACITY
     ============================================ */

  .text-background { color: var(--background); }
  .text-background\/60 { color: color-mix(in oklab, var(--background) 60%, transparent); }
  .text-background\/70 { color: color-mix(in oklab, var(--background) 70%, transparent); }
  .text-background\/80 { color: color-mix(in oklab, var(--background) 80%, transparent); }
  .text-foreground { color: var(--foreground); }
  .text-muted-foreground { color: var(--muted-foreground); }
  .text-primary { color: var(--primary); }
  .text-primary-foreground { color: var(--primary-foreground); }

  .opacity-20 { opacity: .2; }
  .opacity-90 { opacity: .9; }

  .outline-none { --tw-outline-style: none; outline-style: none; }

  /* ============================================
     BACKDROP FILTERS
     ============================================ */

  .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-md {
    --tw-backdrop-blur: blur(var(--blur-md));
    -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);
  }

  /* ============================================
     ANIMATIONS & TRANSITIONS
     ============================================ */

  .animate-pulse { animation: var(--animate-pulse); }

  .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-opacity {
    transition-property: opacity;
    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));
  }

  .duration-700 { --tw-duration: .7s; transition-duration: .7s; }

  /* ============================================
     HOVER, FOCUS & DISABLED STATES
     ============================================ */

  @media (hover: hover) {
    .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);
    }
    .hover\:text-foreground:hover { color: var(--foreground); }
    .hover\:text-primary:hover { color: var(--primary); }
    .hover\:underline:hover { text-decoration-line: underline; }
    .hover\:opacity-95:hover { opacity: .95; }
  }

  .disabled\:opacity-70:disabled { opacity: .7; }

  /* ============================================
     RESPONSIVE BREAKPOINTS
     ============================================ */

  @media (min-width: 40rem) {
    .sm\:flex-row { flex-direction: row; }
  }

  @media (min-width: 48rem) {
    .md\:flex { display: flex; }
    .md\:h-16 { height: calc(var(--spacing) * 16); }
    .md\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .md\:flex-row { flex-direction: row; }
    .md\:p-20 { padding: calc(var(--spacing) * 20); }
    .md\:pt-28 { padding-top: calc(var(--spacing) * 28); }
    .md\:pb-32 { padding-bottom: calc(var(--spacing) * 32); }
    .md\:text-4xl { font-size: var(--text-4xl); line-height: var(--tw-leading, var(--text-4xl--line-height)); }
    .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)); }
    .md\:text-xl { font-size: var(--text-xl); line-height: var(--tw-leading, var(--text-xl--line-height)); }
  }

  @media (min-width: 64rem) {
    .lg\:col-span-5 { grid-column: span 5 / span 5; }
    .lg\:col-span-7 { grid-column: span 7 / span 7; }
    .lg\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lg\:grid-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  }
}
