@import url(https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500&display=swap);
@import url(https://fonts.googleapis.com/css2?family=Playfair+Display:wght@300;400;500&display=swap);

/* ===== CHILLAX FONT FAMILY - STATIC WEIGHTS ===== */

@font-face {
  font-family: 'Chillax';

  src: url(/build/fonts/Chillax-Extralight.278406f9.woff2) format('woff2');

  font-weight: 200;

  font-style: normal;

  font-display: swap;
}

@font-face {
  font-family: 'Chillax';

  src: url(/build/fonts/Chillax-Light.af355b9b.woff2) format('woff2');

  font-weight: 300;

  font-style: normal;

  font-display: swap;
}

@font-face {
  font-family: 'Chillax';

  src: url(/build/fonts/Chillax-Regular.ba523d3c.woff2) format('woff2');

  font-weight: 400;

  font-style: normal;

  font-display: swap;
}

/* Chillax Medium removed - using only 200-400 weights */

/* Removed Semibold (600) and Bold (700) - never used in project (only 200-500) */

/* ===== CSS VARIABLES ===== */

:root {
  /* Font Families */
  --font-primary: 'Chillax', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-body: 'Chillax', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: 'SF Mono', 'Monaco', 'Consolas', monospace;
  /* Chillax Weights - Only using 200-400 */
  --weight-extra-light: 200;
  --weight-light: 300;
  --weight-regular: 400;
  /* Typography Scale */
  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.25rem;
  --text-2xl: 1.5rem;
  --text-3xl: 1.875rem;
  --text-4xl: 2.25rem;
  --text-5xl: 3rem;
  --text-6xl: 3.75rem;
  --text-7xl: 4.5rem;
  --text-8xl: 6rem;
  /* Line Heights */
  --leading-none: 1;
  --leading-tight: 1.15;
  --leading-snug: 1.35;
  --leading-normal: 1.5;
  --leading-relaxed: 1.65;
  --leading-loose: 2;
  /* Letter Spacing */
  --tracking-tighter: -0.05em;
  --tracking-tight: -0.025em;
  --tracking-normal: 0;
  --tracking-wide: 0.025em;
  --tracking-wider: 0.05em;
  --tracking-widest: 0.1em;
}

/* ===== GLOBAL RESET ===== */

* {
  font-family: var(--font-primary);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

body {
  font-family: var(--font-primary);
  font-weight: var(--weight-light);
  line-height: var(--leading-relaxed);
  letter-spacing: var(--tracking-normal);
}

/* ===== HEADINGS ===== */

h1, .h1, .title-glass {
  font-family: var(--font-primary) !important;
  font-weight: 300;
  font-size: clamp(2.5rem, 4.5vw, 4rem) !important;
  line-height: var(--leading-tight) !important;
  letter-spacing: var(--tracking-tighter) !important;
  margin-bottom: 1.5rem;
}

h2, .h2 {
  font-family: var(--font-primary) !important;
  font-weight: 300;
  font-size: clamp(2rem, 3.5vw, 3rem) !important;
  line-height: var(--leading-tight) !important;
  letter-spacing: var(--tracking-tight) !important;
  margin: 2rem 0 1.25rem 0;
}

h3, .h3 {
  font-family: var(--font-primary) !important;
  font-weight: 300;
  font-size: clamp(1.5rem, 2.5vw, 2.25rem) !important;
  line-height: var(--leading-snug) !important;
  letter-spacing: var(--tracking-tight) !important;
  margin: 1.75rem 0 1rem 0;
}

h4, .h4 {
  font-family: var(--font-primary) !important;
  font-weight: 300;
  font-size: clamp(1.25rem, 2vw, 1.75rem) !important;
  line-height: var(--leading-snug) !important;
  letter-spacing: var(--tracking-normal) !important;
  margin: 1.5rem 0 0.75rem 0;
}

h5, .h5 {
  font-family: var(--font-primary) !important;
  font-weight: 400;
  font-size: clamp(1.125rem, 1.75vw, 1.5rem) !important;
  line-height: var(--leading-normal) !important;
  letter-spacing: var(--tracking-normal) !important;
  margin: 1.25rem 0 0.75rem 0;
}

h6, .h6 {
  font-family: var(--font-primary) !important;
  font-weight: 400;
  font-size: clamp(1rem, 1.5vw, 1.25rem) !important;
  line-height: var(--leading-normal) !important;
  letter-spacing: var(--tracking-wide) !important;
  text-transform: uppercase;
  margin: 1rem 0 0.5rem 0;
}

/* ===== BODY TEXT ===== */

p, .text-body {
  font-family: var(--font-primary) !important;
  font-weight: 300;
  font-size: clamp(1rem, 2vw, 1.125rem);
  line-height: var(--leading-relaxed);
  letter-spacing: var(--tracking-normal);
  margin-bottom: 1.25rem;
}

.lead-text {
  font-family: var(--font-primary) !important;
  font-weight: 300;
  font-size: clamp(1.25rem, 2.5vw, 1.5rem);
  line-height: var(--leading-relaxed);
  letter-spacing: var(--tracking-normal);
}

.text-large {
  font-size: clamp(1.125rem, 2.25vw, 1.375rem);
  font-weight: 300;
  line-height: var(--leading-relaxed);
}

.text-small {
  font-size: var(--text-sm);
  font-weight: 300;
  line-height: var(--leading-normal);
}

.text-xs {
  font-size: var(--text-xs);
  font-weight: 300;
  line-height: var(--leading-normal);
}

/* ===== EMPHASIS ===== */

strong, b, .font-bold {
  font-family: var(--font-primary) !important;
  font-weight: 400;
}

em, i, .font-italic {
  font-family: var(--font-primary) !important;
  font-style: italic;
  font-weight: 300;
}

/* ===== BUTTONS ===== */

button, .btn, .btn-glass,
.btn-primary, .btn-secondary,
a[class*="btn-"], div[class*="btn-"] {
  font-family: var(--font-primary) !important;
  font-weight: 300;
  font-size: var(--text-sm);
  letter-spacing: var(--tracking-wide);
  text-transform: none !important;
}

button:hover, .btn:hover {
  font-weight: 400;
}

/* ===== NAVIGATION ===== */

nav, .nav, .nav-glass,
.navigation, .navbar {
  font-family: var(--font-primary) !important;
}

nav a, .nav a, .nav-link,
.navigation a, .navbar a {
  font-family: var(--font-primary) !important;
  font-weight: 300;
  font-size: var(--text-sm);
  letter-spacing: var(--tracking-wide);
  transition: font-weight 0.2s ease;
}

nav a:hover, .nav a:hover,
nav a.active, .nav a.active {
  font-weight: 300;
}

/* ===== FORMS ===== */

input, textarea, select,
.input-glass, .form-control, .form-input {
  font-family: var(--font-primary) !important;
  font-weight: 300;
  font-size: var(--text-base);
  letter-spacing: var(--tracking-normal);
}

label, .label, .form-label {
  font-family: var(--font-primary) !important;
  font-weight: 300;
  font-size: var(--text-sm);
  letter-spacing: var(--tracking-wide);
}

::-moz-placeholder {
  font-family: var(--font-primary) !important;
  font-weight: 300;
  opacity: 0.5;
}

::placeholder {
  font-family: var(--font-primary) !important;
  font-weight: 300;
  opacity: 0.5;
}

/* ===== QUOTES ===== */

blockquote, .quote, .quote-glass {
  font-family: var(--font-primary) !important;
  font-weight: 300;
  font-size: clamp(1.25rem, 2.5vw, 1.75rem);
  font-style: italic;
  line-height: var(--leading-relaxed);
  letter-spacing: var(--tracking-normal);
}

/* ===== UTILITY CLASSES ===== */

.font-chillax { font-family: var(--font-primary) !important;
}

.font-extra-light { font-weight: 200;
}

.font-light { font-weight: 300;
}

.font-regular { font-weight: 400;
}

.font-medium { font-weight: 400;
} /* Maps to regular - medium removed */

.tracking-tighter { letter-spacing: var(--tracking-tighter) !important;
}

.tracking-tight { letter-spacing: var(--tracking-tight) !important;
}

.tracking-normal { letter-spacing: var(--tracking-normal) !important;
}

.tracking-wide { letter-spacing: var(--tracking-wide) !important;
}

.tracking-wider { letter-spacing: var(--tracking-wider) !important;
}

.tracking-widest { letter-spacing: var(--tracking-widest) !important;
}

.leading-none { line-height: var(--leading-none) !important;
}

.leading-tight { line-height: var(--leading-tight) !important;
}

.leading-snug { line-height: var(--leading-snug) !important;
}

.leading-normal { line-height: var(--leading-normal) !important;
}

.leading-relaxed { line-height: var(--leading-relaxed) !important;
}

.leading-loose { line-height: var(--leading-loose) !important;
}

/* ===== SPECIAL CLASSES ===== */

.chillax-hero {
  font-family: var(--font-primary) !important;
  font-weight: 300;
  font-size: clamp(3rem, 5vw, 4.5rem) !important;
  line-height: 1.1 !important;
  letter-spacing: -0.04em !important;
}

.chillax-display {
  font-family: var(--font-primary) !important;
  font-weight: 300;
  font-size: clamp(2.5rem, 4vw, 3.5rem) !important;
  line-height: 1.15 !important;
  letter-spacing: -0.03em !important;
}

.chillax-caption {
  font-family: var(--font-primary) !important;
  font-weight: 300;
  font-size: var(--text-xs) !important;
  letter-spacing: var(--tracking-wider) !important;
  text-transform: uppercase;
}

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

@media (max-width: 768px) {
  h1, .h1, .title-glass {
    font-size: clamp(2rem, 8vw, 3rem) !important;
    line-height: var(--leading-tight) !important;
  }

  h2, .h2 {
    font-size: clamp(1.75rem, 6vw, 2.5rem) !important;
  }

  h3, .h3 {
    font-size: clamp(1.5rem, 5vw, 2rem) !important;
  }

  .chillax-hero {
    font-size: clamp(2.5rem, 10vw, 3.5rem) !important;
    line-height: 1.1 !important;
  }
}

/* ===== FULL HD OPTIMIZATION ===== */

@media (min-width: 1920px) {
  h1, .title-glass {
    font-size: 3.25rem !important;
    line-height: 1.15 !important;
  }

  h2, .h2 {
    font-size: 2.5rem !important;
  }

  h3, .h3 {
    font-size: 2rem !important;
  }
}

/* Force Chillax on all elements */

body * {
  font-family: var(--font-primary) !important;
}

/* ===== SUBTLE DARK GLASSMORPHISM SYSTEM - ÉLÉGANCE NOIRE RAFFINÉE ===== */

/* Import Google Fonts - Selection Minimaliste */

/* ===== CSS VARIABLES - GLASSMORPHISME NOIR SUBTIL ===== */

:root {
  /* Fonts Minimalistes */
  --font-title: 'Playfair Display', Georgia, serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: 'SF Mono', 'Monaco', 'Consolas', monospace;
  /* Palette Noir Glassmorphique */
  --glass-black-ultra: rgba(0, 0, 0, 0.95);
  --glass-black-heavy: rgba(0, 0, 0, 0.8);
  --glass-black-medium: rgba(0, 0, 0, 0.6);
  --glass-black-light: rgba(0, 0, 0, 0.4);
  --glass-black-subtle: rgba(0, 0, 0, 0.2);
  --glass-black-whisper: rgba(0, 0, 0, 0.1);
  /* Glassmorphisme avec Couleurs Subtiles */
  --glass-charcoal: rgba(24, 24, 27, 0.8);
  --glass-slate: rgba(30, 41, 59, 0.7);
  --glass-midnight: rgba(15, 23, 42, 0.85);
  --glass-shadow: rgba(8, 8, 12, 0.9);
  /* Accents Subtils */
  --accent-whisper: rgba(255, 255, 255, 0.03);
  --accent-ghost: rgba(255, 255, 255, 0.06);
  --accent-mist: rgba(255, 255, 255, 0.1);
  --accent-soft: rgba(255, 255, 255, 0.15);
  --accent-gentle: rgba(255, 255, 255, 0.2);
  /* Gradients Noirs Sophistiqués */
  --gradient-midnight: linear-gradient(135deg, 
    rgba(0, 0, 0, 0.9) 0%, 
    rgba(15, 15, 20, 0.8) 50%, 
    rgba(0, 0, 0, 0.95) 100%);
  --gradient-charcoal: linear-gradient(135deg,
    rgba(24, 24, 27, 0.9) 0%,
    rgba(39, 39, 42, 0.8) 50%,
    rgba(24, 24, 27, 0.9) 100%);
  --gradient-slate: linear-gradient(135deg,
    rgba(30, 41, 59, 0.8) 0%,
    rgba(51, 65, 85, 0.7) 50%,
    rgba(30, 41, 59, 0.8) 100%);
  /* Gradients de Texte Subtils */
  --text-gradient-whisper: linear-gradient(135deg,
    rgba(255, 255, 255, 0.9) 0%,
    rgba(255, 255, 255, 0.7) 50%,
    rgba(255, 255, 255, 0.85) 100%);
  --text-gradient-mist: linear-gradient(135deg,
    rgba(255, 255, 255, 0.8) 0%,
    rgba(248, 250, 252, 0.6) 50%,
    rgba(255, 255, 255, 0.75) 100%);
  --text-gradient-ghost: linear-gradient(135deg,
    rgba(255, 255, 255, 0.6) 0%,
    rgba(241, 245, 249, 0.4) 50%,
    rgba(255, 255, 255, 0.55) 100%);
  /* Couleurs de Texte Raffinées */
  --text-primary: rgba(255, 255, 255, 0.95);
  --text-secondary: rgba(255, 255, 255, 0.9);
  --text-muted: rgba(255, 255, 255, 0.7);
  --text-ghost: rgba(255, 255, 255, 0.5);
  --text-whisper: rgba(255, 255, 255, 0.35);
  /* Borders Glassmorphiques */
  --border-whisper: 1px solid rgba(255, 255, 255, 0.08);
  --border-ghost: 1px solid rgba(255, 255, 255, 0.12);
  --border-mist: 1px solid rgba(255, 255, 255, 0.18);
  --border-soft: 1px solid rgba(255, 255, 255, 0.25);
  /* Shadows & Blurs Subtils */
  --blur-whisper: blur(8px);
  --blur-ghost: blur(12px);
  --blur-mist: blur(16px);
  --blur-soft: blur(20px);
  --blur-heavy: blur(24px);
  --shadow-whisper: 0 4px 12px rgba(0, 0, 0, 0.1);
  --shadow-ghost: 0 8px 24px rgba(0, 0, 0, 0.15);
  --shadow-mist: 0 12px 32px rgba(0, 0, 0, 0.2);
  --shadow-soft: 0 16px 40px rgba(0, 0, 0, 0.25);
  --shadow-deep: 0 20px 48px rgba(0, 0, 0, 0.3);
}

/* ===== BASE GLASSMORPHISM RESET ===== */

* {
  font-family: var(--font-body);
  font-weight: 300;
  color: var(--text-secondary);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  background: var(--gradient-midnight);
  min-height: 100vh;
}

/* ===== TITRES GLASSMORPHIQUES SUBTILS ===== */

h1, .h1, .title-glass {
  font-family: var(--font-title);
  font-weight: 300;
  font-size: clamp(2.5rem, 5vw, 4rem);
  line-height: 1.1;
  letter-spacing: -0.02em;
  background: var(--text-gradient-whisper);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 1.5rem;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

h2, .h2 {
  font-family: var(--font-title);
  font-weight: 300;
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.2;
  letter-spacing: -0.015em;
  background: var(--text-gradient-mist);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin: 2rem 0 1rem 0;
}

h3, .h3 {
  font-family: var(--font-body);
  font-weight: 400;
  font-size: clamp(1.5rem, 3vw, 2rem);
  line-height: 1.3;
  color: var(--text-primary);
  margin: 1.5rem 0 0.75rem 0;
}

h4, .h4 {
  font-family: var(--font-body);
  font-weight: 400;
  font-size: clamp(1.25rem, 2.5vw, 1.5rem);
  line-height: 1.4;
  color: var(--text-secondary);
  margin: 1.25rem 0 0.5rem 0;
}

h5, .h5 {
  font-family: var(--font-body);
  font-weight: 300;
  font-size: clamp(1.125rem, 2.25vw, 1.25rem);
  line-height: 1.4;
  color: var(--text-muted);
  margin: 1rem 0 0.5rem 0;
}

h6, .h6 {
  font-family: var(--font-body);
  font-weight: 300;
  font-size: 1rem;
  line-height: 1.5;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin: 1rem 0 0.5rem 0;
}

/* ===== BODY TEXT GLASSMORPHIQUE ===== */

p, .text-body {
  font-family: var(--font-body);
  font-weight: 300;
  font-size: clamp(1rem, 2vw, 1.125rem);
  line-height: 1.7;
  color: var(--text-secondary);
  letter-spacing: 0.01em;
  margin-bottom: 1rem;
}

/* Variantes de texte subtiles */

.text-primary { color: var(--text-primary);
}

.text-secondary { color: var(--text-secondary);
}

.text-muted { color: var(--text-muted);
}

.text-ghost { color: var(--text-ghost);
}

.text-whisper { color: var(--text-whisper);
}

.text-gradient-whisper {
  background: var(--text-gradient-whisper);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.text-gradient-mist {
  background: var(--text-gradient-mist);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.text-gradient-ghost {
  background: var(--text-gradient-ghost);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ===== GLASSMORPHISM CONTAINERS ===== */

.glass-container-whisper {
  background: var(--glass-black-whisper);
  backdrop-filter: var(--blur-whisper);
  -webkit-backdrop-filter: var(--blur-whisper);
  border: var(--border-whisper);
  border-radius: 16px;
  box-shadow: var(--shadow-whisper);
}

.glass-container-ghost {
  background: var(--glass-black-light);
  backdrop-filter: var(--blur-ghost);
  -webkit-backdrop-filter: var(--blur-ghost);
  border: var(--border-ghost);
  border-radius: 20px;
  box-shadow: var(--shadow-ghost);
}

.glass-container-mist {
  background: var(--glass-charcoal);
  backdrop-filter: var(--blur-mist);
  -webkit-backdrop-filter: var(--blur-mist);
  border: var(--border-mist);
  border-radius: 24px;
  box-shadow: var(--shadow-mist);
}

.glass-container-soft {
  background: var(--glass-slate);
  backdrop-filter: var(--blur-soft);
  -webkit-backdrop-filter: var(--blur-soft);
  border: var(--border-soft);
  border-radius: 28px;
  box-shadow: var(--shadow-soft);
}

/* ===== BOUTONS GLASSMORPHIQUES ===== */

.btn-glass {
  font-family: var(--font-body);
  font-weight: 300;
  font-size: 0.95rem;
  letter-spacing: 0.02em;
  background: var(--glass-black-medium);
  backdrop-filter: var(--blur-ghost);
  -webkit-backdrop-filter: var(--blur-ghost);
  border: var(--border-ghost);
  border-radius: 12px;
  padding: 0.75rem 1.5rem;
  color: var(--text-primary);
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  text-decoration: none;
  display: inline-block;
}

.btn-glass:hover {
  background: var(--glass-black-light);
  border: var(--border-mist);
  transform: translateY(-2px);
  box-shadow: var(--shadow-mist);
  color: var(--text-primary);
}

.btn-glass-subtle {
  background: var(--glass-black-whisper);
  backdrop-filter: var(--blur-whisper);
  -webkit-backdrop-filter: var(--blur-whisper);
  border: var(--border-whisper);
  color: var(--text-muted);
}

.btn-glass-subtle:hover {
  background: var(--glass-black-light);
  color: var(--text-secondary);
}

/* ===== NAVIGATION GLASSMORPHIQUE ===== */

.nav-glass {
  background: var(--glass-shadow);
  backdrop-filter: var(--blur-soft);
  -webkit-backdrop-filter: var(--blur-soft);
  border-bottom: var(--border-whisper);
  position: sticky;
  top: 0;
  z-index: 100;
}

.nav-glass a {
  font-family: var(--font-body);
  font-weight: 300;
  font-size: 0.9rem;
  letter-spacing: 0.025em;
  color: var(--text-muted);
  text-decoration: none;
  transition: all 0.3s ease;
  padding: 0.5rem 1rem;
  border-radius: 8px;
}

.nav-glass a:hover,
.nav-glass a.active {
  color: var(--text-primary);
  background: var(--accent-whisper);
}

/* ===== CARDS GLASSMORPHIQUES ===== */

.card-glass {
  background: var(--glass-charcoal);
  backdrop-filter: var(--blur-ghost);
  -webkit-backdrop-filter: var(--blur-ghost);
  border: var(--border-whisper);
  border-radius: 20px;
  padding: 2rem;
  box-shadow: var(--shadow-ghost);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.card-glass:hover {
  background: var(--glass-slate);
  border: var(--border-ghost);
  transform: translateY(-4px);
  box-shadow: var(--shadow-mist);
}

/* ===== FORMES D'INPUT GLASSMORPHIQUES ===== */

.input-glass {
  background: var(--glass-black-light);
  backdrop-filter: var(--blur-whisper);
  -webkit-backdrop-filter: var(--blur-whisper);
  border: var(--border-whisper);
  border-radius: 12px;
  padding: 0.75rem 1rem;
  color: var(--text-primary);
  font-family: var(--font-body);
  font-weight: 300;
  font-size: 0.95rem;
  transition: all 0.3s ease;
  width: 100%;
}

.input-glass::-moz-placeholder {
  color: var(--text-ghost);
}

.input-glass::placeholder {
  color: var(--text-ghost);
}

.input-glass:focus {
  outline: none;
  border: var(--border-ghost);
  background: var(--glass-black-medium);
  color: var(--text-primary);
}

/* ===== QUOTES GLASSMORPHIQUES ===== */

.quote-glass {
  font-family: var(--font-title);
  font-size: clamp(1.125rem, 2.25vw, 1.375rem);
  font-weight: 300;
  font-style: italic;
  line-height: 1.6;
  color: var(--text-primary);
  background: var(--glass-black-subtle);
  backdrop-filter: var(--blur-whisper);
  -webkit-backdrop-filter: var(--blur-whisper);
  border-left: 3px solid var(--accent-soft);
  border-radius: 0 12px 12px 0;
  padding: 1.5rem 2rem;
  margin: 2rem 0;
  position: relative;
}

.quote-glass::before {
  content: '"';
  font-size: 4rem;
  color: var(--accent-mist);
  position: absolute;
  top: -0.5rem;
  left: 0.5rem;
  line-height: 1;
}

/* ===== RESPONSIVE GLASSMORPHISM ===== */

@media (max-width: 768px) {
  .glass-container-whisper,
  .glass-container-ghost,
  .glass-container-mist,
  .glass-container-soft {
    border-radius: 16px;
    padding: 1.5rem;
  }

  .card-glass {
    padding: 1.5rem;
    border-radius: 16px;
  }

  h1, .h1, .title-glass {
    font-size: clamp(2rem, 8vw, 2.5rem);
  }
}

/* ===== ANIMATIONS SUBTILES ===== */

@keyframes glass-shimmer {
  0% { background-position: -200% 0;
  }

  100% { background-position: 200% 0;
  }
}

.glass-shimmer {
  background: linear-gradient(
    90deg,
    transparent 0%,
    var(--accent-whisper) 50%,
    transparent 100%
  );
  background-size: 200% 100%;
  animation: glass-shimmer 3s ease-in-out infinite;
}

/* ===== ACCESSIBILITY ===== */

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

  .btn-glass,
  .card-glass {
    transition: none;
  }
}

/* ===== SCROLLBAR GLASSMORPHIQUE ===== */

::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: var(--glass-black-whisper);
}

::-webkit-scrollbar-thumb {
  background: var(--glass-black-medium);
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--glass-black-light);
}

/* ===== QUOTE SIGNATURE STYLE - ÉLÉGANCE MAXIMALE ===== */

.quote-signature {
  position: relative;
  font-family: 'Chillax', -apple-system, sans-serif !important;
  font-weight: 300;
  font-style: italic;
  letter-spacing: 0.05em;
  line-height: 1.6;
  padding: 0.5rem 0;
  margin: 1.5rem 0;
}

/* Guillemets français élégants */

.quote-signature::before,
.quote-signature::after {
  font-family: 'Chillax', Georgia, serif;
  font-size: 1.5em;
  font-weight: 300;
  opacity: 0.4;
  position: relative;
  top: 0.1em;
}

/* Animation subtile des guillemets */

@keyframes quote-pulse {
  0%, 100% { opacity: 0.3; transform: scale(1);
  }

  50% { opacity: 0.6; transform: scale(1.05);
  }
}

.quote-signature:hover::before,
.quote-signature:hover::after {
  animation: quote-pulse 2s ease-in-out infinite;
}

/* Ligne décorative subtile */

.quote-signature-decorated {
  position: relative;
  padding: 1.5rem 0;
}

.quote-signature-decorated::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 1px;
  background: linear-gradient(90deg, 
    transparent 0%, 
    rgba(255, 255, 255, 0.3) 50%, 
    transparent 100%);
}

.quote-signature-decorated::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 1px;
  background: linear-gradient(90deg, 
    transparent 0%, 
    rgba(255, 255, 255, 0.3) 50%, 
    transparent 100%);
}

/* Version avec accent lumineux */

.quote-signature-glow {
  text-shadow: 
    0 0 20px rgba(255, 255, 255, 0.1),
    0 0 40px rgba(255, 255, 255, 0.05),
    0 0 60px rgba(255, 255, 255, 0.02);
  transition: text-shadow 0.3s ease;
}

.quote-signature-glow:hover {
  text-shadow: 
    0 0 25px rgba(255, 255, 255, 0.15),
    0 0 50px rgba(255, 255, 255, 0.08),
    0 0 75px rgba(255, 255, 255, 0.04);
}

/* Version avec background subtil */

.quote-signature-bg {
  background: linear-gradient(135deg,
    rgba(255, 255, 255, 0.02) 0%,
    rgba(255, 255, 255, 0.05) 50%,
    rgba(255, 255, 255, 0.02) 100%);
  border-radius: 8px;
  padding: 1rem 2rem;
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.05);
}

/* Responsive */

@media (max-width: 768px) {
  .quote-signature {
    font-size: 1.125rem;
    letter-spacing: 0.03em;
  }

  .quote-signature::before,
  .quote-signature::after {
    font-size: 1.3em;
  }
}

/* ===== BLUR TO FOCUS ANIMATION - ULTRA SMOOTH ===== */

/* Animation principale - Blur vers Net */

@keyframes blurToFocus {
  0% {
    filter: blur(20px);
    opacity: 0;
    transform: translateY(10px) scale(0.95);
  }

  20% {
    filter: blur(15px);
    opacity: 0.3;
    transform: translateY(8px) scale(0.96);
  }

  40% {
    filter: blur(10px);
    opacity: 0.5;
    transform: translateY(6px) scale(0.97);
  }

  60% {
    filter: blur(5px);
    opacity: 0.7;
    transform: translateY(4px) scale(0.98);
  }

  80% {
    filter: blur(2px);
    opacity: 0.9;
    transform: translateY(2px) scale(0.99);
  }

  100% {
    filter: blur(0px);
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* Animation rapide - 1.2 secondes */

@keyframes blurToFocusFast {
  0% {
    filter: blur(15px);
    opacity: 0;
    transform: translateY(5px);
  }

  50% {
    filter: blur(5px);
    opacity: 0.6;
    transform: translateY(2px);
  }

  100% {
    filter: blur(0px);
    opacity: 1;
    transform: translateY(0);
  }
}

/* Animation ultra-rapide - 0.5 secondes */

@keyframes blurToFocusUltraFast {
  0% {
    filter: blur(8px);
    opacity: 0;
  }

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

/* Animation instantanée - 0.3 secondes */

@keyframes blurToFocusInstant {
  0% {
    filter: blur(5px);
    opacity: 0;
  }

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

/* Animation progressive par lettres */

@keyframes letterBlurToFocus {
  0% {
    filter: blur(8px);
    opacity: 0;
    transform: translateX(-2px);
  }

  100% {
    filter: blur(0px);
    opacity: 1;
    transform: translateX(0);
  }
}

/* ===== CLASSES D'APPLICATION ===== */

/* H1 avec blur to focus standard */

.blur-to-focus-title {
  animation: blurToFocus 1.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  animation-delay: 0.2s;
  opacity: 0;
}

/* H1 avec blur to focus rapide */

.blur-to-focus-fast {
  animation: blurToFocusFast 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
  animation-delay: 0.1s;
  opacity: 0;
}

/* H1 avec blur to focus ultra-rapide */

.blur-to-focus-ultra {
  animation: blurToFocusUltraFast 0.5s ease-out forwards;
  opacity: 0;
}

/* H1 avec blur to focus instantané */

.blur-to-focus-instant {
  animation: blurToFocusInstant 0.3s ease-out forwards;
  opacity: 0;
}

/* Version avec délai progressif pour chaque mot */

.blur-to-focus-words > span {
  display: inline-block;
  animation: blurToFocusFast 0.8s ease-out forwards;
  opacity: 0;
}

.blur-to-focus-words > span:nth-child(1) { animation-delay: 0s;
}

.blur-to-focus-words > span:nth-child(2) { animation-delay: 0.1s;
}

.blur-to-focus-words > span:nth-child(3) { animation-delay: 0.2s;
}

.blur-to-focus-words > span:nth-child(4) { animation-delay: 0.3s;
}

.blur-to-focus-words > span:nth-child(5) { animation-delay: 0.4s;
}

/* Version avec effet de vague */

.blur-to-focus-wave {
  animation: blurToFocus 1.5s cubic-bezier(0.68, -0.55, 0.265, 1.55) forwards;
  animation-delay: 0.3s;
  opacity: 0;
}

/* ===== VARIANTES SOPHISTIQUÉES ===== */

/* Effet de profondeur avec blur */

.blur-depth-effect {
  position: relative;
  animation: blurToFocusFast 1s ease-out forwards;
  opacity: 0;
}

.blur-depth-effect::before {
  content: attr(data-text);
  position: absolute;
  top: 0;
  left: 0;
  filter: blur(3px);
  opacity: 0.3;
  animation: blurToFocus 1.5s ease-out forwards;
  animation-delay: 0.2s;
  z-index: -1;
}

/* Effet de glitch avec blur */

@keyframes blurGlitch {
  0% {
    filter: blur(10px);
    transform: translateX(0);
  }

  20% {
    filter: blur(8px);
    transform: translateX(-2px);
  }

  40% {
    filter: blur(6px);
    transform: translateX(2px);
  }

  60% {
    filter: blur(4px);
    transform: translateX(-1px);
  }

  80% {
    filter: blur(2px);
    transform: translateX(1px);
  }

  100% {
    filter: blur(0);
    transform: translateX(0);
  }
}

.blur-glitch-effect {
  animation: blurGlitch 0.8s ease-out forwards;
  opacity: 0;
  animation-fill-mode: both;
}

/* ===== RESPONSIVE OPTIMIZATIONS ===== */

@media (max-width: 768px) {
  /* Réduction du blur sur mobile pour performance */

  @keyframes blurToFocusMobile {
    0% {
      filter: blur(8px);
      opacity: 0;
    }

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

  .blur-to-focus-title,
  .blur-to-focus-fast,
  .blur-to-focus-ultra {
    animation-name: blurToFocusMobile;
    animation-duration: 0.6s;
  }
}

/* ===== ACCESSIBILITY ===== */

@media (prefers-reduced-motion: reduce) {
  .blur-to-focus-title,
  .blur-to-focus-fast,
  .blur-to-focus-ultra,
  .blur-to-focus-wave,
  .blur-to-focus-words > span,
  .blur-depth-effect,
  .blur-glitch-effect {
    animation: none;
    filter: none;
    opacity: 1;
    transform: none;
  }
}

/* ===== PERFORMANCE OPTIMIZATIONS ===== */

.blur-to-focus-gpu {
  will-change: filter, opacity, transform;
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  perspective: 1000px;
}

/* Force hardware acceleration */

.blur-to-focus-title,
.blur-to-focus-fast,
.blur-to-focus-ultra {
  transform: translate3d(0, 0, 0);
  -webkit-transform: translate3d(0, 0, 0);
}

/* =============================================================================
   HERO CENTERING FIX - Perfect vertical centering for hero sections
   ============================================================================= */

/**
 * Correction pour centrage vertical parfait des sections hero
 * Compense la hauteur de la navigation fixe
 */

/* Hero sections - Centrage vertical parfait */

.code-hero {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: 15rem;
  padding-bottom: 4rem;
  position: relative;
}

/* Mobile responsive - Centrage vertical optimisé avec compensation menu */

@media (max-width: 768px) {
  section.code-hero {
    min-height: 100vh !important;
    padding-top: 12rem !important;
    padding-bottom: 4rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
}

/* Ensure proper content centering */

.code-hero > div {
  width: 100%;
  margin: 0 auto;
}

/* Harmonisation des conteneurs hero pour toutes les pages */

.code-hero .max-w-6xl,
.code-hero .max-w-7xl {
  width: 100%;
  max-width: 72rem;
}

/* AIServicesPage - Centrage vertical parfait */

.ai-hero-centered {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 100vh !important;
  margin-top: -4rem !important;
}

.ai-hero-centered > div {
  margin: 0 auto;
  flex-shrink: 0;
  transform: translateY(-5vh);
}

/* Mobile - AIServicesPage centré */

@media (max-width: 768px) {
  .ai-hero-centered {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-top: -3rem !important;
  }

  .ai-hero-centered > div {
    transform: translateY(-3vh);
  }
}

/* ===== MODAL OVERLAY SYSTEM - GLASSMORPHISME NOIR ===== */

.modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  /* Overlay noir avec blur sophistiqué */
  background: rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  /* Animation d'apparition */
  animation: modalOverlayFadeIn 0.3s ease-out;
}

/* Animation d'apparition de l'overlay */

@keyframes modalOverlayFadeIn {
  from {
    opacity: 0;
    -webkit-backdrop-filter: blur(0px);
            backdrop-filter: blur(0px);
    background: rgba(0, 0, 0, 0);
  }

  to {
    opacity: 1;
    -webkit-backdrop-filter: blur(12px);
            backdrop-filter: blur(12px);
    background: rgba(0, 0, 0, 0.75);
  }
}

/* Variantes d'opacity pour différents contextes */

.modal-overlay-light {
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.modal-overlay-medium {
  background: rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.modal-overlay-heavy {
  background: rgba(0, 0, 0, 0.85);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.modal-overlay-ultra {
  background: rgba(0, 0, 0, 0.9);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

/* Overlay avec effet de profondeur */

.modal-overlay-depth {
  background: 
    radial-gradient(circle at center, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.9) 70%),
    rgba(0, 0, 0, 0.7);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

/* Overlay avec gradient subtil */

.modal-overlay-gradient {
  background: 
    linear-gradient(135deg, rgba(0, 0, 0, 0.8) 0%, rgba(10, 10, 15, 0.85) 50%, rgba(0, 0, 0, 0.9) 100%);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* Container modal glassmorphique */

.modal-container {
  position: relative;
  width: 100%;
  max-width: 64rem; /* max-w-4xl */
  max-height: 85vh;
  overflow: hidden;
}

.modal-content {
  background: rgba(0, 0, 0, 0.9);
  backdrop-filter: blur(32px);
  -webkit-backdrop-filter: blur(32px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 1rem;
  box-shadow: 
    0 0 60px rgba(0, 0, 0, 0.9),
    0 0 30px rgba(147, 51, 234, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
  position: relative;
  overflow: hidden;
  animation: modalContentSlideIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Animation du contenu modal */

@keyframes modalContentSlideIn {
  from {
    opacity: 0;
    transform: scale(0.9) translateY(20px);
  }

  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

/* Gradient overlay subtil à l'intérieur de la modal */

.modal-content::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, 
    rgba(255, 255, 255, 0.05) 0%, 
    transparent 30%, 
    rgba(0, 0, 0, 0.1) 100%);
  pointer-events: none;
  z-index: 1;
}

.modal-content > * {
  position: relative;
  z-index: 2;
}

/* Responsive adaptations */

@media (max-width: 768px) {
  .modal-overlay {
    padding: 0.5rem;
  }

  .modal-container {
    max-height: 95vh;
  }

  .modal-content {
    border-radius: 0.75rem;
  }
}

/* Reduced motion */

@media (prefers-reduced-motion: reduce) {
  .modal-overlay,
  .modal-content {
    animation: none;
  }

  .modal-overlay {
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
  }
}

/* High contrast mode */

@media (prefers-contrast: high) {
  .modal-overlay-light { background: rgba(0, 0, 0, 0.8);
  }

  .modal-overlay-medium { background: rgba(0, 0, 0, 0.9);
  }

  .modal-overlay-heavy { background: rgba(0, 0, 0, 0.95);
  }

  .modal-overlay-ultra { background: rgba(0, 0, 0, 0.98);
  }

  .modal-content {
    background: rgba(0, 0, 0, 0.95);
    border: 2px solid rgba(255, 255, 255, 0.3);
  }
}

/* Performance optimizations */

.modal-overlay,
.modal-content {
  will-change: opacity, backdrop-filter, transform;
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

/* 🔔 SMART NOTIFICATIONS - Styles pour le système révolutionnaire */

/* ========== PULSE ANIMATIONS ========== */

@keyframes pulse-smart {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
  }

  50% {
    transform: scale(1.05);
    opacity: 0.9;
  }
}

@keyframes pulse-slow {
  0%, 100% {
    transform: scale(1);
    opacity: 0.7;
  }

  50% {
    transform: scale(1.08);
    opacity: 0.4;
  }
}

@keyframes glow-pulse {
  0%, 100% {
    box-shadow: 
      0 0 20px rgba(34, 197, 94, 0.3),
      0 0 40px rgba(34, 197, 94, 0.1),
      inset 0 1px 0 rgba(255, 255, 255, 0.2);
  }

  50% {
    box-shadow: 
      0 0 30px rgba(34, 197, 94, 0.5),
      0 0 60px rgba(34, 197, 94, 0.2),
      inset 0 1px 0 rgba(255, 255, 255, 0.3);
  }
}

/* ========== NOTIFICATION BADGE PRINCIPAL ========== */

.smart-notification-badge {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 60000;
  max-width: 400px;
  min-width: 320px;
  pointer-events: all;
}

.notification-container {
  position: relative;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-radius: 16px;
  overflow: hidden;
  transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1);
}

.notification-container:hover {
  transform: translateY(-2px) scale(1.02);
  box-shadow: 
    0 25px 50px rgba(0, 0, 0, 0.25),
    0 12px 25px rgba(0, 0, 0, 0.15),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

/* ========== TYPES DE NOTIFICATIONS ========== */

.notification-conversion {
  background: linear-gradient(135deg, 
    rgba(34, 197, 94, 0.15) 0%, 
    rgba(16, 185, 129, 0.15) 100%);
  border: 1px solid rgba(34, 197, 94, 0.3);
  animation: glow-pulse 3s infinite;
}

.notification-social {
  background: linear-gradient(135deg, 
    rgba(59, 130, 246, 0.15) 0%, 
    rgba(6, 182, 212, 0.15) 100%);
  border: 1px solid rgba(59, 130, 246, 0.3);
}

.notification-urgency {
  background: linear-gradient(135deg, 
    rgba(239, 68, 68, 0.15) 0%, 
    rgba(251, 146, 60, 0.15) 100%);
  border: 1px solid rgba(239, 68, 68, 0.3);
  animation: pulse-smart 2s infinite;
}

/* ========== CONTENUS INTERNES ========== */

.notification-icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  color: white;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
}

.notification-content {
  flex: 1;
  color: white;
  font-weight: 200;
  font-size: 14px;
  line-height: 1.4;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

.notification-close {
  flex-shrink: 0;
  padding: 4px;
  border-radius: 50%;
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.8);
  cursor: pointer;
  transition: all 0.2s ease;
}

.notification-close:hover {
  background: rgba(255, 255, 255, 0.2);
  color: white;
  transform: scale(1.1);
}

/* ========== MINI BADGE INDICATEUR ========== */

.mini-notification-badge {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 59999;
}

.mini-badge-button {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, 
    rgba(139, 92, 246, 0.2) 0%, 
    rgba(168, 85, 247, 0.2) 100%);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1);
}

.mini-badge-button:hover {
  transform: scale(1.1);
  background: linear-gradient(135deg, 
    rgba(139, 92, 246, 0.3) 0%, 
    rgba(168, 85, 247, 0.3) 100%);
  box-shadow: 
    0 8px 25px rgba(139, 92, 246, 0.3),
    0 4px 12px rgba(168, 85, 247, 0.2);
}

.mini-badge-icon {
  width: 20px;
  height: 20px;
  color: white;
}

.mini-badge-dot {
  position: absolute;
  top: -2px;
  right: -2px;
  width: 12px;
  height: 12px;
  background: linear-gradient(45deg, #ef4444, #f97316);
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.2);
  animation: pulse-smart 2s infinite;
}

/* ========== SCORE INDICATOR (DEV MODE) ========== */

.score-indicator {
  position: absolute;
  bottom: -24px;
  left: 0;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.6);
  background: rgba(0, 0, 0, 0.3);
  padding: 2px 8px;
  border-radius: 8px;
  -webkit-backdrop-filter: blur(8px);
          backdrop-filter: blur(8px);
  font-family: 'Monaco', 'Menlo', monospace;
}

/* ========== ANIMATIONS D'ENTRÉE ========== */

.notification-enter {
  animation: notificationSlideIn 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

.notification-exit {
  animation: notificationSlideOut 0.4s cubic-bezier(0.55, 0.055, 0.675, 0.19) forwards;
}

@keyframes notificationSlideIn {
  0% {
    opacity: 0;
    transform: translateX(100%) translateY(-20px) scale(0.9);
    filter: blur(10px);
  }

  60% {
    opacity: 0.8;
    transform: translateX(-10px) translateY(0) scale(1.02);
    filter: blur(2px);
  }

  100% {
    opacity: 1;
    transform: translateX(0) translateY(0) scale(1);
    filter: blur(0);
  }
}

@keyframes notificationSlideOut {
  0% {
    opacity: 1;
    transform: translateX(0) scale(1);
  }

  100% {
    opacity: 0;
    transform: translateX(50px) scale(0.95);
  }
}

/* ========== BOUNCE EFFECT ========== */

.notification-bounce {
  animation: notificationBounce 0.8s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

@keyframes notificationBounce {
  0% {
    transform: scale(0) rotate(-180deg);
    opacity: 0;
  }

  50% {
    transform: scale(1.1) rotate(-10deg);
    opacity: 0.8;
  }

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

/* ========== RIPPLE EFFECT AU CLIC ========== */

.notification-ripple {
  position: relative;
  overflow: hidden;
}

.notification-ripple::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.4);
  transform: translate(-50%, -50%);
  transition: all 0.6s ease;
  z-index: -1;
}

.notification-ripple:active::before {
  width: 300px;
  height: 300px;
}

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

@media (max-width: 768px) {
  .smart-notification-badge {
    top: 10px;
    right: 10px;
    left: 10px;
    max-width: none;
    min-width: auto;
  }

  .notification-content {
    font-size: 13px;
  }

  .mini-notification-badge {
    bottom: 15px;
    right: 15px;
  }

  .mini-badge-button {
    width: 44px;
    height: 44px;
  }
}

/* ========== ACCESSIBILITY ========== */

@media (prefers-reduced-motion: reduce) {
  .notification-container,
  .mini-badge-button {
    animation: none !important;
  }

  .notification-container:hover {
    transform: none;
  }
}

/* ========== DARK MODE OPTIMIZATIONS ========== */

@media (prefers-color-scheme: dark) {
  .notification-container {
    background: rgba(0, 0, 0, 0.2);
    border-color: rgba(255, 255, 255, 0.15);
  }
}

/* ========== HIGH CONTRAST MODE ========== */

@media (prefers-contrast: high) {
  .notification-container {
    border-width: 2px;
  }

  .notification-content {
    font-weight: 300;
  }
}

/* ======================================
   LIGHTER GRAY TEXT OVERRIDES
   Make all gray text lighter site-wide
   ====================================== */

/* Override Tailwind gray text colors to be lighter */

/* text-gray-300 -> lighter (was #d1d5db) */

.text-gray-300 {
  color: #e5e7eb !important; /* gray-200 value */
}

/* text-gray-400 -> lighter (was #9ca3af) */

.text-gray-400 {
  color: #d1d5db !important; /* gray-300 value */
}

/* text-gray-500 -> lighter (was #6b7280) */

.text-gray-500 {
  color: #9ca3af !important; /* gray-400 value */
}

/* text-gray-600 -> lighter (was #4b5563) */

.text-gray-600 {
  color: #6b7280 !important; /* gray-500 value */
}

/* text-gray-700 -> lighter (was #374151) */

.text-gray-700 {
  color: #4b5563 !important; /* gray-600 value */
}

/* text-gray-800 -> lighter (was #1f2937) */

.text-gray-800 {
  color: #374151 !important; /* gray-700 value */
}

/* text-gray-900 -> lighter (was #111827) */

.text-gray-900 {
  color: #1f2937 !important; /* gray-800 value */
}

/* Custom gray colors in app.css - make them lighter */

body,
.prose,
.prose-invert {
  /* Lighten general text that might be gray */
  color: #f3f4f6; /* gray-100 for body text */
}

/* Lighten specific gray color values found in CSS */

[style*="color: #374151"],
[style*="color: rgb(55, 65, 81)"] {
  color: #4b5563 !important;
}

[style*="color: #9CA3AF"],
[style*="color: rgb(156, 163, 175)"] {
  color: #d1d5db !important;
}

[style*="color: #d1d5db"],
[style*="color: rgb(209, 213, 219)"] {
  color: #e5e7eb !important;
}

/* Additional specific overrides for common elements */

p.text-gray-300,
span.text-gray-300,
div.text-gray-300 {
  color: #f3f4f6 !important; /* Even lighter for better readability */
}

p.text-gray-400,
span.text-gray-400,
div.text-gray-400 {
  color: #e5e7eb !important;
}

/* Ensure descriptions and secondary text are lighter */

.description,
.subtitle,
.meta,
.secondary-text {
  color: #e5e7eb !important;
}

/* Lighten placeholder text */

::-moz-placeholder {
  color: #9ca3af !important;
  opacity: 1 !important;
}

::placeholder {
  color: #9ca3af !important;
  opacity: 1 !important;
}

/* Lighten disabled text */

:disabled,
.disabled {
  color: #6b7280 !important;
}

/* Ensure hover states maintain good contrast */

.text-gray-300:hover {
  color: #f9fafb !important;
}

.text-gray-400:hover {
  color: #f3f4f6 !important;
}

.text-gray-500:hover {
  color: #e5e7eb !important;
}

/* ===== FONT WEIGHT OVERRIDE - AMÉLIORATION GLOBALE LISIBILITÉ ===== */

/* Override global font-weight trop fins pour améliorer la lisibilité */

/* Remplacer tous les font-weight 100 et 200 par 300 */

*[style*="font-weight: 100"],
*[style*="font-weight: 200"],
.font-thin,
.font-extralight {
  font-weight: 300;
}

/* Classes spécifiques courantes */

.text-thin,
.text-extralight,
.text-ultra-thin {
  font-weight: 300;
}

/* Éléments de texte principaux */

p, span, div, h1, h2, h3, h4, h5, h6 {
  font-weight: 300;
}

/* Headers avec poids plus fort pour hiérarchie */

h1 { font-weight: 400;
}

h2 { font-weight: 400;
}

h3 { font-weight: 400;
}

h4 { font-weight: 300;
}

h5 { font-weight: 300;
}

h6 { font-weight: 300;
}

/* Texte des boutons */

button, .btn {
  font-weight: 400;
}

/* Liens */

a {
  font-weight: 300;
}

/* Inputs et formulaires */

input, textarea, select {
  font-weight: 300;
}

/* Tables */

table, th, td {
  font-weight: 300;
}

/* Labels et légendes */

label, legend, caption {
  font-weight: 300;
}

/* Navigation */

nav, .nav, .navbar {
  font-weight: 300;
}

/* Code */

code, pre {
  font-weight: 300;
}

/* Quotes et blockquotes - garde un style plus fin pour l'esthétique */

blockquote, .quote {
  font-weight: 300;
}

/* Exception pour le texte très important - peut rester plus fort */

.font-bold, .text-bold, strong, b {
  font-weight: 600;
}

.font-semibold, .text-semibold {
  font-weight: 400;
}

.font-medium, .text-medium {
  font-weight: 400;
}

/**
 * Styles d'accessibilité (WCAG 2.1)
 * Support pour lecteurs d'écran, navigation clavier, préférences utilisateur
 */

/* === SCREEN READER ONLY === */

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.sr-only:focus {
  position: static;
  width: auto;
  height: auto;
  padding: inherit;
  margin: inherit;
  overflow: visible;
  clip: auto;
  white-space: normal;
}

/* === SKIP LINKS === */

.skip-links {
  position: relative;
  z-index: 1000;
}

.skip-link {
  position: absolute;
  top: -40px;
  left: 6px;
  color: var(--color-gray-900);
  padding: 8px 16px;
  text-decoration: none;
  border-radius: 4px;
  font-weight: 300;
  font-size: 14px;
  z-index: 1001;
  transition: top 0.2s ease;
}

.skip-link:focus {
  top: 6px;
  outline: 2px solid var(--color-amber-400);
  outline-offset: 2px;
}

/* === FOCUS MANAGEMENT === */

*:focus {
  outline: 2px solid var(--color-indigo-500);
  outline-offset: 2px;
  outline-style: solid;
}

/* Exception pour le logo et les éléments avec focus personnalisé */

.logo-container:focus,
[class*="focus:outline-none"]:focus {
  outline: none;
}

.focus-visible {
  outline: 2px solid var(--color-indigo-500);
  outline-offset: 2px;
}

.focus-trap {
  position: relative;
}

.focus-trap::before,
.focus-trap::after {
  content: '';
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

/* === KEYBOARD NAVIGATION === */

[tabindex="-1"]:focus {
  outline: none;
}

.keyboard-navigation button:focus,
.keyboard-navigation a:focus,
.keyboard-navigation input:focus,
.keyboard-navigation select:focus,
.keyboard-navigation textarea:focus {
  outline: 3px solid var(--color-indigo-500);
  outline-offset: 2px;
}

/* === HIGH CONTRAST MODE === */

.high-contrast {
  --color-gray-50: #f0f0f0;
  --color-gray-100: #e0e0e0;
  --color-gray-200: #d0d0d0;
  --color-gray-300: #c0c0c0;
  --color-gray-400: #a0a0a0;
  --color-gray-500: #808080;
  --color-gray-600: #606060;
  --color-gray-700: #404040;
  --color-gray-800: #202020;
  --color-gray-900: #000000;
  --color-indigo-50: #f0f0ff;
  --color-indigo-100: #e0e0ff;
  --color-indigo-500: #0000ff;
  --color-indigo-600: #0000dd;
  --color-indigo-700: #0000bb;
}

.high-contrast .solution-card {
  border: 2px solid var(--color-gray-900);
}

.high-contrast .solution-card:hover {
  border-color: var(--color-indigo-600);
}

.high-contrast button {
  border: 2px solid var(--color-gray-900);
  color: var(--color-gray-900);
}

.high-contrast button:hover {
  border-color: var(--color-indigo-600);
}

/* === REDUCED MOTION === */

.reduce-motion *,
.reduce-motion *::before,
.reduce-motion *::after {
  animation-duration: 0.01ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: 0.01ms !important;
  scroll-behavior: auto !important;
}

.reduce-motion .solution-card:hover {
  transform: none !important;
}

.reduce-motion .voice-search-btn.recording::after {
  animation: none !important;
}

/* === LARGE TEXT SUPPORT === */

@media (prefers-reduced-data: reduce) {
  body {
    font-size: 18px;
    line-height: 1.6;
  }

  .solution-card {
    padding: 2rem;
  }

  button {
    padding: 12px 24px;
    font-size: 16px;
  }

  input {
    padding: 16px;
    font-size: 16px;
  }
}

/* === ARIA LIVE REGIONS === */

[aria-live] {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.live-region-visible {
  position: static;
  width: auto;
  height: auto;
  overflow: visible;
  padding: 1rem;
  margin: 1rem 0;
  border: 1px solid var(--color-blue-200);
  border-radius: 0.5rem;
  color: var(--color-blue-900);
}

/* === FORM ACCESSIBILITY === */

.form-field {
  position: relative;
  margin-bottom: 1.5rem;
}

.form-label {
  display: block;
  margin-bottom: 0.5rem;
  font-weight: 300;
  color: var(--color-gray-700);
}

.form-label.required::after {
  content: '*';
  color: var(--color-red-500);
  margin-left: 0.25rem;
}

.form-input:invalid {
  border-color: var(--color-red-500);
}

.form-input:invalid:focus {
  outline-color: var(--color-red-500);
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1);
}

.form-error {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.5rem;
  color: var(--color-red-600);
  font-size: 0.875rem;
}

.form-error-icon {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}

/* === BUTTON ACCESSIBILITY === */

button:disabled,
[aria-disabled="true"] {
  opacity: 0.6;
  cursor: not-allowed;
  pointer-events: none;
}

.button-loading {
  position: relative;
  color: transparent;
}

.button-loading::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1rem;
  height: 1rem;
  margin: -0.5rem 0 0 -0.5rem;
  border: 2px solid transparent;
  border-top-color: currentColor;
  border-radius: 50%;
  animation: button-spin 1s linear infinite;
}

@keyframes button-spin {
  to {
    transform: rotate(360deg);
  }
}

/* === MODAL ACCESSIBILITY === */

.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1000;
}

.modal-content {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border-radius: 0.5rem;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  z-index: 1001;
  max-width: 90vw;
  max-height: 90vh;
  overflow: auto;
}

.modal-content:focus {
  outline: none;
}

/* === TOOLTIP ACCESSIBILITY === */

.tooltip {
  position: relative;
}

.tooltip-content {
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  color: var(--color-gray-900);
  padding: 0.5rem 0.75rem;
  border-radius: 0.25rem;
  font-size: 0.875rem;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s;
  z-index: 100;
}

.tooltip:hover .tooltip-content,
.tooltip:focus .tooltip-content {
  opacity: 1;
}

.tooltip-content::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 4px solid transparent;
  border-top-color: var(--color-gray-900);
}

/* === TABLE ACCESSIBILITY === */

.accessible-table {
  width: 100%;
  border-collapse: collapse;
  margin: 1rem 0;
}

.accessible-table th,
.accessible-table td {
  padding: 0.75rem;
  text-align: left;
  border-bottom: 1px solid var(--color-gray-200);
}

.accessible-table th {
  font-weight: 300;
  color: var(--color-gray-900);
}

.accessible-table tr:hover {
  background: transparent;
}

.accessible-table caption {
  caption-side: top;
  padding: 0.75rem;
  font-weight: 300;
  text-align: left;
  color: var(--color-gray-900);
}

/* === PROGRESS INDICATORS === */

.progress-bar {
  width: 100%;
  height: 0.5rem;
  border-radius: 0.25rem;
  overflow: hidden;
}

.progress-fill {
  height: 100%;
  border-radius: 0.25rem;
  transition: width 0.3s ease;
}

.progress-text {
  margin-top: 0.5rem;
  font-size: 0.875rem;
  color: var(--color-gray-600);
  text-align: center;
}

/* === RESPONSIVE ACCESSIBILITY === */

@media (max-width: 768px) {
  .skip-link {
    font-size: 16px;
    padding: 12px 16px;
  }

  button {
    min-height: 44px;
    min-width: 44px;
  }

  .form-input {
    min-height: 44px;
    font-size: 16px;
  }
}

/* === PRINT ACCESSIBILITY === */

@media print {
  .skip-links,
  [aria-hidden="true"],
  .sr-only {
    display: none !important;
  }

  .solution-card {
    -moz-column-break-inside: avoid;
         break-inside: avoid;
    margin-bottom: 1rem;
    border: 1px solid #000;
  }
}

/* Styles pour la page d'administration améliorée */

/* Animation pour mettre en évidence les sections */

@keyframes highlightSection {
  0% { background-color: transparent;
  }

  50% { background-color: transparent;
  }

  100% { background-color: transparent;
  }
}

.highlight-section {
  animation: highlightSection 2s ease;
  scroll-margin-top: 150px; /* Augmenter la marge supérieure pour éviter que le menu ne cache le début de la section */
  border-radius: 0.5rem;
  transition: all 0.3s ease;
  position: relative;
  box-shadow: 0 0 0 2px rgba(79, 70, 229, 0.4);
}

.highlight-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: transparent;
  border-radius: 3px 3px 0 0;
  opacity: 1;
  z-index: 5;
}

/* Styles pour l'en-tête d'administration */

.admin-header {
  position: sticky;
  top: 0;
  z-index: 100;
  padding: 0.75rem 1rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  transition: all 0.2s ease;
}

.dark .admin-header {
  background-color: transparent;
  border-bottom: 1px solid var(--gray-700);
}

.admin-page {
  --primary-color: #4f46e5;
  --primary-light: #818cf8;
  --primary-dark: #4338ca;
  --success-color: #10b981;
  --warning-color: #f59e0b;
  --danger-color: #ef4444;
  --info-color: #3b82f6;
  /* Variables pour rgba */
  --primary-rgb: 79, 70, 229;
  --primary-light-rgb: 129, 140, 248;
  --primary-dark-rgb: 67, 56, 202;
  --success-rgb: 16, 185, 129;
  --warning-rgb: 245, 158, 11;
  --danger-rgb: 239, 68, 68;
  --info-rgb: 59, 130, 246;
  /* Couleurs en niveaux de gris */
  --gray-50: #f9fafb;
  --gray-100: #f3f4f6;
  --gray-200: #e5e7eb;
  --gray-300: #d1d5db;
  --gray-400: #9ca3af;
  --gray-500: #6b7280;
  --gray-600: #4b5563;
  --gray-700: #374151;
  --gray-800: #1f2937;
  --gray-900: #111827;
  padding: 1.5rem;
  padding-bottom: 5rem;
  min-height: 100vh;
  background-color: transparent;
  transition: all 0.2s ease-in-out;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
}

/* Animation des cartes au chargement */

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes pulseGlow {
  0% {
    box-shadow: 0 0 0 0 rgba(79, 70, 229, 0.2);
  }

  70% {
    box-shadow: 0 0 0 10px rgba(79, 70, 229, 0);
  }

  100% {
    box-shadow: 0 0 0 0 rgba(79, 70, 229, 0);
  }
}

/* En-têtes de section */

.section-title {
  display: flex;
  align-items: center;
  font-size: 1.5rem;
  font-weight: 300;
  color: var(--gray-800);
  margin-bottom: 1.5rem;
  position: relative;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--gray-200);
}

.section-title:before {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  height: 2px;
  width: 100px;
  background: transparent;
}

.dark .section-title {
  color: var(--gray-100);
  border-bottom-color: var(--gray-700);
}

/* Conteneurs de section */

.section-container {
  animation: fadeInUp 0.5s ease-out forwards;
  margin-bottom: 2.5rem;
  transition: all 0.3s ease;
}

.section-container:hover .section-title:before {
  width: 150px;
  transition: width 0.3s ease;
}

/* Cartes */

.dashboard-card {
  background-color: transparent;
  border-radius: 0.75rem;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05), 0 10px 15px -3px rgba(0, 0, 0, 0.1);
  padding: 1.5rem;
  transition: all 0.2s ease-in-out;
  border: 1px solid var(--gray-200);
  height: 100%;
  position: relative;
  overflow: hidden;
}

.dashboard-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

.dashboard-card:hover::after {
  opacity: 1;
}

.dashboard-card::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: transparent;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.card-title {
  font-size: 1.25rem;
  font-weight: 300;
  margin-bottom: 1rem;
  color: var(--gray-800);
  display: flex;
  align-items: center;
}

.card-title svg {
  margin-right: 0.5rem;
  color: var(--primary-color);
}

.card-content {
  color: var(--gray-600);
}

/* Variantes de couleur pour les cartes */

.card-primary::after {
  background: transparent;
}

.card-success::after {
  background: transparent;
}

.card-warning::after {
  background: transparent;
}

.card-danger::after {
  background: transparent;
}

.card-info::after {
  background: transparent;
}

/* Badges et états */

.status-badge {
  display: inline-flex;
  align-items: center;
  font-size: 0.75rem;
  font-weight: 300;
  padding: 0.25rem 0.75rem;
  border-radius: 9999px;
  text-transform: uppercase;
}

.status-connected {
  background-color: transparent;
  color: var(--success-color);
  border: 1px solid rgba(16, 185, 129, 0.2);
}

.status-error {
  background-color: transparent;
  color: var(--danger-color);
  border: 1px solid rgba(239, 68, 68, 0.2);
}

.status-warning {
  background-color: transparent;
  color: var(--warning-color);
  border: 1px solid rgba(245, 158, 11, 0.2);
}

.status-info {
  background-color: transparent;
  color: var(--info-color);
  border: 1px solid rgba(59, 130, 246, 0.2);
}

/* Statistiques */

.stat-value {
  font-size: 2rem;
  font-weight: 300;
  color: var(--gray-800);
  line-height: 1;
  margin-bottom: 0.25rem;
}

.stat-label {
  font-size: 0.875rem;
  color: var(--gray-500);
  text-transform: uppercase;
  letter-spacing: 0.025em;
}

.stat-change {
  display: flex;
  align-items: center;
  font-size: 0.875rem;
  margin-top: 0.5rem;
}

.stat-change.positive {
  color: var(--success-color);
}

.stat-change.negative {
  color: var(--danger-color);
}

.stat-card {
  position: relative;
  padding: 1.5rem;
  border-radius: 0.5rem;
  background-color: transparent;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  transition: all 0.2s;
  border: 1px solid var(--gray-200);
}

.stat-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

.stat-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 0.5rem;
  margin-bottom: 1rem;
  background-color: transparent;
  color: var(--primary-color);
}

/* Tableau amélioré */

.table-container {
  border-radius: 0.5rem;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  border: 1px solid var(--gray-200);
}

.admin-table {
  width: 100%;
  border-collapse: collapse;
}

.admin-table th {
  background-color: transparent;
  color: var(--gray-600);
  font-weight: 200;
  text-align: left;
  padding: 0.75rem 1rem;
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.025em;
  border-bottom: 1px solid var(--gray-200);
}

.admin-table td {
  padding: 1rem;
  border-bottom: 1px solid var(--gray-200);
  color: var(--gray-700);
  font-size: 0.875rem;
}

.admin-table tr:last-child td {
  border-bottom: none;
}

.admin-table tr:hover td {
  background-color: transparent;
}

/* Boutons */

.admin-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 1rem;
  font-weight: 200;
  border-radius: 0.375rem;
  transition: all 0.2s;
  cursor: pointer;
  font-size: 0.875rem;
  border: none;
}

.button-primary {
  background-color: transparent;
  color: var(--primary-color);
  box-shadow: 0 1px 2px rgba(79, 70, 229, 0.05);
}

.button-primary:hover {
  background-color: transparent;
  transform: translateY(-1px);
}

.button-secondary {
  background-color: transparent;
  color: var(--gray-700);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  border: 1px solid var(--gray-300);
}

.button-secondary:hover {
  background-color: transparent;
  color: var(--gray-900);
}

.button-sm {
  padding: 0.375rem 0.75rem;
  font-size: 0.75rem;
}

.button-lg {
  padding: 0.75rem 1.5rem;
  font-size: 1rem;
}

.button-icon {
  margin-right: 0.5rem;
}

/* Mode sombre */

.dark .admin-page {
  background-color: transparent;
  color: var(--gray-300);
}

.dark .dashboard-card {
  background-color: transparent;
  border-color: var(--gray-700);
}

.dark .card-title {
  color: var(--gray-100);
}

.dark .card-content {
  color: var(--gray-400);
}

.dark .stat-card {
  background-color: transparent;
  border-color: var(--gray-700);
}

.dark .stat-value {
  color: var(--gray-100);
}

.dark .stat-label {
  color: var(--gray-400);
}

.dark .table-container {
  border-color: var(--gray-700);
}

.dark .admin-table th {
  background-color: transparent;
  color: var(--gray-300);
  border-bottom-color: var(--gray-700);
}

.dark .admin-table td {
  border-bottom-color: var(--gray-700);
  color: var(--gray-300);
}

.dark .admin-table tr:hover td {
  background-color: transparent;
}

.dark .button-secondary {
  background-color: transparent;
  color: var(--gray-300);
  border-color: var(--gray-700);
}

.dark .button-secondary:hover {
  background-color: transparent;
  color: var(--gray-100);
}

/* ===== BACKGROUND SELECTOR STYLES ===== */

/* Bouton de sélection de thème */

.theme-selector-button {
  position: relative;
  background: transparent;
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 50%;
  width: 60px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
  z-index: 50;
}

.theme-selector-button:hover {
  transform: scale(1.1) translateY(-2px);
  background: transparent;
  box-shadow: 0 12px 35px rgba(0, 0, 0, 0.3);
  border-color: rgba(0, 0, 0, 0.3);
}

.theme-selector-button:active {
  transform: scale(1.05) translateY(0px);
}

/* Icône du thème */

.theme-selector-icon {
  position: relative;
  font-size: 24px;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
}

.theme-icon-gradient {
  background: transparent;
  background-size: 200% 200%;
  animation: gradientShift 3s ease-in-out infinite;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Tooltip */

.theme-selector-tooltip {
  position: absolute;
  left: 70px;
  top: 50%;
  transform: translateY(-50%);
  background: transparent;
  color: white;
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 200;
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
  pointer-events: none;
  z-index: 100;
}

.theme-selector-tooltip::before {
  content: '';
  position: absolute;
  right: 100%;
  top: 50%;
  transform: translateY(-50%);
  border: 5px solid transparent;
  border-right-color: rgba(0, 0, 0, 0.8);
}

.theme-selector-button:hover .theme-selector-tooltip {
  opacity: 1;
  visibility: visible;
  transform: translateY(-50%) translateX(5px);
}

/* Animation du gradient */

@keyframes gradientShift {
  0%, 100% {
    background-position: 0% 50%;
  }

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

/* Responsive */

@media (max-width: 768px) {
  .theme-selector-button {
    width: 50px;
    height: 50px;
  }

  .theme-selector-icon {
    font-size: 20px;
  }

  .theme-selector-tooltip {
    display: none;
  }
}

/* ========================================
   OPTIMISATION DU LOGO OLIVE
   Maximise la visibilité et la taille du logo SVG animé
   ======================================== */

/* ===== OPTIMISATIONS GÉNÉRALES DU LOGO ===== */

.logo-container {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: auto;
  height: 100%;
}

.logo-image {
  /* Priorité maximale pour l'affichage */
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  /* Optimisation de la taille */
  object-fit: contain;
  object-position: left center;
  /* Transition fluide */
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  /* Anti-aliasing pour les SVG */
  shape-rendering: geometricPrecision;
  text-rendering: optimizeLegibility;
  /* Amélioration de la qualité d'affichage */
  image-rendering: -webkit-optimize-contrast;
  image-rendering: optimize-contrast;
  image-rendering: crisp-edges;
}

/* ===== ÉTATS INTERACTIFS ===== */

.logo-image:hover {
  filter: brightness(1.1) contrast(1.05);
  transform: scale(1.02);
}

.logo-container:hover .logo-image {
  opacity: 0.95;
}

/* ===== OPTIMISATIONS RESPONSIVE ===== */

/* Mobile Portrait */

@media (max-width: 480px) {
  .logo-image {
    height: 60px !important;
    max-height: 60px !important;
    max-width: 160px !important;
  }
}

/* Mobile Landscape */

@media (max-width: 768px) and (orientation: landscape) {
  .logo-image {
    height: 70px !important;
    max-height: 70px !important;
    max-width: 180px !important;
  }
}

/* Tablet */

@media (min-width: 769px) and (max-width: 1024px) {
  .logo-image {
    height: 90px !important;
    max-height: 90px !important;
    max-width: 240px !important;
  }
}

/* Desktop */

@media (min-width: 1025px) and (max-width: 1440px) {
  .logo-image {
    height: 105px !important;
    max-height: 105px !important;
    max-width: 280px !important;
  }
}

/* Large Desktop */

@media (min-width: 1441px) {
  .logo-image {
    height: 120px !important;
    max-height: 120px !important;
    max-width: 320px !important;
  }
}

/* ===== CORRECTIONS POUR NAVIGATEURS SPÉCIFIQUES ===== */

/* Safari optimizations */

@supports (-webkit-appearance: none) {
  .logo-image {
    -webkit-backface-visibility: hidden;
    -webkit-transform: translateZ(0);
  }
}

/* Firefox optimizations */

@-moz-document url-prefix() {
  .logo-image {
    image-rendering: -moz-crisp-edges;
  }
}

/* ===== FALLBACK POUR ERREURS DE CHARGEMENT ===== */

.logo-image[src*="data:image/svg+xml"] {
  background: transparent;
  border-radius: 8px;
  padding: 8px 16px;
  color: white;
  font-family: 'Raleway', -apple-system, BlinkMacSystemFont, sans-serif;
  font-weight: 300;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ===== PERFORMANCE OPTIMIZATIONS ===== */

.logo-container,
.logo-image {
  will-change: transform;
  transform: translateZ(0);
}

/* ===== ACCESSIBILITY ===== */

@media (prefers-reduced-motion: reduce) {
  .logo-image {
    transition-duration: 0.1s;
  }

  .logo-image:hover {
    transform: none;
  }
}

@media (prefers-contrast: high) {
  .logo-image {
    filter: contrast(1.2);
  }
}

/* ===== DARK MODE SUPPORT ===== */

@media (prefers-color-scheme: dark) {
  .logo-image {
    filter: brightness(0.9);
  }

  .logo-image:hover {
    filter: brightness(1.1) contrast(1.1);
  }
}

/* ============================================
   BOUTONS 3D AVEC TRACKING SOURIS PARFAIT (v2 - Effet Wahou)
   Effet 3D qui suit la souris avec perspective dynamique et animations subtiles.
   RÉSULTAT PARFAIT - SOPHISTIQUÉ ET ÉLÉGANT
   ============================================ */

/* ===== VARIABLES 3D TRACKING PARFAIT ===== */

:root {
  /* Couleurs des gradients élégants */
  --mouse3d-violet-deep: rgba(147, 51, 234, 0.9);
  --mouse3d-violet-medium: rgba(126, 34, 206, 0.85);
  --mouse3d-violet-light: rgba(168, 85, 247, 0.8);
  --mouse3d-indigo-primary: rgba(99, 102, 241, 0.85);
  --mouse3d-indigo-secondary: rgba(79, 70, 229, 0.8);
  --mouse3d-indigo-dark: rgba(67, 56, 202, 0.9);
  /* Transparences pour dégradés vers noir */
  --mouse3d-black-fade: rgba(0, 0, 0, 0.25);
  --mouse3d-black-subtle: rgba(0, 0, 0, 0.15);
  --mouse3d-black-whisper: rgba(0, 0, 0, 0.08);
  /* Reflets élégants */
  --mouse3d-highlight: rgba(255, 255, 255, 0.3);
  --mouse3d-highlight-subtle: rgba(255, 255, 255, 0.15);
  --mouse3d-highlight-soft: rgba(255, 255, 255, 0.08);
  /* Variables 3D pour le tracking parfait */
  --mouse-x: 0;
  --mouse-y: 0;
  --rotation-x: 0deg;
  --rotation-y: 0deg;
  --tilt-intensity: 5deg;
  --shine-x: 50%;
  --shine-y: 50%;
  --border-glow: 0;
  --parallax-x: 0px;
  --parallax-y: 0px;
  --perspective-intensity: 1000px;
  --transform-origin: center center;
  /* Transitions fluides */
  --transition-speed: 0.15s;
  --tracking-transition: transform 0.1s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* ===== CONTENEUR PRINCIPAL AVEC PERSPECTIVE ===== */

.mouse3d-container {
  position: relative;
  display: inline-block;
  perspective: var(--perspective-intensity);
  perspective-origin: center center;
  transform-style: preserve-3d;
}

/* ===== BOUTON DE BASE AVEC TRACKING 3D ===== */

.btn-mouse3d {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: none;
  outline: none;
  cursor: pointer;
  transform-style: preserve-3d;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  will-change: transform, box-shadow, filter;
  padding: 8px 16px;
  font-size: 0.875rem;
  font-weight: 300;
  line-height: 1.4;
  min-height: 36px;
  min-width: 36px;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  border-radius: 8px;
  text-decoration: none;
  overflow: hidden;
  /* EFFET ÉLÉGANT: État de base avec transformation 3D stable */
  transform: rotateX(var(--rotation-x)) rotateY(var(--rotation-y)) translateZ(0px);
  transition: transform 0.2s cubic-bezier(0.4, 0.0, 0.2, 1), 
              box-shadow 0.4s ease-out,
              filter 0.4s ease-out,
              -webkit-backdrop-filter 0.3s ease;
  transition: transform 0.2s cubic-bezier(0.4, 0.0, 0.2, 1), 
              box-shadow 0.4s ease-out,
              filter 0.4s ease-out,
              backdrop-filter 0.3s ease;
  transition: transform 0.2s cubic-bezier(0.4, 0.0, 0.2, 1), 
              box-shadow 0.4s ease-out,
              filter 0.4s ease-out,
              backdrop-filter 0.3s ease, 
              -webkit-backdrop-filter 0.3s ease;
  /* Assurer que la zone cliquable reste stable */
  transform-origin: center center;
  backface-visibility: hidden;
  box-shadow: 0px 0px 20px 2px rgba(42, 23, 153, 0.6);
  -webkit-backdrop-filter: blur(8px);
          backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  opacity: 1;
  color: rgba(255, 255, 255, 0.85);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

/* Contour lumineux dégradé qui suit la souris */

.btn-mouse3d::before {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: linear-gradient(
    calc(var(--mouse-x) * 360deg + 45deg), 
    var(--mouse3d-violet-deep) 0%,
    var(--mouse3d-indigo-primary) 25%,
    var(--mouse3d-violet-light) 50%,
    var(--mouse3d-indigo-secondary) 75%,
    var(--mouse3d-violet-deep) 100%
  );
  border-radius: 10px;
  z-index: -1;
  opacity: 0.4;
  transition: background 0.2s ease, opacity 0.2s ease;
  transform: translateZ(-1px);
}

/* Effet glow qui suit la perspective */

.btn-mouse3d::after {
  content: '';
  position: absolute;
  top: -4px;
  left: -4px;
  right: -4px;
  bottom: -4px;
  background: 
    radial-gradient(
      circle at var(--shine-x) var(--shine-y),
      rgba(147, 51, 234, 0.5) 0%,
      rgba(99, 102, 241, 0.3) 30%,
      transparent 70%
    );
  border-radius: 12px;
  z-index: -2;
  filter: blur(8px);
  opacity: 0.4;
  transition: transform 0.2s ease, opacity 0.2s ease, filter 0.2s ease;
  transform: translateZ(-2px) scale(1.05);
}

/* ===== TRACKING MOUSEOVER AVEC PERSPECTIVE DYNAMIQUE ===== */

.btn-mouse3d:hover {
  /* Amplification 3D au hover (subtile) */
  --tilt-intensity: 20deg;
  /* Glassmorphisme intensifié avec opacité complète */
  background: transparent;
  border: none;
  opacity: 1;
  box-shadow: 
    inset 0 1px 0 rgba(255, 255, 255, 0.25),
    inset 0 -1px 0 rgba(255, 255, 255, 0.1),
    0 0 40px rgba(147, 51, 234, 0.6),
    0 0 70px rgba(99, 102, 241, 0.5);
  /* EFFET WAHOU: Tracking 3D subtil au hover - limité pour stabilité */
  transform: 
    perspective(var(--perspective-intensity))
    rotateX(var(--rotation-x))
    rotateY(var(--rotation-y))
    translateZ(3px)
    scale(1.008);
  /* Maintenir la continuité de la transformation sans reset */
  animation: none;
}

.btn-mouse3d:hover::before {
  opacity: 0.9;
  animation: border-pulse 2s ease-in-out infinite;
}

.btn-mouse3d:hover {
  background: linear-gradient(135deg, #1a1a1a 0%, #000000 100%) !important;
  color: #ffffff !important;
  box-shadow: 0px 0px 30px 4px rgba(0, 0, 0, 0.8), 0px 0px 15px 2px rgba(255, 255, 255, 0.1);
  transform: perspective(var(--perspective-intensity)) rotateX(var(--rotation-x)) rotateY(var(--rotation-y)) translateZ(8px) scale(1.02);
  -webkit-backdrop-filter: blur(12px);
          backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.2);
}

.btn-mouse3d:hover::after {
  opacity: 0.9;
  background: 
    radial-gradient(
      circle at var(--shine-x) var(--shine-y),
      rgba(85, 60, 220, 0.8) 0%,
      rgba(42, 23, 153, 0.6) 50%,
      transparent 90%
    );
  filter: blur(15px);
  animation: moving-glow 3s ease-in-out infinite alternate;
}

/* ===== ANIMATIONS ===== */

/* Animation de base supprimée pour éviter les conflits de positioning */

@keyframes moving-glow {
  0% {
    transform: translateZ(-2px) translateX(-15%) translateY(-15%) scale(1.1);
  }

  100% {
    transform: translateZ(-2px) translateX(15%) translateY(15%) scale(1.1);
  }
}

@keyframes subtle-glow {
  0%, 100% {
    opacity: 0.7;
    filter: blur(10px);
    transform: translateZ(-2px) scale(1.06);
  }

  50% {
    opacity: 1;
    filter: blur(14px);
    transform: translateZ(-2px) scale(1.1);
  }
}

@keyframes border-pulse {
  0%, 100% {
    opacity: 0.7;
  }

  50% {
    opacity: 1;
  }
}

/* ===== VARIANTES DE BOUTONS AVEC TRACKING ===== */

/* Bouton Primary (violet-indigo) */

.btn-mouse3d-primary {
  background: linear-gradient(
    calc(var(--mouse-y) * 45deg + 135deg),
    rgba(79, 70, 229, 0.9),
    rgba(147, 51, 234, 0.9)
  );
}

.btn-mouse3d-primary:hover {
  background-color: #000000 !important;
  color: #ffffff !important;
}

/* Bouton Secondary (gris) */

.btn-mouse3d-secondary {
  background: linear-gradient(
    calc(var(--mouse-y) * 45deg + 135deg),
    rgba(107, 114, 128, 0.9),
    rgba(75, 85, 99, 0.9)
  );
}

.btn-mouse3d-secondary:hover {
  background-color: #000000 !important;
  color: #ffffff !important;
}

/* Bouton Contact (spécial avec animation) */

.btn-mouse3d-contact {
  background: linear-gradient(
    calc(var(--mouse-x) * 90deg + 135deg),
    rgba(99, 102, 241, 0.95),
    rgba(168, 85, 247, 0.95)
  );
  padding: 18px 40px;
  font-size: 1.1rem;
  /* L'animation idle-float est déjà appliquée à tous les .btn-mouse3d */
}

.btn-mouse3d-contact:hover {
  background-color: #000000 !important;
  color: #ffffff !important;
}

/* Bouton Success (vert) */

.btn-mouse3d-success {
  background: linear-gradient(
    calc(var(--mouse-y) * 45deg + 135deg),
    rgba(34, 197, 94, 0.9),
    rgba(16, 185, 129, 0.9)
  );
}

.btn-mouse3d-success:hover {
  background-color: #000000 !important;
  color: #ffffff !important;
}

/* Bouton Danger (rouge) */

.btn-mouse3d-danger {
  background: linear-gradient(
    calc(var(--mouse-y) * 45deg + 135deg),
    rgba(239, 68, 68, 0.9),
    rgba(220, 38, 38, 0.9)
  );
}

.btn-mouse3d-danger:hover {
  background-color: #000000 !important;
  color: #ffffff !important;
}

/* ===== ÉTATS ET ACCESSIBILITÉ ===== */

.btn-mouse3d:active {
  /* EFFET WAHOU: Enfoncement rapide et flash lumineux */
  transform: 
    perspective(var(--perspective-intensity))
    rotateX(var(--rotation-x))
    rotateY(var(--rotation-y))
    translateZ(-2px)
    scale(0.99);
  box-shadow: 
    inset 0 1px 0 rgba(255, 255, 255, 0.4),
    0 0 80px rgba(190, 150, 255, 1),
    0 0 120px rgba(150, 150, 255, 0.9);
  transition: transform 0.05s ease-out, box-shadow 0.05s ease-out;
  animation: none;
  opacity: 1;
}

.btn-mouse3d:focus {
  outline: none;
  box-shadow: 
    0 16px 64px rgba(0, 0, 0, 0.2),
    0 8px 32px rgba(0, 0, 0, 0.15),
    inset 0 0 0 2px rgba(99, 102, 241, 0.6),
    0 0 0 4px rgba(99, 102, 241, 0.3);
}

.btn-mouse3d:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none !important;
  animation: none !important;
  --rotation-x: 0deg;
  --rotation-y: 0deg;
}

/* ===== TAILLES AVEC TRACKING ===== */

.btn-mouse3d-small {
  padding: 6px 12px;
  font-size: 0.75rem;
  min-height: 32px;
  border-radius: 8px;
}

.btn-mouse3d-large {
  padding: 12px 24px;
  font-size: 1rem;
  min-height: 44px;
  border-radius: 8px;
}

.btn-mouse3d-full {
  width: 100%;
  justify-content: center;
}

/* ===== STYLES POUR ICÔNES AVEC TRACKING ===== */

.btn-mouse3d-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  transform: translateZ(2px);
}

.btn-mouse3d-icon-left {
  margin-right: 8px;
}

.btn-mouse3d-icon-right {
  margin-left: 8px;
}

.btn-mouse3d-icon-only {
  padding: 12px;
  min-width: 48px;
  min-height: 48px;
}

/* ===== ADAPTATIONS RESPONSIVE ===== */

@media (max-width: 768px) {
  .btn-mouse3d {
    /* Simplifier le tracking sur mobile */
    transform: perspective(500px) translateZ(0px);
    transition: transform 0.2s ease;
    animation: none; /* Désactiver le float sur mobile pour perf */
  }

  .btn-mouse3d:hover {
    transform: perspective(500px) translateZ(5px) scale(1.02);
  }

  .btn-mouse3d:active {
    transform: perspective(500px) translateZ(-2px) scale(0.98);
    animation: none;
    box-shadow: none;
  }

  /* Réduire les effets sur mobile */

  .btn-mouse3d::before,
  .btn-mouse3d::after {
    opacity: 0.2 !important;
    animation: none !important;
  }
}

/* Réduction de mouvement pour accessibilité */

@media (prefers-reduced-motion: reduce) {
  .btn-mouse3d {
    transition: none;
    transform: none !important;
    animation: none !important;
  }

  .btn-mouse3d::before,
  .btn-mouse3d::after {
    animation: none !important;
  }
}

/* ===== CLASSE UTILITAIRE POUR APPLIQUER LE TRACKING ===== */

/* Cette classe n'est plus nécessaire car le tracking est appliqué par défaut */

.mouse-3d-tracking .btn-mouse3d {
  /* Styles de base déjà dans .btn-mouse3d */
}

/* =============================================================================
   OLIVE SUPREME STYLES - Design Ultime et Performance Extrême
   Architecture CSS moderne pour le Tamagotchi révolutionnaire
   Version: 3.0.0-Supreme
   ============================================================================= */

:root {
  /* Palette de couleurs Supreme */
  --supreme-primary: rgba(0, 255, 136, 0.95);
  --supreme-secondary: rgba(147, 51, 234, 0.9);
  --supreme-accent: rgba(255, 215, 0, 0.85);
  --supreme-danger: rgba(239, 68, 68, 0.9);
  --supreme-success: rgba(34, 197, 94, 0.9);
  --supreme-warning: rgba(245, 158, 11, 0.9);
  /* Glassmorphisme avancé */
  --glass-ultra-strong: rgba(0, 0, 0, 0.15);
  --glass-ultra-medium: rgba(0, 0, 0, 0.1);
  --glass-ultra-light: rgba(0, 0, 0, 0.05);
  /* Noir transparent gradients */
  --glass-dark-strong: rgba(0, 0, 0, 0.4);
  --glass-dark-medium: rgba(0, 0, 0, 0.2);
  --glass-dark-light: rgba(0, 0, 0, 0.1);
  /* Reflets et highlights */
  --glass-shine: rgba(0, 0, 0, 0.3);
  --glass-shimmer: rgba(0, 0, 0, 0.15);
  /* Animations et transitions */
  --supreme-transition: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --supreme-duration-fast: 0.2s;
  --supreme-duration-normal: 0.3s;
  --supreme-duration-slow: 0.5s;
  /* Shadows ultime */
  --shadow-supreme: 
        0 0 40px rgba(0, 255, 136, 0.4),
        inset 0 1px 0 rgba(0, 0, 0, 0.15),
        0 20px 60px rgba(0, 0, 0, 0.2);
  --shadow-floating: 
        0 10px 30px rgba(0, 0, 0, 0.1),
        0 5px 15px rgba(0, 0, 0, 0.05);
  /* Performance optimizations */
  --gpu-acceleration: translateZ(0);
  /* 🔊 Audio Controls Colors */
  --audio-primary: rgba(34, 197, 94, 0.9);
  --audio-muted: rgba(156, 163, 175, 0.8);
  --audio-background: rgba(0, 0, 0, 0.3);
  --volume-track: rgba(255, 255, 255, 0.2);
  --volume-thumb: var(--supreme-primary);
}

/* =============================================================================
   CONTENEUR PRINCIPAL OLIVE SUPREME
   ============================================================================= */

.olive-supreme-container {
  position: relative;
  width: min(650px, 95vw);
  min-height: 750px;
  max-height: min(900px, 95vh);
  /* Glassmorphisme ultime */
  background: rgba(0, 0, 0, 0.85);
  border: 2px solid var(--supreme-primary);
  border-radius: 30px;
  padding: 0;
  /* Ombres et effets */
  box-shadow: var(--shadow-supreme);
  backdrop-filter: blur(25px) saturate(1.8);
  -webkit-backdrop-filter: blur(25px) saturate(1.8);
  /* Performance */
  will-change: transform;
  transform-style: preserve-3d;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  /* Animation d'entrée */
  animation: supremeEntrance 0.8s var(--supreme-transition);
  /* Utilisabilité */
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  overflow: hidden;
  /* Assurer les interactions */
  pointer-events: auto;
}

@keyframes supremeEntrance {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.8) rotateY(15deg);
    filter: blur(5px);
  }

  100% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1) rotateY(0deg);
    filter: blur(0);
  }
}

.olive-supreme-container::before {
  content: '';
  position: absolute;
  top: -3px;
  left: -3px;
  right: -3px;
  bottom: -3px;
  background: transparent
        45deg, 
        var(--supreme-primary) 0%,
        var(--supreme-secondary) 25%,
        var(--supreme-accent) 50%,
        var(--supreme-secondary) 75%,
        var(--supreme-primary) 100%
    );
  border-radius: 33px;
  z-index: -1;
  animation: supremeBorderFlow 4s linear infinite;
  opacity: 0.8;
}

@keyframes supremeBorderFlow {
  0%, 100% {
    background-position: 0% 50%;
    opacity: 0.8;
  }

  50% {
    background-position: 100% 50%;
    opacity: 1;
  }
}

/* États spéciaux du conteneur */

.olive-supreme-container.loading {
  pointer-events: none;
}

.olive-supreme-container.loading::after {
  content: '';
  position: absolute;
  inset: 0;
  background: transparent;
  -webkit-backdrop-filter: blur(5px);
          backdrop-filter: blur(5px);
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* =============================================================================
   INTERFACE ADAPTATIVE
   ============================================================================= */

.olive-interface-wrapper {
  height: 100%;
  display: flex;
  flex-direction: column;
}

/* Mode complet */

.olive-interface-full {
  height: 100%;
  display: flex;
  flex-direction: column;
}

/* Header interface */

.interface-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 25px 15px;
  background: transparent;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  position: relative;
}

.olive-info {
  flex: 1;
}

.olive-name {
  font-family: 'Orbitron', monospace;
  font-size: 1.3rem;
  font-weight: 300;
  color: var(--supreme-primary);
  text-shadow: 0 0 15px rgba(0, 255, 136, 0.6);
  margin: 0 0 10px 0;
  display: flex;
  align-items: center;
  gap: 10px;
}

.level-badge {
  background: transparent;
  color: rgba(0, 0, 0, 0.8);
  padding: 4px 8px;
  border-radius: 12px;
  font-size: 0.7rem;
  font-weight: 300;
}

.header-actions {
  display: flex;
  gap: 8px;
}

.settings-button,
.close-button {
  width: 40px;
  height: 40px;
  border: none;
  border-radius: 50%;
  font-size: 1.1rem;
  cursor: pointer;
  transition: all var(--supreme-duration-normal) var(--supreme-transition);
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  pointer-events: auto;
  z-index: 20;
  position: relative;
}

.settings-button {
  background: transparent;
  color: var(--supreme-accent);
  border: 1px solid rgba(255, 215, 0, 0.3);
}

.close-button {
  background: transparent;
  color: var(--supreme-danger);
  border: 1px solid rgba(239, 68, 68, 0.3);
}

.settings-button:hover {
  background: transparent;
  transform: scale(1.05) rotate(45deg);
  box-shadow: 0 0 15px rgba(255, 215, 0, 0.4);
}

.close-button:hover {
  background: transparent;
  transform: scale(1.05) rotate(90deg);
  box-shadow: 0 0 15px rgba(239, 68, 68, 0.4);
}

/* Navigation par onglets */

.interface-tabs {
  display: flex;
  background: transparent;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  padding: 0 10px;
}

.tab {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 12px 16px;
  background: rgba(0, 0, 0, 0.3);
  border: none;
  color: rgba(255, 255, 255, 0.7);
  cursor: pointer;
  transition: all var(--supreme-duration-normal) var(--supreme-transition);
  border-radius: 12px 12px 0 0;
  position: relative;
  overflow: hidden;
  pointer-events: auto;
  z-index: 15;
}

.tab::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: transparent;
  transform: scaleX(0);
  transition: transform var(--supreme-duration-normal) var(--supreme-transition);
}

.tab:hover {
  background: transparent;
  color: rgba(0, 0, 0, 0.9);
}

.tab.active {
  background: transparent;
  color: var(--supreme-primary);
  text-shadow: 0 0 10px rgba(0, 255, 136, 0.4);
}

.tab.active::before {
  transform: scaleX(1);
}

.tab-icon {
  font-size: 1.2rem;
}

.tab-label {
  font-size: 0.85rem;
  font-weight: 200;
}

/* Contenu principal */

.interface-content {
  flex: 1;
  overflow-y: auto;
  padding: 20px;
}

/* =============================================================================
   STATS ET BARRES DE PROGRESSION
   ============================================================================= */

.primary-stats {
  display: grid;
  gap: 12px;
  margin-bottom: 20px;
}

.stat-group,
.stat-bar-container {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: transparent;
  border-radius: 15px;
  border: 1px solid rgba(0, 0, 0, 0.1);
  -webkit-backdrop-filter: blur(15px);
          backdrop-filter: blur(15px);
  transition: all var(--supreme-duration-normal) var(--supreme-transition);
  position: relative;
  overflow: hidden;
}

.stat-group:hover,
.stat-bar-container:hover {
  background: transparent;
  transform: translateY(-2px);
  box-shadow: var(--shadow-floating);
}

.stat-icon {
  font-size: 1.4rem;
  width: 30px;
  text-align: center;
  filter: drop-shadow(0 0 8px rgba(0, 0, 0, 0.3));
}

.stat-name {
  font-size: 0.9rem;
  font-weight: 300;
  color: rgba(0, 0, 0, 0.9);
  min-width: 80px;
}

.stat-bar,
.stat-bar-track {
  flex: 1;
  height: 10px;
  background: transparent;
  border-radius: 5px;
  overflow: hidden;
  border: 1px solid rgba(0, 0, 0, 0.15);
  position: relative;
}

.stat-bar-fill,
.stat-fill {
  height: 100%;
  border-radius: 5px;
  transition: width 0.8s var(--supreme-transition);
  position: relative;
  overflow: hidden;
}

.stat-bar-fill::after,
.stat-fill::after {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: transparent
        90deg, 
        transparent, 
        rgba(0, 0, 0, 0.4), 
        transparent
    );
  animation: statShine 2s infinite;
}

@keyframes statShine {
  0% { left: -100%;
  }

  100% { left: 100%;
  }
}

.stat-value {
  font-size: 0.9rem;
  font-weight: 300;
  color: rgba(0, 0, 0, 0.95);
  min-width: 35px;
  text-align: right;
  text-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
}

/* Stats secondaires */

.secondary-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 10px;
  margin-top: 15px;
}

.mini-stat {
  padding: 8px 12px;
  background: transparent;
  border-radius: 12px;
  border: 1px solid rgba(0, 0, 0, 0.1);
  text-align: center;
  font-size: 0.8rem;
  color: rgba(0, 0, 0, 0.85);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  transition: all var(--supreme-duration-fast) var(--supreme-transition);
}

.mini-stat:hover {
  background: transparent;
  transform: scale(1.05);
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

/* =============================================================================
   AFFICHAGE D'OLIVE ET HUMEUR
   ============================================================================= */

.olive-display-section {
  margin: 25px 0;
  display: flex;
  justify-content: center;
}

.olive-container {
  text-align: center;
  position: relative;
  padding: 30px;
  background: transparent;
  border-radius: 25px;
  border: 1px solid rgba(0, 0, 0, 0.1);
  -webkit-backdrop-filter: blur(15px);
          backdrop-filter: blur(15px);
  transition: all var(--supreme-duration-slow) var(--supreme-transition);
}

.olive-container::before {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: transparent
        45deg, 
        transparent 0%,
        var(--supreme-primary) 25%,
        transparent 50%,
        var(--supreme-secondary) 75%,
        transparent 100%
    );
  border-radius: 27px;
  z-index: -1;
  animation: oliveAura 6s ease-in-out infinite;
}

@keyframes oliveAura {
  0%, 100% { opacity: 0.3; transform: scale(1);
  }

  50% { opacity: 0.7; transform: scale(1.02);
  }
}

.main-olive {
  transition: all var(--supreme-duration-slow) var(--supreme-transition);
  cursor: pointer;
  filter: drop-shadow(0 0 20px rgba(0, 255, 136, 0.3));
}

.main-olive:hover {
  transform: scale(1.05) rotate(2deg);
  filter: drop-shadow(0 0 30px rgba(0, 255, 136, 0.6));
}

/* Indicateur d'humeur */

.mood-indicator {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 20px;
  padding: 10px 20px;
  background: transparent;
  border-radius: 25px;
  border: 1px solid rgba(0, 0, 0, 0.15);
  -webkit-backdrop-filter: blur(12px);
          backdrop-filter: blur(12px);
}

.mood-emoji {
  font-size: 1.8rem;
  animation: moodPulse 2.5s ease-in-out infinite;
}

@keyframes moodPulse {
  0%, 100% { transform: scale(1);
  }

  50% { transform: scale(1.15);
  }
}

.mood-details {
  text-align: left;
}

.mood-name {
  font-size: 1rem;
  font-weight: 300;
  text-shadow: 0 0 10px currentColor;
}

.mood-score {
  font-size: 0.8rem;
  color: rgba(0, 0, 0, 0.7);
  margin-top: 2px;
}

/* Animations d'humeur */

.mood-indicator.bounce {
  animation: moodBounce 1s ease-in-out infinite;
}

.mood-indicator.pulse {
  animation: moodPulseStrong 1.5s ease-in-out infinite;
}

.mood-indicator.gentle-pulse {
  animation: moodPulse 3s ease-in-out infinite;
}

.mood-indicator.sway {
  animation: moodSway 2s ease-in-out infinite;
}

@keyframes moodBounce {
  0%, 100% { transform: translateY(0);
  }

  50% { transform: translateY(-5px);
  }
}

@keyframes moodPulseStrong {
  0%, 100% { transform: scale(1);
  }

  50% { transform: scale(1.2);
  }
}

@keyframes moodSway {
  0%, 100% { transform: rotate(0deg);
  }

  25% { transform: rotate(2deg);
  }

  75% { transform: rotate(-2deg);
  }
}

/* =============================================================================
   ACTIONS ET BOUTONS
   ============================================================================= */

.actions-section {
  margin-top: 25px;
}

.actions-section h3 {
  color: rgba(0, 0, 0, 0.9);
  font-size: 1.1rem;
  margin-bottom: 15px;
  text-align: center;
}

.actions-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 12px;
}

.action-button,
.action-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 16px 12px;
  background: rgba(0, 0, 0, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 18px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.85rem;
  font-weight: 300;
  cursor: pointer;
  transition: all var(--supreme-duration-normal) var(--supreme-transition);
  -webkit-backdrop-filter: blur(15px);
          backdrop-filter: blur(15px);
  position: relative;
  overflow: hidden;
  transform-style: preserve-3d;
  perspective: 1000px;
  pointer-events: auto;
  z-index: 10;
}

.action-button::before,
.action-btn::before {
  content: '';
  position: absolute;
  top: -1px;
  left: -1px;
  right: -1px;
  bottom: -1px;
  background: transparent
        45deg, 
        var(--supreme-primary) 0%,
        var(--supreme-secondary) 25%,
        var(--supreme-accent) 50%,
        var(--supreme-secondary) 75%,
        var(--supreme-primary) 100%
    );
  border-radius: 19px;
  z-index: -1;
  opacity: 0;
  transition: opacity var(--supreme-duration-normal) var(--supreme-transition);
}

.action-button:hover::before,
.action-btn:hover::before {
  opacity: 0.6;
}

.action-button:hover,
.action-btn:hover {
  transform: perspective(1000px) rotateX(-8deg) rotateY(8deg) translateY(-4px) scale(1.05);
  box-shadow: 
        0 15px 40px rgba(0, 255, 136, 0.25),
        inset 0 1px 0 rgba(255, 255, 255, 0.2);
  background: rgba(0, 0, 0, 0.8);
  border-color: var(--supreme-primary);
}

.action-button:active,
.action-btn:active {
  transform: perspective(1000px) rotateX(4deg) rotateY(-4deg) translateY(2px) scale(0.98);
}

.action-button.disabled,
.action-btn.disabled {
  opacity: 0.4;
  cursor: not-allowed;
  transform: none !important;
}

.action-button.pressed,
.action-btn.pressed {
  transform: scale(0.95);
  background: transparent;
}

.action-icon,
.action-emoji {
  font-size: 1.8rem;
  filter: drop-shadow(0 0 8px rgba(0, 0, 0, 0.3));
  transition: all var(--supreme-duration-fast) var(--supreme-transition);
}

.action-button:hover .action-icon,
.action-button:hover .action-emoji,
.action-btn:hover .action-icon,
.action-btn:hover .action-emoji {
  filter: drop-shadow(0 0 15px var(--supreme-primary));
  transform: scale(1.1);
}

.action-name {
  font-size: 0.8rem;
  text-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}

/* Indicateurs d'efficacité */

.effectiveness-indicator {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  transition: all var(--supreme-duration-fast) var(--supreme-transition);
}

.cooldown-overlay {
  position: absolute;
  inset: 0;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 18px;
  color: var(--supreme-warning);
  font-weight: 400;
  font-size: 0.9rem;
}

/* =============================================================================
   MODE COMPACT
   ============================================================================= */

.olive-interface-compact {
  padding: 15px;
  background: transparent;
  border-radius: 20px;
  border: 1px solid rgba(0, 0, 0, 0.1);
  -webkit-backdrop-filter: blur(20px);
          backdrop-filter: blur(20px);
  max-width: 300px;
}

.compact-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 15px;
}

.quick-stats {
  display: flex;
  gap: 8px;
}

.quick-stat {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 4px 8px;
  background: transparent;
  border-radius: 12px;
  font-size: 0.7rem;
}

.quick-stat-icon {
  font-size: 1rem;
}

.quick-stat-bar {
  width: 20px;
  height: 3px;
  border-radius: 2px;
  transition: width var(--supreme-duration-normal) var(--supreme-transition);
}

.quick-stat-value {
  font-weight: 300;
  color: rgba(0, 0, 0, 0.9);
}

.compact-olive-display {
  text-align: center;
  margin: 15px 0;
}

.compact-actions {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}

.compact-action {
  padding: 12px 8px;
  font-size: 0.7rem;
}

/* Toggle compact */

.compact-toggle {
  position: absolute;
  bottom: 20px;
  right: 20px;
  width: 40px;
  height: 40px;
  border: none;
  background: rgba(0, 0, 0, 0.6);
  border-radius: 50%;
  font-size: 1.2rem;
  cursor: pointer;
  transition: all var(--supreme-duration-normal) var(--supreme-transition);
  -webkit-backdrop-filter: blur(15px);
          backdrop-filter: blur(15px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  pointer-events: auto;
  z-index: 20;
}

.compact-toggle:hover {
  background: transparent;
  transform: scale(1.1);
}

/* =============================================================================
   SYSTÈME DE NOTIFICATIONS
   ============================================================================= */

.notification-system {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-width: 350px;
}

.notification {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 15px 18px;
  background: transparent;
  border-radius: 15px;
  border: 1px solid rgba(0, 0, 0, 0.2);
  -webkit-backdrop-filter: blur(20px);
          backdrop-filter: blur(20px);
  color: rgba(0, 0, 0, 0.95);
  font-size: 0.9rem;
  font-weight: 200;
  box-shadow: var(--shadow-floating);
  animation: notificationSlideIn 0.5s var(--supreme-transition);
  position: relative;
  overflow: hidden;
  cursor: pointer;
}

.notification::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  background: transparent;
  animation: notificationProgress 5s linear;
}

.notification.success::before { background: transparent;
}

.notification.warning::before { background: transparent;
}

.notification.error::before { background: transparent;
}

.notification.achievement::before { background: transparent;
}

@keyframes notificationSlideIn {
  0% {
    opacity: 0;
    transform: translateX(100%) scale(0.8);
  }

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

@keyframes notificationProgress {
  0% { height: 100%;
  }

  100% { height: 0%;
  }
}

.notification-icon {
  font-size: 1.3rem;
  filter: drop-shadow(0 0 5px rgba(0, 0, 0, 0.3));
  flex-shrink: 0;
}

.notification-message {
  flex: 1;
  text-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
}

.notification-dismiss {
  background: transparent;
  border: none;
  color: rgba(0, 0, 0, 0.6);
  cursor: pointer;
  padding: 2px;
  border-radius: 50%;
  font-size: 1.2rem;
  transition: all var(--supreme-duration-fast) var(--supreme-transition);
  flex-shrink: 0;
}

.notification-dismiss:hover {
  color: rgba(0, 0, 0, 1);
  background: transparent;
}

/* =============================================================================
   PROGRESS BAR ET ÉLÉMENTS UI
   ============================================================================= */

.progress-container {
  margin: 8px 0;
}

.progress-label {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
  font-size: 0.8rem;
  color: rgba(0, 0, 0, 0.8);
}

.progress-numbers {
  font-size: 0.7rem;
  color: rgba(0, 0, 0, 0.6);
}

.progress-track {
  background: transparent;
  border-radius: 4px;
  overflow: hidden;
  border: 1px solid rgba(0, 0, 0, 0.15);
  position: relative;
}

.progress-fill {
  height: 100%;
  border-radius: 4px;
  transition: width 0.8s var(--supreme-transition);
  position: relative;
  overflow: hidden;
}

.progress-fill::after {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: transparent
        90deg, 
        transparent, 
        rgba(0, 0, 0, 0.3), 
        transparent
    );
  animation: progressShine 2s infinite;
}

@keyframes progressShine {
  0% { left: -100%;
  }

  100% { left: 100%;
  }
}

/* =============================================================================
   LOADING ET ÉTATS SPÉCIAUX
   ============================================================================= */

.olive-supreme-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px 40px;
  text-align: center;
}

.loading-animation {
  font-size: 3rem;
  animation: loadingSpin 2s linear infinite;
  margin-bottom: 20px;
}

@keyframes loadingSpin {
  0% { transform: rotate(0deg);
  }

  100% { transform: rotate(360deg);
  }
}

.olive-supreme-loading p {
  color: rgba(0, 0, 0, 0.8);
  font-size: 1.1rem;
  margin: 0;
}

/* États d'erreur */

.olive-supreme-error,
.olive-supreme-crash {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px;
  text-align: center;
  background: transparent;
  border: 2px solid var(--supreme-danger);
  border-radius: 20px;
}

.olive-supreme-error h2,
.olive-supreme-crash h1 {
  color: var(--supreme-danger);
  font-size: 1.5rem;
  margin-bottom: 15px;
}

.olive-supreme-error p,
.olive-supreme-crash p {
  color: rgba(0, 0, 0, 0.8);
  margin-bottom: 20px;
}

.olive-supreme-error button,
.olive-supreme-crash button {
  background: transparent;
  color: white;
  border: none;
  padding: 10px 20px;
  border-radius: 12px;
  cursor: pointer;
  font-weight: 300;
  transition: all var(--supreme-duration-normal) var(--supreme-transition);
}

.olive-supreme-error button:hover,
.olive-supreme-crash button:hover {
  background: transparent;
  transform: translateY(-2px);
  box-shadow: var(--shadow-floating);
}

/* =============================================================================
   RESPONSIVE DESIGN
   ============================================================================= */

@media (max-width: 768px) {
  .olive-supreme-container {
    width: 98vw;
    min-height: 92vh;
    max-height: 95vh;
    border-radius: 20px;
  }

  .interface-header {
    padding: 15px 20px 10px;
  }

  .olive-name {
    font-size: 1.1rem;
  }

  .actions-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }

  .secondary-stats {
    grid-template-columns: repeat(2, 1fr);
  }

  .interface-tabs {
    padding: 0 5px;
  }

  .tab {
    padding: 10px 12px;
  }

  .tab-label {
    display: none;
  }

  .notification-system {
    right: 10px;
    left: 10px;
    max-width: none;
  }
}

@media (max-width: 480px) {
  .olive-supreme-container {
    border-radius: 15px;
    padding: 0;
  }

  .interface-content {
    padding: 15px;
  }

  .olive-container {
    padding: 20px;
  }

  .actions-grid {
    grid-template-columns: 1fr 1fr;
  }

  .action-button,
    .action-btn {
    padding: 12px 8px;
  }

  .action-emoji,
    .action-icon {
    font-size: 1.5rem;
  }

  .action-name {
    font-size: 0.75rem;
  }
}

/* =============================================================================
   ANIMATIONS ET MICRO-INTERACTIONS AVANCÉES
   ============================================================================= */

@keyframes float {
  0%, 100% { transform: translateY(0px);
  }

  50% { transform: translateY(-10px);
  }
}

@keyframes glow {
  0%, 100% {
    box-shadow: 0 0 20px var(--supreme-primary);
  }

  50% {
    box-shadow: 0 0 40px var(--supreme-primary);
  }
}

@keyframes sparkle {
  0%, 100% {
    opacity: 0;
    transform: scale(0.5) rotate(0deg);
  }

  50% {
    opacity: 1;
    transform: scale(1) rotate(180deg);
  }
}

/* =============================================================================
   🎯 LAYOUT RÉVOLUTIONNAIRE - INTÉGRATION SVG + STATS PARFAITE
   ============================================================================= */

.revolutionary-layout {
  min-height: 100vh;
  background: var(--supreme-gradient-dark);
  overflow-x: hidden;
}

.perfect-integration-layout {
  display: grid;
  grid-template-columns: 350px 1fr;
  gap: 32px;
  padding: 20px 32px;
  max-width: 1200px;
  margin: 0 auto;
  min-height: 80vh;
  align-items: start;
}

/* =============================================================================
   🎭 SVG OLIVE AVEC STATS INTÉGRÉES - RÉVOLUTIONNAIRE
   ============================================================================= */

.olive-display-with-stats {
  position: relative;
  background: linear-gradient(135deg, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.1));
  -webkit-backdrop-filter: blur(20px);
          backdrop-filter: blur(20px);
  border-radius: 32px;
  border: 2px solid rgba(52, 211, 153, 0.3);
  padding: 32px;
  box-shadow: 
        0 20px 40px rgba(0, 0, 0, 0.4),
        0 0 60px rgba(52, 211, 153, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.1);
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  overflow: visible;
}

.olive-container-perfect {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
}

.game-olive-wrapper-enhanced {
  position: relative;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  filter: drop-shadow(0 0 30px rgba(52, 211, 153, 0.4));
}

.game-olive-wrapper-enhanced:hover {
  transform: scale(1.05) translateY(-5px);
  filter: drop-shadow(0 0 50px rgba(52, 211, 153, 0.6));
}

.game-olive-emotional-perfect {
  animation: gentleFloat 4s ease-in-out infinite;
}

/* Stats flottantes autour du SVG */

.stats-around-svg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
}

.floating-stat {
  position: absolute;
  animation: statFloat 3s ease-in-out infinite;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.stat-position-0 {
  top: 20%;
  left: -20%;
  animation-delay: 0s;
}

.stat-position-1 {
  top: 50%;
  right: -25%;
  animation-delay: 1s;
}

.stat-position-2 {
  bottom: 20%;
  left: 50%;
  transform: translateX(-50%);
  animation-delay: 2s;
}

.stat-bubble {
  background: linear-gradient(135deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.6));
  -webkit-backdrop-filter: blur(15px);
          backdrop-filter: blur(15px);
  border: 2px solid rgba(255, 255, 255, 0.2);
  border-radius: 20px;
  padding: 12px 16px;
  box-shadow: 
        0 10px 30px rgba(0, 0, 0, 0.3),
        0 0 20px rgba(52, 211, 153, 0.2);
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 80px;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.stat-bubble:hover {
  transform: scale(1.1);
  border-color: rgba(52, 211, 153, 0.5);
  box-shadow: 
        0 15px 40px rgba(0, 0, 0, 0.4),
        0 0 30px rgba(52, 211, 153, 0.4);
}

.stat-icon-float {
  font-size: 1.2rem;
  filter: drop-shadow(0 0 10px rgba(52, 211, 153, 0.5));
}

.stat-value-float {
  font-weight: 400;
  font-size: 0.9rem;
  color: #ffffff;
  text-shadow: 0 0 10px rgba(52, 211, 153, 0.3);
}

.stat-bar-mini {
  position: absolute;
  bottom: 2px;
  left: 2px;
  right: 2px;
  height: 3px;
  border-radius: 2px;
  opacity: 0.7;
  transition: all 0.3s ease;
}

/* =============================================================================
   🎮 MENU ACTIONS COMPACT - DESIGN PERFECTIONNÉ
   ============================================================================= */

.actions-menu-compact {
  background: linear-gradient(135deg, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.05));
  -webkit-backdrop-filter: blur(20px);
          backdrop-filter: blur(20px);
  border-radius: 24px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  padding: 24px;
  box-shadow: 
        0 15px 35px rgba(0, 0, 0, 0.3),
        0 0 40px rgba(52, 211, 153, 0.1);
}

.actions-menu-compact .interaction-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  max-width: 400px;
}

.actions-menu-compact .tamagotchi-btn {
  position: relative;
  background: linear-gradient(135deg, rgba(52, 211, 153, 0.1), rgba(6, 182, 212, 0.05));
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  border: 2px solid rgba(52, 211, 153, 0.2);
  border-radius: 16px;
  padding: 16px 12px;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  min-height: 80px;
  overflow: hidden;
}

.actions-menu-compact .tamagotchi-btn:hover {
  transform: translateY(-3px) scale(1.02);
  border-color: rgba(52, 211, 153, 0.5);
  background: linear-gradient(135deg, rgba(52, 211, 153, 0.2), rgba(6, 182, 212, 0.1));
  box-shadow: 
        0 10px 25px rgba(0, 0, 0, 0.3),
        0 0 30px rgba(52, 211, 153, 0.3);
}

.actions-menu-compact .action-icon {
  font-size: 1.8rem;
  filter: drop-shadow(0 0 15px rgba(52, 211, 153, 0.4));
  transition: all 0.3s ease;
}

.actions-menu-compact .tamagotchi-btn:hover .action-icon {
  transform: scale(1.2);
  filter: drop-shadow(0 0 25px rgba(52, 211, 153, 0.6));
}

.actions-menu-compact .action-label {
  font-size: 0.8rem;
  font-weight: 300;
  color: #ffffff;
  text-shadow: 0 0 10px rgba(52, 211, 153, 0.3);
}

.actions-menu-compact .action-count {
  position: absolute;
  top: 6px;
  right: 6px;
  background: rgba(52, 211, 153, 0.8);
  color: #000000;
  font-size: 0.7rem;
  font-weight: 400;
  padding: 2px 6px;
  border-radius: 8px;
  box-shadow: 0 0 10px rgba(52, 211, 153, 0.5);
}

/* =============================================================================
   🌟 MODALES RÉVOLUTIONNAIRES - SVG MEGA
   ============================================================================= */

.modal-olive-display-revolutionary {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 40px;
  background: linear-gradient(135deg, rgba(52, 211, 153, 0.05), rgba(6, 182, 212, 0.02));
  border-radius: 32px;
  border: 2px solid rgba(52, 211, 153, 0.2);
  margin-bottom: 40px;
  position: relative;
  overflow: visible;
}

.modal-olive-mega-container {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 32px;
}

.modal-olive-svg-mega {
  filter: drop-shadow(0 0 50px rgba(52, 211, 153, 0.6));
  animation: modalOliveFloat 5s ease-in-out infinite;
}

.olive-stats-modal-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
}

.modal-stat-bubble {
  position: absolute;
  background: linear-gradient(135deg, rgba(0, 0, 0, 0.9), rgba(0, 0, 0, 0.7));
  -webkit-backdrop-filter: blur(20px);
          backdrop-filter: blur(20px);
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-radius: 25px;
  padding: 12px 20px;
  box-shadow: 
        0 15px 35px rgba(0, 0, 0, 0.4),
        0 0 30px rgba(52, 211, 153, 0.3);
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 100px;
  animation: modalStatFloat 4s ease-in-out infinite;
}

.modal-stat-0 {
  top: 10%;
  left: -30%;
  animation-delay: 0s;
}

.modal-stat-1 {
  top: 40%;
  right: -35%;
  animation-delay: 1.5s;
}

.modal-stat-2 {
  bottom: 15%;
  left: 50%;
  transform: translateX(-50%);
  animation-delay: 3s;
}

.modal-stat-icon {
  font-size: 1.5rem;
  filter: drop-shadow(0 0 15px rgba(52, 211, 153, 0.6));
}

.modal-stat-value {
  font-weight: 400;
  font-size: 1.1rem;
  color: #ffffff;
  text-shadow: 0 0 15px rgba(52, 211, 153, 0.4);
}

.olive-reaction-text-revolutionary {
  text-align: center;
  max-width: 600px;
}

.reaction-mega {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.reaction-emoji {
  font-size: 3rem;
  filter: drop-shadow(0 0 30px rgba(52, 211, 153, 0.6));
  animation: emojiPulse 2s ease-in-out infinite;
}

.reaction-primary {
  font-size: 1.8rem;
  font-weight: 400;
  background: linear-gradient(135deg, #34d399, #06b6d4, #8b5cf6);
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  text-shadow: 0 0 30px rgba(52, 211, 153, 0.3);
  animation: textShimmer 3s ease-in-out infinite;
}

.reaction-secondary {
  font-size: 1.1rem;
  color: rgba(255, 255, 255, 0.8);
  text-shadow: 0 0 20px rgba(52, 211, 153, 0.2);
  line-height: 1.4;
}

/* =============================================================================
   🎨 ANIMATIONS RÉVOLUTIONNAIRES
   ============================================================================= */

@keyframes gentleFloat {
  0%, 100% { transform: translateY(0px) rotate(0deg);
  }

  33% { transform: translateY(-8px) rotate(1deg);
  }

  66% { transform: translateY(-4px) rotate(-1deg);
  }
}

@keyframes statFloat {
  0%, 100% { transform: translateY(0px) scale(1);
  }

  50% { transform: translateY(-12px) scale(1.05);
  }
}

@keyframes modalOliveFloat {
  0%, 100% { transform: translateY(0px) scale(1) rotate(0deg);
  }

  25% { transform: translateY(-15px) scale(1.02) rotate(1deg);
  }

  75% { transform: translateY(-8px) scale(0.98) rotate(-1deg);
  }
}

@keyframes modalStatFloat {
  0%, 100% { transform: translateY(0px) scale(1);
  }

  50% { transform: translateY(-20px) scale(1.1);
  }
}

@keyframes emojiPulse {
  0%, 100% { transform: scale(1);
  }

  50% { transform: scale(1.1);
  }
}

@keyframes textShimmer {
  0%, 100% { filter: brightness(1);
  }

  50% { filter: brightness(1.2);
  }
}

/* =============================================================================
   🎭 NOUVELLES ANIMATIONS ÉMOTIONNELLES RÉVOLUTIONNAIRES
   ============================================================================= */

@keyframes sick-wobble {
  0%, 100% { transform: translate(-50%, -50%) rotate(0deg) scale(1);
  }

  25% { transform: translate(-52%, -48%) rotate(-2deg) scale(0.95);
  }

  75% { transform: translate(-48%, -52%) rotate(2deg) scale(1.05);
  }
}

@keyframes party-bounce {
  0%, 100% { transform: translate(-50%, -50%) scale(1) rotate(0deg);
  }

  20% { transform: translate(-50%, -50%) scale(1.2) rotate(-10deg);
  }

  40% { transform: translate(-50%, -50%) scale(0.9) rotate(10deg);
  }

  60% { transform: translate(-50%, -50%) scale(1.1) rotate(-5deg);
  }

  80% { transform: translate(-50%, -50%) scale(1.05) rotate(5deg);
  }
}

@keyframes deep-think {
  0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 1;
  }

  25% { transform: translate(-50%, -50%) scale(1.05); opacity: 0.8;
  }

  50% { transform: translate(-50%, -50%) scale(0.95); opacity: 1;
  }

  75% { transform: translate(-50%, -50%) scale(1.02); opacity: 0.9;
  }
}

@keyframes dream-float {
  0%, 100% { transform: translate(-50%, -50%) translateY(0px) scale(1);
  }

  33% { transform: translate(-50%, -50%) translateY(-8px) scale(1.02);
  }

  66% { transform: translate(-50%, -50%) translateY(-4px) scale(0.98);
  }
}

@keyframes laugh-bounce {
  0%, 100% { transform: translate(-50%, -50%) scale(1);
  }

  10% { transform: translate(-50%, -50%) scale(1.15);
  }

  20% { transform: translate(-50%, -50%) scale(0.9);
  }

  30% { transform: translate(-50%, -50%) scale(1.1);
  }

  40% { transform: translate(-50%, -50%) scale(1);
  }

  50% { transform: translate(-50%, -50%) scale(1.05);
  }

  60% { transform: translate(-50%, -50%) scale(1);
  }
}

@keyframes cool-lean {
  0%, 100% { transform: translate(-50%, -50%) rotate(0deg) skewX(0deg);
  }

  50% { transform: translate(-50%, -50%) rotate(-3deg) skewX(-2deg);
  }
}

@keyframes work-focus {
  0%, 100% { transform: translate(-50%, -50%) scale(1);
  }

  50% { transform: translate(-50%, -50%) scale(0.95);
  }
}

@keyframes magic-sparkle {
  0%, 100% {
    transform: translate(-50%, -50%) scale(1) rotate(0deg);
    filter: brightness(1) hue-rotate(0deg);
  }

  25% {
    transform: translate(-50%, -50%) scale(1.1) rotate(90deg);
    filter: brightness(1.3) hue-rotate(90deg);
  }

  50% {
    transform: translate(-50%, -50%) scale(0.9) rotate(180deg);
    filter: brightness(1.1) hue-rotate(180deg);
  }

  75% {
    transform: translate(-50%, -50%) scale(1.05) rotate(270deg);
    filter: brightness(1.2) hue-rotate(270deg);
  }
}

@keyframes angry-shake {
  0%, 100% { transform: translate(-50%, -50%);
  }

  10% { transform: translate(-52%, -50%);
  }

  20% { transform: translate(-48%, -50%);
  }

  30% { transform: translate(-50%, -48%);
  }

  40% { transform: translate(-50%, -52%);
  }

  50% { transform: translate(-52%, -48%);
  }

  60% { transform: translate(-48%, -52%);
  }

  70% { transform: translate(-50%, -50%);
  }

  80% { transform: translate(-51%, -49%);
  }

  90% { transform: translate(-49%, -51%);
  }
}

@keyframes sad-droop {
  0%, 100% { transform: translate(-50%, -50%) scale(1);
  }

  50% { transform: translate(-50%, -45%) scale(0.95);
  }
}

@keyframes surprise-jump {
  0%, 100% { transform: translate(-50%, -50%) scale(1) translateY(0px);
  }

  20% { transform: translate(-50%, -50%) scale(1.3) translateY(-15px);
  }

  40% { transform: translate(-50%, -50%) scale(0.8) translateY(5px);
  }

  60% { transform: translate(-50%, -50%) scale(1.1) translateY(-5px);
  }

  80% { transform: translate(-50%, -50%) scale(1.05) translateY(0px);
  }
}

/* =============================================================================
   🚀 GRILLES MODALES RÉVOLUTIONNAIRES 98VW - OPTIMISATION TOTALE
   ============================================================================= */

/* Grilles alimentaires révolutionnaires */

.food-categories-revolutionary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 32px;
  padding: 32px;
  max-width: none;
  width: 100%;
}

.food-categories-revolutionary .food-category {
  background: linear-gradient(135deg, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.2));
  -webkit-backdrop-filter: blur(15px);
          backdrop-filter: blur(15px);
  border-radius: 24px;
  border: 2px solid rgba(255, 255, 255, 0.1);
  overflow: hidden;
  box-shadow: 
        0 20px 40px rgba(0, 0, 0, 0.3),
        0 0 40px rgba(52, 211, 153, 0.1);
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.food-categories-revolutionary .food-category:hover {
  transform: translateY(-8px);
  border-color: rgba(52, 211, 153, 0.4);
  box-shadow: 
        0 30px 60px rgba(0, 0, 0, 0.4),
        0 0 60px rgba(52, 211, 153, 0.3);
}

.food-categories-revolutionary .category-header {
  padding: 20px 24px;
  border-bottom: 2px solid rgba(255, 255, 255, 0.1);
  position: relative;
  overflow: hidden;
}

.food-categories-revolutionary .category-header::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
  animation: shimmer 3s infinite;
}

.food-categories-revolutionary .category-header h3 {
  font-size: 1.4rem;
  font-weight: 400;
  color: #ffffff;
  text-shadow: 0 0 20px rgba(52, 211, 153, 0.4);
  margin: 0;
  text-align: center;
}

.food-categories-revolutionary .category-items {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 16px;
  padding: 24px;
}

.food-categories-revolutionary .item-card {
  position: relative;
  background: linear-gradient(135deg, rgba(52, 211, 153, 0.1), rgba(6, 182, 212, 0.05));
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  border: 2px solid rgba(255, 255, 255, 0.1);
  border-radius: 20px;
  padding: 20px 16px;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  min-height: 140px;
  overflow: hidden;
}

.food-categories-revolutionary .item-card:hover {
  transform: translateY(-5px) scale(1.03);
  border-color: rgba(52, 211, 153, 0.5);
  background: linear-gradient(135deg, rgba(52, 211, 153, 0.2), rgba(6, 182, 212, 0.1));
  box-shadow: 
        0 15px 35px rgba(0, 0, 0, 0.3),
        0 0 40px rgba(52, 211, 153, 0.4);
}

.food-categories-revolutionary .item-icon {
  font-size: 2.5rem;
  filter: drop-shadow(0 0 20px rgba(52, 211, 153, 0.5));
  animation: iconPulse 2s ease-in-out infinite;
}

.food-categories-revolutionary .item-name {
  font-weight: 400;
  color: #ffffff;
  text-align: center;
  font-size: 0.9rem;
  text-shadow: 0 0 15px rgba(52, 211, 153, 0.3);
}

.food-categories-revolutionary .item-effects {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: center;
}

.food-categories-revolutionary .effect {
  font-size: 0.7rem;
  padding: 2px 6px;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #ffffff;
  text-shadow: 0 0 10px rgba(52, 211, 153, 0.3);
}

.food-categories-revolutionary .item-rarity {
  position: absolute;
  top: 8px;
  right: 8px;
  font-size: 0.6rem;
  text-transform: uppercase;
  font-weight: 400;
  padding: 2px 6px;
  border-radius: 6px;
  background: rgba(52, 211, 153, 0.8);
  color: #000000;
}

/* Boissons révolutionnaires */

.drink-selection-revolutionary {
  padding: 32px;
  max-width: none;
  width: 100%;
}

.category-items-mega.drinks {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 24px;
  max-width: none;
}

.category-items-mega .item-card.large {
  min-height: 180px;
  padding: 28px 20px;
  background: linear-gradient(135deg, rgba(6, 182, 212, 0.15), rgba(52, 211, 153, 0.08));
}

.category-items-mega .item-icon-large {
  font-size: 3.5rem;
  filter: drop-shadow(0 0 30px rgba(6, 182, 212, 0.6));
  animation: drinkFloat 3s ease-in-out infinite;
}

/* Jeux révolutionnaires */

.play-categories-revolutionary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 32px;
  padding: 32px;
  max-width: none;
  width: 100%;
}

.play-categories-revolutionary .play-category {
  background: linear-gradient(135deg, rgba(139, 92, 246, 0.1), rgba(167, 139, 250, 0.05));
  -webkit-backdrop-filter: blur(15px);
          backdrop-filter: blur(15px);
  border-radius: 24px;
  border: 2px solid rgba(139, 92, 246, 0.2);
  overflow: hidden;
  box-shadow: 
        0 20px 40px rgba(0, 0, 0, 0.3),
        0 0 40px rgba(139, 92, 246, 0.2);
}

.play-categories-revolutionary .category-items {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 16px;
  padding: 24px;
}

.play-categories-revolutionary .item-card.play-card {
  background: linear-gradient(135deg, rgba(139, 92, 246, 0.1), rgba(167, 139, 250, 0.05));
  border: 2px solid rgba(139, 92, 246, 0.2);
  min-height: 160px;
}

.play-categories-revolutionary .item-card.play-card:hover {
  border-color: rgba(139, 92, 246, 0.5);
  background: linear-gradient(135deg, rgba(139, 92, 246, 0.2), rgba(167, 139, 250, 0.1));
  box-shadow: 
        0 15px 35px rgba(0, 0, 0, 0.3),
        0 0 40px rgba(139, 92, 246, 0.4);
}

/* Animations pour items */

@keyframes iconPulse {
  0%, 100% { transform: scale(1);
  }

  50% { transform: scale(1.05);
  }
}

@keyframes drinkFloat {
  0%, 100% { transform: translateY(0px) rotate(0deg);
  }

  33% { transform: translateY(-5px) rotate(2deg);
  }

  66% { transform: translateY(-2px) rotate(-2deg);
  }
}

@keyframes shimmer {
  0% { left: -100%;
  }

  100% { left: 100%;
  }
}

/* =============================================================================
   📱 RESPONSIVE - MOBILE PERFECT
   ============================================================================= */

@media (max-width: 768px) {
  .perfect-integration-layout {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 16px;
  }

  .olive-display-with-stats {
    padding: 24px;
  }

  .stat-position-0,
    .stat-position-1,
    .stat-position-2 {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    bottom: auto;
    transform: none;
    margin: 8px;
  }

  .stats-around-svg {
    position: relative;
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 20px;
  }

  .modal-olive-display-revolutionary {
    padding: 24px;
  }

  .modal-stat-0,
    .modal-stat-1,
    .modal-stat-2 {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    bottom: auto;
    transform: none;
    margin: 8px;
  }

  .olive-stats-modal-overlay {
    position: relative;
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 20px;
  }
}

/* =============================================================================
   🔊 CONTRÔLES AUDIO IMMERSIFS
   ============================================================================= */

.audio-controls-panel {
  position: fixed;
  top: 20px;
  right: 20px;
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--audio-background);
  -webkit-backdrop-filter: blur(20px);
          backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 25px;
  padding: 8px 15px;
  box-shadow: var(--shadow-floating);
  z-index: 9999;
  transition: all var(--supreme-duration-normal) var(--supreme-transition);
  transform: var(--gpu-acceleration);
}

.audio-controls-panel:hover {
  background: rgba(0, 0, 0, 0.4);
  border-color: var(--supreme-primary);
  box-shadow: 
        var(--shadow-floating),
        0 0 20px rgba(0, 255, 136, 0.3);
  transform: translateY(-2px) var(--gpu-acceleration);
}

.audio-toggle-btn {
  background: none;
  border: none;
  font-size: 1.2rem;
  cursor: pointer;
  padding: 5px;
  border-radius: 50%;
  transition: all var(--supreme-duration-fast) var(--supreme-transition);
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  min-height: 30px;
}

.audio-toggle-btn:hover {
  background: rgba(255, 255, 255, 0.1);
  transform: scale(1.1) var(--gpu-acceleration);
}

.audio-toggle-btn:active {
  transform: scale(0.95) var(--gpu-acceleration);
}

.volume-control {
  display: flex;
  align-items: center;
  position: relative;
}

.volume-slider {
  width: 80px;
  height: 4px;
  background: var(--volume-track);
  border-radius: 2px;
  outline: none;
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  transition: all var(--supreme-duration-fast) var(--supreme-transition);
}

.volume-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 14px;
  height: 14px;
  background: var(--volume-thumb);
  border-radius: 50%;
  cursor: pointer;
  box-shadow: 0 0 10px rgba(0, 255, 136, 0.5);
  -webkit-transition: all var(--supreme-duration-fast) var(--supreme-transition);
  transition: all var(--supreme-duration-fast) var(--supreme-transition);
}

.volume-slider::-moz-range-thumb {
  width: 14px;
  height: 14px;
  background: var(--volume-thumb);
  border-radius: 50%;
  cursor: pointer;
  border: none;
  box-shadow: 0 0 10px rgba(0, 255, 136, 0.5);
  -moz-transition: all var(--supreme-duration-fast) var(--supreme-transition);
  transition: all var(--supreme-duration-fast) var(--supreme-transition);
}

.volume-slider:hover {
  background: rgba(255, 255, 255, 0.3);
}

.volume-slider:hover::-webkit-slider-thumb {
  transform: scale(1.2);
  box-shadow: 0 0 15px rgba(0, 255, 136, 0.8);
}

.volume-slider:hover::-moz-range-thumb {
  transform: scale(1.2);
  box-shadow: 0 0 15px rgba(0, 255, 136, 0.8);
}

.volume-slider::-webkit-slider-track {
  background: var(--volume-track);
  border-radius: 2px;
}

.volume-slider::-moz-range-track {
  background: var(--volume-track);
  border-radius: 2px;
  border: none;
}

/* Mobile responsiveness pour les contrôles audio */

@media (max-width: 768px) {
  .audio-controls-panel {
    top: 15px;
    right: 15px;
    padding: 6px 12px;
    gap: 8px;
  }

  .audio-toggle-btn {
    font-size: 1rem;
    min-width: 25px;
    min-height: 25px;
  }

  .volume-slider {
    width: 60px;
    height: 3px;
  }

  .volume-slider::-webkit-slider-thumb {
    width: 12px;
    height: 12px;
  }

  .volume-slider::-moz-range-thumb {
    width: 12px;
    height: 12px;
  }
}

/* Animation d'apparition */

@keyframes audioControlsAppear {
  from {
    opacity: 0;
    transform: translateY(-20px) scale(0.8);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.audio-controls-panel {
  animation: audioControlsAppear var(--supreme-duration-normal) var(--supreme-transition);
}

/* Indicateur de niveau sonore (pour feedback visuel) */

.volume-indicator {
  position: absolute;
  top: -30px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--audio-background);
  color: var(--supreme-primary);
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 0.7rem;
  opacity: 0;
  transition: opacity var(--supreme-duration-fast);
  pointer-events: none;
  white-space: nowrap;
}

.volume-control:hover .volume-indicator {
  opacity: 1;
}

/* Préférences utilisateur - Accessibilité */

@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* Performance Monitor Icône Discrète */

.performance-monitor-icon {
  position: absolute;
  top: 8px;
  left: 8px;
  z-index: 1001;
}

.perf-icon-button {
  width: 24px;
  height: 24px;
  border: none;
  background: rgba(0, 0, 0, 0.5);
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.7rem;
  transition: all var(--supreme-duration-normal) var(--supreme-transition);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  opacity: 0.3;
}

.perf-icon-button:hover {
  opacity: 1;
  background: rgba(0, 0, 0, 0.8);
  transform: scale(1.1);
}

/* Focus pour l'accessibilité */

.olive-supreme-container:focus-within {
  outline: 3px solid var(--supreme-primary);
  outline-offset: 3px;
}

.action-button:focus,
.action-btn:focus,
.tab:focus,
.settings-button:focus,
.close-button:focus,
.perf-icon-button:focus {
  outline: 2px solid var(--supreme-primary);
  outline-offset: 2px;
}

/* =============================================================================
   🎯 BOUTONS V2.0 RÉVOLUTIONNAIRES - NOUVELLE INTERFACE
   ============================================================================= */

.v2-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: none;
  border-radius: 12px;
  font-size: 1.2rem;
  cursor: pointer;
  transition: all var(--supreme-duration-normal) var(--supreme-transition);
  background: linear-gradient(135deg, var(--glass-dark-medium), var(--glass-dark-light));
  -webkit-backdrop-filter: blur(15px);
          backdrop-filter: blur(15px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: white;
  position: relative;
  overflow: hidden;
}

.v2-button::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
  transition: left 0.6s ease;
}

.v2-button:hover::before {
  left: 100%;
}

.v2-button:hover {
  transform: translateY(-2px) scale(1.05);
  background: linear-gradient(135deg, var(--glass-dark-strong), var(--glass-dark-medium));
  border-color: rgba(255, 255, 255, 0.3);
  box-shadow: 
        0 8px 25px rgba(0, 0, 0, 0.3),
        0 0 20px rgba(255, 255, 255, 0.1);
}

.v2-button:active {
  transform: translateY(0) scale(0.95);
  transition-duration: 0.1s;
}

/* Styles spécifiques pour chaque bouton V2.0 */

.profile-creator-button:hover {
  box-shadow: 
        0 8px 25px rgba(0, 0, 0, 0.3),
        0 0 20px rgba(52, 211, 153, 0.4);
  border-color: rgba(52, 211, 153, 0.6);
}

.leaderboard-button:hover {
  box-shadow: 
        0 8px 25px rgba(0, 0, 0, 0.3),
        0 0 20px rgba(255, 215, 0, 0.4);
  border-color: rgba(255, 215, 0, 0.6);
}

.events-button:hover {
  box-shadow: 
        0 8px 25px rgba(0, 0, 0, 0.3),
        0 0 20px rgba(147, 51, 234, 0.4);
  border-color: rgba(147, 51, 234, 0.6);
}

/* Animation de pulse pour attirer l'attention */

@keyframes v2-pulse {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
  }

  50% {
    transform: scale(1.05);
    opacity: 0.8;
  }
}

.v2-button.attention {
  animation: v2-pulse 2s infinite;
}

/* Effet de particules au clic */

.v2-button.clicked::after {
  content: '✨';
  position: absolute;
  top: -10px;
  right: -10px;
  animation: sparkle 0.6s ease-out;
  pointer-events: none;
}

/* Responsive pour mobile */

@media (max-width: 768px) {
  .v2-button {
    width: 36px;
    height: 36px;
    font-size: 1rem;
  }
}

/* =============================================================================
   🎭 AFFICHAGE MOOD DANS HEADER - SOUS LE NIVEAU
   ============================================================================= */

.mood-display-header {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 1.2rem;
  margin: 4px 0;
  text-align: center;
  animation: float 3s ease-in-out infinite;
}

.mood-display-header:hover {
  transform: scale(1.2);
  transition: transform 0.2s ease;
}

/* =============================================================================
   🎮 BOUTONS TAMAGOTCHI EXPERTS - INTERACTIONS RÉVOLUTIONNAIRES
   ============================================================================= */

.expert-tamagotchi-actions {
  margin: 20px 0;
  padding: 15px;
  background: linear-gradient(135deg, var(--glass-dark-light), var(--glass-dark-medium));
  -webkit-backdrop-filter: blur(20px);
          backdrop-filter: blur(20px);
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.interaction-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 15px;
}

.special-actions {
  display: flex;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
}

.tamagotchi-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 12px 8px;
  border: none;
  border-radius: 15px;
  cursor: pointer;
  transition: all var(--supreme-duration-normal) var(--supreme-transition);
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.05));
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: white;
  font-size: 0.8rem;
  font-weight: 300;
  min-height: 70px;
  position: relative;
  overflow: hidden;
}

.tamagotchi-btn::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.15), transparent);
  transition: left 0.5s ease;
}

.tamagotchi-btn:hover::before {
  left: 100%;
}

.action-icon {
  font-size: 1.8rem;
  margin-bottom: 4px;
  transform: scale(1);
  transition: transform 0.2s ease;
}

.action-label {
  font-size: 0.7rem;
  text-align: center;
  opacity: 0.9;
  font-weight: 200;
}

.tamagotchi-btn:hover {
  transform: translateY(-3px) scale(1.05);
  border-color: rgba(255, 255, 255, 0.3);
  box-shadow: 
        0 10px 30px rgba(0, 0, 0, 0.3),
        0 0 25px rgba(255, 255, 255, 0.1);
}

.tamagotchi-btn:hover .action-icon {
  transform: scale(1.2);
}

.tamagotchi-btn:active {
  transform: translateY(-1px) scale(0.95);
  transition-duration: 0.1s;
}

/* Styles spécifiques par catégorie d'action */

.vital-action:hover {
  background: linear-gradient(135deg, rgba(34, 197, 94, 0.2), rgba(34, 197, 94, 0.1));
  border-color: rgba(34, 197, 94, 0.4);
  box-shadow: 
        0 10px 30px rgba(0, 0, 0, 0.3),
        0 0 25px rgba(34, 197, 94, 0.3);
}

.social-action:hover {
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.2), rgba(59, 130, 246, 0.1));
  border-color: rgba(59, 130, 246, 0.4);
  box-shadow: 
        0 10px 30px rgba(0, 0, 0, 0.3),
        0 0 25px rgba(59, 130, 246, 0.3);
}

.emergency-action:hover {
  background: linear-gradient(135deg, rgba(239, 68, 68, 0.2), rgba(239, 68, 68, 0.1));
  border-color: rgba(239, 68, 68, 0.4);
  box-shadow: 
        0 10px 30px rgba(0, 0, 0, 0.3),
        0 0 25px rgba(239, 68, 68, 0.4);
  animation: emergency-pulse 1.5s infinite;
}

.discipline-action:hover {
  background: linear-gradient(135deg, rgba(245, 158, 11, 0.2), rgba(245, 158, 11, 0.1));
  border-color: rgba(245, 158, 11, 0.4);
  box-shadow: 
        0 10px 30px rgba(0, 0, 0, 0.3),
        0 0 25px rgba(245, 158, 11, 0.3);
}

.reward-action:hover {
  background: linear-gradient(135deg, rgba(236, 72, 153, 0.2), rgba(236, 72, 153, 0.1));
  border-color: rgba(236, 72, 153, 0.4);
  box-shadow: 
        0 10px 30px rgba(0, 0, 0, 0.3),
        0 0 25px rgba(236, 72, 153, 0.3);
  animation: reward-sparkle 2s infinite;
}

/* Animations spéciales */

@keyframes emergency-pulse {
  0%, 100% {
    box-shadow: 
            0 10px 30px rgba(0, 0, 0, 0.3),
            0 0 25px rgba(239, 68, 68, 0.4);
  }

  50% {
    box-shadow: 
            0 10px 30px rgba(0, 0, 0, 0.3),
            0 0 35px rgba(239, 68, 68, 0.6);
  }
}

@keyframes reward-sparkle {
  0%, 100% {
    box-shadow: 
            0 10px 30px rgba(0, 0, 0, 0.3),
            0 0 25px rgba(236, 72, 153, 0.3);
  }

  25% {
    box-shadow: 
            0 10px 30px rgba(0, 0, 0, 0.3),
            0 0 35px rgba(236, 72, 153, 0.5);
  }

  50% {
    box-shadow: 
            0 10px 30px rgba(0, 0, 0, 0.3),
            0 0 30px rgba(255, 215, 0, 0.4);
  }

  75% {
    box-shadow: 
            0 10px 30px rgba(0, 0, 0, 0.3),
            0 0 35px rgba(236, 72, 153, 0.5);
  }
}

/* Effet de feedback au clic */

.tamagotchi-btn.clicked {
  animation: click-feedback 0.4s ease-out;
}

@keyframes click-feedback {
  0% { transform: scale(1);
  }

  50% {
    transform: scale(0.9);
    box-shadow: 
            0 5px 15px rgba(0, 0, 0, 0.4),
            inset 0 2px 10px rgba(255, 255, 255, 0.2);
  }

  100% { transform: scale(1);
  }
}

/* Responsive design */

@media (max-width: 768px) {
  .interaction-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }

  .tamagotchi-btn {
    padding: 10px 6px;
    min-height: 60px;
  }

  .action-icon {
    font-size: 1.5rem;
  }

  .action-label {
    font-size: 0.65rem;
  }
}

@media (max-width: 480px) {
  .expert-tamagotchi-actions {
    padding: 10px;
    margin: 15px 0;
  }

  .interaction-grid {
    gap: 6px;
  }

  .tamagotchi-btn {
    min-height: 55px;
    padding: 8px 4px;
  }

  .action-icon {
    font-size: 1.3rem;
  }

  .action-label {
    font-size: 0.6rem;
  }
}

/* =============================================================================
   🌟 MODALES RÉVOLUTIONNAIRES - EFFET WAHOU EXPERT
   ============================================================================= */

.expert-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.8);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: modalFadeIn 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.expert-modal-overlay.closing {
  animation: modalFadeOut 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.expert-modal-backdrop {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  cursor: pointer;
}

.expert-modal-container {
  background: linear-gradient(135deg, rgba(0, 0, 0, 0.95), rgba(0, 0, 0, 0.85));
  -webkit-backdrop-filter: blur(30px);
          backdrop-filter: blur(30px);
  border-radius: 24px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  box-shadow: 
        0 30px 60px rgba(0, 0, 0, 0.7),
        0 0 80px rgba(52, 211, 153, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.15);
  width: 98vw !important;
  height: 95vh !important;
  max-width: none !important;
  max-height: none !important;
  position: fixed;
  top: 2.5vh;
  left: 1vw;
  overflow-y: auto;
  z-index: 9999;
  animation: modalSlideIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
  transform: translateZ(0); /* GPU acceleration */
}

.expert-modal-container.opening {
  animation: modalSlideIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.expert-modal-container.closing {
  animation: modalSlideOut 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.expert-modal-header {
  padding: 24px 32px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  background: linear-gradient(135deg, rgba(52, 211, 153, 0.1), rgba(6, 182, 212, 0.05));
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  overflow: hidden;
}

.expert-modal-header::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
  animation: shimmer 3s infinite;
}

.modal-title {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.modal-title-icon {
  font-size: 2.5rem;
  filter: drop-shadow(0 0 20px rgba(52, 211, 153, 0.6));
  animation: float 3s ease-in-out infinite;
}

.modal-title-text {
  font-size: 1.8rem;
  font-weight: 400;
  background: linear-gradient(135deg, #34d399, #06b6d4, #8b5cf6);
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  text-shadow: 0 0 30px rgba(52, 211, 153, 0.3);
}

.modal-title-subtitle {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.7);
  font-style: italic;
}

.modal-close-btn {
  width: 40px;
  height: 40px;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.7);
  font-size: 1.2rem;
  cursor: pointer;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.modal-close-btn:hover {
  background: rgba(239, 68, 68, 0.2);
  color: #ef4444;
  transform: scale(1.1);
}

.expert-modal-content {
  padding: 0;
  max-height: calc(95vh - 140px);
  min-height: 70vh;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: rgba(52, 211, 153, 0.3) transparent;
}

.expert-modal-content::-webkit-scrollbar {
  width: 6px;
}

.expert-modal-content::-webkit-scrollbar-track {
  background: transparent;
}

.expert-modal-content::-webkit-scrollbar-thumb {
  background: rgba(52, 211, 153, 0.3);
  border-radius: 3px;
}

/* =============================================================================
   🍎 SYSTÈME DE NOURRITURE - DESIGN EXPERT
   ============================================================================= */

.food-categories, .play-categories {
  padding: 20px;
}

.food-category, .play-category {
  margin-bottom: 32px;
}

.category-header {
  padding: 16px 24px;
  border-radius: 16px 16px 0 0;
  margin-bottom: 0;
  position: relative;
  overflow: hidden;
}

.category-header::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
  animation: shimmer 4s infinite;
  animation-delay: calc(var(--category-index, 0) * 0.5s);
}

.category-header h3 {
  margin: 0;
  font-size: 1.3rem;
  font-weight: 400;
  color: white;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
}

.category-items {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 16px;
  padding: 24px;
  background: rgba(0, 0, 0, 0.2);
  border-radius: 0 0 16px 16px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-top: none;
  max-height: 50vh;
  overflow-y: auto;
}

.category-items.drinks {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.item-card {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.08));
  -webkit-backdrop-filter: blur(15px);
          backdrop-filter: blur(15px);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 16px;
  padding: 12px;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  min-height: 110px;
  max-height: 140px;
  word-wrap: break-word;
}

.item-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
  transition: left 0.6s ease;
}

.item-card:hover::before {
  left: 100%;
}

.item-card:hover {
  transform: translateY(-8px) scale(1.05);
  border-color: rgba(255, 255, 255, 0.4);
  box-shadow: 
        0 20px 40px rgba(0, 0, 0, 0.3),
        0 0 30px rgba(52, 211, 153, 0.3);
}

.item-card:active {
  transform: translateY(-4px) scale(0.98);
  transition-duration: 0.1s;
}

.item-icon, .item-icon-large {
  font-size: 2rem;
  margin-bottom: 6px;
  filter: drop-shadow(0 0 12px rgba(52, 211, 153, 0.4));
  transition: transform 0.3s ease;
  line-height: 1;
}

.item-icon-large {
  font-size: 2.5rem;
}

.item-card:hover .item-icon,
.item-card:hover .item-icon-large {
  transform: scale(1.2);
}

.item-name {
  font-size: 0.8rem;
  font-weight: 300;
  color: white;
  margin-bottom: 6px;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
  line-height: 1.2;
  max-height: 2.4em;
  overflow: hidden;
  text-overflow: ellipsis;
}

.item-effects {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  justify-content: center;
  margin-bottom: 8px;
}

.effect {
  font-size: 0.7rem;
  padding: 2px 6px;
  border-radius: 12px;
  font-weight: 200;
  white-space: nowrap;
}

.effect.happiness { background: rgba(236, 72, 153, 0.2); color: #ec4899;
}

.effect.health { background: rgba(239, 68, 68, 0.2); color: #ef4444;
}

.effect.health-neg { background: rgba(239, 68, 68, 0.3); color: #fca5a5;
}

.effect.energy { background: rgba(59, 130, 246, 0.2); color: #3b82f6;
}

.effect.energy-neg { background: rgba(59, 130, 246, 0.3); color: #93c5fd;
}

.effect.intelligence { background: rgba(147, 51, 234, 0.2); color: #9333ea;
}

.effect.creativity { background: rgba(236, 72, 153, 0.2); color: #ec4899;
}

.item-rarity {
  font-size: 0.65rem;
  font-weight: 300;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 4px;
}

.item-card.common .item-rarity { color: #9ca3af;
}

.item-card.uncommon .item-rarity { color: #10b981;
}

.item-card.rare .item-rarity { color: #3b82f6;
}

.item-card.epic .item-rarity { color: #8b5cf6;
}

.item-card.legendary .item-rarity { color: #f59e0b;
}

.item-card.mythic .item-rarity { color: #ec4899;
}

.item-card.cosmic .item-rarity {
  color: #34d399;
  text-shadow: 0 0 10px #34d399;
  animation: cosmic-glow 2s infinite alternate;
}

.item-price {
  font-size: 0.7rem;
  color: #fbbf24;
  font-weight: 300;
}

.item-duration {
  font-size: 0.65rem;
  color: rgba(255, 255, 255, 0.6);
  text-transform: uppercase;
  letter-spacing: 0.3px;
}

/* Compteurs sur les boutons d'action */

.action-count {
  position: absolute;
  top: -2px;
  right: -2px;
  background: linear-gradient(135deg, #ef4444, #dc2626);
  color: white;
  font-size: 0.6rem;
  font-weight: 400;
  padding: 2px 5px;
  border-radius: 10px;
  box-shadow: 0 2px 8px rgba(239, 68, 68, 0.4);
  animation: pulse-count 2s infinite;
}

/* Animations */

@keyframes modalFadeIn {
  from { opacity: 0;
  }

  to { opacity: 1;
  }
}

@keyframes modalFadeOut {
  from { opacity: 1;
  }

  to { opacity: 0;
  }
}

@keyframes modalSlideIn {
  from {
    opacity: 0;
    transform: scale(0.7) translateY(50px);
  }

  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

@keyframes modalSlideOut {
  from {
    opacity: 1;
    transform: scale(1) translateY(0);
  }

  to {
    opacity: 0;
    transform: scale(0.8) translateY(30px);
  }
}

@keyframes shimmer {
  0% { left: -100%;
  }

  50% { left: 100%;
  }

  100% { left: 100%;
  }
}

@keyframes cosmic-glow {
  0% { text-shadow: 0 0 10px #34d399;
  }

  100% { text-shadow: 0 0 20px #34d399, 0 0 30px #06b6d4;
  }
}

@keyframes pulse-count {
  0%, 100% { transform: scale(1);
  }

  50% { transform: scale(1.1);
  }
}

/* 🎭 ANIMATIONS ÉMOTIONNELLES PARFAITES */

/* Émotions de base */

@keyframes bounce-gentle {
  0%, 100% { transform: translate(-50%, -50%) scale(1);
  }

  50% { transform: translate(-50%, -50%) scale(1.1);
  }
}

@keyframes wiggle-fast {
  0%, 100% { transform: translate(-50%, -50%) rotate(0deg);
  }

  25% { transform: translate(-50%, -50%) rotate(-5deg);
  }

  75% { transform: translate(-50%, -50%) rotate(5deg);
  }
}

@keyframes munch-cycle {
  0%, 100% { transform: translate(-50%, -50%) scaleX(1);
  }

  50% { transform: translate(-50%, -50%) scaleX(0.9);
  }
}

@keyframes play-bounce {
  0%, 100% { transform: translate(-50%, -50%) scale(1) rotate(0deg);
  }

  25% { transform: translate(-50%, -50%) scale(1.05) rotate(-2deg);
  }

  75% { transform: translate(-50%, -50%) scale(1.05) rotate(2deg);
  }
}

@keyframes sleep-drift {
  0%, 100% { transform: translate(-50%, -50%) translateY(0px);
  }

  50% { transform: translate(-50%, -50%) translateY(-3px);
  }
}

@keyframes heart-pulse {
  0%, 100% { transform: translate(-50%, -50%) scale(1);
  }

  50% { transform: translate(-50%, -50%) scale(1.2);
  }
}

@keyframes think-pulse {
  0%, 100% { transform: translate(-50%, -50%) scale(1);
  }

  25% { transform: translate(-50%, -50%) scale(1.05);
  }

  75% { transform: translate(-50%, -50%) scale(1.1);
  }
}

@keyframes adventure-bounce {
  0%, 100% { transform: translate(-50%, -50%) scale(1) rotate(0deg);
  }

  33% { transform: translate(-50%, -50%) scale(1.08) rotate(3deg);
  }

  66% { transform: translate(-50%, -50%) scale(1.08) rotate(-3deg);
  }
}

@keyframes subtle-float {
  0%, 100% { transform: translate(-50%, -50%) translateY(0px);
  }

  50% { transform: translate(-50%, -50%) translateY(-1px);
  }
}

/* Nouvelles animations pour émotions bonus */

@keyframes angry-shake {
  0%, 100% { transform: translate(-50%, -50%) rotate(0deg);
  }

  10% { transform: translate(-50%, -50%) rotate(-2deg);
  }

  20% { transform: translate(-50%, -50%) rotate(2deg);
  }

  30% { transform: translate(-50%, -50%) rotate(-2deg);
  }

  40% { transform: translate(-50%, -50%) rotate(2deg);
  }

  50% { transform: translate(-50%, -50%) rotate(0deg);
  }
}

@keyframes sad-droop {
  0%, 100% { transform: translate(-50%, -50%) translateY(0px) scale(1);
  }

  50% { transform: translate(-50%, -50%) translateY(2px) scale(0.98);
  }
}

@keyframes surprise-jump {
  0%, 100% { transform: translate(-50%, -50%) scale(1) translateY(0px);
  }

  30% { transform: translate(-50%, -50%) scale(1.15) translateY(-5px);
  }

  60% { transform: translate(-50%, -50%) scale(1.05) translateY(-2px);
  }
}

/* Particules flottantes */

@keyframes particle-float {
  0%, 100% {
    transform: translate(-50%, -50%) translateY(0px) scale(1);
    opacity: 0.6;
  }

  50% {
    transform: translate(-50%, -50%) translateY(-8px) scale(1.1);
    opacity: 1;
  }
}

/* Aura émotionnelle */

@keyframes aura-pulse {
  0%, 100% {
    transform: scale(0.9);
    opacity: 0.3;
  }

  50% {
    transform: scale(1.1);
    opacity: 0.6;
  }
}

/* Conteneur émotionnel */

.emotional-olive-container {
  transition: all 0.3s ease;
}

.emotional-olive-container:hover {
  transform: scale(1.02);
}

.emotion-overlay {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  pointer-events: none;
  text-shadow: 0 0 10px currentColor;
  transition: all 0.3s ease;
}

.particle {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  pointer-events: none;
}

.emotion-aura {
  pointer-events: none;
}

/* 🎭 STYLES MODALES ÉMOTIONNELLES */

.modal-olive-display {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 32px;
  background: radial-gradient(circle, rgba(52, 211, 153, 0.1) 0%, transparent 50%);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  margin-bottom: 20px;
}

.modal-olive-svg {
  margin-bottom: 16px;
  filter: drop-shadow(0 0 30px rgba(52, 211, 153, 0.5)) !important;
}

.olive-reaction-text {
  color: white;
  font-size: 1.1rem;
  font-weight: 300;
  text-align: center;
  background: linear-gradient(135deg, #34d399, #06b6d4, #8b5cf6);
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  text-shadow: 0 0 20px rgba(52, 211, 153, 0.3);
  animation: text-glow 3s ease-in-out infinite;
}

@keyframes text-glow {
  0%, 100% {
    text-shadow: 0 0 20px rgba(52, 211, 153, 0.3);
  }

  50% {
    text-shadow: 0 0 30px rgba(52, 211, 153, 0.6);
  }
}

.game-olive-wrapper {
  cursor: pointer;
  transition: transform 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.game-olive-wrapper:hover {
  transform: scale(1.05);
}

.game-olive-emotional {
  filter: drop-shadow(0 0 25px rgba(52, 211, 153, 0.6)) !important;
}

/* Styles pour les icônes Font Awesome discrètes */

.emotion-icon {
  transition: all 0.3s ease;
  opacity: 0.85 !important;
}

.emotion-overlay {
  background: rgba(0, 0, 0, 0.2);
  border-radius: 50%;
  padding: 4px;
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 🚨 MODALES DANS CONTAINER OLIVE SUPREME - DEEP FIX */

.olive-supreme-container .expert-modal-overlay {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background: rgba(0, 0, 0, 0.85) !important;
  -webkit-backdrop-filter: blur(15px) !important;
          backdrop-filter: blur(15px) !important;
  z-index: 1000 !important;
  border-radius: 30px !important;
  overflow: hidden !important;
}

.olive-supreme-container .expert-modal-container {
  position: relative !important;
  top: 0 !important;
  left: 0 !important;
  transform: none !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  border-radius: 30px !important;
  background: linear-gradient(135deg, rgba(0, 0, 0, 0.95), rgba(0, 0, 0, 0.85)) !important;
  border: 2px solid rgba(52, 211, 153, 0.3) !important;
}

.olive-supreme-container .expert-modal-content {
  height: calc(100% - 80px) !important;
  max-height: none !important;
  min-height: none !important;
  padding: 0 !important;
  overflow-y: auto !important;
}

.olive-supreme-container .expert-modal-header {
  height: 80px !important;
  min-height: 80px !important;
  padding: 20px 30px !important;
  border-bottom: 2px solid rgba(52, 211, 153, 0.2) !important;
}

.olive-supreme-container .modal-olive-display {
  padding: 20px !important;
  margin-bottom: 10px !important;
}

.olive-supreme-container .category-items {
  max-height: calc(100vh - 300px) !important;
  min-height: 400px !important;
  padding: 20px !important;
}

.olive-supreme-container .food-categories,
.olive-supreme-container .play-categories {
  padding: 15px !important;
  height: 100% !important;
}

/* Backdrop dans container */

.olive-supreme-container .expert-modal-backdrop {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  background: transparent !important;
  cursor: pointer !important;
}

/* 🌟 LOADING COMPONENT RÉVOLUTIONNAIRE - EFFET WAHOU */

.loading-wahou-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 200px;
  padding: 40px 20px;
  background: radial-gradient(circle at center, rgba(52, 211, 153, 0.1) 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  border-radius: 20px;
  zoom:0.7;
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
}

/* Particules flottantes */

.particles-container {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
}

.loading-particle {
  position: absolute;
  border-radius: 50%;
  opacity: 0.6;
  animation: float-particle 4s ease-in-out infinite;
}

@keyframes float-particle {
  0%, 100% {
    transform: translateY(0px) scale(1);
    opacity: 0.6;
  }

  50% {
    transform: translateY(-20px) scale(1.2);
    opacity: 1;
  }
}

/* Icône principale */

.loading-icon-container {
  position: relative;
  z-index: 3;
  margin-bottom: 20px;
}

.loading-icon-glow {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.1);
  -webkit-backdrop-filter: blur(15px);
          backdrop-filter: blur(15px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  animation: icon-pulse 2s ease-in-out infinite;
}

.loading-icon {
  font-size: 2.5rem;
  animation: icon-rotate 3s linear infinite;
}

@keyframes icon-pulse {
  0%, 100% {
    transform: scale(1);
    filter: brightness(1);
  }

  50% {
    transform: scale(1.1);
    filter: brightness(1.3);
  }
}

@keyframes icon-rotate {
  0% { transform: rotate(0deg);
  }

  100% { transform: rotate(360deg);
  }
}

/* Titre avec gradient */

.loading-title {
  font-size: 1.8rem;
  font-weight: 400;
  margin-bottom: 8px;
  text-align: center;
  z-index: 3;
  position: relative;
  text-shadow: 0 0 20px rgba(255, 255, 255, 0.3);
  animation: title-glow 3s ease-in-out infinite alternate;
}

@keyframes title-glow {
  0% {
    text-shadow: 0 0 20px rgba(255, 255, 255, 0.3);
    transform: scale(1);
  }

  100% {
    text-shadow: 0 0 30px rgba(255, 255, 255, 0.6);
    transform: scale(1.02);
  }
}

/* Sous-titre */

.loading-subtitle {
  color: rgba(255, 255, 255, 0.8);
  font-size: 1rem;
  text-align: center;
  margin-bottom: 20px;
  z-index: 3;
  position: relative;
  font-style: italic;
}

/* Message contextuel */

.loading-message {
  min-height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 25px;
  z-index: 3;
  position: relative;
}

.loading-message-text {
  font-size: 0.95rem;
  font-weight: 300;
  text-align: center;
  animation: message-fade-in 0.8s ease-out;
}

@keyframes message-fade-in {
  0% {
    opacity: 0;
    transform: translateY(10px);
  }

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

/* Barre de progression */

.loading-progress-container {
  width: 100%;
  max-width: 300px;
  margin-bottom: 20px;
  z-index: 3;
  position: relative;
}

.loading-progress-bg {
  width: 100%;
  height: 6px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 3px;
  overflow: hidden;
  position: relative;
  border: 1px solid rgba(255, 255, 255, 0.2);
}

.loading-progress-fill {
  height: 100%;
  border-radius: 3px;
  transition: width 0.3s ease;
  position: relative;
}

.loading-progress-fill::after {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
  animation: progress-shimmer 2s infinite;
}

@keyframes progress-shimmer {
  0% { left: -100%;
  }

  100% { left: 100%;
  }
}

.loading-progress-text {
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.8rem;
  font-weight: 400;
  position: absolute;
  top: -25px;
  right: 0;
  text-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
}

/* Points de chargement */

.loading-dots {
  display: flex;
  gap: 8px;
  z-index: 3;
  position: relative;
}

.loading-dots span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  animation: dot-bounce 1.4s ease-in-out infinite both;
}

.loading-dots span:nth-child(1) { animation-delay: -0.32s;
}

.loading-dots span:nth-child(2) { animation-delay: -0.16s;
}

.loading-dots span:nth-child(3) { animation-delay: 0s;
}

@keyframes dot-bounce {
  0%, 80%, 100% {
    transform: scale(0.8);
    opacity: 0.5;
  }

  40% {
    transform: scale(1.2);
    opacity: 1;
  }
}

/* Styles pour les anciennes classes de loading */

.olive-supreme-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 300px;
  text-align: center;
  background: radial-gradient(circle, rgba(52, 211, 153, 0.1) 0%, transparent 50%);
  border-radius: 20px;
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
}

.loading-animation {
  font-size: 3rem;
  animation: pulse-glow 2s ease-in-out infinite;
  margin-bottom: 20px;
}

@keyframes pulse-glow {
  0%, 100% {
    transform: scale(1);
    filter: drop-shadow(0 0 20px rgba(52, 211, 153, 0.6));
  }

  50% {
    transform: scale(1.2);
    filter: drop-shadow(0 0 40px rgba(52, 211, 153, 0.9));
  }
}

.olive-supreme-loading p {
  color: rgba(255, 255, 255, 0.9);
  font-size: 1.2rem;
  font-weight: 300;
  margin: 0;
  animation: text-fade-in 2s ease-in-out infinite alternate;
}

@keyframes text-fade-in {
  0% { opacity: 0.7;
  }

  100% { opacity: 1;
  }
}

/* Mobile responsive - Modales Perfectionnées */

@media (max-width: 768px) {
  .expert-modal-container {
    width: 98vw !important;
    height: 95vh !important;
    max-height: none !important;
    border-radius: 16px;
    top: 2.5vh;
    left: 1vw;
  }

  /* Modales dans container mobile */

  .olive-supreme-container .expert-modal-container {
    border-radius: 20px !important;
  }

  .olive-supreme-container .expert-modal-header {
    height: 60px !important;
    padding: 15px 20px !important;
  }

  .olive-supreme-container .expert-modal-content {
    height: calc(100% - 60px) !important;
    padding: 15px !important;
  }

  .olive-supreme-container .modal-olive-display {
    padding: 15px !important;
  }

  /* Items de catégorie mobile-first */

  .category-items {
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)) !important;
    gap: 12px !important;
    padding: 15px !important;
    min-height: 300px !important;
    max-height: 60vh !important;
  }

  /* Cards d'items plus grandes sur mobile */

  .item-card {
    min-height: 120px !important;
    max-height: 160px !important;
    padding: 16px 12px !important;
    font-size: 0.9rem !important;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }

  .item-card:active {
    transform: scale(0.98) !important;
    transition: transform 0.1s ease !important;
  }

  /* Icônes d'émojis plus grandes */

  .item-card .item-emoji {
    font-size: 2.2rem !important;
    margin-bottom: 8px !important;
  }

  /* Texte des items mobile */

  .item-card .item-name {
    font-size: 0.85rem !important;
    font-weight: 300 !important;
    line-height: 1.3 !important;
    margin-bottom: 4px !important;
  }

  .item-card .item-description {
    font-size: 0.7rem !important;
    opacity: 0.8 !important;
    line-height: 1.2 !important;
  }

  /* Headers de catégories mobile */

  .category-header {
    padding: 12px 16px !important;
    margin-bottom: 0 !important;
  }

  .category-header h3 {
    font-size: 1.1rem !important;
  }

  /* Modal SVG Olive mobile */

  .modal-olive-svg {
    width: 120px !important;
    height: 120px !important;
  }

  /* Texte de réaction mobile */

  .olive-reaction-text {
    font-size: 0.95rem !important;
    padding: 0 10px !important;
  }

  /* Scrollbars mobile */

  .expert-modal-content::-webkit-scrollbar {
    width: 8px !important;
  }

  .category-items::-webkit-scrollbar {
    width: 6px !important;
    height: 6px !important;
  }

  .category-items::-webkit-scrollbar-thumb {
    background: rgba(52, 211, 153, 0.5) !important;
    border-radius: 4px !important;
  }

  /* Espacement amélioré pour le tactile */

  .food-categories, .play-categories {
    padding: 15px !important;
  }

  .food-category, .play-category {
    margin-bottom: 20px !important;
  }

  /* Feedback tactile amélioré */

  .item-card:hover {
    transform: none !important;
  }

  .item-card:focus {
    outline: 2px solid var(--supreme-primary) !important;
    outline-offset: 2px !important;
  }

  /* Headers de modales mobile */

  .modal-title-text {
    font-size: 1.3rem !important;
  }

  .modal-title-subtitle {
    font-size: 0.8rem !important;
  }

  .modal-close-btn {
    width: 36px !important;
    height: 36px !important;
    font-size: 1.4rem !important;
  }

  /* Performance mobile */

  .expert-modal-container {
    transform: translate3d(0, 0, 0) !important;
    -webkit-transform: translate3d(0, 0, 0) !important;
    backface-visibility: hidden !important;
    -webkit-backface-visibility: hidden !important;
  }

  .item-card {
    transform: translate3d(0, 0, 0) !important;
    -webkit-transform: translate3d(0, 0, 0) !important;
  }
}

/* Mobile Portrait - Optimisations supplémentaires */

@media (max-width: 480px) {
  .category-items {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px !important;
    padding: 12px !important;
  }

  .item-card {
    min-height: 100px !important;
    max-height: 140px !important;
    padding: 12px 8px !important;
  }

  .item-card .item-emoji {
    font-size: 2rem !important;
  }

  .item-card .item-name {
    font-size: 0.8rem !important;
  }

  .item-card .item-description {
    font-size: 0.65rem !important;
  }

  .expert-modal-content {
    padding: 10px !important;
  }

  .food-categories, .play-categories {
    padding: 10px !important;
  }

  .food-category, .play-category {
    margin-bottom: 15px !important;
  }
}

/* ===== SYSTÈME TOAST GLASSMORPHIQUE V2.0 ===== */

:root {
  /* Variables pour glassmorphisme toast */
  --toast-glass-bg-opacity: 0.15;
  --toast-glass-border-opacity: 0.25;
  --toast-glass-backdrop-blur: 16px;
  --toast-glass-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  --toast-glass-glow: 0 0 20px rgba(0, 0, 0, 0.1);
}

/* Base glassmorphique pour tous les toasts */

.toast-glassmorphic-base {
  backdrop-filter: blur(var(--toast-glass-backdrop-blur));
  -webkit-backdrop-filter: blur(var(--toast-glass-backdrop-blur));
  box-shadow: var(--toast-glass-shadow), var(--toast-glass-glow);
  position: relative;
  overflow: hidden;
}

/* Gradient overlay pour effet glassmorphique */

.toast-glassmorphic-base::before {
  content: '';
  position: absolute;
  inset: 0;
  background: transparent
    rgba(0,0,0,0.1) 0%, 
    rgba(0,0,0,0.05) 50%, 
    rgba(0,0,0,0.1) 100%
  );
  border-radius: inherit;
  pointer-events: none;
  z-index: 1;
}

/* Contenu du toast au-dessus du gradient */

.toast-glassmorphic-content {
  position: relative;
  z-index: 2;
}

/* Types de toasts glassmorphiques */

.toast-glass-info {
  background: transparent;
  border: 1px solid rgba(147, 197, 253, var(--toast-glass-border-opacity));
  color: rgba(147, 197, 253, 0.95);
}

.toast-glass-success {
  background: transparent;
  border: 1px solid rgba(134, 239, 172, var(--toast-glass-border-opacity));
  color: rgba(134, 239, 172, 0.95);
}

.toast-glass-warning {
  background: transparent;
  border: 1px solid rgba(253, 230, 138, var(--toast-glass-border-opacity));
  color: rgba(253, 230, 138, 0.95);
}

.toast-glass-error {
  background: transparent;
  border: 1px solid rgba(252, 165, 165, var(--toast-glass-border-opacity));
  color: rgba(252, 165, 165, 0.95);
}

.toast-glass-primary {
  background: transparent;
  border: 1px solid rgba(196, 181, 253, var(--toast-glass-border-opacity));
  color: rgba(196, 181, 253, 0.95);
}

/* Effets hover glassmorphiques */

.toast-glassmorphic-base:hover {
  transform: translateY(-2px) scale(1.02);
  box-shadow: 
    var(--toast-glass-shadow),
    var(--toast-glass-glow),
    0 0 30px rgba(0, 0, 0, 0.15);
}

/* Barre de progression glassmorphique */

.toast-progress-glass {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: transparent;
  border-radius: inherit;
  overflow: hidden;
}

.toast-progress-glass::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  border-radius: inherit;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
  transition: width 0.1s ease-linear;
}

/* Bouton d'action glassmorphique */

.toast-action-glass {
  background: transparent;
  border: 1px solid rgba(0, 0, 0, 0.25);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: rgba(0, 0, 0, 0.9);
  padding: 6px 12px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 300;
  transition: all 0.2s ease;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}

.toast-action-glass::before {
  content: '';
  position: absolute;
  inset: 0;
  /* background: transparent
    rgba(0, 0, 0, 0.1) 0%, 
    rgba(0, 0, 0, 0.05) 100%
  ); */
  border-radius: inherit;
  pointer-events: none;
}

.toast-action-glass:hover {
  background: transparent;
  border-color: rgba(0, 0, 0, 0.4);
  transform: scale(1.05);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.toast-action-glass:active {
  transform: scale(0.95);
}

/* Animations glassmorphiques */

.toast-glass-enter {
  animation: toast-glass-slide-in 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.toast-glass-exit {
  animation: toast-glass-slide-out 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes toast-glass-slide-in {
  0% {
    transform: translateX(100%) scale(0.8);
    opacity: 0;
    -webkit-backdrop-filter: blur(0px);
            backdrop-filter: blur(0px);
  }

  50% {
    transform: translateX(-5%) scale(1.05);
    opacity: 0.8;
    -webkit-backdrop-filter: blur(8px);
            backdrop-filter: blur(8px);
  }

  100% {
    transform: translateX(0) scale(1);
    opacity: 1;
    -webkit-backdrop-filter: blur(var(--toast-glass-backdrop-blur));
            backdrop-filter: blur(var(--toast-glass-backdrop-blur));
  }
}

@keyframes toast-glass-slide-out {
  0% {
    transform: translateX(0) scale(1);
    opacity: 1;
    -webkit-backdrop-filter: blur(var(--toast-glass-backdrop-blur));
            backdrop-filter: blur(var(--toast-glass-backdrop-blur));
  }

  100% {
    transform: translateX(100%) scale(0.8);
    opacity: 0;
    -webkit-backdrop-filter: blur(0px);
            backdrop-filter: blur(0px);
  }
}

/* Pile de toasts glassmorphiques */

.toast-stack-glass {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  gap: 12px;
  pointer-events: none;
}

.toast-stack-glass > * {
  pointer-events: auto;
}

/* Responsive glassmorphisme */

@media (max-width: 768px) {
  :root {
    --toast-glass-backdrop-blur: 12px;
    --toast-glass-bg-opacity: 0.2;
    --toast-glass-border-opacity: 0.3;
  }

  .toast-stack-glass {
    top: 10px;
    right: 10px;
    left: 10px;
    width: auto;
  }

  .toast-glassmorphic-base {
    font-size: 14px;
  }
}

@media (max-width: 480px) {
  .toast-stack-glass {
    top: 60px; /* Plus bas pour éviter la barre de statut mobile */
  }
}

/* Accessibilité - high contrast */

@media (prefers-contrast: high) {
  :root {
    --toast-glass-bg-opacity: 0.8;
    --toast-glass-border-opacity: 1;
    --toast-glass-backdrop-blur: 8px;
  }

  .toast-glass-info,
  .toast-glass-success,
  .toast-glass-warning,
  .toast-glass-error,
  .toast-glass-primary {
    color: rgba(0, 0, 0, 1);
  }
}

/* Reduced motion */

@media (prefers-reduced-motion: reduce) {
  .toast-glass-enter,
  .toast-glass-exit {
    animation: none;
    transition: opacity 0.2s ease;
  }

  .toast-glassmorphic-base:hover {
    transform: none;
  }

  .toast-action-glass:hover {
    transform: none;
  }
}

/* Mode sombre spécifique */

@media (prefers-color-scheme: dark) {
  :root {
    --toast-glass-bg-opacity: 0.2;
    --toast-glass-border-opacity: 0.3;
    --toast-glass-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
    --toast-glass-glow: 0 0 20px rgba(0, 0, 0, 0.05);
  }
}

/* Thème clair */

@media (prefers-color-scheme: light) {
  :root {
    --toast-glass-bg-opacity: 0.25;
    --toast-glass-border-opacity: 0.4;
    --toast-glass-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.15);
    --toast-glass-glow: 0 0 20px rgba(0, 0, 0, 0.05);
  }
}

/* Effets spéciaux pour les toasts importants */

.toast-glass-important {
  animation: toast-glass-pulse 2s infinite;
}

@keyframes toast-glass-pulse {
  0%, 100% {
    box-shadow: 
      var(--toast-glass-shadow),
      var(--toast-glass-glow);
  }

  50% {
    box-shadow: 
      var(--toast-glass-shadow),
      var(--toast-glass-glow),
      0 0 30px rgba(0, 0, 0, 0.2);
  }
}

/* Icônes glassmorphiques */

.toast-icon-glass {
  width: 20px;
  height: 20px;
  margin-right: 8px;
  opacity: 0.9;
  /* filter: drop-shadow(0 0 4px rgba(0, 0, 0, 0.3)); */
}

/* Bouton de fermeture glassmorphique */

.toast-close-glass {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 20px;
  height: 20px;
  background: transparent;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.toast-close-glass:hover {
  background: transparent;
  border-color: rgba(0, 0, 0, 0.4);
  transform: scale(1.1);
}

.toast-close-glass::before,
.toast-close-glass::after {
  content: '';
  position: absolute;
  width: 10px;
  height: 1px;
  background: transparent;
  border-radius: 1px;
}

.toast-close-glass::before {
  transform: rotate(45deg);
}

.toast-close-glass::after {
  transform: rotate(-45deg);
}

/* =============================================================================
   ULTIMATE TAMAGOTCHI STYLES - Design Glassmorphique Ultra-Moderne
   Fusion des meilleurs designs avec IA avancée
   ============================================================================= */

:root {
  /* Couleurs principales ultra-modernes */
  --glass-violet-deep: rgba(147, 51, 234, 0.95);
  --glass-violet-medium: rgba(126, 34, 206, 0.85);
  --glass-violet-light: rgba(168, 85, 247, 0.8);
  --glass-indigo-primary: rgba(99, 102, 241, 0.85);
  --glass-indigo-secondary: rgba(79, 70, 229, 0.8);
  --glass-indigo-dark: rgba(67, 56, 202, 0.9);
  /* Noir transparent pour les dégradés */
  --glass-black-transparent: rgba(0, 0, 0, 0.3);
  --glass-black-subtle: rgba(0, 0, 0, 0.15);
  --glass-black-light: rgba(0, 0, 0, 0.05);
  /* Reflets glassmorphiques */
  --glass-highlight: rgba(0, 0, 0, 0.25);
  --glass-highlight-subtle: rgba(0, 0, 0, 0.1);
  --glass-highlight-strong: rgba(0, 0, 0, 0.4);
  /* Couleurs d'accentuation */
  --accent-green: rgba(0, 255, 136, 0.8);
  --accent-blue: rgba(0, 200, 255, 0.8);
  --accent-pink: rgba(255, 20, 147, 0.8);
  --accent-gold: rgba(255, 215, 0, 0.8);
  /* Variables 3D pour le tracking */
  --mouse-x: 0;
  --mouse-y: 0;
  --rotation-x: 0deg;
  --rotation-y: 0deg;
  --tilt-intensity: 15deg;
}

/* =============================================================================
   CONTENEUR PRINCIPAL - GLASSMORPHIQUE ULTIME
   ============================================================================= */

.ultimate-tamagotchi-container {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 400px;
  min-height: 600px;
  max-height: 90vh;
  background: transparent;
  border: 2px solid rgba(0, 255, 136, 0.6);
  border-radius: 25px;
  padding: 20px;
  box-shadow: 
        0 0 40px rgba(0, 255, 136, 0.4),
        inset 0 1px 0 rgba(0, 0, 0, 0.15),
        0 20px 60px rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(20px) saturate(1.5);
  -webkit-backdrop-filter: blur(20px) saturate(1.5);
  z-index: 1000;
  overflow: hidden;
  transition: all 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.ultimate-tamagotchi-container::before {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: transparent
        var(--accent-green) 0%,
        var(--accent-blue) 25%,
        var(--glass-violet-deep) 50%,
        var(--glass-indigo-primary) 75%,
        var(--accent-green) 100%
    );
  border-radius: 27px;
  z-index: -1;
  opacity: 0.8;
  animation: borderGlow 4s ease-in-out infinite;
}

@keyframes borderGlow {
  0%, 100% {
    opacity: 0.8;
    transform: scale(1);
  }

  50% {
    opacity: 1;
    transform: scale(1.02);
  }
}

/* =============================================================================
   HEADER - TITRE ET NIVEAU
   ============================================================================= */

.tamagotchi-header.ultimate {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  padding: 15px;
  background: transparent;
  border-radius: 15px;
  border: 1px solid rgba(0, 0, 0, 0.1);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
}

.tamagotchi-title {
  font-family: 'Orbitron', monospace;
  font-size: 1.2rem;
  font-weight: 300;
  color: var(--accent-green);
  text-shadow: 0 0 10px rgba(0, 255, 136, 0.6);
  margin: 0;
  animation: titlePulse 3s ease-in-out infinite;
}

@keyframes titlePulse {
  0%, 100% {
    text-shadow: 0 0 10px rgba(0, 255, 136, 0.6);
  }

  50% {
    text-shadow: 0 0 20px rgba(0, 255, 136, 0.9);
  }
}

.level-info {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 5px;
}

.level {
  font-size: 0.9rem;
  font-weight: 300;
  color: var(--accent-gold);
  text-shadow: 0 0 8px rgba(255, 215, 0, 0.6);
}

.experience-bar {
  width: 80px;
  height: 6px;
  background: transparent;
  border-radius: 3px;
  overflow: hidden;
  border: 1px solid rgba(0, 0, 0, 0.2);
}

.experience-fill {
  height: 100%;
  background: transparent
        var(--accent-gold) 0%, 
        var(--accent-green) 100%
    );
  border-radius: 3px;
  transition: width 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  box-shadow: 0 0 8px rgba(255, 215, 0, 0.4);
}

.exp-text {
  font-size: 0.7rem;
  color: rgba(0, 0, 0, 0.7);
}

.close-btn.ultimate {
  width: 35px;
  height: 35px;
  border: none;
  background: transparent;
  color: var(--accent-pink);
  border-radius: 50%;
  font-size: 1.2rem;
  font-weight: 400;
  cursor: pointer;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 20, 147, 0.3);
}

.close-btn.ultimate:hover {
  background: transparent;
  transform: scale(1.1) rotate(90deg);
  box-shadow: 0 0 15px rgba(255, 20, 147, 0.6);
}

/* =============================================================================
   ÉCRAN PRINCIPAL - STATS ET AFFICHAGE
   ============================================================================= */

.tamagotchi-screen.ultimate {
  background: transparent;
  border-radius: 20px;
  padding: 20px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  -webkit-backdrop-filter: blur(15px);
          backdrop-filter: blur(15px);
  position: relative;
  overflow: hidden;
}

.tamagotchi-screen.ultimate::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: transparent
        radial-gradient(circle at 20% 20%, rgba(0, 255, 136, 0.05) 0%, transparent 50%),
        radial-gradient(circle at 80% 80%, rgba(255, 20, 147, 0.05) 0%, transparent 50%),
        radial-gradient(circle at 40% 60%, rgba(99, 102, 241, 0.05) 0%, transparent 50%);
  pointer-events: none;
  z-index: -1;
}

/* =============================================================================
   STATS AVANCÉES - BARRES DE PROGRESSION ULTRA-MODERNES
   ============================================================================= */

.advanced-stats.ultimate {
  margin-bottom: 20px;
}

.primary-stats {
  display: grid;
  gap: 12px;
  margin-bottom: 15px;
}

.stat-group {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  background: transparent;
  border-radius: 12px;
  border: 1px solid rgba(0, 0, 0, 0.1);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  transition: all 0.3s ease;
}

.stat-group:hover {
  background: transparent;
  transform: translateY(-2px);
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.stat-icon {
  font-size: 1.2rem;
  width: 24px;
  text-align: center;
}

.stat-bar {
  flex: 1;
  height: 8px;
  background: transparent;
  border-radius: 4px;
  overflow: hidden;
  border: 1px solid rgba(0, 0, 0, 0.15);
  position: relative;
}

.stat-fill {
  height: 100%;
  border-radius: 4px;
  transition: width 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  position: relative;
  overflow: hidden;
}

.stat-fill::after {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: transparent
        transparent, 
        rgba(0, 0, 0, 0.4), 
        transparent
    );
  animation: shine 2s infinite;
}

@keyframes shine {
  0% { left: -100%;
  }

  100% { left: 100%;
  }
}

.stat-fill.happiness {
  background: transparent
        var(--accent-pink) 0%, 
        rgba(255, 105, 180, 0.8) 100%
    );
  box-shadow: 0 0 10px rgba(255, 20, 147, 0.4);
}

.stat-fill.energy {
  background: transparent
        var(--accent-blue) 0%, 
        rgba(0, 255, 255, 0.8) 100%
    );
  box-shadow: 0 0 10px rgba(0, 200, 255, 0.4);
}

.stat-fill.hunger {
  background: transparent
        var(--accent-green) 0%, 
        rgba(50, 255, 50, 0.8) 100%
    );
  box-shadow: 0 0 10px rgba(0, 255, 136, 0.4);
}

.stat-value {
  font-size: 0.9rem;
  font-weight: 300;
  color: rgba(0, 0, 0, 0.9);
  min-width: 30px;
  text-align: right;
  text-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}

.secondary-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}

.mini-stat {
  padding: 6px 8px;
  background: transparent;
  border-radius: 8px;
  border: 1px solid rgba(0, 0, 0, 0.1);
  text-align: center;
  font-size: 0.8rem;
  color: rgba(0, 0, 0, 0.8);
  -webkit-backdrop-filter: blur(8px);
          backdrop-filter: blur(8px);
  transition: all 0.3s ease;
}

.mini-stat:hover {
  background: transparent;
  transform: scale(1.05);
}

/* =============================================================================
   AFFICHAGE D'OLIVE - AVATAR INTERACTIF
   ============================================================================= */

.olive-display.ultimate {
  text-align: center;
  margin: 25px 0;
  position: relative;
  padding: 20px;
  background: transparent;
  border-radius: 20px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  -webkit-backdrop-filter: blur(12px);
          backdrop-filter: blur(12px);
}

.olive-display.ultimate::before {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: transparent
        transparent 0%,
        rgba(0, 255, 136, 0.2) 25%,
        transparent 50%,
        rgba(255, 20, 147, 0.2) 75%,
        transparent 100%
    );
  border-radius: 22px;
  z-index: -1;
  animation: avatarGlow 6s ease-in-out infinite;
}

@keyframes avatarGlow {
  0%, 100% { opacity: 0.5;
  }

  50% { opacity: 1;
  }
}

.interactive.ultimate {
  transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.interactive.ultimate:hover {
  transform: scale(1.05) rotate(2deg);
  filter: drop-shadow(0 0 25px rgba(0, 255, 136, 0.8));
}

.mood-indicator.ultimate {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 15px;
  padding: 8px 15px;
  background: transparent;
  border-radius: 20px;
  border: 1px solid rgba(0, 0, 0, 0.15);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
}

.mood-emoji {
  font-size: 1.5rem;
  animation: moodPulse 2s ease-in-out infinite;
}

@keyframes moodPulse {
  0%, 100% { transform: scale(1);
  }

  50% { transform: scale(1.1);
  }
}

.mood-text {
  font-size: 0.9rem;
  font-weight: 300;
  color: rgba(0, 0, 0, 0.9);
  text-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
}

.action-message.ultimate {
  position: absolute;
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
  background: transparent;
  color: var(--accent-green);
  padding: 6px 12px;
  border-radius: 15px;
  font-size: 0.8rem;
  font-weight: 300;
  border: 1px solid rgba(0, 255, 136, 0.4);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  animation: messageAppear 2s ease-out;
  text-shadow: 0 0 8px rgba(0, 255, 136, 0.6);
}

@keyframes messageAppear {
  0% {
    opacity: 0;
    transform: translateX(-50%) translateY(-20px) scale(0.8);
  }

  20% {
    opacity: 1;
    transform: translateX(-50%) translateY(0) scale(1.1);
  }

  100% {
    opacity: 1;
    transform: translateX(-50%) translateY(0) scale(1);
  }
}

/* =============================================================================
   BOUTONS DE MENU - INTERFACES AVANCÉES
   ============================================================================= */

.menu-buttons.ultimate {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin: 20px 0;
}

.menu-btn.ultimate {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  background: transparent;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 12px;
  color: rgba(0, 0, 0, 0.9);
  font-size: 0.8rem;
  font-weight: 300;
  cursor: pointer;
  transition: all 0.3s ease;
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  position: relative;
  overflow: hidden;
}

.menu-btn.ultimate::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: transparent
        transparent, 
        rgba(0, 0, 0, 0.1), 
        transparent
    );
  transition: left 0.5s ease;
}

.menu-btn.ultimate:hover::before {
  left: 100%;
}

.menu-btn.ultimate:hover {
  background: transparent;
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 5px 20px rgba(0, 255, 136, 0.3);
  border-color: rgba(0, 255, 136, 0.4);
}

.menu-btn.ultimate span {
  background: transparent;
  color: rgba(0, 0, 0, 0.8);
  border-radius: 50%;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.7rem;
  font-weight: 400;
}

/* =============================================================================
   GRILLE D'ACTIONS - BOUTONS INTERACTIFS 3D
   ============================================================================= */

.actions-grid.ultimate {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-top: 20px;
}

.action-btn.ultimate {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 15px 8px;
  background: transparent;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 15px;
  color: rgba(0, 0, 0, 0.9);
  font-size: 0.8rem;
  font-weight: 300;
  cursor: pointer;
  transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  -webkit-backdrop-filter: blur(12px);
          backdrop-filter: blur(12px);
  position: relative;
  overflow: hidden;
  transform-style: preserve-3d;
  perspective: 1000px;
}

.action-btn.ultimate::before {
  content: '';
  position: absolute;
  top: -1px;
  left: -1px;
  right: -1px;
  bottom: -1px;
  background: transparent
        var(--accent-green) 0%,
        var(--accent-blue) 25%,
        var(--glass-violet-deep) 50%,
        var(--accent-pink) 75%,
        var(--accent-green) 100%
    );
  border-radius: 16px;
  z-index: -1;
  opacity: 0;
  transition: opacity 0.4s ease;
}

.action-btn.ultimate:hover::before {
  opacity: 0.8;
}

.action-btn.ultimate:hover {
  transform: perspective(1000px) rotateX(-5deg) rotateY(5deg) translateY(-3px) scale(1.05);
  box-shadow: 
        0 10px 30px rgba(0, 255, 136, 0.3),
        inset 0 1px 0 rgba(0, 0, 0, 0.2);
  background: transparent;
}

.action-btn.ultimate:active {
  transform: perspective(1000px) rotateX(2deg) rotateY(-2deg) translateY(1px) scale(0.98);
}

.action-btn.ultimate.disabled {
  opacity: 0.4;
  cursor: not-allowed;
  transform: none !important;
}

.action-emoji {
  font-size: 1.8rem;
  filter: drop-shadow(0 0 8px rgba(0, 0, 0, 0.3));
  transition: all 0.3s ease;
}

.action-btn.ultimate:hover .action-emoji {
  filter: drop-shadow(0 0 15px rgba(0, 255, 136, 0.6));
  transform: scale(1.1);
}

.action-name {
  font-size: 0.75rem;
  text-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}

/* =============================================================================
   SYSTÈME DE NOTIFICATIONS - ÉLÉGANT ET MODERNE
   ============================================================================= */

.notifications-container {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 2000;
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-width: 300px;
}

.notification {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: transparent;
  border-radius: 12px;
  border: 1px solid rgba(0, 0, 0, 0.2);
  -webkit-backdrop-filter: blur(15px);
          backdrop-filter: blur(15px);
  color: rgba(0, 0, 0, 0.9);
  font-size: 0.85rem;
  font-weight: 200;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
  animation: notificationSlideIn 0.5s ease-out;
  position: relative;
  overflow: hidden;
}

.notification::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  background: transparent;
  animation: notificationProgress 5s linear;
}

.notification.olive_response::before { background: transparent;
}

.notification.scenario::before { background: transparent;
}

.notification.achievement::before { background: transparent;
}

.notification.level_up::before { background: transparent;
}

.notification.need::before { background: transparent;
}

@keyframes notificationSlideIn {
  0% {
    opacity: 0;
    transform: translateX(100%) scale(0.8);
  }

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

@keyframes notificationProgress {
  0% { height: 100%;
  }

  100% { height: 0%;
  }
}

.notification-icon {
  font-size: 1.2rem;
  filter: drop-shadow(0 0 5px rgba(0, 0, 0, 0.3));
}

.notification-text {
  flex: 1;
  text-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
}

/* =============================================================================
   INDICATEUR DE SAUVEGARDE - STATUS INTELLIGENT
   ============================================================================= */

.save-indicator {
  position: absolute;
  top: 10px;
  right: 10px;
  padding: 6px 12px;
  border-radius: 15px;
  font-size: 0.7rem;
  font-weight: 300;
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  border: 1px solid rgba(0, 0, 0, 0.2);
  transition: all 0.3s ease;
}

.save-indicator.saving {
  background: transparent;
  color: rgba(255, 165, 0, 1);
  border-color: rgba(255, 165, 0, 0.4);
  animation: pulse 1s infinite;
}

.save-indicator.saved {
  background: transparent;
  color: rgba(0, 255, 0, 1);
  border-color: rgba(0, 255, 0, 0.4);
}

.save-indicator.synced {
  background: transparent;
  color: rgba(0, 200, 255, 1);
  border-color: rgba(0, 200, 255, 0.4);
}

.save-indicator.offline {
  background: transparent;
  color: rgba(255, 100, 100, 1);
  border-color: rgba(255, 100, 100, 0.4);
}

@keyframes pulse {
  0%, 100% { opacity: 1;
  }

  50% { opacity: 0.5;
  }
}

/* =============================================================================
   MODALES - SCÉNARIOS ET PANELS
   ============================================================================= */

.scenario-modal-overlay.ultimate {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: transparent;
  -webkit-backdrop-filter: blur(8px);
          backdrop-filter: blur(8px);
  z-index: 3000;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: overlayFadeIn 0.3s ease-out;
}

@keyframes overlayFadeIn {
  0% { opacity: 0;
  }

  100% { opacity: 1;
  }
}

.scenario-modal.ultimate {
  background: transparent;
  border: 2px solid rgba(0, 255, 136, 0.6);
  border-radius: 20px;
  padding: 25px;
  max-width: 450px;
  max-height: 80vh;
  overflow-y: auto;
  -webkit-backdrop-filter: blur(20px);
          backdrop-filter: blur(20px);
  box-shadow: 
        0 0 40px rgba(0, 255, 136, 0.4),
        inset 0 1px 0 rgba(0, 0, 0, 0.15);
  animation: modalSlideIn 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  position: relative;
}

@keyframes modalSlideIn {
  0% {
    opacity: 0;
    transform: scale(0.8) translateY(50px);
  }

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

.scenario-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  padding-bottom: 15px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}

.scenario-header h3 {
  color: var(--accent-green);
  font-size: 1.3rem;
  font-weight: 300;
  margin: 0;
  text-shadow: 0 0 10px rgba(0, 255, 136, 0.6);
}

.scenario-rarity {
  padding: 4px 8px;
  background: transparent;
  color: var(--accent-gold);
  border-radius: 8px;
  font-size: 0.7rem;
  font-weight: 300;
  border: 1px solid rgba(255, 215, 0, 0.3);
  text-transform: uppercase;
}

.scenario-description {
  color: rgba(0, 0, 0, 0.9);
  line-height: 1.6;
  margin-bottom: 20px;
  font-size: 0.95rem;
  text-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
}

.scenario-choices {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.choice-btn.ultimate {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  padding: 15px;
  background: transparent;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 12px;
  color: rgba(0, 0, 0, 0.9);
  cursor: pointer;
  transition: all 0.3s ease;
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  text-align: left;
  position: relative;
  overflow: hidden;
}

.choice-btn.ultimate::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: transparent
        transparent, 
        rgba(0, 255, 136, 0.1), 
        transparent
    );
  transition: left 0.5s ease;
}

.choice-btn.ultimate:hover::before {
  left: 100%;
}

.choice-btn.ultimate:hover {
  background: transparent;
  border-color: rgba(0, 255, 136, 0.4);
  transform: translateY(-2px);
  box-shadow: 0 5px 20px rgba(0, 255, 136, 0.2);
}

.choice-text {
  font-size: 0.9rem;
  font-weight: 300;
  color: rgba(0, 0, 0, 0.95);
}

.choice-effects {
  font-size: 0.75rem;
  color: rgba(0, 0, 0, 0.6);
  font-style: italic;
}

.close-modal-btn {
  position: absolute;
  top: 15px;
  right: 15px;
  width: 30px;
  height: 30px;
  border: none;
  background: transparent;
  color: var(--accent-pink);
  border-radius: 50%;
  font-size: 1rem;
  font-weight: 400;
  cursor: pointer;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 20, 147, 0.3);
}

.close-modal-btn:hover {
  background: transparent;
  transform: scale(1.1) rotate(90deg);
}

/* =============================================================================
   PANELS - INVENTAIRE, SUCCÈS, MÉMOIRES
   ============================================================================= */

.inventory-panel.ultimate,
.achievements-panel.ultimate,
.memories-panel.ultimate {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 350px;
  max-height: 400px;
  background: transparent;
  border: 2px solid rgba(99, 102, 241, 0.6);
  border-radius: 20px;
  padding: 20px;
  -webkit-backdrop-filter: blur(20px);
          backdrop-filter: blur(20px);
  box-shadow: 
        0 0 40px rgba(99, 102, 241, 0.4),
        inset 0 1px 0 rgba(0, 0, 0, 0.15);
  z-index: 2000;
  animation: panelSlideIn 0.4s ease-out;
  overflow: hidden;
}

@keyframes panelSlideIn {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.9);
  }

  100% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }
}

.panel-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  padding-bottom: 15px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}

.panel-header h3 {
  color: var(--glass-indigo-primary);
  font-size: 1.2rem;
  font-weight: 300;
  margin: 0;
  text-shadow: 0 0 10px rgba(99, 102, 241, 0.6);
}

.panel-header button {
  width: 30px;
  height: 30px;
  border: none;
  background: transparent;
  color: var(--accent-pink);
  border-radius: 50%;
  font-size: 1rem;
  font-weight: 400;
  cursor: pointer;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.panel-header button:hover {
  background: transparent;
  transform: scale(1.1);
}

.inventory-grid,
.achievements-list,
.memories-list {
  max-height: 280px;
  overflow-y: auto;
  padding-right: 10px;
}

.inventory-grid::-webkit-scrollbar,
.achievements-list::-webkit-scrollbar,
.memories-list::-webkit-scrollbar {
  width: 6px;
}

.inventory-grid::-webkit-scrollbar-track,
.achievements-list::-webkit-scrollbar-track,
.memories-list::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 3px;
}

.inventory-grid::-webkit-scrollbar-thumb,
.achievements-list::-webkit-scrollbar-thumb,
.memories-list::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 3px;
}

.inventory-item,
.achievement-item,
.memory-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
  background: transparent;
  border-radius: 10px;
  border: 1px solid rgba(0, 0, 0, 0.1);
  margin-bottom: 10px;
  transition: all 0.3s ease;
  -webkit-backdrop-filter: blur(8px);
          backdrop-filter: blur(8px);
}

.inventory-item:hover,
.achievement-item:hover,
.memory-item:hover {
  background: transparent;
  transform: translateX(5px);
}

.item-emoji,
.achievement-emoji {
  font-size: 1.5rem;
  filter: drop-shadow(0 0 5px rgba(0, 0, 0, 0.3));
}

.item-name,
.achievement-info h4 {
  flex: 1;
  font-weight: 300;
  color: rgba(0, 0, 0, 0.9);
  margin: 0;
}

.item-quantity {
  font-size: 0.8rem;
  color: rgba(0, 0, 0, 0.7);
  font-weight: 200;
}

.achievement-info p {
  font-size: 0.8rem;
  color: rgba(0, 0, 0, 0.7);
  margin: 5px 0 0 0;
  line-height: 1.4;
}

.memory-item {
  flex-direction: column;
  align-items: flex-start;
}

.memory-time {
  font-size: 0.7rem;
  color: rgba(0, 0, 0, 0.6);
  align-self: flex-end;
}

.memory-content {
  width: 100%;
}

.memory-content strong {
  color: var(--accent-green);
  font-size: 0.9rem;
  text-shadow: 0 0 5px rgba(0, 255, 136, 0.3);
}

.memory-content p {
  margin: 5px 0 0 0;
  font-size: 0.8rem;
  color: rgba(0, 0, 0, 0.8);
  line-height: 1.4;
}

.empty-message {
  text-align: center;
  color: rgba(0, 0, 0, 0.6);
  font-style: italic;
  padding: 40px 20px;
  background: transparent;
  border-radius: 10px;
  border: 1px dashed rgba(0, 0, 0, 0.2);
}

/* =============================================================================
   ANIMATIONS ET EFFETS SPÉCIAUX
   ============================================================================= */

@keyframes float {
  0%, 100% { transform: translateY(0px);
  }

  50% { transform: translateY(-10px);
  }
}

@keyframes glow {
  0%, 100% {
    box-shadow: 0 0 20px rgba(0, 255, 136, 0.4);
  }

  50% {
    box-shadow: 0 0 40px rgba(0, 255, 136, 0.8);
  }
}

@keyframes sparkle {
  0%, 100% { opacity: 0; transform: scale(0.5) rotate(0deg);
  }

  50% { opacity: 1; transform: scale(1) rotate(180deg);
  }
}

/* =============================================================================
   RESPONSIVE - ADAPTATION MOBILE
   ============================================================================= */

@media (max-width: 480px) {
  .ultimate-tamagotchi-container {
    width: 95vw;
    height: 95vh;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    padding: 15px;
  }

  .actions-grid.ultimate {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }

  .secondary-stats {
    grid-template-columns: repeat(2, 1fr);
  }

  .tamagotchi-title {
    font-size: 1rem;
  }

  .scenario-modal.ultimate,
    .inventory-panel.ultimate,
    .achievements-panel.ultimate,
    .memories-panel.ultimate {
    width: 90vw;
    max-height: 70vh;
  }
}

/* =============================================================================
   ÉTATS SPÉCIAUX - INTERACTIONS AVANCÉES
   ============================================================================= */

.ultimate-tamagotchi-container.loading {
  opacity: 0.7;
  pointer-events: none;
}

.ultimate-tamagotchi-container.error {
  border-color: rgba(255, 100, 100, 0.6);
  box-shadow: 0 0 30px rgba(255, 100, 100, 0.4);
}

.ultimate-tamagotchi-container.success {
  border-color: transparent;
  box-shadow: none;
}

/* =============================================================================
   ACCESSIBILITÉ ET PRÉFÉRENCES UTILISATEUR
   ============================================================================= */

@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

.ultimate-tamagotchi-container:focus-within {
  outline: 2px solid var(--accent-green);
  outline-offset: 2px;
}

.action-btn.ultimate:focus,
.choice-btn.ultimate:focus,
.menu-btn.ultimate:focus {
  outline: 2px solid var(--accent-green);
  outline-offset: 2px;
}

/* ===== BORDER OVERRIDES ===== */

/* Ce fichier supprime toutes les bordures blanches et gris clair de l'application */

/* Réinitialisation complète des bordures pour tous les éléments */

* {
  border-color: transparent !important;
  outline: none !important;
  box-shadow: none !important;
}

/* Désactivation des bordures blanches et gris clair */

.border,
.border-1,
.border-2,
.border-4,
.border-8,
.border-t,
.border-r,
.border-b,
.border-l,
.border-x,
.border-y,
.border-white,
.border-gray-100,
.border-gray-200,
.border-gray-300,
.border-gray-400,
.border-transparent,
.border-transparent\/20,
.border-transparent\/30,
.border-transparent\/40,
.border-transparent\/50,
[class*="border-"] {
  border-color: transparent !important;
  border-style: none !important;
}

/* Désactivation des bordures avec opacité */

.border-white\/10,
.border-white\/20,
.border-white\/30,
.border-white\/40,
.border-white\/50,
.border-gray-100\/10,
.border-gray-200\/10,
.border-gray-300\/10,
.border-gray-300\/20,
.border-gray-400\/10,
.border-gray-400\/20,
.border-gray-400\/30,
[class*="border-"][class*="\/"] {
  border-color: transparent !important;
  border-style: none !important;
}

/* Désactivation des bordures dans les composants spécifiques */

.related-post,
.article-header,
.olive-supreme-container,
.glassmorphism,
.glassmorphism-strong,
.glassmorphism-subtle,
.workflow-composer,
.intelligent-questionnaire,
.intelligent-workflow-launcher,
.intelligent-assistant-creator,
.card,
.panel,
.modal,
.dropdown,
.menu,
.nav,
.header,
.footer,
.section,
.container,
.wrapper,
.box,
[class*="card"],
[class*="panel"],
[class*="modal"],
[class*="dropdown"],
[class*="menu"] {
  border-color: transparent !important;
  border-style: none !important;
  box-shadow: none !important;
}

/* Désactivation des bordures de formulaire */

input,
textarea,
select,
button,
fieldset,
legend,
[type="text"],
[type="password"],
[type="date"],
[type="datetime"],
[type="datetime-local"],
[type="month"],
[type="week"],
[type="email"],
[type="number"],
[type="search"],
[type="tel"],
[type="time"],
[type="url"],
[type="search"],
[type="checkbox"],
[type="radio"],
select[multiple] {
}

/* Désactivation des bordures sur les états de survol et focus */

.hover\:border-white:hover,
.hover\:border-gray-100:hover,
.hover\:border-gray-200:hover,
.hover\:border-gray-300:hover,
.hover\:border-gray-400:hover,
.focus\:border-white:focus,
.focus\:border-gray-100:focus,
.focus\:border-gray-200:focus,
.focus\:border-gray-300:focus,
.focus\:border-gray-400:focus {
  border-color: transparent !important;
  border-style: none !important;
}

/* Désactivation des bordures dans le mode sombre */

.dark .dark\:border-gray-700,
.dark .dark\:border-gray-800,
.dark .dark\:border-gray-900 {
  border-color: transparent !important;
  border-style: none !important;
}

/* Désactivation des bordures de séparation */

.border-t,
.border-r,
.border-b,
.border-l,
.border-x,
.border-y {
  border-color: transparent !important;
  border-style: none !important;
}

/* Désactivation des bordures dans les composants complexes */

.tech-card,
.feature-card,
.pricing-card,
.testimonial-card,
.team-card {
  border: none !important;
}

/* Désactivation des bordures dans les éléments de navigation */

.nav-item,
.tab-item,
.menu-item {
  border: none !important;
}

/* Désactivation des bordures dans les modales et popovers */

.modal,
.popover,
.dropdown,
.tooltip {
  border: none !important;
}

/* Désactivation des bordures dans les tableaux */

table,
thead,
tbody,
tr,
th,
td {
  border-color: transparent !important;
}

/* Désactivation des bordures dans les éléments de formulaire personnalisés */

.custom-select,
.custom-checkbox,
.custom-radio,
.custom-switch {
  border: none !important;
}

/* Désactivation des bordures dans les éléments de chargement */

.loading-spinner,
.loading-dots,
.skeleton {
  border: none !important;
}

/**
 * 🔧 FIX CRITIQUE - Navigation Workflow Studio
 * Correction des problèmes de clics sur les boutons de navigation
 */

/* Force les interactions sur tous les éléments de navigation */

.workflow-studio-hub .mode-card {
  cursor: pointer !important;
  pointer-events: auto !important;
  -webkit-user-select: none !important;
     -moz-user-select: none !important;
          user-select: none !important;
  position: relative !important;
  z-index: 10 !important;
}

.workflow-studio-hub .mode-card:hover {
  cursor: pointer !important;
  pointer-events: auto !important;
}

/* Assurer que les enfants ne bloquent pas les clics */

.workflow-studio-hub .mode-card * {
  pointer-events: none !important;
}

/* Forcer l'état actif sur les boutons */

.workflow-studio-hub .mode-card:active {
  transform: scale(0.98) !important;
}

/* Container principal avec interactions forcées */

.workflow-studio-hub {
  pointer-events: auto !important;
  position: relative !important;
  z-index: 1 !important;
}

/* Grille de sélection avec interactions */

.workflow-studio-hub .mode-selection-grid {
  pointer-events: auto !important;
  position: relative !important;
  z-index: 5 !important;
}

/* Navigation des modes (header) */

.workflow-studio-hub .mode-navigation .mode-nav-item {
  cursor: pointer !important;
  pointer-events: auto !important;
  position: relative !important;
  z-index: 10 !important;
}

/* Écran de bienvenue */

.workflow-studio-hub .welcome-screen {
  pointer-events: auto !important;
  position: relative !important;
  z-index: 5 !important;
}

/* Éliminer toute interférence de l'arrière-plan */

.workflow-studio-hub .studio-background,
.workflow-studio-hub .studio-background * {
  pointer-events: none !important;
  z-index: -1 !important;
}

/* Debug - Contour temporaire pour voir les zones cliquables */

.workflow-studio-hub .mode-card {
  outline: 1px solid rgba(79, 121, 66, 0.3);
  outline-offset: 2px;
}

/* Hover visible pour feedback utilisateur */

.workflow-studio-hub .mode-card:hover {
  background: rgba(79, 121, 66, 0.15) !important;
  border-color: var(--olive-primary) !important;
  transform: translateY(-5px) !important;
}

/* S'assurer que les animations Framer Motion n'interfèrent pas */

.workflow-studio-hub [data-framer-component-type] {
  pointer-events: auto !important;
}

/**
 * 🎨 STYLE NOIR GLASSMORPHIQUE TRANSPARENT
 * Design professionnel avec glassmorphisme et tons humbles
 */

/* Variables de couleurs noir glassmorphique */

:root {
  --glass-bg-primary: rgba(15, 15, 15, 0.85);
  --glass-bg-secondary: rgba(25, 25, 25, 0.75);
  --glass-bg-tertiary: rgba(35, 35, 35, 0.65);
  --glass-border: rgba(255, 255, 255, 0.1);
  --glass-text-primary: rgba(255, 255, 255, 0.95);
  --glass-text-secondary: rgba(255, 255, 255, 0.75);
  --glass-text-muted: rgba(255, 255, 255, 0.55);
  --glass-accent: rgba(139, 188, 143, 0.8);
  --glass-hover: rgba(255, 255, 255, 0.05);
}

/* Fond principal workflow studio */

.workflow-studio-dark {
  background: linear-gradient(
    135deg,
    rgba(0, 0, 0, 0.95) 0%,
    rgba(15, 15, 15, 0.9) 25%,
    rgba(25, 25, 25, 0.85) 50%,
    rgba(15, 15, 15, 0.9) 75%,
    rgba(0, 0, 0, 0.95) 100%
  );
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid var(--glass-border);
  color: var(--glass-text-primary);
}

/* Navigation unifiée style noir */

.workflow-nav-dark {
  background: var(--glass-bg-primary);
  backdrop-filter: blur(15px);
  -webkit-backdrop-filter: blur(15px);
  border: 1px solid var(--glass-border);
  border-radius: 12px;
  box-shadow:
    0 8px 32px rgba(0, 0, 0, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.workflow-nav-dark .nav-tab {
  background: transparent;
  color: var(--glass-text-secondary);
  border: 1px solid transparent;
  border-radius: 8px;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.workflow-nav-dark .nav-tab:hover {
  background: var(--glass-hover);
  color: var(--glass-text-primary);
  border-color: var(--glass-border);
  transform: translateY(-1px);
}

.workflow-nav-dark .nav-tab.active {
  background: var(--glass-bg-secondary);
  color: var(--glass-accent);
  border-color: var(--glass-accent);
  box-shadow:
    0 4px 16px rgba(139, 188, 143, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

/* Workflow cards noir glassmorphique */

.workflow-card-dark {
  background: linear-gradient(
    135deg,
    var(--glass-bg-secondary) 0%,
    var(--glass-bg-tertiary) 100%
  );
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid var(--glass-border);
  border-radius: 12px;
  transition: all 0.3s ease;
  color: var(--glass-text-primary);
}

.workflow-card-dark:hover {
  background: var(--glass-bg-tertiary);
  border-color: var(--glass-accent);
  transform: translateY(-2px);
  box-shadow: 0 8px 32px rgba(139, 188, 143, 0.2);
}

/* Mode expert canvas PARFAIT */

.expert-canvas-dark {
  background: radial-gradient(
    ellipse at center,
    rgba(15, 15, 15, 0.95) 0%,
    rgba(5, 5, 5, 0.98) 100%
  );
  backdrop-filter: blur(25px);
  -webkit-backdrop-filter: blur(25px);
  border: 2px solid var(--glass-accent);
  border-radius: 20px;
  box-shadow:
    0 20px 60px rgba(0, 0, 0, 0.6),
    inset 0 1px 0 rgba(255, 255, 255, 0.1),
    0 0 100px rgba(139, 188, 143, 0.1);
}

/* Intégrations footer noir */

.integrations-footer-dark {
  background: var(--glass-bg-primary);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-top: 1px solid var(--glass-border);
  box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.3);
}

.integrations-footer-dark .integration-icon {
  background: var(--glass-bg-tertiary);
  border: 1px solid var(--glass-border);
  border-radius: 8px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: all 0.2s ease;
}

.integrations-footer-dark .integration-icon:hover {
  background: var(--glass-hover);
  border-color: var(--glass-accent);
  transform: scale(1.05);
}

/* Tons humbles et discrets */

.humble-text {
  color: var(--glass-text-muted);
  font-weight: 400;
  opacity: 0.8;
}

.humble-accent {
  color: rgba(139, 188, 143, 0.7);
  text-shadow: none;
}

/* Animation glassmorphique fluide */

@keyframes glassMorphFadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
    -webkit-backdrop-filter: blur(0px);
            backdrop-filter: blur(0px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
    -webkit-backdrop-filter: blur(20px);
            backdrop-filter: blur(20px);
  }
}

.glass-fade-in {
  animation: glassMorphFadeIn 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}
/* ===== TAILWIND CSS DIRECTIVES - MUST BE FIRST ===== */

/* ! tailwindcss v2.2.19 | MIT License | https://tailwindcss.com */

/*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */

/*
Document
========
*/

/**
Use a better box model (opinionated).
*/

*,
::before,
::after {
  box-sizing: border-box;
}

/**
Use a more readable tab size (opinionated).
*/

html {
  -moz-tab-size: 4;
  tab-size: 4;
}

/**
1. Correct the line height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
*/

html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/*
Sections
========
*/

/**
Remove the margin in all browsers.
*/

body {
  margin: 0;
}

/**
Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
*/

body {
  font-family:
		system-ui,
		-apple-system, /* Firefox supports this but not yet `system-ui` */
		'Segoe UI',
		Roboto,
		Helvetica,
		Arial,
		sans-serif,
		'Apple Color Emoji',
		'Segoe UI Emoji';
}

/*
Grouping content
================
*/

/**
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
}

/*
Text-level semantics
====================
*/

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

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

b,
strong {
  font-weight: bolder;
}

/**
1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
2. Correct the odd 'em' font sizing in all browsers.
*/

code,
kbd,
pre {
  font-family:
		ui-monospace,
		SFMono-Regular,
		Consolas,
		'Liberation Mono',
		Menlo,
		monospace; /* 1 */
  font-size: 1em; /* 2 */
}

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

small {
  font-size: 80%;
}

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

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

sub {
  bottom: -0.25em;
}

/*
Tabular data
============
*/

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

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

/*
Forms
=====
*/

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

button,
input,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

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

button,
select { /* 1 */
  text-transform: none;
}

/**
Correct the inability to style clickable types in iOS and Safari.
*/

button,
[type='button'],
[type='reset'],
[type='submit'] {
  -webkit-appearance: button;
}

/**
Remove the inner border and padding in Firefox.
*/

::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
Restore the focus styles unset by the previous rule.
*/

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

/**
Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.
*/

legend {
  padding: 0;
}

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

progress {
  vertical-align: baseline;
}

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

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

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

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

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

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

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

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

/*
Interactive
===========
*/

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

summary {
  display: list-item;
}

/**
 * Manually forked from SUIT CSS Base: https://github.com/suitcss/base
 * A thin layer on top of normalize.css that provides a starting point more
 * suitable for web applications.
 */

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

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

button {
  background-color: transparent;
  background-image: none;
}

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

/**
 * Tailwind custom reset styles
 */

/**
 * 1. Use the user's configured `sans` font-family (with Tailwind's default
 *    sans-serif font stack as a fallback) as a sane default.
 * 2. Use Tailwind's default "normal" line-height so the user isn't forced
 *    to override it to ensure consistency even when using the default theme.
 */

html {
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 1 */
  line-height: 1.5; /* 2 */
}

/**
 * Inherit font-family and line-height from `html` so users can set them as
 * a class directly on the `html` element.
 */

body {
  font-family: inherit;
  line-height: inherit;
}

/**
 * 1. Prevent padding and border from affecting element width.
 *
 *    We used to set this in the html element and inherit from
 *    the parent element for everything else. This caused issues
 *    in shadow-dom-enhanced elements like <details> where the content
 *    is wrapped by a div with box-sizing set to `content-box`.
 *
 *    https://github.com/mozdevs/cssremedy/issues/4
 *
 *
 * 2. Allow adding a border to an element by just adding a border-width.
 *
 *    By default, the way the browser specifies that an element should have no
 *    border is by setting it's border-style to `none` in the user-agent
 *    stylesheet.
 *
 *    In order to easily add borders to elements by just setting the `border-width`
 *    property, we change the default border-style for all elements to `solid`, and
 *    use border-width to hide them instead. This way our `border` utilities only
 *    need to set the `border-width` property instead of the entire `border`
 *    shorthand, making our border utilities much more straightforward to compose.
 *
 *    https://github.com/tailwindcss/tailwindcss/pull/116
 */

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

/*
 * Ensure horizontal rules are visible by default
 */

hr {
  border-top-width: 1px;
}

/**
 * Undo the `border-style: none` reset that Normalize applies to images so that
 * our `border-{width}` utilities have the expected effect.
 *
 * The Normalize reset is unnecessary for us since we default the border-width
 * to 0 on all elements.
 *
 * https://github.com/tailwindcss/tailwindcss/issues/362
 */

img {
  border-style: solid;
}

textarea {
  resize: vertical;
}

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

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

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

/**
 * Override legacy focus reset from Normalize with modern Firefox focus styles.
 *
 * This is actually an improvement over the new defaults in Firefox in our testing,
 * as it triggers the better focus styles even for links, which still use a dotted
 * outline in Firefox by default.
 */

table {
  border-collapse: collapse;
}

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

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

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

/**
 * Reset form element properties that are easy to forget to
 * style explicitly so you don't inadvertently introduce
 * styles that deviate from your design system. These styles
 * supplement a partial reset that is already applied by
 * normalize.css.
 */

button,
input,
select,
textarea {
  padding: 0;
  line-height: inherit;
  color: inherit;
}

/**
 * Use the configured 'mono' font family for elements that
 * are expected to be rendered with a monospace font, falling
 * back to the system monospace stack if there is no configured
 * 'mono' font family.
 */

pre,
code,
kbd {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

/**
 * 1. Make replaced elements `display: block` by default as that's
 *    the behavior you want almost all of the time. Inspired by
 *    CSS Remedy, with `svg` added as well.
 *
 *    https://github.com/mozdevs/cssremedy/issues/14
 * 
 * 2. Add `vertical-align: middle` to align replaced elements more
 *    sensibly by default when overriding `display` by adding a
 *    utility like `inline`.
 *
 *    This can trigger a poorly considered linting error in some
 *    tools but is included by design.
 * 
 *    https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210
 */

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

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

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

/**
 * Ensure the default browser behavior of the `hidden` attribute.
 */

[hidden] {
  display: none;
}

*, ::before, ::after {
  --tw-border-opacity: 1;
  border-color: rgba(229, 231, 235, var(--tw-border-opacity));
}

select {
  background-color: transparent !important;
  color: white !important;
}

select option {
  background-color: rgb(31, 41, 55) !important;
  color: white !important;
}

/* NUCLEAR FIX - Remove ALL underlines everywhere on the entire site */

* {
  text-decoration: none !important;
  text-decoration-line: none !important;
  text-decoration-color: transparent !important;
  text-decoration-style: none !important;
  text-decoration-thickness: 0 !important;
  text-underline-offset: 0 !important;
}

a,
  a:link,
  a:visited,
  a:hover,
  a:active,
  a:focus {
  text-decoration: none !important;
  text-decoration-line: none !important;
  text-decoration-color: transparent !important;
  text-decoration-style: none !important;
  text-decoration-thickness: 0 !important;
  text-underline-offset: 0 !important;
  border-bottom: none !important;
}

/* Override Tailwind prose underlines specifically */

.prose a,
  .prose-invert a,
  .prose a:link,
  .prose a:visited,
  .prose a:hover,
  .prose-invert a:link,
  .prose-invert a:visited,
  .prose-invert a:hover {
  text-decoration: none !important;
  text-decoration-line: none !important;
  border-bottom: none !important;
}

.container {
  width: 100%;
}

@media (min-width: 640px) {
  .container {
    max-width: 640px;
  }
}

@media (min-width: 768px) {
  .container {
    max-width: 768px;
  }
}

@media (min-width: 850px) {
  .container {
    max-width: 850px;
  }
}

@media (min-width: 1016px) {
  .container {
    max-width: 1016px;
  }
}

@media (min-width: 1024px) {
  .container {
    max-width: 1024px;
  }
}

@media (min-width: 1280px) {
  .container {
    max-width: 1280px;
  }
}

@media (min-width: 1536px) {
  .container {
    max-width: 1536px;
  }
}

/* ===== UNIFIED BUTTON STYLES ===== */

@keyframes glow-sweep {
  0% {
    transform: translateX(-100%) translateY(-100%) rotate(45deg);
    opacity: 0;
  }

  50% {
    opacity: 1;
  }

  100% {
    transform: translateX(100%) translateY(100%) rotate(45deg);
    opacity: 0;
  }
}

/* Glass hover state */

/* Glass permanent state */

/* ===== GLASS GRADIENT TITLES ===== */

.gradient-title-1 {
  background: linear-gradient(135deg, #ffffff 0%, #ffffff 90%, rgba(255, 255, 255, 0.8) 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

.gradient-title-2 {
  background: linear-gradient(135deg, #ffffff 0%, #ffffff 88%, rgba(255, 255, 255, 0.9) 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

.gradient-title-3 {
  background: linear-gradient(135deg, #ffffff 0%, #ffffff 92%, rgba(255, 255, 255, 0.7) 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

.gradient-title-4 {
  background: linear-gradient(135deg, #ffffff 0%, #ffffff 88%, rgba(255, 255, 255, 0.85) 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

.gradient-title-5 {
  background: linear-gradient(135deg, #ffffff 0%, #ffffff 90%, rgba(255, 255, 255, 0.75) 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

.gradient-title-6 {
  background: linear-gradient(135deg, #ffffff 0%, #ffffff 85%, rgba(255, 255, 255, 0.8) 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

.gradient-title-7 {
  background: linear-gradient(135deg, #ffffff 0%, #ffffff 87%, rgba(255, 255, 255, 0.9) 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

.gradient-title-8 {
  background: linear-gradient(135deg, #ffffff 0%, #ffffff 89%, rgba(255, 255, 255, 0.75) 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

.gradient-title-9 {
  background: linear-gradient(135deg, #ffffff 0%, #ffffff 91%, rgba(255, 255, 255, 0.65) 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

.gradient-title-10 {
  background: linear-gradient(135deg, #ffffff 0%, #ffffff 93%, rgba(255, 255, 255, 0.6) 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

.gradient-title-11 {
  background: linear-gradient(135deg, #ffffff 0%, #ffffff 85%, rgba(224, 231, 255, 0.3) 95%, rgba(49, 46, 129, 0.4) 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

.gradient-title-12 {
  background: linear-gradient(135deg, #ffffff 0%, #ffffff 85%, rgba(167, 139, 250, 0.3) 95%, rgba(76, 29, 149, 0.4) 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

.line-clamp-2 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.line-clamp-3 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

.focus\:sr-only:focus {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

.focus\:not-sr-only:focus {
  position: static;
  width: auto;
  height: auto;
  padding: 0;
  margin: 0;
  overflow: visible;
  clip: auto;
  white-space: normal;
}

.pointer-events-none {
  pointer-events: none;
}

.pointer-events-auto {
  pointer-events: auto;
}

.visible {
  visibility: visible;
}

.invisible {
  visibility: hidden;
}

.static {
  position: static;
}

.fixed {
  position: fixed;
}

.absolute {
  position: absolute;
}

.relative {
  position: relative;
}

.sticky {
  position: sticky;
}

.inset-0 {
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
}

.inset-4 {
  top: 1rem;
  right: 1rem;
  bottom: 1rem;
  left: 1rem;
}

.-inset-2 {
  top: -0.5rem;
  right: -0.5rem;
  bottom: -0.5rem;
  left: -0.5rem;
}

.inset-x-0 {
  left: 0px;
  right: 0px;
}

.inset-x-4 {
  left: 1rem;
  right: 1rem;
}

.inset-y-0 {
  top: 0px;
  bottom: 0px;
}

.top-0 {
  top: 0px;
}

.top-1 {
  top: 0.25rem;
}

.top-2 {
  top: 0.5rem;
}

.top-3 {
  top: 0.75rem;
}

.top-4 {
  top: 1rem;
}

.top-6 {
  top: 1.5rem;
}

.top-8 {
  top: 2rem;
}

.top-10 {
  top: 2.5rem;
}

.top-16 {
  top: 4rem;
}

.top-20 {
  top: 5rem;
}

.top-24 {
  top: 6rem;
}

.top-32 {
  top: 8rem;
}

.top-0\.5 {
  top: 0.125rem;
}

.-top-0 {
  top: 0px;
}

.-top-1 {
  top: -0.25rem;
}

.-top-2 {
  top: -0.5rem;
}

.-top-3 {
  top: -0.75rem;
}

.-top-4 {
  top: -1rem;
}

.-top-8 {
  top: -2rem;
}

.-top-10 {
  top: -2.5rem;
}

.-top-12 {
  top: -3rem;
}

.-top-16 {
  top: -4rem;
}

.-top-20 {
  top: -5rem;
}

.-top-32 {
  top: -8rem;
}

.-top-0\.5 {
  top: -0.125rem;
}

.top-1\/2 {
  top: 50%;
}

.top-1\/4 {
  top: 25%;
}

.top-full {
  top: 100%;
}

.right-0 {
  right: 0px;
}

.right-1 {
  right: 0.25rem;
}

.right-2 {
  right: 0.5rem;
}

.right-3 {
  right: 0.75rem;
}

.right-4 {
  right: 1rem;
}

.right-5 {
  right: 1.25rem;
}

.right-6 {
  right: 1.5rem;
}

.right-8 {
  right: 2rem;
}

.right-10 {
  right: 2.5rem;
}

.right-12 {
  right: 3rem;
}

.right-24 {
  right: 6rem;
}

.right-28 {
  right: 7rem;
}

.-right-0 {
  right: 0px;
}

.-right-1 {
  right: -0.25rem;
}

.-right-2 {
  right: -0.5rem;
}

.-right-3 {
  right: -0.75rem;
}

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

.-right-16 {
  right: -4rem;
}

.-right-20 {
  right: -5rem;
}

.-right-0\.5 {
  right: -0.125rem;
}

.right-1\/4 {
  right: 25%;
}

.right-full {
  right: 100%;
}

.bottom-0 {
  bottom: 0px;
}

.bottom-1 {
  bottom: 0.25rem;
}

.bottom-2 {
  bottom: 0.5rem;
}

.bottom-4 {
  bottom: 1rem;
}

.bottom-5 {
  bottom: 1.25rem;
}

.bottom-6 {
  bottom: 1.5rem;
}

.bottom-8 {
  bottom: 2rem;
}

.bottom-12 {
  bottom: 3rem;
}

.bottom-20 {
  bottom: 5rem;
}

.bottom-24 {
  bottom: 6rem;
}

.-bottom-0 {
  bottom: 0px;
}

.-bottom-1 {
  bottom: -0.25rem;
}

.-bottom-2 {
  bottom: -0.5rem;
}

.-bottom-4 {
  bottom: -1rem;
}

.-bottom-6 {
  bottom: -1.5rem;
}

.-bottom-8 {
  bottom: -2rem;
}

.-bottom-0\.5 {
  bottom: -0.125rem;
}

.bottom-1\/4 {
  bottom: 25%;
}

.bottom-full {
  bottom: 100%;
}

.left-0 {
  left: 0px;
}

.left-1 {
  left: 0.25rem;
}

.left-2 {
  left: 0.5rem;
}

.left-3 {
  left: 0.75rem;
}

.left-4 {
  left: 1rem;
}

.left-6 {
  left: 1.5rem;
}

.left-8 {
  left: 2rem;
}

.left-10 {
  left: 2.5rem;
}

.left-20 {
  left: 5rem;
}

.left-0\.5 {
  left: 0.125rem;
}

.-left-2 {
  left: -0.5rem;
}

.-left-3 {
  left: -0.75rem;
}

.-left-4 {
  left: -1rem;
}

.-left-16 {
  left: -4rem;
}

.left-1\/2 {
  left: 50%;
}

.left-1\/4 {
  left: 25%;
}

.left-full {
  left: 100%;
}

.isolate {
  isolation: isolate;
}

.z-0 {
  z-index: 0;
}

.z-10 {
  z-index: 10;
}

.z-20 {
  z-index: 20;
}

.z-30 {
  z-index: 30;
}

.z-40 {
  z-index: 40;
}

.z-50 {
  z-index: 50;
}

.focus\:z-0:focus {
  z-index: 0;
}

.focus\:z-10:focus {
  z-index: 10;
}

.focus\:z-20:focus {
  z-index: 20;
}

.focus\:z-30:focus {
  z-index: 30;
}

.focus\:z-40:focus {
  z-index: 40;
}

.focus\:z-50:focus {
  z-index: 50;
}

.focus\:z-auto:focus {
  z-index: auto;
}

.order-1 {
  order: 1;
}

.order-2 {
  order: 2;
}

.col-span-1 {
  grid-column: span 1 / span 1;
}

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

.col-span-full {
  grid-column: 1 / -1;
}

.m-0 {
  margin: 0px;
}

.m-1 {
  margin: 0.25rem;
}

.m-2 {
  margin: 0.5rem;
}

.m-3 {
  margin: 0.75rem;
}

.m-4 {
  margin: 1rem;
}

.m-5 {
  margin: 1.25rem;
}

.m-6 {
  margin: 1.5rem;
}

.m-7 {
  margin: 1.75rem;
}

.m-8 {
  margin: 2rem;
}

.m-9 {
  margin: 2.25rem;
}

.m-10 {
  margin: 2.5rem;
}

.m-11 {
  margin: 2.75rem;
}

.m-12 {
  margin: 3rem;
}

.m-14 {
  margin: 3.5rem;
}

.m-16 {
  margin: 4rem;
}

.m-20 {
  margin: 5rem;
}

.m-24 {
  margin: 6rem;
}

.m-28 {
  margin: 7rem;
}

.m-32 {
  margin: 8rem;
}

.m-36 {
  margin: 9rem;
}

.m-40 {
  margin: 10rem;
}

.m-44 {
  margin: 11rem;
}

.m-48 {
  margin: 12rem;
}

.m-52 {
  margin: 13rem;
}

.m-56 {
  margin: 14rem;
}

.m-60 {
  margin: 15rem;
}

.m-64 {
  margin: 16rem;
}

.m-72 {
  margin: 18rem;
}

.m-80 {
  margin: 20rem;
}

.m-96 {
  margin: 24rem;
}

.m-auto {
  margin: auto;
}

.m-px {
  margin: 1px;
}

.m-0\.5 {
  margin: 0.125rem;
}

.m-1\.5 {
  margin: 0.375rem;
}

.m-2\.5 {
  margin: 0.625rem;
}

.m-3\.5 {
  margin: 0.875rem;
}

.-m-4 {
  margin: -1rem;
}

.-m-6 {
  margin: -1.5rem;
}

.mx-2 {
  margin-left: 0.5rem;
  margin-right: 0.5rem;
}

.mx-4 {
  margin-left: 1rem;
  margin-right: 1rem;
}

.mx-8 {
  margin-left: 2rem;
  margin-right: 2rem;
}

.mx-auto {
  margin-left: auto;
  margin-right: auto;
}

.my-1 {
  margin-top: 0.25rem;
  margin-bottom: 0.25rem;
}

.my-4 {
  margin-top: 1rem;
  margin-bottom: 1rem;
}

.my-6 {
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}

.my-8 {
  margin-top: 2rem;
  margin-bottom: 2rem;
}

.mt-0 {
  margin-top: 0px;
}

.mt-1 {
  margin-top: 0.25rem;
}

.mt-2 {
  margin-top: 0.5rem;
}

.mt-3 {
  margin-top: 0.75rem;
}

.mt-4 {
  margin-top: 1rem;
}

.mt-5 {
  margin-top: 1.25rem;
}

.mt-6 {
  margin-top: 1.5rem;
}

.mt-8 {
  margin-top: 2rem;
}

.mt-10 {
  margin-top: 2.5rem;
}

.mt-12 {
  margin-top: 3rem;
}

.mt-16 {
  margin-top: 4rem;
}

.mt-20 {
  margin-top: 5rem;
}

.mt-32 {
  margin-top: 8rem;
}

.mt-auto {
  margin-top: auto;
}

.mt-0\.5 {
  margin-top: 0.125rem;
}

.mt-1\.5 {
  margin-top: 0.375rem;
}

.-mt-px {
  margin-top: -1px;
}

.mr-1 {
  margin-right: 0.25rem;
}

.mr-2 {
  margin-right: 0.5rem;
}

.mr-3 {
  margin-right: 0.75rem;
}

.mr-4 {
  margin-right: 1rem;
}

.mr-6 {
  margin-right: 1.5rem;
}

.mr-1\.5 {
  margin-right: 0.375rem;
}

.mb-0 {
  margin-bottom: 0px;
}

.mb-1 {
  margin-bottom: 0.25rem;
}

.mb-2 {
  margin-bottom: 0.5rem;
}

.mb-3 {
  margin-bottom: 0.75rem;
}

.mb-4 {
  margin-bottom: 1rem;
}

.mb-5 {
  margin-bottom: 1.25rem;
}

.mb-6 {
  margin-bottom: 1.5rem;
}

.mb-8 {
  margin-bottom: 2rem;
}

.mb-10 {
  margin-bottom: 2.5rem;
}

.mb-12 {
  margin-bottom: 3rem;
}

.mb-16 {
  margin-bottom: 4rem;
}

.mb-20 {
  margin-bottom: 5rem;
}

.mb-px {
  margin-bottom: 1px;
}

.mb-0\.5 {
  margin-bottom: 0.125rem;
}

.ml-1 {
  margin-left: 0.25rem;
}

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

.ml-3 {
  margin-left: 0.75rem;
}

.ml-4 {
  margin-left: 1rem;
}

.ml-6 {
  margin-left: 1.5rem;
}

.ml-10 {
  margin-left: 2.5rem;
}

.ml-16 {
  margin-left: 4rem;
}

.ml-auto {
  margin-left: auto;
}

.-ml-1 {
  margin-left: -0.25rem;
}

.block {
  display: block;
}

.inline-block {
  display: inline-block;
}

.inline {
  display: inline;
}

.flex {
  display: flex;
}

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

.table {
  display: table;
}

.grid {
  display: grid;
}

.contents {
  display: contents;
}

.hidden {
  display: none;
}

.h-0 {
  height: 0px;
}

.h-1 {
  height: 0.25rem;
}

.h-2 {
  height: 0.5rem;
}

.h-3 {
  height: 0.75rem;
}

.h-4 {
  height: 1rem;
}

.h-5 {
  height: 1.25rem;
}

.h-6 {
  height: 1.5rem;
}

.h-7 {
  height: 1.75rem;
}

.h-8 {
  height: 2rem;
}

.h-9 {
  height: 2.25rem;
}

.h-10 {
  height: 2.5rem;
}

.h-11 {
  height: 2.75rem;
}

.h-12 {
  height: 3rem;
}

.h-14 {
  height: 3.5rem;
}

.h-16 {
  height: 4rem;
}

.h-20 {
  height: 5rem;
}

.h-24 {
  height: 6rem;
}

.h-28 {
  height: 7rem;
}

.h-32 {
  height: 8rem;
}

.h-36 {
  height: 9rem;
}

.h-40 {
  height: 10rem;
}

.h-44 {
  height: 11rem;
}

.h-48 {
  height: 12rem;
}

.h-52 {
  height: 13rem;
}

.h-56 {
  height: 14rem;
}

.h-60 {
  height: 15rem;
}

.h-64 {
  height: 16rem;
}

.h-72 {
  height: 18rem;
}

.h-80 {
  height: 20rem;
}

.h-96 {
  height: 24rem;
}

.h-auto {
  height: auto;
}

.h-px {
  height: 1px;
}

.h-0\.5 {
  height: 0.125rem;
}

.h-1\.5 {
  height: 0.375rem;
}

.h-2\.5 {
  height: 0.625rem;
}

.h-3\.5 {
  height: 0.875rem;
}

.h-1\/2 {
  height: 50%;
}

.h-1\/3 {
  height: 33.333333%;
}

.h-2\/3 {
  height: 66.666667%;
}

.h-1\/4 {
  height: 25%;
}

.h-2\/4 {
  height: 50%;
}

.h-3\/4 {
  height: 75%;
}

.h-1\/5 {
  height: 20%;
}

.h-2\/5 {
  height: 40%;
}

.h-3\/5 {
  height: 60%;
}

.h-4\/5 {
  height: 80%;
}

.h-1\/6 {
  height: 16.666667%;
}

.h-2\/6 {
  height: 33.333333%;
}

.h-3\/6 {
  height: 50%;
}

.h-4\/6 {
  height: 66.666667%;
}

.h-5\/6 {
  height: 83.333333%;
}

.h-full {
  height: 100%;
}

.h-screen {
  height: 100vh;
}

.max-h-16 {
  max-height: 4rem;
}

.max-h-24 {
  max-height: 6rem;
}

.max-h-32 {
  max-height: 8rem;
}

.max-h-48 {
  max-height: 12rem;
}

.max-h-60 {
  max-height: 15rem;
}

.max-h-64 {
  max-height: 16rem;
}

.max-h-80 {
  max-height: 20rem;
}

.max-h-96 {
  max-height: 24rem;
}

.max-h-full {
  max-height: 100%;
}

.min-h-0 {
  min-height: 0px;
}

.min-h-full {
  min-height: 100%;
}

.min-h-screen {
  min-height: 100vh;
}

.w-0 {
  width: 0px;
}

.w-1 {
  width: 0.25rem;
}

.w-2 {
  width: 0.5rem;
}

.w-3 {
  width: 0.75rem;
}

.w-4 {
  width: 1rem;
}

.w-5 {
  width: 1.25rem;
}

.w-6 {
  width: 1.5rem;
}

.w-7 {
  width: 1.75rem;
}

.w-8 {
  width: 2rem;
}

.w-9 {
  width: 2.25rem;
}

.w-10 {
  width: 2.5rem;
}

.w-11 {
  width: 2.75rem;
}

.w-12 {
  width: 3rem;
}

.w-14 {
  width: 3.5rem;
}

.w-16 {
  width: 4rem;
}

.w-20 {
  width: 5rem;
}

.w-24 {
  width: 6rem;
}

.w-28 {
  width: 7rem;
}

.w-32 {
  width: 8rem;
}

.w-36 {
  width: 9rem;
}

.w-40 {
  width: 10rem;
}

.w-44 {
  width: 11rem;
}

.w-48 {
  width: 12rem;
}

.w-52 {
  width: 13rem;
}

.w-56 {
  width: 14rem;
}

.w-60 {
  width: 15rem;
}

.w-64 {
  width: 16rem;
}

.w-72 {
  width: 18rem;
}

.w-80 {
  width: 20rem;
}

.w-96 {
  width: 24rem;
}

.w-auto {
  width: auto;
}

.w-px {
  width: 1px;
}

.w-0\.5 {
  width: 0.125rem;
}

.w-1\.5 {
  width: 0.375rem;
}

.w-2\.5 {
  width: 0.625rem;
}

.w-3\.5 {
  width: 0.875rem;
}

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

.w-1\/3 {
  width: 33.333333%;
}

.w-2\/3 {
  width: 66.666667%;
}

.w-1\/4 {
  width: 25%;
}

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

.w-3\/4 {
  width: 75%;
}

.w-1\/5 {
  width: 20%;
}

.w-2\/5 {
  width: 40%;
}

.w-3\/5 {
  width: 60%;
}

.w-4\/5 {
  width: 80%;
}

.w-1\/6 {
  width: 16.666667%;
}

.w-2\/6 {
  width: 33.333333%;
}

.w-3\/6 {
  width: 50%;
}

.w-4\/6 {
  width: 66.666667%;
}

.w-5\/6 {
  width: 83.333333%;
}

.w-1\/12 {
  width: 8.333333%;
}

.w-2\/12 {
  width: 16.666667%;
}

.w-3\/12 {
  width: 25%;
}

.w-4\/12 {
  width: 33.333333%;
}

.w-5\/12 {
  width: 41.666667%;
}

.w-6\/12 {
  width: 50%;
}

.w-7\/12 {
  width: 58.333333%;
}

.w-8\/12 {
  width: 66.666667%;
}

.w-9\/12 {
  width: 75%;
}

.w-10\/12 {
  width: 83.333333%;
}

.w-11\/12 {
  width: 91.666667%;
}

.w-full {
  width: 100%;
}

.w-screen {
  width: 100vw;
}

.w-min {
  width: -moz-min-content;
  width: min-content;
}

.w-max {
  width: -moz-max-content;
  width: max-content;
}

.min-w-0 {
  min-width: 0px;
}

.min-w-full {
  min-width: 100%;
}

.min-w-max {
  min-width: -moz-max-content;
  min-width: max-content;
}

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

.max-w-xs {
  max-width: 20rem;
}

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

.max-w-md {
  max-width: 28rem;
}

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

.max-w-xl {
  max-width: 36rem;
}

.max-w-2xl {
  max-width: 42rem;
}

.max-w-3xl {
  max-width: 48rem;
}

.max-w-4xl {
  max-width: 56rem;
}

.max-w-5xl {
  max-width: 64rem;
}

.max-w-6xl {
  max-width: 72rem;
}

.max-w-7xl {
  max-width: 80rem;
}

.max-w-full {
  max-width: 100%;
}

.max-w-screen-xl {
  max-width: 1280px;
}

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

.flex-auto {
  flex: 1 1 auto;
}

.flex-initial {
  flex: 0 1 auto;
}

.flex-none {
  flex: none;
}

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

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

.flex-grow-0 {
  flex-grow: 0;
}

.flex-grow {
  flex-grow: 1;
}

.border-collapse {
  border-collapse: collapse;
}

.border-separate {
  border-collapse: separate;
}

.origin-left {
  transform-origin: left;
}

.transform {
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.transform-gpu {
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  transform: translate3d(var(--tw-translate-x), var(--tw-translate-y), 0) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.transform-none {
  transform: none;
}

.translate-x-0 {
  --tw-translate-x: 0px;
}

.translate-x-1 {
  --tw-translate-x: 0.25rem;
}

.translate-x-5 {
  --tw-translate-x: 1.25rem;
}

.translate-x-6 {
  --tw-translate-x: 1.5rem;
}

.translate-x-7 {
  --tw-translate-x: 1.75rem;
}

.translate-x-0\.5 {
  --tw-translate-x: 0.125rem;
}

.-translate-x-1 {
  --tw-translate-x: -0.25rem;
}

.-translate-x-1\/2 {
  --tw-translate-x: -50%;
}

.-translate-x-full {
  --tw-translate-x: -100%;
}

.translate-y-0 {
  --tw-translate-y: 0px;
}

.translate-y-0\.5 {
  --tw-translate-y: 0.125rem;
}

.-translate-y-1 {
  --tw-translate-y: -0.25rem;
}

.translate-y-1\/2 {
  --tw-translate-y: 50%;
}

.-translate-y-1\/2 {
  --tw-translate-y: -50%;
}

.hover\:translate-x-0:hover {
  --tw-translate-x: 0px;
}

.hover\:translate-x-1:hover {
  --tw-translate-x: 0.25rem;
}

.hover\:translate-x-2:hover {
  --tw-translate-x: 0.5rem;
}

.hover\:translate-x-3:hover {
  --tw-translate-x: 0.75rem;
}

.hover\:translate-x-4:hover {
  --tw-translate-x: 1rem;
}

.hover\:translate-x-5:hover {
  --tw-translate-x: 1.25rem;
}

.hover\:translate-x-6:hover {
  --tw-translate-x: 1.5rem;
}

.hover\:translate-x-7:hover {
  --tw-translate-x: 1.75rem;
}

.hover\:translate-x-8:hover {
  --tw-translate-x: 2rem;
}

.hover\:translate-x-9:hover {
  --tw-translate-x: 2.25rem;
}

.hover\:translate-x-10:hover {
  --tw-translate-x: 2.5rem;
}

.hover\:translate-x-11:hover {
  --tw-translate-x: 2.75rem;
}

.hover\:translate-x-12:hover {
  --tw-translate-x: 3rem;
}

.hover\:translate-x-14:hover {
  --tw-translate-x: 3.5rem;
}

.hover\:translate-x-16:hover {
  --tw-translate-x: 4rem;
}

.hover\:translate-x-20:hover {
  --tw-translate-x: 5rem;
}

.hover\:translate-x-24:hover {
  --tw-translate-x: 6rem;
}

.hover\:translate-x-28:hover {
  --tw-translate-x: 7rem;
}

.hover\:translate-x-32:hover {
  --tw-translate-x: 8rem;
}

.hover\:translate-x-36:hover {
  --tw-translate-x: 9rem;
}

.hover\:translate-x-40:hover {
  --tw-translate-x: 10rem;
}

.hover\:translate-x-44:hover {
  --tw-translate-x: 11rem;
}

.hover\:translate-x-48:hover {
  --tw-translate-x: 12rem;
}

.hover\:translate-x-52:hover {
  --tw-translate-x: 13rem;
}

.hover\:translate-x-56:hover {
  --tw-translate-x: 14rem;
}

.hover\:translate-x-60:hover {
  --tw-translate-x: 15rem;
}

.hover\:translate-x-64:hover {
  --tw-translate-x: 16rem;
}

.hover\:translate-x-72:hover {
  --tw-translate-x: 18rem;
}

.hover\:translate-x-80:hover {
  --tw-translate-x: 20rem;
}

.hover\:translate-x-96:hover {
  --tw-translate-x: 24rem;
}

.hover\:translate-x-px:hover {
  --tw-translate-x: 1px;
}

.hover\:translate-x-0\.5:hover {
  --tw-translate-x: 0.125rem;
}

.hover\:translate-x-1\.5:hover {
  --tw-translate-x: 0.375rem;
}

.hover\:translate-x-2\.5:hover {
  --tw-translate-x: 0.625rem;
}

.hover\:translate-x-3\.5:hover {
  --tw-translate-x: 0.875rem;
}

.hover\:-translate-x-0:hover {
  --tw-translate-x: 0px;
}

.hover\:-translate-x-1:hover {
  --tw-translate-x: -0.25rem;
}

.hover\:-translate-x-2:hover {
  --tw-translate-x: -0.5rem;
}

.hover\:-translate-x-3:hover {
  --tw-translate-x: -0.75rem;
}

.hover\:-translate-x-4:hover {
  --tw-translate-x: -1rem;
}

.hover\:-translate-x-5:hover {
  --tw-translate-x: -1.25rem;
}

.hover\:-translate-x-6:hover {
  --tw-translate-x: -1.5rem;
}

.hover\:-translate-x-7:hover {
  --tw-translate-x: -1.75rem;
}

.hover\:-translate-x-8:hover {
  --tw-translate-x: -2rem;
}

.hover\:-translate-x-9:hover {
  --tw-translate-x: -2.25rem;
}

.hover\:-translate-x-10:hover {
  --tw-translate-x: -2.5rem;
}

.hover\:-translate-x-11:hover {
  --tw-translate-x: -2.75rem;
}

.hover\:-translate-x-12:hover {
  --tw-translate-x: -3rem;
}

.hover\:-translate-x-14:hover {
  --tw-translate-x: -3.5rem;
}

.hover\:-translate-x-16:hover {
  --tw-translate-x: -4rem;
}

.hover\:-translate-x-20:hover {
  --tw-translate-x: -5rem;
}

.hover\:-translate-x-24:hover {
  --tw-translate-x: -6rem;
}

.hover\:-translate-x-28:hover {
  --tw-translate-x: -7rem;
}

.hover\:-translate-x-32:hover {
  --tw-translate-x: -8rem;
}

.hover\:-translate-x-36:hover {
  --tw-translate-x: -9rem;
}

.hover\:-translate-x-40:hover {
  --tw-translate-x: -10rem;
}

.hover\:-translate-x-44:hover {
  --tw-translate-x: -11rem;
}

.hover\:-translate-x-48:hover {
  --tw-translate-x: -12rem;
}

.hover\:-translate-x-52:hover {
  --tw-translate-x: -13rem;
}

.hover\:-translate-x-56:hover {
  --tw-translate-x: -14rem;
}

.hover\:-translate-x-60:hover {
  --tw-translate-x: -15rem;
}

.hover\:-translate-x-64:hover {
  --tw-translate-x: -16rem;
}

.hover\:-translate-x-72:hover {
  --tw-translate-x: -18rem;
}

.hover\:-translate-x-80:hover {
  --tw-translate-x: -20rem;
}

.hover\:-translate-x-96:hover {
  --tw-translate-x: -24rem;
}

.hover\:-translate-x-px:hover {
  --tw-translate-x: -1px;
}

.hover\:-translate-x-0\.5:hover {
  --tw-translate-x: -0.125rem;
}

.hover\:-translate-x-1\.5:hover {
  --tw-translate-x: -0.375rem;
}

.hover\:-translate-x-2\.5:hover {
  --tw-translate-x: -0.625rem;
}

.hover\:-translate-x-3\.5:hover {
  --tw-translate-x: -0.875rem;
}

.hover\:translate-x-1\/2:hover {
  --tw-translate-x: 50%;
}

.hover\:translate-x-1\/3:hover {
  --tw-translate-x: 33.333333%;
}

.hover\:translate-x-2\/3:hover {
  --tw-translate-x: 66.666667%;
}

.hover\:translate-x-1\/4:hover {
  --tw-translate-x: 25%;
}

.hover\:translate-x-2\/4:hover {
  --tw-translate-x: 50%;
}

.hover\:translate-x-3\/4:hover {
  --tw-translate-x: 75%;
}

.hover\:translate-x-full:hover {
  --tw-translate-x: 100%;
}

.hover\:-translate-x-1\/2:hover {
  --tw-translate-x: -50%;
}

.hover\:-translate-x-1\/3:hover {
  --tw-translate-x: -33.333333%;
}

.hover\:-translate-x-2\/3:hover {
  --tw-translate-x: -66.666667%;
}

.hover\:-translate-x-1\/4:hover {
  --tw-translate-x: -25%;
}

.hover\:-translate-x-2\/4:hover {
  --tw-translate-x: -50%;
}

.hover\:-translate-x-3\/4:hover {
  --tw-translate-x: -75%;
}

.hover\:-translate-x-full:hover {
  --tw-translate-x: -100%;
}

.hover\:translate-y-0:hover {
  --tw-translate-y: 0px;
}

.hover\:translate-y-1:hover {
  --tw-translate-y: 0.25rem;
}

.hover\:translate-y-2:hover {
  --tw-translate-y: 0.5rem;
}

.hover\:translate-y-3:hover {
  --tw-translate-y: 0.75rem;
}

.hover\:translate-y-4:hover {
  --tw-translate-y: 1rem;
}

.hover\:translate-y-5:hover {
  --tw-translate-y: 1.25rem;
}

.hover\:translate-y-6:hover {
  --tw-translate-y: 1.5rem;
}

.hover\:translate-y-7:hover {
  --tw-translate-y: 1.75rem;
}

.hover\:translate-y-8:hover {
  --tw-translate-y: 2rem;
}

.hover\:translate-y-9:hover {
  --tw-translate-y: 2.25rem;
}

.hover\:translate-y-10:hover {
  --tw-translate-y: 2.5rem;
}

.hover\:translate-y-11:hover {
  --tw-translate-y: 2.75rem;
}

.hover\:translate-y-12:hover {
  --tw-translate-y: 3rem;
}

.hover\:translate-y-14:hover {
  --tw-translate-y: 3.5rem;
}

.hover\:translate-y-16:hover {
  --tw-translate-y: 4rem;
}

.hover\:translate-y-20:hover {
  --tw-translate-y: 5rem;
}

.hover\:translate-y-24:hover {
  --tw-translate-y: 6rem;
}

.hover\:translate-y-28:hover {
  --tw-translate-y: 7rem;
}

.hover\:translate-y-32:hover {
  --tw-translate-y: 8rem;
}

.hover\:translate-y-36:hover {
  --tw-translate-y: 9rem;
}

.hover\:translate-y-40:hover {
  --tw-translate-y: 10rem;
}

.hover\:translate-y-44:hover {
  --tw-translate-y: 11rem;
}

.hover\:translate-y-48:hover {
  --tw-translate-y: 12rem;
}

.hover\:translate-y-52:hover {
  --tw-translate-y: 13rem;
}

.hover\:translate-y-56:hover {
  --tw-translate-y: 14rem;
}

.hover\:translate-y-60:hover {
  --tw-translate-y: 15rem;
}

.hover\:translate-y-64:hover {
  --tw-translate-y: 16rem;
}

.hover\:translate-y-72:hover {
  --tw-translate-y: 18rem;
}

.hover\:translate-y-80:hover {
  --tw-translate-y: 20rem;
}

.hover\:translate-y-96:hover {
  --tw-translate-y: 24rem;
}

.hover\:translate-y-px:hover {
  --tw-translate-y: 1px;
}

.hover\:translate-y-0\.5:hover {
  --tw-translate-y: 0.125rem;
}

.hover\:translate-y-1\.5:hover {
  --tw-translate-y: 0.375rem;
}

.hover\:translate-y-2\.5:hover {
  --tw-translate-y: 0.625rem;
}

.hover\:translate-y-3\.5:hover {
  --tw-translate-y: 0.875rem;
}

.hover\:-translate-y-0:hover {
  --tw-translate-y: 0px;
}

.hover\:-translate-y-1:hover {
  --tw-translate-y: -0.25rem;
}

.hover\:-translate-y-2:hover {
  --tw-translate-y: -0.5rem;
}

.hover\:-translate-y-3:hover {
  --tw-translate-y: -0.75rem;
}

.hover\:-translate-y-4:hover {
  --tw-translate-y: -1rem;
}

.hover\:-translate-y-5:hover {
  --tw-translate-y: -1.25rem;
}

.hover\:-translate-y-6:hover {
  --tw-translate-y: -1.5rem;
}

.hover\:-translate-y-7:hover {
  --tw-translate-y: -1.75rem;
}

.hover\:-translate-y-8:hover {
  --tw-translate-y: -2rem;
}

.hover\:-translate-y-9:hover {
  --tw-translate-y: -2.25rem;
}

.hover\:-translate-y-10:hover {
  --tw-translate-y: -2.5rem;
}

.hover\:-translate-y-11:hover {
  --tw-translate-y: -2.75rem;
}

.hover\:-translate-y-12:hover {
  --tw-translate-y: -3rem;
}

.hover\:-translate-y-14:hover {
  --tw-translate-y: -3.5rem;
}

.hover\:-translate-y-16:hover {
  --tw-translate-y: -4rem;
}

.hover\:-translate-y-20:hover {
  --tw-translate-y: -5rem;
}

.hover\:-translate-y-24:hover {
  --tw-translate-y: -6rem;
}

.hover\:-translate-y-28:hover {
  --tw-translate-y: -7rem;
}

.hover\:-translate-y-32:hover {
  --tw-translate-y: -8rem;
}

.hover\:-translate-y-36:hover {
  --tw-translate-y: -9rem;
}

.hover\:-translate-y-40:hover {
  --tw-translate-y: -10rem;
}

.hover\:-translate-y-44:hover {
  --tw-translate-y: -11rem;
}

.hover\:-translate-y-48:hover {
  --tw-translate-y: -12rem;
}

.hover\:-translate-y-52:hover {
  --tw-translate-y: -13rem;
}

.hover\:-translate-y-56:hover {
  --tw-translate-y: -14rem;
}

.hover\:-translate-y-60:hover {
  --tw-translate-y: -15rem;
}

.hover\:-translate-y-64:hover {
  --tw-translate-y: -16rem;
}

.hover\:-translate-y-72:hover {
  --tw-translate-y: -18rem;
}

.hover\:-translate-y-80:hover {
  --tw-translate-y: -20rem;
}

.hover\:-translate-y-96:hover {
  --tw-translate-y: -24rem;
}

.hover\:-translate-y-px:hover {
  --tw-translate-y: -1px;
}

.hover\:-translate-y-0\.5:hover {
  --tw-translate-y: -0.125rem;
}

.hover\:-translate-y-1\.5:hover {
  --tw-translate-y: -0.375rem;
}

.hover\:-translate-y-2\.5:hover {
  --tw-translate-y: -0.625rem;
}

.hover\:-translate-y-3\.5:hover {
  --tw-translate-y: -0.875rem;
}

.hover\:translate-y-1\/2:hover {
  --tw-translate-y: 50%;
}

.hover\:translate-y-1\/3:hover {
  --tw-translate-y: 33.333333%;
}

.hover\:translate-y-2\/3:hover {
  --tw-translate-y: 66.666667%;
}

.hover\:translate-y-1\/4:hover {
  --tw-translate-y: 25%;
}

.hover\:translate-y-2\/4:hover {
  --tw-translate-y: 50%;
}

.hover\:translate-y-3\/4:hover {
  --tw-translate-y: 75%;
}

.hover\:translate-y-full:hover {
  --tw-translate-y: 100%;
}

.hover\:-translate-y-1\/2:hover {
  --tw-translate-y: -50%;
}

.hover\:-translate-y-1\/3:hover {
  --tw-translate-y: -33.333333%;
}

.hover\:-translate-y-2\/3:hover {
  --tw-translate-y: -66.666667%;
}

.hover\:-translate-y-1\/4:hover {
  --tw-translate-y: -25%;
}

.hover\:-translate-y-2\/4:hover {
  --tw-translate-y: -50%;
}

.hover\:-translate-y-3\/4:hover {
  --tw-translate-y: -75%;
}

.hover\:-translate-y-full:hover {
  --tw-translate-y: -100%;
}

.focus\:translate-x-0:focus {
  --tw-translate-x: 0px;
}

.focus\:translate-x-1:focus {
  --tw-translate-x: 0.25rem;
}

.focus\:translate-x-2:focus {
  --tw-translate-x: 0.5rem;
}

.focus\:translate-x-3:focus {
  --tw-translate-x: 0.75rem;
}

.focus\:translate-x-4:focus {
  --tw-translate-x: 1rem;
}

.focus\:translate-x-5:focus {
  --tw-translate-x: 1.25rem;
}

.focus\:translate-x-6:focus {
  --tw-translate-x: 1.5rem;
}

.focus\:translate-x-7:focus {
  --tw-translate-x: 1.75rem;
}

.focus\:translate-x-8:focus {
  --tw-translate-x: 2rem;
}

.focus\:translate-x-9:focus {
  --tw-translate-x: 2.25rem;
}

.focus\:translate-x-10:focus {
  --tw-translate-x: 2.5rem;
}

.focus\:translate-x-11:focus {
  --tw-translate-x: 2.75rem;
}

.focus\:translate-x-12:focus {
  --tw-translate-x: 3rem;
}

.focus\:translate-x-14:focus {
  --tw-translate-x: 3.5rem;
}

.focus\:translate-x-16:focus {
  --tw-translate-x: 4rem;
}

.focus\:translate-x-20:focus {
  --tw-translate-x: 5rem;
}

.focus\:translate-x-24:focus {
  --tw-translate-x: 6rem;
}

.focus\:translate-x-28:focus {
  --tw-translate-x: 7rem;
}

.focus\:translate-x-32:focus {
  --tw-translate-x: 8rem;
}

.focus\:translate-x-36:focus {
  --tw-translate-x: 9rem;
}

.focus\:translate-x-40:focus {
  --tw-translate-x: 10rem;
}

.focus\:translate-x-44:focus {
  --tw-translate-x: 11rem;
}

.focus\:translate-x-48:focus {
  --tw-translate-x: 12rem;
}

.focus\:translate-x-52:focus {
  --tw-translate-x: 13rem;
}

.focus\:translate-x-56:focus {
  --tw-translate-x: 14rem;
}

.focus\:translate-x-60:focus {
  --tw-translate-x: 15rem;
}

.focus\:translate-x-64:focus {
  --tw-translate-x: 16rem;
}

.focus\:translate-x-72:focus {
  --tw-translate-x: 18rem;
}

.focus\:translate-x-80:focus {
  --tw-translate-x: 20rem;
}

.focus\:translate-x-96:focus {
  --tw-translate-x: 24rem;
}

.focus\:translate-x-px:focus {
  --tw-translate-x: 1px;
}

.focus\:translate-x-0\.5:focus {
  --tw-translate-x: 0.125rem;
}

.focus\:translate-x-1\.5:focus {
  --tw-translate-x: 0.375rem;
}

.focus\:translate-x-2\.5:focus {
  --tw-translate-x: 0.625rem;
}

.focus\:translate-x-3\.5:focus {
  --tw-translate-x: 0.875rem;
}

.focus\:-translate-x-0:focus {
  --tw-translate-x: 0px;
}

.focus\:-translate-x-1:focus {
  --tw-translate-x: -0.25rem;
}

.focus\:-translate-x-2:focus {
  --tw-translate-x: -0.5rem;
}

.focus\:-translate-x-3:focus {
  --tw-translate-x: -0.75rem;
}

.focus\:-translate-x-4:focus {
  --tw-translate-x: -1rem;
}

.focus\:-translate-x-5:focus {
  --tw-translate-x: -1.25rem;
}

.focus\:-translate-x-6:focus {
  --tw-translate-x: -1.5rem;
}

.focus\:-translate-x-7:focus {
  --tw-translate-x: -1.75rem;
}

.focus\:-translate-x-8:focus {
  --tw-translate-x: -2rem;
}

.focus\:-translate-x-9:focus {
  --tw-translate-x: -2.25rem;
}

.focus\:-translate-x-10:focus {
  --tw-translate-x: -2.5rem;
}

.focus\:-translate-x-11:focus {
  --tw-translate-x: -2.75rem;
}

.focus\:-translate-x-12:focus {
  --tw-translate-x: -3rem;
}

.focus\:-translate-x-14:focus {
  --tw-translate-x: -3.5rem;
}

.focus\:-translate-x-16:focus {
  --tw-translate-x: -4rem;
}

.focus\:-translate-x-20:focus {
  --tw-translate-x: -5rem;
}

.focus\:-translate-x-24:focus {
  --tw-translate-x: -6rem;
}

.focus\:-translate-x-28:focus {
  --tw-translate-x: -7rem;
}

.focus\:-translate-x-32:focus {
  --tw-translate-x: -8rem;
}

.focus\:-translate-x-36:focus {
  --tw-translate-x: -9rem;
}

.focus\:-translate-x-40:focus {
  --tw-translate-x: -10rem;
}

.focus\:-translate-x-44:focus {
  --tw-translate-x: -11rem;
}

.focus\:-translate-x-48:focus {
  --tw-translate-x: -12rem;
}

.focus\:-translate-x-52:focus {
  --tw-translate-x: -13rem;
}

.focus\:-translate-x-56:focus {
  --tw-translate-x: -14rem;
}

.focus\:-translate-x-60:focus {
  --tw-translate-x: -15rem;
}

.focus\:-translate-x-64:focus {
  --tw-translate-x: -16rem;
}

.focus\:-translate-x-72:focus {
  --tw-translate-x: -18rem;
}

.focus\:-translate-x-80:focus {
  --tw-translate-x: -20rem;
}

.focus\:-translate-x-96:focus {
  --tw-translate-x: -24rem;
}

.focus\:-translate-x-px:focus {
  --tw-translate-x: -1px;
}

.focus\:-translate-x-0\.5:focus {
  --tw-translate-x: -0.125rem;
}

.focus\:-translate-x-1\.5:focus {
  --tw-translate-x: -0.375rem;
}

.focus\:-translate-x-2\.5:focus {
  --tw-translate-x: -0.625rem;
}

.focus\:-translate-x-3\.5:focus {
  --tw-translate-x: -0.875rem;
}

.focus\:translate-x-1\/2:focus {
  --tw-translate-x: 50%;
}

.focus\:translate-x-1\/3:focus {
  --tw-translate-x: 33.333333%;
}

.focus\:translate-x-2\/3:focus {
  --tw-translate-x: 66.666667%;
}

.focus\:translate-x-1\/4:focus {
  --tw-translate-x: 25%;
}

.focus\:translate-x-2\/4:focus {
  --tw-translate-x: 50%;
}

.focus\:translate-x-3\/4:focus {
  --tw-translate-x: 75%;
}

.focus\:translate-x-full:focus {
  --tw-translate-x: 100%;
}

.focus\:-translate-x-1\/2:focus {
  --tw-translate-x: -50%;
}

.focus\:-translate-x-1\/3:focus {
  --tw-translate-x: -33.333333%;
}

.focus\:-translate-x-2\/3:focus {
  --tw-translate-x: -66.666667%;
}

.focus\:-translate-x-1\/4:focus {
  --tw-translate-x: -25%;
}

.focus\:-translate-x-2\/4:focus {
  --tw-translate-x: -50%;
}

.focus\:-translate-x-3\/4:focus {
  --tw-translate-x: -75%;
}

.focus\:-translate-x-full:focus {
  --tw-translate-x: -100%;
}

.focus\:translate-y-0:focus {
  --tw-translate-y: 0px;
}

.focus\:translate-y-1:focus {
  --tw-translate-y: 0.25rem;
}

.focus\:translate-y-2:focus {
  --tw-translate-y: 0.5rem;
}

.focus\:translate-y-3:focus {
  --tw-translate-y: 0.75rem;
}

.focus\:translate-y-4:focus {
  --tw-translate-y: 1rem;
}

.focus\:translate-y-5:focus {
  --tw-translate-y: 1.25rem;
}

.focus\:translate-y-6:focus {
  --tw-translate-y: 1.5rem;
}

.focus\:translate-y-7:focus {
  --tw-translate-y: 1.75rem;
}

.focus\:translate-y-8:focus {
  --tw-translate-y: 2rem;
}

.focus\:translate-y-9:focus {
  --tw-translate-y: 2.25rem;
}

.focus\:translate-y-10:focus {
  --tw-translate-y: 2.5rem;
}

.focus\:translate-y-11:focus {
  --tw-translate-y: 2.75rem;
}

.focus\:translate-y-12:focus {
  --tw-translate-y: 3rem;
}

.focus\:translate-y-14:focus {
  --tw-translate-y: 3.5rem;
}

.focus\:translate-y-16:focus {
  --tw-translate-y: 4rem;
}

.focus\:translate-y-20:focus {
  --tw-translate-y: 5rem;
}

.focus\:translate-y-24:focus {
  --tw-translate-y: 6rem;
}

.focus\:translate-y-28:focus {
  --tw-translate-y: 7rem;
}

.focus\:translate-y-32:focus {
  --tw-translate-y: 8rem;
}

.focus\:translate-y-36:focus {
  --tw-translate-y: 9rem;
}

.focus\:translate-y-40:focus {
  --tw-translate-y: 10rem;
}

.focus\:translate-y-44:focus {
  --tw-translate-y: 11rem;
}

.focus\:translate-y-48:focus {
  --tw-translate-y: 12rem;
}

.focus\:translate-y-52:focus {
  --tw-translate-y: 13rem;
}

.focus\:translate-y-56:focus {
  --tw-translate-y: 14rem;
}

.focus\:translate-y-60:focus {
  --tw-translate-y: 15rem;
}

.focus\:translate-y-64:focus {
  --tw-translate-y: 16rem;
}

.focus\:translate-y-72:focus {
  --tw-translate-y: 18rem;
}

.focus\:translate-y-80:focus {
  --tw-translate-y: 20rem;
}

.focus\:translate-y-96:focus {
  --tw-translate-y: 24rem;
}

.focus\:translate-y-px:focus {
  --tw-translate-y: 1px;
}

.focus\:translate-y-0\.5:focus {
  --tw-translate-y: 0.125rem;
}

.focus\:translate-y-1\.5:focus {
  --tw-translate-y: 0.375rem;
}

.focus\:translate-y-2\.5:focus {
  --tw-translate-y: 0.625rem;
}

.focus\:translate-y-3\.5:focus {
  --tw-translate-y: 0.875rem;
}

.focus\:-translate-y-0:focus {
  --tw-translate-y: 0px;
}

.focus\:-translate-y-1:focus {
  --tw-translate-y: -0.25rem;
}

.focus\:-translate-y-2:focus {
  --tw-translate-y: -0.5rem;
}

.focus\:-translate-y-3:focus {
  --tw-translate-y: -0.75rem;
}

.focus\:-translate-y-4:focus {
  --tw-translate-y: -1rem;
}

.focus\:-translate-y-5:focus {
  --tw-translate-y: -1.25rem;
}

.focus\:-translate-y-6:focus {
  --tw-translate-y: -1.5rem;
}

.focus\:-translate-y-7:focus {
  --tw-translate-y: -1.75rem;
}

.focus\:-translate-y-8:focus {
  --tw-translate-y: -2rem;
}

.focus\:-translate-y-9:focus {
  --tw-translate-y: -2.25rem;
}

.focus\:-translate-y-10:focus {
  --tw-translate-y: -2.5rem;
}

.focus\:-translate-y-11:focus {
  --tw-translate-y: -2.75rem;
}

.focus\:-translate-y-12:focus {
  --tw-translate-y: -3rem;
}

.focus\:-translate-y-14:focus {
  --tw-translate-y: -3.5rem;
}

.focus\:-translate-y-16:focus {
  --tw-translate-y: -4rem;
}

.focus\:-translate-y-20:focus {
  --tw-translate-y: -5rem;
}

.focus\:-translate-y-24:focus {
  --tw-translate-y: -6rem;
}

.focus\:-translate-y-28:focus {
  --tw-translate-y: -7rem;
}

.focus\:-translate-y-32:focus {
  --tw-translate-y: -8rem;
}

.focus\:-translate-y-36:focus {
  --tw-translate-y: -9rem;
}

.focus\:-translate-y-40:focus {
  --tw-translate-y: -10rem;
}

.focus\:-translate-y-44:focus {
  --tw-translate-y: -11rem;
}

.focus\:-translate-y-48:focus {
  --tw-translate-y: -12rem;
}

.focus\:-translate-y-52:focus {
  --tw-translate-y: -13rem;
}

.focus\:-translate-y-56:focus {
  --tw-translate-y: -14rem;
}

.focus\:-translate-y-60:focus {
  --tw-translate-y: -15rem;
}

.focus\:-translate-y-64:focus {
  --tw-translate-y: -16rem;
}

.focus\:-translate-y-72:focus {
  --tw-translate-y: -18rem;
}

.focus\:-translate-y-80:focus {
  --tw-translate-y: -20rem;
}

.focus\:-translate-y-96:focus {
  --tw-translate-y: -24rem;
}

.focus\:-translate-y-px:focus {
  --tw-translate-y: -1px;
}

.focus\:-translate-y-0\.5:focus {
  --tw-translate-y: -0.125rem;
}

.focus\:-translate-y-1\.5:focus {
  --tw-translate-y: -0.375rem;
}

.focus\:-translate-y-2\.5:focus {
  --tw-translate-y: -0.625rem;
}

.focus\:-translate-y-3\.5:focus {
  --tw-translate-y: -0.875rem;
}

.focus\:translate-y-1\/2:focus {
  --tw-translate-y: 50%;
}

.focus\:translate-y-1\/3:focus {
  --tw-translate-y: 33.333333%;
}

.focus\:translate-y-2\/3:focus {
  --tw-translate-y: 66.666667%;
}

.focus\:translate-y-1\/4:focus {
  --tw-translate-y: 25%;
}

.focus\:translate-y-2\/4:focus {
  --tw-translate-y: 50%;
}

.focus\:translate-y-3\/4:focus {
  --tw-translate-y: 75%;
}

.focus\:translate-y-full:focus {
  --tw-translate-y: 100%;
}

.focus\:-translate-y-1\/2:focus {
  --tw-translate-y: -50%;
}

.focus\:-translate-y-1\/3:focus {
  --tw-translate-y: -33.333333%;
}

.focus\:-translate-y-2\/3:focus {
  --tw-translate-y: -66.666667%;
}

.focus\:-translate-y-1\/4:focus {
  --tw-translate-y: -25%;
}

.focus\:-translate-y-2\/4:focus {
  --tw-translate-y: -50%;
}

.focus\:-translate-y-3\/4:focus {
  --tw-translate-y: -75%;
}

.focus\:-translate-y-full:focus {
  --tw-translate-y: -100%;
}

.rotate-45 {
  --tw-rotate: 45deg;
}

.rotate-180 {
  --tw-rotate: 180deg;
}

.-rotate-90 {
  --tw-rotate: -90deg;
}

.hover\:rotate-0:hover {
  --tw-rotate: 0deg;
}

.hover\:rotate-1:hover {
  --tw-rotate: 1deg;
}

.hover\:rotate-2:hover {
  --tw-rotate: 2deg;
}

.hover\:rotate-3:hover {
  --tw-rotate: 3deg;
}

.hover\:rotate-6:hover {
  --tw-rotate: 6deg;
}

.hover\:rotate-12:hover {
  --tw-rotate: 12deg;
}

.hover\:rotate-45:hover {
  --tw-rotate: 45deg;
}

.hover\:rotate-90:hover {
  --tw-rotate: 90deg;
}

.hover\:rotate-180:hover {
  --tw-rotate: 180deg;
}

.hover\:-rotate-180:hover {
  --tw-rotate: -180deg;
}

.hover\:-rotate-90:hover {
  --tw-rotate: -90deg;
}

.hover\:-rotate-45:hover {
  --tw-rotate: -45deg;
}

.hover\:-rotate-12:hover {
  --tw-rotate: -12deg;
}

.hover\:-rotate-6:hover {
  --tw-rotate: -6deg;
}

.hover\:-rotate-3:hover {
  --tw-rotate: -3deg;
}

.hover\:-rotate-2:hover {
  --tw-rotate: -2deg;
}

.hover\:-rotate-1:hover {
  --tw-rotate: -1deg;
}

.focus\:rotate-0:focus {
  --tw-rotate: 0deg;
}

.focus\:rotate-1:focus {
  --tw-rotate: 1deg;
}

.focus\:rotate-2:focus {
  --tw-rotate: 2deg;
}

.focus\:rotate-3:focus {
  --tw-rotate: 3deg;
}

.focus\:rotate-6:focus {
  --tw-rotate: 6deg;
}

.focus\:rotate-12:focus {
  --tw-rotate: 12deg;
}

.focus\:rotate-45:focus {
  --tw-rotate: 45deg;
}

.focus\:rotate-90:focus {
  --tw-rotate: 90deg;
}

.focus\:rotate-180:focus {
  --tw-rotate: 180deg;
}

.focus\:-rotate-180:focus {
  --tw-rotate: -180deg;
}

.focus\:-rotate-90:focus {
  --tw-rotate: -90deg;
}

.focus\:-rotate-45:focus {
  --tw-rotate: -45deg;
}

.focus\:-rotate-12:focus {
  --tw-rotate: -12deg;
}

.focus\:-rotate-6:focus {
  --tw-rotate: -6deg;
}

.focus\:-rotate-3:focus {
  --tw-rotate: -3deg;
}

.focus\:-rotate-2:focus {
  --tw-rotate: -2deg;
}

.focus\:-rotate-1:focus {
  --tw-rotate: -1deg;
}

.hover\:skew-x-0:hover {
  --tw-skew-x: 0deg;
}

.hover\:skew-x-1:hover {
  --tw-skew-x: 1deg;
}

.hover\:skew-x-2:hover {
  --tw-skew-x: 2deg;
}

.hover\:skew-x-3:hover {
  --tw-skew-x: 3deg;
}

.hover\:skew-x-6:hover {
  --tw-skew-x: 6deg;
}

.hover\:skew-x-12:hover {
  --tw-skew-x: 12deg;
}

.hover\:-skew-x-12:hover {
  --tw-skew-x: -12deg;
}

.hover\:-skew-x-6:hover {
  --tw-skew-x: -6deg;
}

.hover\:-skew-x-3:hover {
  --tw-skew-x: -3deg;
}

.hover\:-skew-x-2:hover {
  --tw-skew-x: -2deg;
}

.hover\:-skew-x-1:hover {
  --tw-skew-x: -1deg;
}

.hover\:skew-y-0:hover {
  --tw-skew-y: 0deg;
}

.hover\:skew-y-1:hover {
  --tw-skew-y: 1deg;
}

.hover\:skew-y-2:hover {
  --tw-skew-y: 2deg;
}

.hover\:skew-y-3:hover {
  --tw-skew-y: 3deg;
}

.hover\:skew-y-6:hover {
  --tw-skew-y: 6deg;
}

.hover\:skew-y-12:hover {
  --tw-skew-y: 12deg;
}

.hover\:-skew-y-12:hover {
  --tw-skew-y: -12deg;
}

.hover\:-skew-y-6:hover {
  --tw-skew-y: -6deg;
}

.hover\:-skew-y-3:hover {
  --tw-skew-y: -3deg;
}

.hover\:-skew-y-2:hover {
  --tw-skew-y: -2deg;
}

.hover\:-skew-y-1:hover {
  --tw-skew-y: -1deg;
}

.focus\:skew-x-0:focus {
  --tw-skew-x: 0deg;
}

.focus\:skew-x-1:focus {
  --tw-skew-x: 1deg;
}

.focus\:skew-x-2:focus {
  --tw-skew-x: 2deg;
}

.focus\:skew-x-3:focus {
  --tw-skew-x: 3deg;
}

.focus\:skew-x-6:focus {
  --tw-skew-x: 6deg;
}

.focus\:skew-x-12:focus {
  --tw-skew-x: 12deg;
}

.focus\:-skew-x-12:focus {
  --tw-skew-x: -12deg;
}

.focus\:-skew-x-6:focus {
  --tw-skew-x: -6deg;
}

.focus\:-skew-x-3:focus {
  --tw-skew-x: -3deg;
}

.focus\:-skew-x-2:focus {
  --tw-skew-x: -2deg;
}

.focus\:-skew-x-1:focus {
  --tw-skew-x: -1deg;
}

.focus\:skew-y-0:focus {
  --tw-skew-y: 0deg;
}

.focus\:skew-y-1:focus {
  --tw-skew-y: 1deg;
}

.focus\:skew-y-2:focus {
  --tw-skew-y: 2deg;
}

.focus\:skew-y-3:focus {
  --tw-skew-y: 3deg;
}

.focus\:skew-y-6:focus {
  --tw-skew-y: 6deg;
}

.focus\:skew-y-12:focus {
  --tw-skew-y: 12deg;
}

.focus\:-skew-y-12:focus {
  --tw-skew-y: -12deg;
}

.focus\:-skew-y-6:focus {
  --tw-skew-y: -6deg;
}

.focus\:-skew-y-3:focus {
  --tw-skew-y: -3deg;
}

.focus\:-skew-y-2:focus {
  --tw-skew-y: -2deg;
}

.focus\:-skew-y-1:focus {
  --tw-skew-y: -1deg;
}

.scale-0 {
  --tw-scale-x: 0;
  --tw-scale-y: 0;
}

.scale-50 {
  --tw-scale-x: .5;
  --tw-scale-y: .5;
}

.scale-75 {
  --tw-scale-x: .75;
  --tw-scale-y: .75;
}

.scale-90 {
  --tw-scale-x: .9;
  --tw-scale-y: .9;
}

.scale-95 {
  --tw-scale-x: .95;
  --tw-scale-y: .95;
}

.scale-100 {
  --tw-scale-x: 1;
  --tw-scale-y: 1;
}

.scale-105 {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
}

.scale-110 {
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
}

.scale-125 {
  --tw-scale-x: 1.25;
  --tw-scale-y: 1.25;
}

.scale-150 {
  --tw-scale-x: 1.5;
  --tw-scale-y: 1.5;
}

.hover\:scale-0:hover {
  --tw-scale-x: 0;
  --tw-scale-y: 0;
}

.hover\:scale-50:hover {
  --tw-scale-x: .5;
  --tw-scale-y: .5;
}

.hover\:scale-75:hover {
  --tw-scale-x: .75;
  --tw-scale-y: .75;
}

.hover\:scale-90:hover {
  --tw-scale-x: .9;
  --tw-scale-y: .9;
}

.hover\:scale-95:hover {
  --tw-scale-x: .95;
  --tw-scale-y: .95;
}

.hover\:scale-100:hover {
  --tw-scale-x: 1;
  --tw-scale-y: 1;
}

.hover\:scale-105:hover {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
}

.hover\:scale-110:hover {
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
}

.hover\:scale-125:hover {
  --tw-scale-x: 1.25;
  --tw-scale-y: 1.25;
}

.hover\:scale-150:hover {
  --tw-scale-x: 1.5;
  --tw-scale-y: 1.5;
}

.focus\:scale-0:focus {
  --tw-scale-x: 0;
  --tw-scale-y: 0;
}

.focus\:scale-50:focus {
  --tw-scale-x: .5;
  --tw-scale-y: .5;
}

.focus\:scale-75:focus {
  --tw-scale-x: .75;
  --tw-scale-y: .75;
}

.focus\:scale-90:focus {
  --tw-scale-x: .9;
  --tw-scale-y: .9;
}

.focus\:scale-95:focus {
  --tw-scale-x: .95;
  --tw-scale-y: .95;
}

.focus\:scale-100:focus {
  --tw-scale-x: 1;
  --tw-scale-y: 1;
}

.focus\:scale-105:focus {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
}

.focus\:scale-110:focus {
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
}

.focus\:scale-125:focus {
  --tw-scale-x: 1.25;
  --tw-scale-y: 1.25;
}

.focus\:scale-150:focus {
  --tw-scale-x: 1.5;
  --tw-scale-y: 1.5;
}

.scale-x-0 {
  --tw-scale-x: 0;
}

.scale-x-50 {
  --tw-scale-x: .5;
}

.scale-x-75 {
  --tw-scale-x: .75;
}

.scale-x-90 {
  --tw-scale-x: .9;
}

.scale-x-95 {
  --tw-scale-x: .95;
}

.scale-x-100 {
  --tw-scale-x: 1;
}

.scale-x-105 {
  --tw-scale-x: 1.05;
}

.scale-x-110 {
  --tw-scale-x: 1.1;
}

.scale-x-125 {
  --tw-scale-x: 1.25;
}

.scale-x-150 {
  --tw-scale-x: 1.5;
}

.scale-y-0 {
  --tw-scale-y: 0;
}

.scale-y-50 {
  --tw-scale-y: .5;
}

.scale-y-75 {
  --tw-scale-y: .75;
}

.scale-y-90 {
  --tw-scale-y: .9;
}

.scale-y-95 {
  --tw-scale-y: .95;
}

.scale-y-100 {
  --tw-scale-y: 1;
}

.scale-y-105 {
  --tw-scale-y: 1.05;
}

.scale-y-110 {
  --tw-scale-y: 1.1;
}

.scale-y-125 {
  --tw-scale-y: 1.25;
}

.scale-y-150 {
  --tw-scale-y: 1.5;
}

.hover\:scale-x-0:hover {
  --tw-scale-x: 0;
}

.hover\:scale-x-50:hover {
  --tw-scale-x: .5;
}

.hover\:scale-x-75:hover {
  --tw-scale-x: .75;
}

.hover\:scale-x-90:hover {
  --tw-scale-x: .9;
}

.hover\:scale-x-95:hover {
  --tw-scale-x: .95;
}

.hover\:scale-x-100:hover {
  --tw-scale-x: 1;
}

.hover\:scale-x-105:hover {
  --tw-scale-x: 1.05;
}

.hover\:scale-x-110:hover {
  --tw-scale-x: 1.1;
}

.hover\:scale-x-125:hover {
  --tw-scale-x: 1.25;
}

.hover\:scale-x-150:hover {
  --tw-scale-x: 1.5;
}

.hover\:scale-y-0:hover {
  --tw-scale-y: 0;
}

.hover\:scale-y-50:hover {
  --tw-scale-y: .5;
}

.hover\:scale-y-75:hover {
  --tw-scale-y: .75;
}

.hover\:scale-y-90:hover {
  --tw-scale-y: .9;
}

.hover\:scale-y-95:hover {
  --tw-scale-y: .95;
}

.hover\:scale-y-100:hover {
  --tw-scale-y: 1;
}

.hover\:scale-y-105:hover {
  --tw-scale-y: 1.05;
}

.hover\:scale-y-110:hover {
  --tw-scale-y: 1.1;
}

.hover\:scale-y-125:hover {
  --tw-scale-y: 1.25;
}

.hover\:scale-y-150:hover {
  --tw-scale-y: 1.5;
}

.focus\:scale-x-0:focus {
  --tw-scale-x: 0;
}

.focus\:scale-x-50:focus {
  --tw-scale-x: .5;
}

.focus\:scale-x-75:focus {
  --tw-scale-x: .75;
}

.focus\:scale-x-90:focus {
  --tw-scale-x: .9;
}

.focus\:scale-x-95:focus {
  --tw-scale-x: .95;
}

.focus\:scale-x-100:focus {
  --tw-scale-x: 1;
}

.focus\:scale-x-105:focus {
  --tw-scale-x: 1.05;
}

.focus\:scale-x-110:focus {
  --tw-scale-x: 1.1;
}

.focus\:scale-x-125:focus {
  --tw-scale-x: 1.25;
}

.focus\:scale-x-150:focus {
  --tw-scale-x: 1.5;
}

.focus\:scale-y-0:focus {
  --tw-scale-y: 0;
}

.focus\:scale-y-50:focus {
  --tw-scale-y: .5;
}

.focus\:scale-y-75:focus {
  --tw-scale-y: .75;
}

.focus\:scale-y-90:focus {
  --tw-scale-y: .9;
}

.focus\:scale-y-95:focus {
  --tw-scale-y: .95;
}

.focus\:scale-y-100:focus {
  --tw-scale-y: 1;
}

.focus\:scale-y-105:focus {
  --tw-scale-y: 1.05;
}

.focus\:scale-y-110:focus {
  --tw-scale-y: 1.1;
}

.focus\:scale-y-125:focus {
  --tw-scale-y: 1.25;
}

.focus\:scale-y-150:focus {
  --tw-scale-y: 1.5;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes ping {
  75%, 100% {
    transform: scale(2);
    opacity: 0;
  }
}

@keyframes pulse {
  50% {
    opacity: .5;
  }
}

@keyframes bounce {
  0%, 100% {
    transform: translateY(-25%);
    animation-timing-function: cubic-bezier(0.8,0,1,1);
  }

  50% {
    transform: none;
    animation-timing-function: cubic-bezier(0,0,0.2,1);
  }
}

.animate-spin {
  animation: spin 1s linear infinite;
}

.animate-ping {
  animation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
}

.animate-pulse {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

.animate-bounce {
  animation: bounce 1s infinite;
}

.cursor-pointer {
  cursor: pointer;
}

.cursor-move {
  cursor: move;
}

.cursor-help {
  cursor: help;
}

.cursor-not-allowed {
  cursor: not-allowed;
}

.select-none {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.resize-none {
  resize: none;
}

.resize {
  resize: both;
}

.list-inside {
  list-style-position: inside;
}

.list-disc {
  list-style-type: disc;
}

.list-decimal {
  list-style-type: decimal;
}

.appearance-none {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

.grid-flow-row {
  grid-auto-flow: row;
}

.grid-flow-col {
  grid-auto-flow: column;
}

.grid-flow-row-dense {
  grid-auto-flow: row dense;
}

.grid-flow-col-dense {
  grid-auto-flow: column dense;
}

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

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

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

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

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

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

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

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

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

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

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

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

.grid-cols-none {
  grid-template-columns: none;
}

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

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

.grid-rows-3 {
  grid-template-rows: repeat(3, minmax(0, 1fr));
}

.grid-rows-4 {
  grid-template-rows: repeat(4, minmax(0, 1fr));
}

.grid-rows-5 {
  grid-template-rows: repeat(5, minmax(0, 1fr));
}

.grid-rows-6 {
  grid-template-rows: repeat(6, minmax(0, 1fr));
}

.grid-rows-none {
  grid-template-rows: none;
}

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

.flex-row-reverse {
  flex-direction: row-reverse;
}

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

.flex-col-reverse {
  flex-direction: column-reverse;
}

.flex-wrap {
  flex-wrap: wrap;
}

.flex-wrap-reverse {
  flex-wrap: wrap-reverse;
}

.flex-nowrap {
  flex-wrap: nowrap;
}

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

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

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

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

.justify-start {
  justify-content: flex-start;
}

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

.justify-center {
  justify-content: center;
}

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

.justify-around {
  justify-content: space-around;
}

.justify-items-center {
  justify-items: center;
}

.gap-0 {
  gap: 0px;
}

.gap-1 {
  gap: 0.25rem;
}

.gap-2 {
  gap: 0.5rem;
}

.gap-3 {
  gap: 0.75rem;
}

.gap-4 {
  gap: 1rem;
}

.gap-6 {
  gap: 1.5rem;
}

.gap-8 {
  gap: 2rem;
}

.gap-12 {
  gap: 3rem;
}

.gap-0\.5 {
  gap: 0.125rem;
}

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

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

.gap-x-8 {
  -moz-column-gap: 2rem;
       column-gap: 2rem;
}

.gap-y-10 {
  row-gap: 2.5rem;
}

.space-x-0 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(0px * var(--tw-space-x-reverse));
  margin-left: calc(0px * calc(1 - var(--tw-space-x-reverse)));
}

.space-x-1 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(0.25rem * var(--tw-space-x-reverse));
  margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));
}

.space-x-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(0.5rem * var(--tw-space-x-reverse));
  margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
}

.space-x-3 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(0.75rem * var(--tw-space-x-reverse));
  margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse)));
}

.space-x-4 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(1rem * var(--tw-space-x-reverse));
  margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
}

.space-x-6 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(1.5rem * var(--tw-space-x-reverse));
  margin-left: calc(1.5rem * calc(1 - var(--tw-space-x-reverse)));
}

.space-x-8 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(2rem * var(--tw-space-x-reverse));
  margin-left: calc(2rem * calc(1 - var(--tw-space-x-reverse)));
}

.space-x-0\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(0.125rem * var(--tw-space-x-reverse));
  margin-left: calc(0.125rem * calc(1 - var(--tw-space-x-reverse)));
}

.space-x-1\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(0.375rem * var(--tw-space-x-reverse));
  margin-left: calc(0.375rem * calc(1 - var(--tw-space-x-reverse)));
}

.-space-x-1 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(-0.25rem * var(--tw-space-x-reverse));
  margin-left: calc(-0.25rem * calc(1 - var(--tw-space-x-reverse)));
}

.space-y-0 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0px * var(--tw-space-y-reverse));
}

.space-y-1 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
}

.space-y-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}

.space-y-3 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
}

.space-y-4 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}

.space-y-5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.25rem * var(--tw-space-y-reverse));
}

.space-y-6 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}

.space-y-8 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(2rem * var(--tw-space-y-reverse));
}

.space-y-12 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(3rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(3rem * var(--tw-space-y-reverse));
}

.space-y-1\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.375rem * var(--tw-space-y-reverse));
}

.space-x-reverse > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 1;
}

.divide-y > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-y-reverse: 0;
  border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
  border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
}

.divide-gray-700 > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-opacity: 1;
  border-color: rgba(55, 65, 81, var(--tw-divide-opacity));
}

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

.self-end {
  align-self: flex-end;
}

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

.overflow-auto {
  overflow: auto;
}

.overflow-hidden {
  overflow: hidden;
}

.overflow-visible {
  overflow: visible;
}

.overflow-x-auto {
  overflow-x: auto;
}

.overflow-y-auto {
  overflow-y: auto;
}

.overflow-x-hidden {
  overflow-x: hidden;
}

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

.whitespace-nowrap {
  white-space: nowrap;
}

.whitespace-pre-wrap {
  white-space: pre-wrap;
}

.break-all {
  word-break: break-all;
}

.rounded-none {
  border-radius: 0px;
}

.rounded-sm {
  border-radius: 0.125rem;
}

.rounded {
  border-radius: 0.25rem;
}

.rounded-md {
  border-radius: 0.375rem;
}

.rounded-lg {
  border-radius: 0.5rem;
}

.rounded-xl {
  border-radius: 0.75rem;
}

.rounded-2xl {
  border-radius: 1rem;
}

.rounded-3xl {
  border-radius: 1.5rem;
}

.rounded-full {
  border-radius: 9999px;
}

.rounded-t-none {
  border-top-left-radius: 0px;
  border-top-right-radius: 0px;
}

.rounded-t-sm {
  border-top-left-radius: 0.125rem;
  border-top-right-radius: 0.125rem;
}

.rounded-t {
  border-top-left-radius: 0.25rem;
  border-top-right-radius: 0.25rem;
}

.rounded-t-md {
  border-top-left-radius: 0.375rem;
  border-top-right-radius: 0.375rem;
}

.rounded-t-lg {
  border-top-left-radius: 0.5rem;
  border-top-right-radius: 0.5rem;
}

.rounded-t-xl {
  border-top-left-radius: 0.75rem;
  border-top-right-radius: 0.75rem;
}

.rounded-t-2xl {
  border-top-left-radius: 1rem;
  border-top-right-radius: 1rem;
}

.rounded-t-3xl {
  border-top-left-radius: 1.5rem;
  border-top-right-radius: 1.5rem;
}

.rounded-t-full {
  border-top-left-radius: 9999px;
  border-top-right-radius: 9999px;
}

.rounded-r-none {
  border-top-right-radius: 0px;
  border-bottom-right-radius: 0px;
}

.rounded-r-sm {
  border-top-right-radius: 0.125rem;
  border-bottom-right-radius: 0.125rem;
}

.rounded-r {
  border-top-right-radius: 0.25rem;
  border-bottom-right-radius: 0.25rem;
}

.rounded-r-md {
  border-top-right-radius: 0.375rem;
  border-bottom-right-radius: 0.375rem;
}

.rounded-r-lg {
  border-top-right-radius: 0.5rem;
  border-bottom-right-radius: 0.5rem;
}

.rounded-r-xl {
  border-top-right-radius: 0.75rem;
  border-bottom-right-radius: 0.75rem;
}

.rounded-r-2xl {
  border-top-right-radius: 1rem;
  border-bottom-right-radius: 1rem;
}

.rounded-r-3xl {
  border-top-right-radius: 1.5rem;
  border-bottom-right-radius: 1.5rem;
}

.rounded-r-full {
  border-top-right-radius: 9999px;
  border-bottom-right-radius: 9999px;
}

.rounded-b-none {
  border-bottom-right-radius: 0px;
  border-bottom-left-radius: 0px;
}

.rounded-b-sm {
  border-bottom-right-radius: 0.125rem;
  border-bottom-left-radius: 0.125rem;
}

.rounded-b {
  border-bottom-right-radius: 0.25rem;
  border-bottom-left-radius: 0.25rem;
}

.rounded-b-md {
  border-bottom-right-radius: 0.375rem;
  border-bottom-left-radius: 0.375rem;
}

.rounded-b-lg {
  border-bottom-right-radius: 0.5rem;
  border-bottom-left-radius: 0.5rem;
}

.rounded-b-xl {
  border-bottom-right-radius: 0.75rem;
  border-bottom-left-radius: 0.75rem;
}

.rounded-b-2xl {
  border-bottom-right-radius: 1rem;
  border-bottom-left-radius: 1rem;
}

.rounded-b-3xl {
  border-bottom-right-radius: 1.5rem;
  border-bottom-left-radius: 1.5rem;
}

.rounded-b-full {
  border-bottom-right-radius: 9999px;
  border-bottom-left-radius: 9999px;
}

.rounded-l-none {
  border-top-left-radius: 0px;
  border-bottom-left-radius: 0px;
}

.rounded-l-sm {
  border-top-left-radius: 0.125rem;
  border-bottom-left-radius: 0.125rem;
}

.rounded-l {
  border-top-left-radius: 0.25rem;
  border-bottom-left-radius: 0.25rem;
}

.rounded-l-md {
  border-top-left-radius: 0.375rem;
  border-bottom-left-radius: 0.375rem;
}

.rounded-l-lg {
  border-top-left-radius: 0.5rem;
  border-bottom-left-radius: 0.5rem;
}

.rounded-l-xl {
  border-top-left-radius: 0.75rem;
  border-bottom-left-radius: 0.75rem;
}

.rounded-l-2xl {
  border-top-left-radius: 1rem;
  border-bottom-left-radius: 1rem;
}

.rounded-l-3xl {
  border-top-left-radius: 1.5rem;
  border-bottom-left-radius: 1.5rem;
}

.rounded-l-full {
  border-top-left-radius: 9999px;
  border-bottom-left-radius: 9999px;
}

.rounded-tl-none {
  border-top-left-radius: 0px;
}

.rounded-tl-sm {
  border-top-left-radius: 0.125rem;
}

.rounded-tl {
  border-top-left-radius: 0.25rem;
}

.rounded-tl-md {
  border-top-left-radius: 0.375rem;
}

.rounded-tl-lg {
  border-top-left-radius: 0.5rem;
}

.rounded-tl-xl {
  border-top-left-radius: 0.75rem;
}

.rounded-tl-2xl {
  border-top-left-radius: 1rem;
}

.rounded-tl-3xl {
  border-top-left-radius: 1.5rem;
}

.rounded-tl-full {
  border-top-left-radius: 9999px;
}

.rounded-tr-none {
  border-top-right-radius: 0px;
}

.rounded-tr-sm {
  border-top-right-radius: 0.125rem;
}

.rounded-tr {
  border-top-right-radius: 0.25rem;
}

.rounded-tr-md {
  border-top-right-radius: 0.375rem;
}

.rounded-tr-lg {
  border-top-right-radius: 0.5rem;
}

.rounded-tr-xl {
  border-top-right-radius: 0.75rem;
}

.rounded-tr-2xl {
  border-top-right-radius: 1rem;
}

.rounded-tr-3xl {
  border-top-right-radius: 1.5rem;
}

.rounded-tr-full {
  border-top-right-radius: 9999px;
}

.rounded-br-none {
  border-bottom-right-radius: 0px;
}

.rounded-br-sm {
  border-bottom-right-radius: 0.125rem;
}

.rounded-br {
  border-bottom-right-radius: 0.25rem;
}

.rounded-br-md {
  border-bottom-right-radius: 0.375rem;
}

.rounded-br-lg {
  border-bottom-right-radius: 0.5rem;
}

.rounded-br-xl {
  border-bottom-right-radius: 0.75rem;
}

.rounded-br-2xl {
  border-bottom-right-radius: 1rem;
}

.rounded-br-3xl {
  border-bottom-right-radius: 1.5rem;
}

.rounded-br-full {
  border-bottom-right-radius: 9999px;
}

.rounded-bl-none {
  border-bottom-left-radius: 0px;
}

.rounded-bl-sm {
  border-bottom-left-radius: 0.125rem;
}

.rounded-bl {
  border-bottom-left-radius: 0.25rem;
}

.rounded-bl-md {
  border-bottom-left-radius: 0.375rem;
}

.rounded-bl-lg {
  border-bottom-left-radius: 0.5rem;
}

.rounded-bl-xl {
  border-bottom-left-radius: 0.75rem;
}

.rounded-bl-2xl {
  border-bottom-left-radius: 1rem;
}

.rounded-bl-3xl {
  border-bottom-left-radius: 1.5rem;
}

.rounded-bl-full {
  border-bottom-left-radius: 9999px;
}

.border-0 {
  border-width: 0px;
}

.border-2 {
  border-width: 2px;
}

.border-4 {
  border-width: 4px;
}

.border-8 {
  border-width: 8px;
}

.border {
  border-width: 1px;
}

.border-t-0 {
  border-top-width: 0px;
}

.border-t-2 {
  border-top-width: 2px;
}

.border-t-4 {
  border-top-width: 4px;
}

.border-t-8 {
  border-top-width: 8px;
}

.border-t {
  border-top-width: 1px;
}

.border-r-0 {
  border-right-width: 0px;
}

.border-r-2 {
  border-right-width: 2px;
}

.border-r-4 {
  border-right-width: 4px;
}

.border-r-8 {
  border-right-width: 8px;
}

.border-r {
  border-right-width: 1px;
}

.border-b-0 {
  border-bottom-width: 0px;
}

.border-b-2 {
  border-bottom-width: 2px;
}

.border-b-4 {
  border-bottom-width: 4px;
}

.border-b-8 {
  border-bottom-width: 8px;
}

.border-b {
  border-bottom-width: 1px;
}

.border-l-0 {
  border-left-width: 0px;
}

.border-l-2 {
  border-left-width: 2px;
}

.border-l-4 {
  border-left-width: 4px;
}

.border-l-8 {
  border-left-width: 8px;
}

.border-l {
  border-left-width: 1px;
}

.border-solid {
  border-style: solid;
}

.border-dashed {
  border-style: dashed;
}

.border-dotted {
  border-style: dotted;
}

.border-double {
  border-style: double;
}

.border-none {
  border-style: none;
}

.border-transparent {
  border-color: transparent;
}

.border-current {
  border-color: currentColor;
}

.border-black {
  --tw-border-opacity: 1;
  border-color: rgba(0, 0, 0, var(--tw-border-opacity));
}

.border-white {
  --tw-border-opacity: 1;
  border-color: rgba(255, 255, 255, var(--tw-border-opacity));
}

.border-gray-50 {
  --tw-border-opacity: 1;
  border-color: rgba(249, 250, 251, var(--tw-border-opacity));
}

.border-gray-100 {
  --tw-border-opacity: 1;
  border-color: rgba(243, 244, 246, var(--tw-border-opacity));
}

.border-gray-200 {
  --tw-border-opacity: 1;
  border-color: rgba(229, 231, 235, var(--tw-border-opacity));
}

.border-gray-300 {
  --tw-border-opacity: 1;
  border-color: rgba(209, 213, 219, var(--tw-border-opacity));
}

.border-gray-400 {
  --tw-border-opacity: 1;
  border-color: rgba(156, 163, 175, var(--tw-border-opacity));
}

.border-gray-500 {
  --tw-border-opacity: 1;
  border-color: rgba(107, 114, 128, var(--tw-border-opacity));
}

.border-gray-600 {
  --tw-border-opacity: 1;
  border-color: rgba(75, 85, 99, var(--tw-border-opacity));
}

.border-gray-700 {
  --tw-border-opacity: 1;
  border-color: rgba(55, 65, 81, var(--tw-border-opacity));
}

.border-gray-800 {
  --tw-border-opacity: 1;
  border-color: rgba(31, 41, 55, var(--tw-border-opacity));
}

.border-gray-900 {
  --tw-border-opacity: 1;
  border-color: rgba(17, 24, 39, var(--tw-border-opacity));
}

.border-red-50 {
  --tw-border-opacity: 1;
  border-color: rgba(254, 242, 242, var(--tw-border-opacity));
}

.border-red-100 {
  --tw-border-opacity: 1;
  border-color: rgba(254, 226, 226, var(--tw-border-opacity));
}

.border-red-200 {
  --tw-border-opacity: 1;
  border-color: rgba(254, 202, 202, var(--tw-border-opacity));
}

.border-red-300 {
  --tw-border-opacity: 1;
  border-color: rgba(252, 165, 165, var(--tw-border-opacity));
}

.border-red-400 {
  --tw-border-opacity: 1;
  border-color: rgba(248, 113, 113, var(--tw-border-opacity));
}

.border-red-500 {
  --tw-border-opacity: 1;
  border-color: rgba(239, 68, 68, var(--tw-border-opacity));
}

.border-red-600 {
  --tw-border-opacity: 1;
  border-color: rgba(220, 38, 38, var(--tw-border-opacity));
}

.border-red-700 {
  --tw-border-opacity: 1;
  border-color: rgba(185, 28, 28, var(--tw-border-opacity));
}

.border-red-800 {
  --tw-border-opacity: 1;
  border-color: rgba(153, 27, 27, var(--tw-border-opacity));
}

.border-red-900 {
  --tw-border-opacity: 1;
  border-color: rgba(127, 29, 29, var(--tw-border-opacity));
}

.border-yellow-50 {
  --tw-border-opacity: 1;
  border-color: rgba(255, 251, 235, var(--tw-border-opacity));
}

.border-yellow-100 {
  --tw-border-opacity: 1;
  border-color: rgba(254, 243, 199, var(--tw-border-opacity));
}

.border-yellow-200 {
  --tw-border-opacity: 1;
  border-color: rgba(253, 230, 138, var(--tw-border-opacity));
}

.border-yellow-300 {
  --tw-border-opacity: 1;
  border-color: rgba(252, 211, 77, var(--tw-border-opacity));
}

.border-yellow-400 {
  --tw-border-opacity: 1;
  border-color: rgba(251, 191, 36, var(--tw-border-opacity));
}

.border-yellow-500 {
  --tw-border-opacity: 1;
  border-color: rgba(245, 158, 11, var(--tw-border-opacity));
}

.border-yellow-600 {
  --tw-border-opacity: 1;
  border-color: rgba(217, 119, 6, var(--tw-border-opacity));
}

.border-yellow-700 {
  --tw-border-opacity: 1;
  border-color: rgba(180, 83, 9, var(--tw-border-opacity));
}

.border-yellow-800 {
  --tw-border-opacity: 1;
  border-color: rgba(146, 64, 14, var(--tw-border-opacity));
}

.border-yellow-900 {
  --tw-border-opacity: 1;
  border-color: rgba(120, 53, 15, var(--tw-border-opacity));
}

.border-green-50 {
  --tw-border-opacity: 1;
  border-color: rgba(236, 253, 245, var(--tw-border-opacity));
}

.border-green-100 {
  --tw-border-opacity: 1;
  border-color: rgba(209, 250, 229, var(--tw-border-opacity));
}

.border-green-200 {
  --tw-border-opacity: 1;
  border-color: rgba(167, 243, 208, var(--tw-border-opacity));
}

.border-green-300 {
  --tw-border-opacity: 1;
  border-color: rgba(110, 231, 183, var(--tw-border-opacity));
}

.border-green-400 {
  --tw-border-opacity: 1;
  border-color: rgba(52, 211, 153, var(--tw-border-opacity));
}

.border-green-500 {
  --tw-border-opacity: 1;
  border-color: rgba(16, 185, 129, var(--tw-border-opacity));
}

.border-green-600 {
  --tw-border-opacity: 1;
  border-color: rgba(5, 150, 105, var(--tw-border-opacity));
}

.border-green-700 {
  --tw-border-opacity: 1;
  border-color: rgba(4, 120, 87, var(--tw-border-opacity));
}

.border-green-800 {
  --tw-border-opacity: 1;
  border-color: rgba(6, 95, 70, var(--tw-border-opacity));
}

.border-green-900 {
  --tw-border-opacity: 1;
  border-color: rgba(6, 78, 59, var(--tw-border-opacity));
}

.border-blue-50 {
  --tw-border-opacity: 1;
  border-color: rgba(239, 246, 255, var(--tw-border-opacity));
}

.border-blue-100 {
  --tw-border-opacity: 1;
  border-color: rgba(219, 234, 254, var(--tw-border-opacity));
}

.border-blue-200 {
  --tw-border-opacity: 1;
  border-color: rgba(191, 219, 254, var(--tw-border-opacity));
}

.border-blue-300 {
  --tw-border-opacity: 1;
  border-color: rgba(147, 197, 253, var(--tw-border-opacity));
}

.border-blue-400 {
  --tw-border-opacity: 1;
  border-color: rgba(96, 165, 250, var(--tw-border-opacity));
}

.border-blue-500 {
  --tw-border-opacity: 1;
  border-color: rgba(59, 130, 246, var(--tw-border-opacity));
}

.border-blue-600 {
  --tw-border-opacity: 1;
  border-color: rgba(37, 99, 235, var(--tw-border-opacity));
}

.border-blue-700 {
  --tw-border-opacity: 1;
  border-color: rgba(29, 78, 216, var(--tw-border-opacity));
}

.border-blue-800 {
  --tw-border-opacity: 1;
  border-color: rgba(30, 64, 175, var(--tw-border-opacity));
}

.border-blue-900 {
  --tw-border-opacity: 1;
  border-color: rgba(30, 58, 138, var(--tw-border-opacity));
}

.border-indigo-50 {
  --tw-border-opacity: 1;
  border-color: rgba(238, 242, 255, var(--tw-border-opacity));
}

.border-indigo-100 {
  --tw-border-opacity: 1;
  border-color: rgba(224, 231, 255, var(--tw-border-opacity));
}

.border-indigo-200 {
  --tw-border-opacity: 1;
  border-color: rgba(199, 210, 254, var(--tw-border-opacity));
}

.border-indigo-300 {
  --tw-border-opacity: 1;
  border-color: rgba(165, 180, 252, var(--tw-border-opacity));
}

.border-indigo-400 {
  --tw-border-opacity: 1;
  border-color: rgba(129, 140, 248, var(--tw-border-opacity));
}

.border-indigo-500 {
  --tw-border-opacity: 1;
  border-color: rgba(99, 102, 241, var(--tw-border-opacity));
}

.border-indigo-600 {
  --tw-border-opacity: 1;
  border-color: rgba(79, 70, 229, var(--tw-border-opacity));
}

.border-indigo-700 {
  --tw-border-opacity: 1;
  border-color: rgba(67, 56, 202, var(--tw-border-opacity));
}

.border-indigo-800 {
  --tw-border-opacity: 1;
  border-color: rgba(55, 48, 163, var(--tw-border-opacity));
}

.border-indigo-900 {
  --tw-border-opacity: 1;
  border-color: rgba(49, 46, 129, var(--tw-border-opacity));
}

.border-purple-50 {
  --tw-border-opacity: 1;
  border-color: rgba(245, 243, 255, var(--tw-border-opacity));
}

.border-purple-100 {
  --tw-border-opacity: 1;
  border-color: rgba(237, 233, 254, var(--tw-border-opacity));
}

.border-purple-200 {
  --tw-border-opacity: 1;
  border-color: rgba(221, 214, 254, var(--tw-border-opacity));
}

.border-purple-300 {
  --tw-border-opacity: 1;
  border-color: rgba(196, 181, 253, var(--tw-border-opacity));
}

.border-purple-400 {
  --tw-border-opacity: 1;
  border-color: rgba(167, 139, 250, var(--tw-border-opacity));
}

.border-purple-500 {
  --tw-border-opacity: 1;
  border-color: rgba(139, 92, 246, var(--tw-border-opacity));
}

.border-purple-600 {
  --tw-border-opacity: 1;
  border-color: rgba(124, 58, 237, var(--tw-border-opacity));
}

.border-purple-700 {
  --tw-border-opacity: 1;
  border-color: rgba(109, 40, 217, var(--tw-border-opacity));
}

.border-purple-800 {
  --tw-border-opacity: 1;
  border-color: rgba(91, 33, 182, var(--tw-border-opacity));
}

.border-purple-900 {
  --tw-border-opacity: 1;
  border-color: rgba(76, 29, 149, var(--tw-border-opacity));
}

.border-pink-50 {
  --tw-border-opacity: 1;
  border-color: rgba(253, 242, 248, var(--tw-border-opacity));
}

.border-pink-100 {
  --tw-border-opacity: 1;
  border-color: rgba(252, 231, 243, var(--tw-border-opacity));
}

.border-pink-200 {
  --tw-border-opacity: 1;
  border-color: rgba(251, 207, 232, var(--tw-border-opacity));
}

.border-pink-300 {
  --tw-border-opacity: 1;
  border-color: rgba(249, 168, 212, var(--tw-border-opacity));
}

.border-pink-400 {
  --tw-border-opacity: 1;
  border-color: rgba(244, 114, 182, var(--tw-border-opacity));
}

.border-pink-500 {
  --tw-border-opacity: 1;
  border-color: rgba(236, 72, 153, var(--tw-border-opacity));
}

.border-pink-600 {
  --tw-border-opacity: 1;
  border-color: rgba(219, 39, 119, var(--tw-border-opacity));
}

.border-pink-700 {
  --tw-border-opacity: 1;
  border-color: rgba(190, 24, 93, var(--tw-border-opacity));
}

.border-pink-800 {
  --tw-border-opacity: 1;
  border-color: rgba(157, 23, 77, var(--tw-border-opacity));
}

.border-pink-900 {
  --tw-border-opacity: 1;
  border-color: rgba(131, 24, 67, var(--tw-border-opacity));
}

.group:hover .group-hover\:border-gray-600 {
  --tw-border-opacity: 1;
  border-color: rgba(75, 85, 99, var(--tw-border-opacity));
}

.hover\:border-transparent:hover {
  border-color: transparent;
}

.hover\:border-current:hover {
  border-color: currentColor;
}

.hover\:border-black:hover {
  --tw-border-opacity: 1;
  border-color: rgba(0, 0, 0, var(--tw-border-opacity));
}

.hover\:border-white:hover {
  --tw-border-opacity: 1;
  border-color: rgba(255, 255, 255, var(--tw-border-opacity));
}

.hover\:border-gray-50:hover {
  --tw-border-opacity: 1;
  border-color: rgba(249, 250, 251, var(--tw-border-opacity));
}

.hover\:border-gray-100:hover {
  --tw-border-opacity: 1;
  border-color: rgba(243, 244, 246, var(--tw-border-opacity));
}

.hover\:border-gray-200:hover {
  --tw-border-opacity: 1;
  border-color: rgba(229, 231, 235, var(--tw-border-opacity));
}

.hover\:border-gray-300:hover {
  --tw-border-opacity: 1;
  border-color: rgba(209, 213, 219, var(--tw-border-opacity));
}

.hover\:border-gray-400:hover {
  --tw-border-opacity: 1;
  border-color: rgba(156, 163, 175, var(--tw-border-opacity));
}

.hover\:border-gray-500:hover {
  --tw-border-opacity: 1;
  border-color: rgba(107, 114, 128, var(--tw-border-opacity));
}

.hover\:border-gray-600:hover {
  --tw-border-opacity: 1;
  border-color: rgba(75, 85, 99, var(--tw-border-opacity));
}

.hover\:border-gray-700:hover {
  --tw-border-opacity: 1;
  border-color: rgba(55, 65, 81, var(--tw-border-opacity));
}

.hover\:border-gray-800:hover {
  --tw-border-opacity: 1;
  border-color: rgba(31, 41, 55, var(--tw-border-opacity));
}

.hover\:border-gray-900:hover {
  --tw-border-opacity: 1;
  border-color: rgba(17, 24, 39, var(--tw-border-opacity));
}

.hover\:border-red-50:hover {
  --tw-border-opacity: 1;
  border-color: rgba(254, 242, 242, var(--tw-border-opacity));
}

.hover\:border-red-100:hover {
  --tw-border-opacity: 1;
  border-color: rgba(254, 226, 226, var(--tw-border-opacity));
}

.hover\:border-red-200:hover {
  --tw-border-opacity: 1;
  border-color: rgba(254, 202, 202, var(--tw-border-opacity));
}

.hover\:border-red-300:hover {
  --tw-border-opacity: 1;
  border-color: rgba(252, 165, 165, var(--tw-border-opacity));
}

.hover\:border-red-400:hover {
  --tw-border-opacity: 1;
  border-color: rgba(248, 113, 113, var(--tw-border-opacity));
}

.hover\:border-red-500:hover {
  --tw-border-opacity: 1;
  border-color: rgba(239, 68, 68, var(--tw-border-opacity));
}

.hover\:border-red-600:hover {
  --tw-border-opacity: 1;
  border-color: rgba(220, 38, 38, var(--tw-border-opacity));
}

.hover\:border-red-700:hover {
  --tw-border-opacity: 1;
  border-color: rgba(185, 28, 28, var(--tw-border-opacity));
}

.hover\:border-red-800:hover {
  --tw-border-opacity: 1;
  border-color: rgba(153, 27, 27, var(--tw-border-opacity));
}

.hover\:border-red-900:hover {
  --tw-border-opacity: 1;
  border-color: rgba(127, 29, 29, var(--tw-border-opacity));
}

.hover\:border-yellow-50:hover {
  --tw-border-opacity: 1;
  border-color: rgba(255, 251, 235, var(--tw-border-opacity));
}

.hover\:border-yellow-100:hover {
  --tw-border-opacity: 1;
  border-color: rgba(254, 243, 199, var(--tw-border-opacity));
}

.hover\:border-yellow-200:hover {
  --tw-border-opacity: 1;
  border-color: rgba(253, 230, 138, var(--tw-border-opacity));
}

.hover\:border-yellow-300:hover {
  --tw-border-opacity: 1;
  border-color: rgba(252, 211, 77, var(--tw-border-opacity));
}

.hover\:border-yellow-400:hover {
  --tw-border-opacity: 1;
  border-color: rgba(251, 191, 36, var(--tw-border-opacity));
}

.hover\:border-yellow-500:hover {
  --tw-border-opacity: 1;
  border-color: rgba(245, 158, 11, var(--tw-border-opacity));
}

.hover\:border-yellow-600:hover {
  --tw-border-opacity: 1;
  border-color: rgba(217, 119, 6, var(--tw-border-opacity));
}

.hover\:border-yellow-700:hover {
  --tw-border-opacity: 1;
  border-color: rgba(180, 83, 9, var(--tw-border-opacity));
}

.hover\:border-yellow-800:hover {
  --tw-border-opacity: 1;
  border-color: rgba(146, 64, 14, var(--tw-border-opacity));
}

.hover\:border-yellow-900:hover {
  --tw-border-opacity: 1;
  border-color: rgba(120, 53, 15, var(--tw-border-opacity));
}

.hover\:border-green-50:hover {
  --tw-border-opacity: 1;
  border-color: rgba(236, 253, 245, var(--tw-border-opacity));
}

.hover\:border-green-100:hover {
  --tw-border-opacity: 1;
  border-color: rgba(209, 250, 229, var(--tw-border-opacity));
}

.hover\:border-green-200:hover {
  --tw-border-opacity: 1;
  border-color: rgba(167, 243, 208, var(--tw-border-opacity));
}

.hover\:border-green-300:hover {
  --tw-border-opacity: 1;
  border-color: rgba(110, 231, 183, var(--tw-border-opacity));
}

.hover\:border-green-400:hover {
  --tw-border-opacity: 1;
  border-color: rgba(52, 211, 153, var(--tw-border-opacity));
}

.hover\:border-green-500:hover {
  --tw-border-opacity: 1;
  border-color: rgba(16, 185, 129, var(--tw-border-opacity));
}

.hover\:border-green-600:hover {
  --tw-border-opacity: 1;
  border-color: rgba(5, 150, 105, var(--tw-border-opacity));
}

.hover\:border-green-700:hover {
  --tw-border-opacity: 1;
  border-color: rgba(4, 120, 87, var(--tw-border-opacity));
}

.hover\:border-green-800:hover {
  --tw-border-opacity: 1;
  border-color: rgba(6, 95, 70, var(--tw-border-opacity));
}

.hover\:border-green-900:hover {
  --tw-border-opacity: 1;
  border-color: rgba(6, 78, 59, var(--tw-border-opacity));
}

.hover\:border-blue-50:hover {
  --tw-border-opacity: 1;
  border-color: rgba(239, 246, 255, var(--tw-border-opacity));
}

.hover\:border-blue-100:hover {
  --tw-border-opacity: 1;
  border-color: rgba(219, 234, 254, var(--tw-border-opacity));
}

.hover\:border-blue-200:hover {
  --tw-border-opacity: 1;
  border-color: rgba(191, 219, 254, var(--tw-border-opacity));
}

.hover\:border-blue-300:hover {
  --tw-border-opacity: 1;
  border-color: rgba(147, 197, 253, var(--tw-border-opacity));
}

.hover\:border-blue-400:hover {
  --tw-border-opacity: 1;
  border-color: rgba(96, 165, 250, var(--tw-border-opacity));
}

.hover\:border-blue-500:hover {
  --tw-border-opacity: 1;
  border-color: rgba(59, 130, 246, var(--tw-border-opacity));
}

.hover\:border-blue-600:hover {
  --tw-border-opacity: 1;
  border-color: rgba(37, 99, 235, var(--tw-border-opacity));
}

.hover\:border-blue-700:hover {
  --tw-border-opacity: 1;
  border-color: rgba(29, 78, 216, var(--tw-border-opacity));
}

.hover\:border-blue-800:hover {
  --tw-border-opacity: 1;
  border-color: rgba(30, 64, 175, var(--tw-border-opacity));
}

.hover\:border-blue-900:hover {
  --tw-border-opacity: 1;
  border-color: rgba(30, 58, 138, var(--tw-border-opacity));
}

.hover\:border-indigo-50:hover {
  --tw-border-opacity: 1;
  border-color: rgba(238, 242, 255, var(--tw-border-opacity));
}

.hover\:border-indigo-100:hover {
  --tw-border-opacity: 1;
  border-color: rgba(224, 231, 255, var(--tw-border-opacity));
}

.hover\:border-indigo-200:hover {
  --tw-border-opacity: 1;
  border-color: rgba(199, 210, 254, var(--tw-border-opacity));
}

.hover\:border-indigo-300:hover {
  --tw-border-opacity: 1;
  border-color: rgba(165, 180, 252, var(--tw-border-opacity));
}

.hover\:border-indigo-400:hover {
  --tw-border-opacity: 1;
  border-color: rgba(129, 140, 248, var(--tw-border-opacity));
}

.hover\:border-indigo-500:hover {
  --tw-border-opacity: 1;
  border-color: rgba(99, 102, 241, var(--tw-border-opacity));
}

.hover\:border-indigo-600:hover {
  --tw-border-opacity: 1;
  border-color: rgba(79, 70, 229, var(--tw-border-opacity));
}

.hover\:border-indigo-700:hover {
  --tw-border-opacity: 1;
  border-color: rgba(67, 56, 202, var(--tw-border-opacity));
}

.hover\:border-indigo-800:hover {
  --tw-border-opacity: 1;
  border-color: rgba(55, 48, 163, var(--tw-border-opacity));
}

.hover\:border-indigo-900:hover {
  --tw-border-opacity: 1;
  border-color: rgba(49, 46, 129, var(--tw-border-opacity));
}

.hover\:border-purple-50:hover {
  --tw-border-opacity: 1;
  border-color: rgba(245, 243, 255, var(--tw-border-opacity));
}

.hover\:border-purple-100:hover {
  --tw-border-opacity: 1;
  border-color: rgba(237, 233, 254, var(--tw-border-opacity));
}

.hover\:border-purple-200:hover {
  --tw-border-opacity: 1;
  border-color: rgba(221, 214, 254, var(--tw-border-opacity));
}

.hover\:border-purple-300:hover {
  --tw-border-opacity: 1;
  border-color: rgba(196, 181, 253, var(--tw-border-opacity));
}

.hover\:border-purple-400:hover {
  --tw-border-opacity: 1;
  border-color: rgba(167, 139, 250, var(--tw-border-opacity));
}

.hover\:border-purple-500:hover {
  --tw-border-opacity: 1;
  border-color: rgba(139, 92, 246, var(--tw-border-opacity));
}

.hover\:border-purple-600:hover {
  --tw-border-opacity: 1;
  border-color: rgba(124, 58, 237, var(--tw-border-opacity));
}

.hover\:border-purple-700:hover {
  --tw-border-opacity: 1;
  border-color: rgba(109, 40, 217, var(--tw-border-opacity));
}

.hover\:border-purple-800:hover {
  --tw-border-opacity: 1;
  border-color: rgba(91, 33, 182, var(--tw-border-opacity));
}

.hover\:border-purple-900:hover {
  --tw-border-opacity: 1;
  border-color: rgba(76, 29, 149, var(--tw-border-opacity));
}

.hover\:border-pink-50:hover {
  --tw-border-opacity: 1;
  border-color: rgba(253, 242, 248, var(--tw-border-opacity));
}

.hover\:border-pink-100:hover {
  --tw-border-opacity: 1;
  border-color: rgba(252, 231, 243, var(--tw-border-opacity));
}

.hover\:border-pink-200:hover {
  --tw-border-opacity: 1;
  border-color: rgba(251, 207, 232, var(--tw-border-opacity));
}

.hover\:border-pink-300:hover {
  --tw-border-opacity: 1;
  border-color: rgba(249, 168, 212, var(--tw-border-opacity));
}

.hover\:border-pink-400:hover {
  --tw-border-opacity: 1;
  border-color: rgba(244, 114, 182, var(--tw-border-opacity));
}

.hover\:border-pink-500:hover {
  --tw-border-opacity: 1;
  border-color: rgba(236, 72, 153, var(--tw-border-opacity));
}

.hover\:border-pink-600:hover {
  --tw-border-opacity: 1;
  border-color: rgba(219, 39, 119, var(--tw-border-opacity));
}

.hover\:border-pink-700:hover {
  --tw-border-opacity: 1;
  border-color: rgba(190, 24, 93, var(--tw-border-opacity));
}

.hover\:border-pink-800:hover {
  --tw-border-opacity: 1;
  border-color: rgba(157, 23, 77, var(--tw-border-opacity));
}

.hover\:border-pink-900:hover {
  --tw-border-opacity: 1;
  border-color: rgba(131, 24, 67, var(--tw-border-opacity));
}

.focus\:border-transparent:focus {
  border-color: transparent;
}

.focus\:border-current:focus {
  border-color: currentColor;
}

.focus\:border-black:focus {
  --tw-border-opacity: 1;
  border-color: rgba(0, 0, 0, var(--tw-border-opacity));
}

.focus\:border-white:focus {
  --tw-border-opacity: 1;
  border-color: rgba(255, 255, 255, var(--tw-border-opacity));
}

.focus\:border-gray-50:focus {
  --tw-border-opacity: 1;
  border-color: rgba(249, 250, 251, var(--tw-border-opacity));
}

.focus\:border-gray-100:focus {
  --tw-border-opacity: 1;
  border-color: rgba(243, 244, 246, var(--tw-border-opacity));
}

.focus\:border-gray-200:focus {
  --tw-border-opacity: 1;
  border-color: rgba(229, 231, 235, var(--tw-border-opacity));
}

.focus\:border-gray-300:focus {
  --tw-border-opacity: 1;
  border-color: rgba(209, 213, 219, var(--tw-border-opacity));
}

.focus\:border-gray-400:focus {
  --tw-border-opacity: 1;
  border-color: rgba(156, 163, 175, var(--tw-border-opacity));
}

.focus\:border-gray-500:focus {
  --tw-border-opacity: 1;
  border-color: rgba(107, 114, 128, var(--tw-border-opacity));
}

.focus\:border-gray-600:focus {
  --tw-border-opacity: 1;
  border-color: rgba(75, 85, 99, var(--tw-border-opacity));
}

.focus\:border-gray-700:focus {
  --tw-border-opacity: 1;
  border-color: rgba(55, 65, 81, var(--tw-border-opacity));
}

.focus\:border-gray-800:focus {
  --tw-border-opacity: 1;
  border-color: rgba(31, 41, 55, var(--tw-border-opacity));
}

.focus\:border-gray-900:focus {
  --tw-border-opacity: 1;
  border-color: rgba(17, 24, 39, var(--tw-border-opacity));
}

.focus\:border-red-50:focus {
  --tw-border-opacity: 1;
  border-color: rgba(254, 242, 242, var(--tw-border-opacity));
}

.focus\:border-red-100:focus {
  --tw-border-opacity: 1;
  border-color: rgba(254, 226, 226, var(--tw-border-opacity));
}

.focus\:border-red-200:focus {
  --tw-border-opacity: 1;
  border-color: rgba(254, 202, 202, var(--tw-border-opacity));
}

.focus\:border-red-300:focus {
  --tw-border-opacity: 1;
  border-color: rgba(252, 165, 165, var(--tw-border-opacity));
}

.focus\:border-red-400:focus {
  --tw-border-opacity: 1;
  border-color: rgba(248, 113, 113, var(--tw-border-opacity));
}

.focus\:border-red-500:focus {
  --tw-border-opacity: 1;
  border-color: rgba(239, 68, 68, var(--tw-border-opacity));
}

.focus\:border-red-600:focus {
  --tw-border-opacity: 1;
  border-color: rgba(220, 38, 38, var(--tw-border-opacity));
}

.focus\:border-red-700:focus {
  --tw-border-opacity: 1;
  border-color: rgba(185, 28, 28, var(--tw-border-opacity));
}

.focus\:border-red-800:focus {
  --tw-border-opacity: 1;
  border-color: rgba(153, 27, 27, var(--tw-border-opacity));
}

.focus\:border-red-900:focus {
  --tw-border-opacity: 1;
  border-color: rgba(127, 29, 29, var(--tw-border-opacity));
}

.focus\:border-yellow-50:focus {
  --tw-border-opacity: 1;
  border-color: rgba(255, 251, 235, var(--tw-border-opacity));
}

.focus\:border-yellow-100:focus {
  --tw-border-opacity: 1;
  border-color: rgba(254, 243, 199, var(--tw-border-opacity));
}

.focus\:border-yellow-200:focus {
  --tw-border-opacity: 1;
  border-color: rgba(253, 230, 138, var(--tw-border-opacity));
}

.focus\:border-yellow-300:focus {
  --tw-border-opacity: 1;
  border-color: rgba(252, 211, 77, var(--tw-border-opacity));
}

.focus\:border-yellow-400:focus {
  --tw-border-opacity: 1;
  border-color: rgba(251, 191, 36, var(--tw-border-opacity));
}

.focus\:border-yellow-500:focus {
  --tw-border-opacity: 1;
  border-color: rgba(245, 158, 11, var(--tw-border-opacity));
}

.focus\:border-yellow-600:focus {
  --tw-border-opacity: 1;
  border-color: rgba(217, 119, 6, var(--tw-border-opacity));
}

.focus\:border-yellow-700:focus {
  --tw-border-opacity: 1;
  border-color: rgba(180, 83, 9, var(--tw-border-opacity));
}

.focus\:border-yellow-800:focus {
  --tw-border-opacity: 1;
  border-color: rgba(146, 64, 14, var(--tw-border-opacity));
}

.focus\:border-yellow-900:focus {
  --tw-border-opacity: 1;
  border-color: rgba(120, 53, 15, var(--tw-border-opacity));
}

.focus\:border-green-50:focus {
  --tw-border-opacity: 1;
  border-color: rgba(236, 253, 245, var(--tw-border-opacity));
}

.focus\:border-green-100:focus {
  --tw-border-opacity: 1;
  border-color: rgba(209, 250, 229, var(--tw-border-opacity));
}

.focus\:border-green-200:focus {
  --tw-border-opacity: 1;
  border-color: rgba(167, 243, 208, var(--tw-border-opacity));
}

.focus\:border-green-300:focus {
  --tw-border-opacity: 1;
  border-color: rgba(110, 231, 183, var(--tw-border-opacity));
}

.focus\:border-green-400:focus {
  --tw-border-opacity: 1;
  border-color: rgba(52, 211, 153, var(--tw-border-opacity));
}

.focus\:border-green-500:focus {
  --tw-border-opacity: 1;
  border-color: rgba(16, 185, 129, var(--tw-border-opacity));
}

.focus\:border-green-600:focus {
  --tw-border-opacity: 1;
  border-color: rgba(5, 150, 105, var(--tw-border-opacity));
}

.focus\:border-green-700:focus {
  --tw-border-opacity: 1;
  border-color: rgba(4, 120, 87, var(--tw-border-opacity));
}

.focus\:border-green-800:focus {
  --tw-border-opacity: 1;
  border-color: rgba(6, 95, 70, var(--tw-border-opacity));
}

.focus\:border-green-900:focus {
  --tw-border-opacity: 1;
  border-color: rgba(6, 78, 59, var(--tw-border-opacity));
}

.focus\:border-blue-50:focus {
  --tw-border-opacity: 1;
  border-color: rgba(239, 246, 255, var(--tw-border-opacity));
}

.focus\:border-blue-100:focus {
  --tw-border-opacity: 1;
  border-color: rgba(219, 234, 254, var(--tw-border-opacity));
}

.focus\:border-blue-200:focus {
  --tw-border-opacity: 1;
  border-color: rgba(191, 219, 254, var(--tw-border-opacity));
}

.focus\:border-blue-300:focus {
  --tw-border-opacity: 1;
  border-color: rgba(147, 197, 253, var(--tw-border-opacity));
}

.focus\:border-blue-400:focus {
  --tw-border-opacity: 1;
  border-color: rgba(96, 165, 250, var(--tw-border-opacity));
}

.focus\:border-blue-500:focus {
  --tw-border-opacity: 1;
  border-color: rgba(59, 130, 246, var(--tw-border-opacity));
}

.focus\:border-blue-600:focus {
  --tw-border-opacity: 1;
  border-color: rgba(37, 99, 235, var(--tw-border-opacity));
}

.focus\:border-blue-700:focus {
  --tw-border-opacity: 1;
  border-color: rgba(29, 78, 216, var(--tw-border-opacity));
}

.focus\:border-blue-800:focus {
  --tw-border-opacity: 1;
  border-color: rgba(30, 64, 175, var(--tw-border-opacity));
}

.focus\:border-blue-900:focus {
  --tw-border-opacity: 1;
  border-color: rgba(30, 58, 138, var(--tw-border-opacity));
}

.focus\:border-indigo-50:focus {
  --tw-border-opacity: 1;
  border-color: rgba(238, 242, 255, var(--tw-border-opacity));
}

.focus\:border-indigo-100:focus {
  --tw-border-opacity: 1;
  border-color: rgba(224, 231, 255, var(--tw-border-opacity));
}

.focus\:border-indigo-200:focus {
  --tw-border-opacity: 1;
  border-color: rgba(199, 210, 254, var(--tw-border-opacity));
}

.focus\:border-indigo-300:focus {
  --tw-border-opacity: 1;
  border-color: rgba(165, 180, 252, var(--tw-border-opacity));
}

.focus\:border-indigo-400:focus {
  --tw-border-opacity: 1;
  border-color: rgba(129, 140, 248, var(--tw-border-opacity));
}

.focus\:border-indigo-500:focus {
  --tw-border-opacity: 1;
  border-color: rgba(99, 102, 241, var(--tw-border-opacity));
}

.focus\:border-indigo-600:focus {
  --tw-border-opacity: 1;
  border-color: rgba(79, 70, 229, var(--tw-border-opacity));
}

.focus\:border-indigo-700:focus {
  --tw-border-opacity: 1;
  border-color: rgba(67, 56, 202, var(--tw-border-opacity));
}

.focus\:border-indigo-800:focus {
  --tw-border-opacity: 1;
  border-color: rgba(55, 48, 163, var(--tw-border-opacity));
}

.focus\:border-indigo-900:focus {
  --tw-border-opacity: 1;
  border-color: rgba(49, 46, 129, var(--tw-border-opacity));
}

.focus\:border-purple-50:focus {
  --tw-border-opacity: 1;
  border-color: rgba(245, 243, 255, var(--tw-border-opacity));
}

.focus\:border-purple-100:focus {
  --tw-border-opacity: 1;
  border-color: rgba(237, 233, 254, var(--tw-border-opacity));
}

.focus\:border-purple-200:focus {
  --tw-border-opacity: 1;
  border-color: rgba(221, 214, 254, var(--tw-border-opacity));
}

.focus\:border-purple-300:focus {
  --tw-border-opacity: 1;
  border-color: rgba(196, 181, 253, var(--tw-border-opacity));
}

.focus\:border-purple-400:focus {
  --tw-border-opacity: 1;
  border-color: rgba(167, 139, 250, var(--tw-border-opacity));
}

.focus\:border-purple-500:focus {
  --tw-border-opacity: 1;
  border-color: rgba(139, 92, 246, var(--tw-border-opacity));
}

.focus\:border-purple-600:focus {
  --tw-border-opacity: 1;
  border-color: rgba(124, 58, 237, var(--tw-border-opacity));
}

.focus\:border-purple-700:focus {
  --tw-border-opacity: 1;
  border-color: rgba(109, 40, 217, var(--tw-border-opacity));
}

.focus\:border-purple-800:focus {
  --tw-border-opacity: 1;
  border-color: rgba(91, 33, 182, var(--tw-border-opacity));
}

.focus\:border-purple-900:focus {
  --tw-border-opacity: 1;
  border-color: rgba(76, 29, 149, var(--tw-border-opacity));
}

.focus\:border-pink-50:focus {
  --tw-border-opacity: 1;
  border-color: rgba(253, 242, 248, var(--tw-border-opacity));
}

.focus\:border-pink-100:focus {
  --tw-border-opacity: 1;
  border-color: rgba(252, 231, 243, var(--tw-border-opacity));
}

.focus\:border-pink-200:focus {
  --tw-border-opacity: 1;
  border-color: rgba(251, 207, 232, var(--tw-border-opacity));
}

.focus\:border-pink-300:focus {
  --tw-border-opacity: 1;
  border-color: rgba(249, 168, 212, var(--tw-border-opacity));
}

.focus\:border-pink-400:focus {
  --tw-border-opacity: 1;
  border-color: rgba(244, 114, 182, var(--tw-border-opacity));
}

.focus\:border-pink-500:focus {
  --tw-border-opacity: 1;
  border-color: rgba(236, 72, 153, var(--tw-border-opacity));
}

.focus\:border-pink-600:focus {
  --tw-border-opacity: 1;
  border-color: rgba(219, 39, 119, var(--tw-border-opacity));
}

.focus\:border-pink-700:focus {
  --tw-border-opacity: 1;
  border-color: rgba(190, 24, 93, var(--tw-border-opacity));
}

.focus\:border-pink-800:focus {
  --tw-border-opacity: 1;
  border-color: rgba(157, 23, 77, var(--tw-border-opacity));
}

.focus\:border-pink-900:focus {
  --tw-border-opacity: 1;
  border-color: rgba(131, 24, 67, var(--tw-border-opacity));
}

.dark .dark\:border-gray-600 {
  --tw-border-opacity: 1;
  border-color: rgba(75, 85, 99, var(--tw-border-opacity));
}

.dark .dark\:border-gray-700 {
  --tw-border-opacity: 1;
  border-color: rgba(55, 65, 81, var(--tw-border-opacity));
}

.dark .dark\:border-red-800 {
  --tw-border-opacity: 1;
  border-color: rgba(153, 27, 27, var(--tw-border-opacity));
}

.dark .dark\:border-green-700 {
  --tw-border-opacity: 1;
  border-color: rgba(4, 120, 87, var(--tw-border-opacity));
}

.dark .dark\:border-blue-700 {
  --tw-border-opacity: 1;
  border-color: rgba(29, 78, 216, var(--tw-border-opacity));
}

.dark .dark\:border-purple-700 {
  --tw-border-opacity: 1;
  border-color: rgba(109, 40, 217, var(--tw-border-opacity));
}

.dark .dark\:hover\:border-blue-500:hover {
  --tw-border-opacity: 1;
  border-color: rgba(59, 130, 246, var(--tw-border-opacity));
}

.border-opacity-0 {
  --tw-border-opacity: 0;
}

.border-opacity-5 {
  --tw-border-opacity: 0.05;
}

.border-opacity-10 {
  --tw-border-opacity: 0.1;
}

.border-opacity-20 {
  --tw-border-opacity: 0.2;
}

.border-opacity-25 {
  --tw-border-opacity: 0.25;
}

.border-opacity-30 {
  --tw-border-opacity: 0.3;
}

.border-opacity-40 {
  --tw-border-opacity: 0.4;
}

.border-opacity-50 {
  --tw-border-opacity: 0.5;
}

.border-opacity-60 {
  --tw-border-opacity: 0.6;
}

.border-opacity-70 {
  --tw-border-opacity: 0.7;
}

.border-opacity-75 {
  --tw-border-opacity: 0.75;
}

.border-opacity-80 {
  --tw-border-opacity: 0.8;
}

.border-opacity-90 {
  --tw-border-opacity: 0.9;
}

.border-opacity-95 {
  --tw-border-opacity: 0.95;
}

.border-opacity-100 {
  --tw-border-opacity: 1;
}

.hover\:border-opacity-0:hover {
  --tw-border-opacity: 0;
}

.hover\:border-opacity-5:hover {
  --tw-border-opacity: 0.05;
}

.hover\:border-opacity-10:hover {
  --tw-border-opacity: 0.1;
}

.hover\:border-opacity-20:hover {
  --tw-border-opacity: 0.2;
}

.hover\:border-opacity-25:hover {
  --tw-border-opacity: 0.25;
}

.hover\:border-opacity-30:hover {
  --tw-border-opacity: 0.3;
}

.hover\:border-opacity-40:hover {
  --tw-border-opacity: 0.4;
}

.hover\:border-opacity-50:hover {
  --tw-border-opacity: 0.5;
}

.hover\:border-opacity-60:hover {
  --tw-border-opacity: 0.6;
}

.hover\:border-opacity-70:hover {
  --tw-border-opacity: 0.7;
}

.hover\:border-opacity-75:hover {
  --tw-border-opacity: 0.75;
}

.hover\:border-opacity-80:hover {
  --tw-border-opacity: 0.8;
}

.hover\:border-opacity-90:hover {
  --tw-border-opacity: 0.9;
}

.hover\:border-opacity-95:hover {
  --tw-border-opacity: 0.95;
}

.hover\:border-opacity-100:hover {
  --tw-border-opacity: 1;
}

.focus\:border-opacity-0:focus {
  --tw-border-opacity: 0;
}

.focus\:border-opacity-5:focus {
  --tw-border-opacity: 0.05;
}

.focus\:border-opacity-10:focus {
  --tw-border-opacity: 0.1;
}

.focus\:border-opacity-20:focus {
  --tw-border-opacity: 0.2;
}

.focus\:border-opacity-25:focus {
  --tw-border-opacity: 0.25;
}

.focus\:border-opacity-30:focus {
  --tw-border-opacity: 0.3;
}

.focus\:border-opacity-40:focus {
  --tw-border-opacity: 0.4;
}

.focus\:border-opacity-50:focus {
  --tw-border-opacity: 0.5;
}

.focus\:border-opacity-60:focus {
  --tw-border-opacity: 0.6;
}

.focus\:border-opacity-70:focus {
  --tw-border-opacity: 0.7;
}

.focus\:border-opacity-75:focus {
  --tw-border-opacity: 0.75;
}

.focus\:border-opacity-80:focus {
  --tw-border-opacity: 0.8;
}

.focus\:border-opacity-90:focus {
  --tw-border-opacity: 0.9;
}

.focus\:border-opacity-95:focus {
  --tw-border-opacity: 0.95;
}

.focus\:border-opacity-100:focus {
  --tw-border-opacity: 1;
}

.bg-transparent {
  background-color: transparent;
}

.bg-black {
  --tw-bg-opacity: 1;
  background-color: rgba(0, 0, 0, var(--tw-bg-opacity));
}

.bg-white {
  --tw-bg-opacity: 1;
  background-color: rgba(255, 255, 255, var(--tw-bg-opacity));
}

.bg-gray-50 {
  --tw-bg-opacity: 1;
  background-color: rgba(249, 250, 251, var(--tw-bg-opacity));
}

.bg-gray-100 {
  --tw-bg-opacity: 1;
  background-color: rgba(243, 244, 246, var(--tw-bg-opacity));
}

.bg-gray-200 {
  --tw-bg-opacity: 1;
  background-color: rgba(229, 231, 235, var(--tw-bg-opacity));
}

.bg-gray-300 {
  --tw-bg-opacity: 1;
  background-color: rgba(209, 213, 219, var(--tw-bg-opacity));
}

.bg-gray-400 {
  --tw-bg-opacity: 1;
  background-color: rgba(156, 163, 175, var(--tw-bg-opacity));
}

.bg-gray-500 {
  --tw-bg-opacity: 1;
  background-color: rgba(107, 114, 128, var(--tw-bg-opacity));
}

.bg-gray-600 {
  --tw-bg-opacity: 1;
  background-color: rgba(75, 85, 99, var(--tw-bg-opacity));
}

.bg-gray-700 {
  --tw-bg-opacity: 1;
  background-color: rgba(55, 65, 81, var(--tw-bg-opacity));
}

.bg-gray-800 {
  --tw-bg-opacity: 1;
  background-color: rgba(31, 41, 55, var(--tw-bg-opacity));
}

.bg-gray-900 {
  --tw-bg-opacity: 1;
  background-color: rgba(17, 24, 39, var(--tw-bg-opacity));
}

.bg-red-50 {
  --tw-bg-opacity: 1;
  background-color: rgba(254, 242, 242, var(--tw-bg-opacity));
}

.bg-red-100 {
  --tw-bg-opacity: 1;
  background-color: rgba(254, 226, 226, var(--tw-bg-opacity));
}

.bg-red-200 {
  --tw-bg-opacity: 1;
  background-color: rgba(254, 202, 202, var(--tw-bg-opacity));
}

.bg-red-300 {
  --tw-bg-opacity: 1;
  background-color: rgba(252, 165, 165, var(--tw-bg-opacity));
}

.bg-red-400 {
  --tw-bg-opacity: 1;
  background-color: rgba(248, 113, 113, var(--tw-bg-opacity));
}

.bg-red-500 {
  --tw-bg-opacity: 1;
  background-color: rgba(239, 68, 68, var(--tw-bg-opacity));
}

.bg-red-600 {
  --tw-bg-opacity: 1;
  background-color: rgba(220, 38, 38, var(--tw-bg-opacity));
}

.bg-red-700 {
  --tw-bg-opacity: 1;
  background-color: rgba(185, 28, 28, var(--tw-bg-opacity));
}

.bg-red-800 {
  --tw-bg-opacity: 1;
  background-color: rgba(153, 27, 27, var(--tw-bg-opacity));
}

.bg-red-900 {
  --tw-bg-opacity: 1;
  background-color: rgba(127, 29, 29, var(--tw-bg-opacity));
}

.bg-yellow-50 {
  --tw-bg-opacity: 1;
  background-color: rgba(255, 251, 235, var(--tw-bg-opacity));
}

.bg-yellow-100 {
  --tw-bg-opacity: 1;
  background-color: rgba(254, 243, 199, var(--tw-bg-opacity));
}

.bg-yellow-200 {
  --tw-bg-opacity: 1;
  background-color: rgba(253, 230, 138, var(--tw-bg-opacity));
}

.bg-yellow-300 {
  --tw-bg-opacity: 1;
  background-color: rgba(252, 211, 77, var(--tw-bg-opacity));
}

.bg-yellow-400 {
  --tw-bg-opacity: 1;
  background-color: rgba(251, 191, 36, var(--tw-bg-opacity));
}

.bg-yellow-500 {
  --tw-bg-opacity: 1;
  background-color: rgba(245, 158, 11, var(--tw-bg-opacity));
}

.bg-yellow-600 {
  --tw-bg-opacity: 1;
  background-color: rgba(217, 119, 6, var(--tw-bg-opacity));
}

.bg-yellow-700 {
  --tw-bg-opacity: 1;
  background-color: rgba(180, 83, 9, var(--tw-bg-opacity));
}

.bg-yellow-800 {
  --tw-bg-opacity: 1;
  background-color: rgba(146, 64, 14, var(--tw-bg-opacity));
}

.bg-yellow-900 {
  --tw-bg-opacity: 1;
  background-color: rgba(120, 53, 15, var(--tw-bg-opacity));
}

.bg-green-50 {
  --tw-bg-opacity: 1;
  background-color: rgba(236, 253, 245, var(--tw-bg-opacity));
}

.bg-green-100 {
  --tw-bg-opacity: 1;
  background-color: rgba(209, 250, 229, var(--tw-bg-opacity));
}

.bg-green-200 {
  --tw-bg-opacity: 1;
  background-color: rgba(167, 243, 208, var(--tw-bg-opacity));
}

.bg-green-300 {
  --tw-bg-opacity: 1;
  background-color: rgba(110, 231, 183, var(--tw-bg-opacity));
}

.bg-green-400 {
  --tw-bg-opacity: 1;
  background-color: rgba(52, 211, 153, var(--tw-bg-opacity));
}

.bg-green-500 {
  --tw-bg-opacity: 1;
  background-color: rgba(16, 185, 129, var(--tw-bg-opacity));
}

.bg-green-600 {
  --tw-bg-opacity: 1;
  background-color: rgba(5, 150, 105, var(--tw-bg-opacity));
}

.bg-green-700 {
  --tw-bg-opacity: 1;
  background-color: rgba(4, 120, 87, var(--tw-bg-opacity));
}

.bg-green-800 {
  --tw-bg-opacity: 1;
  background-color: rgba(6, 95, 70, var(--tw-bg-opacity));
}

.bg-green-900 {
  --tw-bg-opacity: 1;
  background-color: rgba(6, 78, 59, var(--tw-bg-opacity));
}

.bg-blue-50 {
  --tw-bg-opacity: 1;
  background-color: rgba(239, 246, 255, var(--tw-bg-opacity));
}

.bg-blue-100 {
  --tw-bg-opacity: 1;
  background-color: rgba(219, 234, 254, var(--tw-bg-opacity));
}

.bg-blue-200 {
  --tw-bg-opacity: 1;
  background-color: rgba(191, 219, 254, var(--tw-bg-opacity));
}

.bg-blue-300 {
  --tw-bg-opacity: 1;
  background-color: rgba(147, 197, 253, var(--tw-bg-opacity));
}

.bg-blue-400 {
  --tw-bg-opacity: 1;
  background-color: rgba(96, 165, 250, var(--tw-bg-opacity));
}

.bg-blue-500 {
  --tw-bg-opacity: 1;
  background-color: rgba(59, 130, 246, var(--tw-bg-opacity));
}

.bg-blue-600 {
  --tw-bg-opacity: 1;
  background-color: rgba(37, 99, 235, var(--tw-bg-opacity));
}

.bg-blue-700 {
  --tw-bg-opacity: 1;
  background-color: rgba(29, 78, 216, var(--tw-bg-opacity));
}

.bg-blue-800 {
  --tw-bg-opacity: 1;
  background-color: rgba(30, 64, 175, var(--tw-bg-opacity));
}

.bg-blue-900 {
  --tw-bg-opacity: 1;
  background-color: rgba(30, 58, 138, var(--tw-bg-opacity));
}

.bg-indigo-500 {
  --tw-bg-opacity: 1;
  background-color: rgba(99, 102, 241, var(--tw-bg-opacity));
}

.bg-purple-50 {
  --tw-bg-opacity: 1;
  background-color: rgba(245, 243, 255, var(--tw-bg-opacity));
}

.bg-purple-100 {
  --tw-bg-opacity: 1;
  background-color: rgba(237, 233, 254, var(--tw-bg-opacity));
}

.bg-purple-200 {
  --tw-bg-opacity: 1;
  background-color: rgba(221, 214, 254, var(--tw-bg-opacity));
}

.bg-purple-300 {
  --tw-bg-opacity: 1;
  background-color: rgba(196, 181, 253, var(--tw-bg-opacity));
}

.bg-purple-400 {
  --tw-bg-opacity: 1;
  background-color: rgba(167, 139, 250, var(--tw-bg-opacity));
}

.bg-purple-500 {
  --tw-bg-opacity: 1;
  background-color: rgba(139, 92, 246, var(--tw-bg-opacity));
}

.bg-purple-600 {
  --tw-bg-opacity: 1;
  background-color: rgba(124, 58, 237, var(--tw-bg-opacity));
}

.bg-purple-700 {
  --tw-bg-opacity: 1;
  background-color: rgba(109, 40, 217, var(--tw-bg-opacity));
}

.bg-purple-800 {
  --tw-bg-opacity: 1;
  background-color: rgba(91, 33, 182, var(--tw-bg-opacity));
}

.bg-purple-900 {
  --tw-bg-opacity: 1;
  background-color: rgba(76, 29, 149, var(--tw-bg-opacity));
}

.bg-pink-400 {
  --tw-bg-opacity: 1;
  background-color: rgba(244, 114, 182, var(--tw-bg-opacity));
}

.bg-pink-500 {
  --tw-bg-opacity: 1;
  background-color: rgba(236, 72, 153, var(--tw-bg-opacity));
}

.group:hover .group-hover\:bg-yellow-300 {
  --tw-bg-opacity: 1;
  background-color: rgba(252, 211, 77, var(--tw-bg-opacity));
}

.group:hover .group-hover\:bg-blue-500 {
  --tw-bg-opacity: 1;
  background-color: rgba(59, 130, 246, var(--tw-bg-opacity));
}

.hover\:bg-transparent:hover {
  background-color: transparent;
}

.hover\:bg-current:hover {
  background-color: currentColor;
}

.hover\:bg-black:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(0, 0, 0, var(--tw-bg-opacity));
}

.hover\:bg-white:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(255, 255, 255, var(--tw-bg-opacity));
}

.hover\:bg-gray-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(249, 250, 251, var(--tw-bg-opacity));
}

.hover\:bg-gray-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(243, 244, 246, var(--tw-bg-opacity));
}

.hover\:bg-gray-200:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(229, 231, 235, var(--tw-bg-opacity));
}

.hover\:bg-gray-300:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(209, 213, 219, var(--tw-bg-opacity));
}

.hover\:bg-gray-400:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(156, 163, 175, var(--tw-bg-opacity));
}

.hover\:bg-gray-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(107, 114, 128, var(--tw-bg-opacity));
}

.hover\:bg-gray-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(75, 85, 99, var(--tw-bg-opacity));
}

.hover\:bg-gray-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(55, 65, 81, var(--tw-bg-opacity));
}

.hover\:bg-gray-800:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(31, 41, 55, var(--tw-bg-opacity));
}

.hover\:bg-gray-900:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(17, 24, 39, var(--tw-bg-opacity));
}

.hover\:bg-red-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(254, 242, 242, var(--tw-bg-opacity));
}

.hover\:bg-red-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(254, 226, 226, var(--tw-bg-opacity));
}

.hover\:bg-red-200:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(254, 202, 202, var(--tw-bg-opacity));
}

.hover\:bg-red-300:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(252, 165, 165, var(--tw-bg-opacity));
}

.hover\:bg-red-400:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(248, 113, 113, var(--tw-bg-opacity));
}

.hover\:bg-red-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(239, 68, 68, var(--tw-bg-opacity));
}

.hover\:bg-red-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(220, 38, 38, var(--tw-bg-opacity));
}

.hover\:bg-red-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(185, 28, 28, var(--tw-bg-opacity));
}

.hover\:bg-red-800:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(153, 27, 27, var(--tw-bg-opacity));
}

.hover\:bg-red-900:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(127, 29, 29, var(--tw-bg-opacity));
}

.hover\:bg-yellow-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(255, 251, 235, var(--tw-bg-opacity));
}

.hover\:bg-yellow-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(254, 243, 199, var(--tw-bg-opacity));
}

.hover\:bg-yellow-200:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(253, 230, 138, var(--tw-bg-opacity));
}

.hover\:bg-yellow-300:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(252, 211, 77, var(--tw-bg-opacity));
}

.hover\:bg-yellow-400:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(251, 191, 36, var(--tw-bg-opacity));
}

.hover\:bg-yellow-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(245, 158, 11, var(--tw-bg-opacity));
}

.hover\:bg-yellow-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(217, 119, 6, var(--tw-bg-opacity));
}

.hover\:bg-yellow-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(180, 83, 9, var(--tw-bg-opacity));
}

.hover\:bg-yellow-800:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(146, 64, 14, var(--tw-bg-opacity));
}

.hover\:bg-yellow-900:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(120, 53, 15, var(--tw-bg-opacity));
}

.hover\:bg-green-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(236, 253, 245, var(--tw-bg-opacity));
}

.hover\:bg-green-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(209, 250, 229, var(--tw-bg-opacity));
}

.hover\:bg-green-200:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(167, 243, 208, var(--tw-bg-opacity));
}

.hover\:bg-green-300:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(110, 231, 183, var(--tw-bg-opacity));
}

.hover\:bg-green-400:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(52, 211, 153, var(--tw-bg-opacity));
}

.hover\:bg-green-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(16, 185, 129, var(--tw-bg-opacity));
}

.hover\:bg-green-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(5, 150, 105, var(--tw-bg-opacity));
}

.hover\:bg-green-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(4, 120, 87, var(--tw-bg-opacity));
}

.hover\:bg-green-800:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(6, 95, 70, var(--tw-bg-opacity));
}

.hover\:bg-green-900:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(6, 78, 59, var(--tw-bg-opacity));
}

.hover\:bg-blue-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(239, 246, 255, var(--tw-bg-opacity));
}

.hover\:bg-blue-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(219, 234, 254, var(--tw-bg-opacity));
}

.hover\:bg-blue-200:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(191, 219, 254, var(--tw-bg-opacity));
}

.hover\:bg-blue-300:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(147, 197, 253, var(--tw-bg-opacity));
}

.hover\:bg-blue-400:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(96, 165, 250, var(--tw-bg-opacity));
}

.hover\:bg-blue-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(59, 130, 246, var(--tw-bg-opacity));
}

.hover\:bg-blue-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(37, 99, 235, var(--tw-bg-opacity));
}

.hover\:bg-blue-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(29, 78, 216, var(--tw-bg-opacity));
}

.hover\:bg-blue-800:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(30, 64, 175, var(--tw-bg-opacity));
}

.hover\:bg-blue-900:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(30, 58, 138, var(--tw-bg-opacity));
}

.hover\:bg-indigo-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(238, 242, 255, var(--tw-bg-opacity));
}

.hover\:bg-indigo-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(224, 231, 255, var(--tw-bg-opacity));
}

.hover\:bg-indigo-200:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(199, 210, 254, var(--tw-bg-opacity));
}

.hover\:bg-indigo-300:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(165, 180, 252, var(--tw-bg-opacity));
}

.hover\:bg-indigo-400:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(129, 140, 248, var(--tw-bg-opacity));
}

.hover\:bg-indigo-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(99, 102, 241, var(--tw-bg-opacity));
}

.hover\:bg-indigo-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(79, 70, 229, var(--tw-bg-opacity));
}

.hover\:bg-indigo-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(67, 56, 202, var(--tw-bg-opacity));
}

.hover\:bg-indigo-800:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(55, 48, 163, var(--tw-bg-opacity));
}

.hover\:bg-indigo-900:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(49, 46, 129, var(--tw-bg-opacity));
}

.hover\:bg-purple-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(245, 243, 255, var(--tw-bg-opacity));
}

.hover\:bg-purple-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(237, 233, 254, var(--tw-bg-opacity));
}

.hover\:bg-purple-200:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(221, 214, 254, var(--tw-bg-opacity));
}

.hover\:bg-purple-300:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(196, 181, 253, var(--tw-bg-opacity));
}

.hover\:bg-purple-400:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(167, 139, 250, var(--tw-bg-opacity));
}

.hover\:bg-purple-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(139, 92, 246, var(--tw-bg-opacity));
}

.hover\:bg-purple-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(124, 58, 237, var(--tw-bg-opacity));
}

.hover\:bg-purple-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(109, 40, 217, var(--tw-bg-opacity));
}

.hover\:bg-purple-800:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(91, 33, 182, var(--tw-bg-opacity));
}

.hover\:bg-purple-900:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(76, 29, 149, var(--tw-bg-opacity));
}

.hover\:bg-pink-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(253, 242, 248, var(--tw-bg-opacity));
}

.hover\:bg-pink-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(252, 231, 243, var(--tw-bg-opacity));
}

.hover\:bg-pink-200:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(251, 207, 232, var(--tw-bg-opacity));
}

.hover\:bg-pink-300:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(249, 168, 212, var(--tw-bg-opacity));
}

.hover\:bg-pink-400:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(244, 114, 182, var(--tw-bg-opacity));
}

.hover\:bg-pink-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(236, 72, 153, var(--tw-bg-opacity));
}

.hover\:bg-pink-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(219, 39, 119, var(--tw-bg-opacity));
}

.hover\:bg-pink-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(190, 24, 93, var(--tw-bg-opacity));
}

.hover\:bg-pink-800:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(157, 23, 77, var(--tw-bg-opacity));
}

.hover\:bg-pink-900:hover {
  --tw-bg-opacity: 1;
  background-color: rgba(131, 24, 67, var(--tw-bg-opacity));
}

.focus\:bg-transparent:focus {
  background-color: transparent;
}

.focus\:bg-current:focus {
  background-color: currentColor;
}

.focus\:bg-black:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(0, 0, 0, var(--tw-bg-opacity));
}

.focus\:bg-white:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(255, 255, 255, var(--tw-bg-opacity));
}

.focus\:bg-gray-50:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(249, 250, 251, var(--tw-bg-opacity));
}

.focus\:bg-gray-100:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(243, 244, 246, var(--tw-bg-opacity));
}

.focus\:bg-gray-200:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(229, 231, 235, var(--tw-bg-opacity));
}

.focus\:bg-gray-300:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(209, 213, 219, var(--tw-bg-opacity));
}

.focus\:bg-gray-400:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(156, 163, 175, var(--tw-bg-opacity));
}

.focus\:bg-gray-500:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(107, 114, 128, var(--tw-bg-opacity));
}

.focus\:bg-gray-600:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(75, 85, 99, var(--tw-bg-opacity));
}

.focus\:bg-gray-700:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(55, 65, 81, var(--tw-bg-opacity));
}

.focus\:bg-gray-800:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(31, 41, 55, var(--tw-bg-opacity));
}

.focus\:bg-gray-900:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(17, 24, 39, var(--tw-bg-opacity));
}

.focus\:bg-red-50:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(254, 242, 242, var(--tw-bg-opacity));
}

.focus\:bg-red-100:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(254, 226, 226, var(--tw-bg-opacity));
}

.focus\:bg-red-200:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(254, 202, 202, var(--tw-bg-opacity));
}

.focus\:bg-red-300:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(252, 165, 165, var(--tw-bg-opacity));
}

.focus\:bg-red-400:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(248, 113, 113, var(--tw-bg-opacity));
}

.focus\:bg-red-500:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(239, 68, 68, var(--tw-bg-opacity));
}

.focus\:bg-red-600:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(220, 38, 38, var(--tw-bg-opacity));
}

.focus\:bg-red-700:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(185, 28, 28, var(--tw-bg-opacity));
}

.focus\:bg-red-800:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(153, 27, 27, var(--tw-bg-opacity));
}

.focus\:bg-red-900:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(127, 29, 29, var(--tw-bg-opacity));
}

.focus\:bg-yellow-50:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(255, 251, 235, var(--tw-bg-opacity));
}

.focus\:bg-yellow-100:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(254, 243, 199, var(--tw-bg-opacity));
}

.focus\:bg-yellow-200:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(253, 230, 138, var(--tw-bg-opacity));
}

.focus\:bg-yellow-300:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(252, 211, 77, var(--tw-bg-opacity));
}

.focus\:bg-yellow-400:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(251, 191, 36, var(--tw-bg-opacity));
}

.focus\:bg-yellow-500:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(245, 158, 11, var(--tw-bg-opacity));
}

.focus\:bg-yellow-600:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(217, 119, 6, var(--tw-bg-opacity));
}

.focus\:bg-yellow-700:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(180, 83, 9, var(--tw-bg-opacity));
}

.focus\:bg-yellow-800:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(146, 64, 14, var(--tw-bg-opacity));
}

.focus\:bg-yellow-900:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(120, 53, 15, var(--tw-bg-opacity));
}

.focus\:bg-green-50:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(236, 253, 245, var(--tw-bg-opacity));
}

.focus\:bg-green-100:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(209, 250, 229, var(--tw-bg-opacity));
}

.focus\:bg-green-200:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(167, 243, 208, var(--tw-bg-opacity));
}

.focus\:bg-green-300:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(110, 231, 183, var(--tw-bg-opacity));
}

.focus\:bg-green-400:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(52, 211, 153, var(--tw-bg-opacity));
}

.focus\:bg-green-500:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(16, 185, 129, var(--tw-bg-opacity));
}

.focus\:bg-green-600:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(5, 150, 105, var(--tw-bg-opacity));
}

.focus\:bg-green-700:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(4, 120, 87, var(--tw-bg-opacity));
}

.focus\:bg-green-800:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(6, 95, 70, var(--tw-bg-opacity));
}

.focus\:bg-green-900:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(6, 78, 59, var(--tw-bg-opacity));
}

.focus\:bg-blue-50:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(239, 246, 255, var(--tw-bg-opacity));
}

.focus\:bg-blue-100:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(219, 234, 254, var(--tw-bg-opacity));
}

.focus\:bg-blue-200:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(191, 219, 254, var(--tw-bg-opacity));
}

.focus\:bg-blue-300:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(147, 197, 253, var(--tw-bg-opacity));
}

.focus\:bg-blue-400:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(96, 165, 250, var(--tw-bg-opacity));
}

.focus\:bg-blue-500:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(59, 130, 246, var(--tw-bg-opacity));
}

.focus\:bg-blue-600:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(37, 99, 235, var(--tw-bg-opacity));
}

.focus\:bg-blue-700:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(29, 78, 216, var(--tw-bg-opacity));
}

.focus\:bg-blue-800:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(30, 64, 175, var(--tw-bg-opacity));
}

.focus\:bg-blue-900:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(30, 58, 138, var(--tw-bg-opacity));
}

.focus\:bg-indigo-50:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(238, 242, 255, var(--tw-bg-opacity));
}

.focus\:bg-indigo-100:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(224, 231, 255, var(--tw-bg-opacity));
}

.focus\:bg-indigo-200:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(199, 210, 254, var(--tw-bg-opacity));
}

.focus\:bg-indigo-300:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(165, 180, 252, var(--tw-bg-opacity));
}

.focus\:bg-indigo-400:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(129, 140, 248, var(--tw-bg-opacity));
}

.focus\:bg-indigo-500:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(99, 102, 241, var(--tw-bg-opacity));
}

.focus\:bg-indigo-600:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(79, 70, 229, var(--tw-bg-opacity));
}

.focus\:bg-indigo-700:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(67, 56, 202, var(--tw-bg-opacity));
}

.focus\:bg-indigo-800:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(55, 48, 163, var(--tw-bg-opacity));
}

.focus\:bg-indigo-900:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(49, 46, 129, var(--tw-bg-opacity));
}

.focus\:bg-purple-50:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(245, 243, 255, var(--tw-bg-opacity));
}

.focus\:bg-purple-100:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(237, 233, 254, var(--tw-bg-opacity));
}

.focus\:bg-purple-200:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(221, 214, 254, var(--tw-bg-opacity));
}

.focus\:bg-purple-300:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(196, 181, 253, var(--tw-bg-opacity));
}

.focus\:bg-purple-400:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(167, 139, 250, var(--tw-bg-opacity));
}

.focus\:bg-purple-500:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(139, 92, 246, var(--tw-bg-opacity));
}

.focus\:bg-purple-600:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(124, 58, 237, var(--tw-bg-opacity));
}

.focus\:bg-purple-700:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(109, 40, 217, var(--tw-bg-opacity));
}

.focus\:bg-purple-800:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(91, 33, 182, var(--tw-bg-opacity));
}

.focus\:bg-purple-900:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(76, 29, 149, var(--tw-bg-opacity));
}

.focus\:bg-pink-50:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(253, 242, 248, var(--tw-bg-opacity));
}

.focus\:bg-pink-100:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(252, 231, 243, var(--tw-bg-opacity));
}

.focus\:bg-pink-200:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(251, 207, 232, var(--tw-bg-opacity));
}

.focus\:bg-pink-300:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(249, 168, 212, var(--tw-bg-opacity));
}

.focus\:bg-pink-400:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(244, 114, 182, var(--tw-bg-opacity));
}

.focus\:bg-pink-500:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(236, 72, 153, var(--tw-bg-opacity));
}

.focus\:bg-pink-600:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(219, 39, 119, var(--tw-bg-opacity));
}

.focus\:bg-pink-700:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(190, 24, 93, var(--tw-bg-opacity));
}

.focus\:bg-pink-800:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(157, 23, 77, var(--tw-bg-opacity));
}

.focus\:bg-pink-900:focus {
  --tw-bg-opacity: 1;
  background-color: rgba(131, 24, 67, var(--tw-bg-opacity));
}

.dark .dark\:bg-gray-700 {
  --tw-bg-opacity: 1;
  background-color: rgba(55, 65, 81, var(--tw-bg-opacity));
}

.dark .dark\:bg-gray-800 {
  --tw-bg-opacity: 1;
  background-color: rgba(31, 41, 55, var(--tw-bg-opacity));
}

.bg-opacity-5 {
  --tw-bg-opacity: 0.05;
}

.bg-opacity-10 {
  --tw-bg-opacity: 0.1;
}

.bg-opacity-20 {
  --tw-bg-opacity: 0.2;
}

.bg-opacity-30 {
  --tw-bg-opacity: 0.3;
}

.bg-opacity-50 {
  --tw-bg-opacity: 0.5;
}

.bg-opacity-75 {
  --tw-bg-opacity: 0.75;
}

.bg-opacity-80 {
  --tw-bg-opacity: 0.8;
}

.bg-opacity-90 {
  --tw-bg-opacity: 0.9;
}

.bg-opacity-95 {
  --tw-bg-opacity: 0.95;
}

.hover\:bg-opacity-0:hover {
  --tw-bg-opacity: 0;
}

.hover\:bg-opacity-5:hover {
  --tw-bg-opacity: 0.05;
}

.hover\:bg-opacity-10:hover {
  --tw-bg-opacity: 0.1;
}

.hover\:bg-opacity-20:hover {
  --tw-bg-opacity: 0.2;
}

.hover\:bg-opacity-25:hover {
  --tw-bg-opacity: 0.25;
}

.hover\:bg-opacity-30:hover {
  --tw-bg-opacity: 0.3;
}

.hover\:bg-opacity-40:hover {
  --tw-bg-opacity: 0.4;
}

.hover\:bg-opacity-50:hover {
  --tw-bg-opacity: 0.5;
}

.hover\:bg-opacity-60:hover {
  --tw-bg-opacity: 0.6;
}

.hover\:bg-opacity-70:hover {
  --tw-bg-opacity: 0.7;
}

.hover\:bg-opacity-75:hover {
  --tw-bg-opacity: 0.75;
}

.hover\:bg-opacity-80:hover {
  --tw-bg-opacity: 0.8;
}

.hover\:bg-opacity-90:hover {
  --tw-bg-opacity: 0.9;
}

.hover\:bg-opacity-95:hover {
  --tw-bg-opacity: 0.95;
}

.hover\:bg-opacity-100:hover {
  --tw-bg-opacity: 1;
}

.focus\:bg-opacity-0:focus {
  --tw-bg-opacity: 0;
}

.focus\:bg-opacity-5:focus {
  --tw-bg-opacity: 0.05;
}

.focus\:bg-opacity-10:focus {
  --tw-bg-opacity: 0.1;
}

.focus\:bg-opacity-20:focus {
  --tw-bg-opacity: 0.2;
}

.focus\:bg-opacity-25:focus {
  --tw-bg-opacity: 0.25;
}

.focus\:bg-opacity-30:focus {
  --tw-bg-opacity: 0.3;
}

.focus\:bg-opacity-40:focus {
  --tw-bg-opacity: 0.4;
}

.focus\:bg-opacity-50:focus {
  --tw-bg-opacity: 0.5;
}

.focus\:bg-opacity-60:focus {
  --tw-bg-opacity: 0.6;
}

.focus\:bg-opacity-70:focus {
  --tw-bg-opacity: 0.7;
}

.focus\:bg-opacity-75:focus {
  --tw-bg-opacity: 0.75;
}

.focus\:bg-opacity-80:focus {
  --tw-bg-opacity: 0.8;
}

.focus\:bg-opacity-90:focus {
  --tw-bg-opacity: 0.9;
}

.focus\:bg-opacity-95:focus {
  --tw-bg-opacity: 0.95;
}

.focus\:bg-opacity-100:focus {
  --tw-bg-opacity: 1;
}

.bg-gradient-to-t {
  background-image: linear-gradient(to top, var(--tw-gradient-stops));
}

.bg-gradient-to-r {
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
}

.bg-gradient-to-br {
  background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
}

.bg-gradient-to-b {
  background-image: linear-gradient(to bottom, var(--tw-gradient-stops));
}

.from-transparent {
  --tw-gradient-from: transparent;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(0, 0, 0, 0));
}

.from-black {
  --tw-gradient-from: #000;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(0, 0, 0, 0));
}

.from-white {
  --tw-gradient-from: #fff;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(255, 255, 255, 0));
}

.from-gray-50 {
  --tw-gradient-from: #f9fafb;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(249, 250, 251, 0));
}

.from-gray-400 {
  --tw-gradient-from: #9ca3af;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(156, 163, 175, 0));
}

.from-gray-500 {
  --tw-gradient-from: #6b7280;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(107, 114, 128, 0));
}

.from-gray-600 {
  --tw-gradient-from: #4b5563;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(75, 85, 99, 0));
}

.from-gray-700 {
  --tw-gradient-from: #374151;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(55, 65, 81, 0));
}

.from-gray-800 {
  --tw-gradient-from: #1f2937;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(31, 41, 55, 0));
}

.from-gray-900 {
  --tw-gradient-from: #111827;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(17, 24, 39, 0));
}

.from-red-400 {
  --tw-gradient-from: #f87171;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(248, 113, 113, 0));
}

.from-red-500 {
  --tw-gradient-from: #ef4444;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(239, 68, 68, 0));
}

.from-red-600 {
  --tw-gradient-from: #dc2626;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(220, 38, 38, 0));
}

.from-yellow-300 {
  --tw-gradient-from: #fcd34d;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(252, 211, 77, 0));
}

.from-yellow-400 {
  --tw-gradient-from: #fbbf24;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(251, 191, 36, 0));
}

.from-yellow-500 {
  --tw-gradient-from: #f59e0b;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(245, 158, 11, 0));
}

.from-yellow-600 {
  --tw-gradient-from: #d97706;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(217, 119, 6, 0));
}

.from-yellow-900 {
  --tw-gradient-from: #78350f;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(120, 53, 15, 0));
}

.from-green-400 {
  --tw-gradient-from: #34d399;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(52, 211, 153, 0));
}

.from-green-500 {
  --tw-gradient-from: #10b981;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(16, 185, 129, 0));
}

.from-green-600 {
  --tw-gradient-from: #059669;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(5, 150, 105, 0));
}

.from-green-900 {
  --tw-gradient-from: #064e3b;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(6, 78, 59, 0));
}

.from-blue-50 {
  --tw-gradient-from: #eff6ff;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(239, 246, 255, 0));
}

.from-blue-400 {
  --tw-gradient-from: #60a5fa;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(96, 165, 250, 0));
}

.from-blue-500 {
  --tw-gradient-from: #3b82f6;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(59, 130, 246, 0));
}

.from-blue-600 {
  --tw-gradient-from: #2563eb;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(37, 99, 235, 0));
}

.from-blue-700 {
  --tw-gradient-from: #1d4ed8;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(29, 78, 216, 0));
}

.from-blue-900 {
  --tw-gradient-from: #1e3a8a;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(30, 58, 138, 0));
}

.from-indigo-400 {
  --tw-gradient-from: #818cf8;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(129, 140, 248, 0));
}

.from-indigo-500 {
  --tw-gradient-from: #6366f1;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(99, 102, 241, 0));
}

.from-indigo-600 {
  --tw-gradient-from: #4f46e5;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(79, 70, 229, 0));
}

.from-indigo-900 {
  --tw-gradient-from: #312e81;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(49, 46, 129, 0));
}

.from-purple-50 {
  --tw-gradient-from: #f5f3ff;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(245, 243, 255, 0));
}

.from-purple-400 {
  --tw-gradient-from: #a78bfa;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(167, 139, 250, 0));
}

.from-purple-500 {
  --tw-gradient-from: #8b5cf6;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(139, 92, 246, 0));
}

.from-purple-600 {
  --tw-gradient-from: #7c3aed;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(124, 58, 237, 0));
}

.from-purple-900 {
  --tw-gradient-from: #4c1d95;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(76, 29, 149, 0));
}

.from-pink-400 {
  --tw-gradient-from: #f472b6;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(244, 114, 182, 0));
}

.from-pink-500 {
  --tw-gradient-from: #ec4899;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(236, 72, 153, 0));
}

.hover\:from-transparent:hover {
  --tw-gradient-from: transparent;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(0, 0, 0, 0));
}

.hover\:from-current:hover {
  --tw-gradient-from: currentColor;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(255, 255, 255, 0));
}

.hover\:from-black:hover {
  --tw-gradient-from: #000;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(0, 0, 0, 0));
}

.hover\:from-white:hover {
  --tw-gradient-from: #fff;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(255, 255, 255, 0));
}

.hover\:from-gray-50:hover {
  --tw-gradient-from: #f9fafb;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(249, 250, 251, 0));
}

.hover\:from-gray-100:hover {
  --tw-gradient-from: #f3f4f6;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(243, 244, 246, 0));
}

.hover\:from-gray-200:hover {
  --tw-gradient-from: #e5e7eb;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(229, 231, 235, 0));
}

.hover\:from-gray-300:hover {
  --tw-gradient-from: #d1d5db;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(209, 213, 219, 0));
}

.hover\:from-gray-400:hover {
  --tw-gradient-from: #9ca3af;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(156, 163, 175, 0));
}

.hover\:from-gray-500:hover {
  --tw-gradient-from: #6b7280;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(107, 114, 128, 0));
}

.hover\:from-gray-600:hover {
  --tw-gradient-from: #4b5563;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(75, 85, 99, 0));
}

.hover\:from-gray-700:hover {
  --tw-gradient-from: #374151;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(55, 65, 81, 0));
}

.hover\:from-gray-800:hover {
  --tw-gradient-from: #1f2937;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(31, 41, 55, 0));
}

.hover\:from-gray-900:hover {
  --tw-gradient-from: #111827;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(17, 24, 39, 0));
}

.hover\:from-red-50:hover {
  --tw-gradient-from: #fef2f2;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(254, 242, 242, 0));
}

.hover\:from-red-100:hover {
  --tw-gradient-from: #fee2e2;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(254, 226, 226, 0));
}

.hover\:from-red-200:hover {
  --tw-gradient-from: #fecaca;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(254, 202, 202, 0));
}

.hover\:from-red-300:hover {
  --tw-gradient-from: #fca5a5;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(252, 165, 165, 0));
}

.hover\:from-red-400:hover {
  --tw-gradient-from: #f87171;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(248, 113, 113, 0));
}

.hover\:from-red-500:hover {
  --tw-gradient-from: #ef4444;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(239, 68, 68, 0));
}

.hover\:from-red-600:hover {
  --tw-gradient-from: #dc2626;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(220, 38, 38, 0));
}

.hover\:from-red-700:hover {
  --tw-gradient-from: #b91c1c;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(185, 28, 28, 0));
}

.hover\:from-red-800:hover {
  --tw-gradient-from: #991b1b;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(153, 27, 27, 0));
}

.hover\:from-red-900:hover {
  --tw-gradient-from: #7f1d1d;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(127, 29, 29, 0));
}

.hover\:from-yellow-50:hover {
  --tw-gradient-from: #fffbeb;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(255, 251, 235, 0));
}

.hover\:from-yellow-100:hover {
  --tw-gradient-from: #fef3c7;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(254, 243, 199, 0));
}

.hover\:from-yellow-200:hover {
  --tw-gradient-from: #fde68a;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(253, 230, 138, 0));
}

.hover\:from-yellow-300:hover {
  --tw-gradient-from: #fcd34d;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(252, 211, 77, 0));
}

.hover\:from-yellow-400:hover {
  --tw-gradient-from: #fbbf24;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(251, 191, 36, 0));
}

.hover\:from-yellow-500:hover {
  --tw-gradient-from: #f59e0b;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(245, 158, 11, 0));
}

.hover\:from-yellow-600:hover {
  --tw-gradient-from: #d97706;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(217, 119, 6, 0));
}

.hover\:from-yellow-700:hover {
  --tw-gradient-from: #b45309;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(180, 83, 9, 0));
}

.hover\:from-yellow-800:hover {
  --tw-gradient-from: #92400e;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(146, 64, 14, 0));
}

.hover\:from-yellow-900:hover {
  --tw-gradient-from: #78350f;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(120, 53, 15, 0));
}

.hover\:from-green-50:hover {
  --tw-gradient-from: #ecfdf5;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(236, 253, 245, 0));
}

.hover\:from-green-100:hover {
  --tw-gradient-from: #d1fae5;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(209, 250, 229, 0));
}

.hover\:from-green-200:hover {
  --tw-gradient-from: #a7f3d0;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(167, 243, 208, 0));
}

.hover\:from-green-300:hover {
  --tw-gradient-from: #6ee7b7;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(110, 231, 183, 0));
}

.hover\:from-green-400:hover {
  --tw-gradient-from: #34d399;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(52, 211, 153, 0));
}

.hover\:from-green-500:hover {
  --tw-gradient-from: #10b981;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(16, 185, 129, 0));
}

.hover\:from-green-600:hover {
  --tw-gradient-from: #059669;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(5, 150, 105, 0));
}

.hover\:from-green-700:hover {
  --tw-gradient-from: #047857;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(4, 120, 87, 0));
}

.hover\:from-green-800:hover {
  --tw-gradient-from: #065f46;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(6, 95, 70, 0));
}

.hover\:from-green-900:hover {
  --tw-gradient-from: #064e3b;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(6, 78, 59, 0));
}

.hover\:from-blue-50:hover {
  --tw-gradient-from: #eff6ff;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(239, 246, 255, 0));
}

.hover\:from-blue-100:hover {
  --tw-gradient-from: #dbeafe;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(219, 234, 254, 0));
}

.hover\:from-blue-200:hover {
  --tw-gradient-from: #bfdbfe;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(191, 219, 254, 0));
}

.hover\:from-blue-300:hover {
  --tw-gradient-from: #93c5fd;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(147, 197, 253, 0));
}

.hover\:from-blue-400:hover {
  --tw-gradient-from: #60a5fa;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(96, 165, 250, 0));
}

.hover\:from-blue-500:hover {
  --tw-gradient-from: #3b82f6;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(59, 130, 246, 0));
}

.hover\:from-blue-600:hover {
  --tw-gradient-from: #2563eb;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(37, 99, 235, 0));
}

.hover\:from-blue-700:hover {
  --tw-gradient-from: #1d4ed8;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(29, 78, 216, 0));
}

.hover\:from-blue-800:hover {
  --tw-gradient-from: #1e40af;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(30, 64, 175, 0));
}

.hover\:from-blue-900:hover {
  --tw-gradient-from: #1e3a8a;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(30, 58, 138, 0));
}

.hover\:from-indigo-50:hover {
  --tw-gradient-from: #eef2ff;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(238, 242, 255, 0));
}

.hover\:from-indigo-100:hover {
  --tw-gradient-from: #e0e7ff;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(224, 231, 255, 0));
}

.hover\:from-indigo-200:hover {
  --tw-gradient-from: #c7d2fe;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(199, 210, 254, 0));
}

.hover\:from-indigo-300:hover {
  --tw-gradient-from: #a5b4fc;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(165, 180, 252, 0));
}

.hover\:from-indigo-400:hover {
  --tw-gradient-from: #818cf8;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(129, 140, 248, 0));
}

.hover\:from-indigo-500:hover {
  --tw-gradient-from: #6366f1;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(99, 102, 241, 0));
}

.hover\:from-indigo-600:hover {
  --tw-gradient-from: #4f46e5;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(79, 70, 229, 0));
}

.hover\:from-indigo-700:hover {
  --tw-gradient-from: #4338ca;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(67, 56, 202, 0));
}

.hover\:from-indigo-800:hover {
  --tw-gradient-from: #3730a3;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(55, 48, 163, 0));
}

.hover\:from-indigo-900:hover {
  --tw-gradient-from: #312e81;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(49, 46, 129, 0));
}

.hover\:from-purple-50:hover {
  --tw-gradient-from: #f5f3ff;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(245, 243, 255, 0));
}

.hover\:from-purple-100:hover {
  --tw-gradient-from: #ede9fe;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(237, 233, 254, 0));
}

.hover\:from-purple-200:hover {
  --tw-gradient-from: #ddd6fe;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(221, 214, 254, 0));
}

.hover\:from-purple-300:hover {
  --tw-gradient-from: #c4b5fd;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(196, 181, 253, 0));
}

.hover\:from-purple-400:hover {
  --tw-gradient-from: #a78bfa;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(167, 139, 250, 0));
}

.hover\:from-purple-500:hover {
  --tw-gradient-from: #8b5cf6;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(139, 92, 246, 0));
}

.hover\:from-purple-600:hover {
  --tw-gradient-from: #7c3aed;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(124, 58, 237, 0));
}

.hover\:from-purple-700:hover {
  --tw-gradient-from: #6d28d9;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(109, 40, 217, 0));
}

.hover\:from-purple-800:hover {
  --tw-gradient-from: #5b21b6;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(91, 33, 182, 0));
}

.hover\:from-purple-900:hover {
  --tw-gradient-from: #4c1d95;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(76, 29, 149, 0));
}

.hover\:from-pink-50:hover {
  --tw-gradient-from: #fdf2f8;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(253, 242, 248, 0));
}

.hover\:from-pink-100:hover {
  --tw-gradient-from: #fce7f3;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(252, 231, 243, 0));
}

.hover\:from-pink-200:hover {
  --tw-gradient-from: #fbcfe8;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(251, 207, 232, 0));
}

.hover\:from-pink-300:hover {
  --tw-gradient-from: #f9a8d4;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(249, 168, 212, 0));
}

.hover\:from-pink-400:hover {
  --tw-gradient-from: #f472b6;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(244, 114, 182, 0));
}

.hover\:from-pink-500:hover {
  --tw-gradient-from: #ec4899;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(236, 72, 153, 0));
}

.hover\:from-pink-600:hover {
  --tw-gradient-from: #db2777;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(219, 39, 119, 0));
}

.hover\:from-pink-700:hover {
  --tw-gradient-from: #be185d;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(190, 24, 93, 0));
}

.hover\:from-pink-800:hover {
  --tw-gradient-from: #9d174d;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(157, 23, 77, 0));
}

.hover\:from-pink-900:hover {
  --tw-gradient-from: #831843;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(131, 24, 67, 0));
}

.focus\:from-transparent:focus {
  --tw-gradient-from: transparent;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(0, 0, 0, 0));
}

.focus\:from-current:focus {
  --tw-gradient-from: currentColor;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(255, 255, 255, 0));
}

.focus\:from-black:focus {
  --tw-gradient-from: #000;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(0, 0, 0, 0));
}

.focus\:from-white:focus {
  --tw-gradient-from: #fff;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(255, 255, 255, 0));
}

.focus\:from-gray-50:focus {
  --tw-gradient-from: #f9fafb;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(249, 250, 251, 0));
}

.focus\:from-gray-100:focus {
  --tw-gradient-from: #f3f4f6;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(243, 244, 246, 0));
}

.focus\:from-gray-200:focus {
  --tw-gradient-from: #e5e7eb;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(229, 231, 235, 0));
}

.focus\:from-gray-300:focus {
  --tw-gradient-from: #d1d5db;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(209, 213, 219, 0));
}

.focus\:from-gray-400:focus {
  --tw-gradient-from: #9ca3af;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(156, 163, 175, 0));
}

.focus\:from-gray-500:focus {
  --tw-gradient-from: #6b7280;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(107, 114, 128, 0));
}

.focus\:from-gray-600:focus {
  --tw-gradient-from: #4b5563;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(75, 85, 99, 0));
}

.focus\:from-gray-700:focus {
  --tw-gradient-from: #374151;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(55, 65, 81, 0));
}

.focus\:from-gray-800:focus {
  --tw-gradient-from: #1f2937;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(31, 41, 55, 0));
}

.focus\:from-gray-900:focus {
  --tw-gradient-from: #111827;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(17, 24, 39, 0));
}

.focus\:from-red-50:focus {
  --tw-gradient-from: #fef2f2;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(254, 242, 242, 0));
}

.focus\:from-red-100:focus {
  --tw-gradient-from: #fee2e2;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(254, 226, 226, 0));
}

.focus\:from-red-200:focus {
  --tw-gradient-from: #fecaca;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(254, 202, 202, 0));
}

.focus\:from-red-300:focus {
  --tw-gradient-from: #fca5a5;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(252, 165, 165, 0));
}

.focus\:from-red-400:focus {
  --tw-gradient-from: #f87171;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(248, 113, 113, 0));
}

.focus\:from-red-500:focus {
  --tw-gradient-from: #ef4444;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(239, 68, 68, 0));
}

.focus\:from-red-600:focus {
  --tw-gradient-from: #dc2626;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(220, 38, 38, 0));
}

.focus\:from-red-700:focus {
  --tw-gradient-from: #b91c1c;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(185, 28, 28, 0));
}

.focus\:from-red-800:focus {
  --tw-gradient-from: #991b1b;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(153, 27, 27, 0));
}

.focus\:from-red-900:focus {
  --tw-gradient-from: #7f1d1d;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(127, 29, 29, 0));
}

.focus\:from-yellow-50:focus {
  --tw-gradient-from: #fffbeb;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(255, 251, 235, 0));
}

.focus\:from-yellow-100:focus {
  --tw-gradient-from: #fef3c7;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(254, 243, 199, 0));
}

.focus\:from-yellow-200:focus {
  --tw-gradient-from: #fde68a;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(253, 230, 138, 0));
}

.focus\:from-yellow-300:focus {
  --tw-gradient-from: #fcd34d;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(252, 211, 77, 0));
}

.focus\:from-yellow-400:focus {
  --tw-gradient-from: #fbbf24;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(251, 191, 36, 0));
}

.focus\:from-yellow-500:focus {
  --tw-gradient-from: #f59e0b;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(245, 158, 11, 0));
}

.focus\:from-yellow-600:focus {
  --tw-gradient-from: #d97706;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(217, 119, 6, 0));
}

.focus\:from-yellow-700:focus {
  --tw-gradient-from: #b45309;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(180, 83, 9, 0));
}

.focus\:from-yellow-800:focus {
  --tw-gradient-from: #92400e;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(146, 64, 14, 0));
}

.focus\:from-yellow-900:focus {
  --tw-gradient-from: #78350f;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(120, 53, 15, 0));
}

.focus\:from-green-50:focus {
  --tw-gradient-from: #ecfdf5;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(236, 253, 245, 0));
}

.focus\:from-green-100:focus {
  --tw-gradient-from: #d1fae5;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(209, 250, 229, 0));
}

.focus\:from-green-200:focus {
  --tw-gradient-from: #a7f3d0;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(167, 243, 208, 0));
}

.focus\:from-green-300:focus {
  --tw-gradient-from: #6ee7b7;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(110, 231, 183, 0));
}

.focus\:from-green-400:focus {
  --tw-gradient-from: #34d399;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(52, 211, 153, 0));
}

.focus\:from-green-500:focus {
  --tw-gradient-from: #10b981;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(16, 185, 129, 0));
}

.focus\:from-green-600:focus {
  --tw-gradient-from: #059669;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(5, 150, 105, 0));
}

.focus\:from-green-700:focus {
  --tw-gradient-from: #047857;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(4, 120, 87, 0));
}

.focus\:from-green-800:focus {
  --tw-gradient-from: #065f46;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(6, 95, 70, 0));
}

.focus\:from-green-900:focus {
  --tw-gradient-from: #064e3b;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(6, 78, 59, 0));
}

.focus\:from-blue-50:focus {
  --tw-gradient-from: #eff6ff;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(239, 246, 255, 0));
}

.focus\:from-blue-100:focus {
  --tw-gradient-from: #dbeafe;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(219, 234, 254, 0));
}

.focus\:from-blue-200:focus {
  --tw-gradient-from: #bfdbfe;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(191, 219, 254, 0));
}

.focus\:from-blue-300:focus {
  --tw-gradient-from: #93c5fd;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(147, 197, 253, 0));
}

.focus\:from-blue-400:focus {
  --tw-gradient-from: #60a5fa;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(96, 165, 250, 0));
}

.focus\:from-blue-500:focus {
  --tw-gradient-from: #3b82f6;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(59, 130, 246, 0));
}

.focus\:from-blue-600:focus {
  --tw-gradient-from: #2563eb;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(37, 99, 235, 0));
}

.focus\:from-blue-700:focus {
  --tw-gradient-from: #1d4ed8;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(29, 78, 216, 0));
}

.focus\:from-blue-800:focus {
  --tw-gradient-from: #1e40af;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(30, 64, 175, 0));
}

.focus\:from-blue-900:focus {
  --tw-gradient-from: #1e3a8a;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(30, 58, 138, 0));
}

.focus\:from-indigo-50:focus {
  --tw-gradient-from: #eef2ff;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(238, 242, 255, 0));
}

.focus\:from-indigo-100:focus {
  --tw-gradient-from: #e0e7ff;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(224, 231, 255, 0));
}

.focus\:from-indigo-200:focus {
  --tw-gradient-from: #c7d2fe;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(199, 210, 254, 0));
}

.focus\:from-indigo-300:focus {
  --tw-gradient-from: #a5b4fc;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(165, 180, 252, 0));
}

.focus\:from-indigo-400:focus {
  --tw-gradient-from: #818cf8;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(129, 140, 248, 0));
}

.focus\:from-indigo-500:focus {
  --tw-gradient-from: #6366f1;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(99, 102, 241, 0));
}

.focus\:from-indigo-600:focus {
  --tw-gradient-from: #4f46e5;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(79, 70, 229, 0));
}

.focus\:from-indigo-700:focus {
  --tw-gradient-from: #4338ca;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(67, 56, 202, 0));
}

.focus\:from-indigo-800:focus {
  --tw-gradient-from: #3730a3;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(55, 48, 163, 0));
}

.focus\:from-indigo-900:focus {
  --tw-gradient-from: #312e81;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(49, 46, 129, 0));
}

.focus\:from-purple-50:focus {
  --tw-gradient-from: #f5f3ff;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(245, 243, 255, 0));
}

.focus\:from-purple-100:focus {
  --tw-gradient-from: #ede9fe;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(237, 233, 254, 0));
}

.focus\:from-purple-200:focus {
  --tw-gradient-from: #ddd6fe;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(221, 214, 254, 0));
}

.focus\:from-purple-300:focus {
  --tw-gradient-from: #c4b5fd;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(196, 181, 253, 0));
}

.focus\:from-purple-400:focus {
  --tw-gradient-from: #a78bfa;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(167, 139, 250, 0));
}

.focus\:from-purple-500:focus {
  --tw-gradient-from: #8b5cf6;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(139, 92, 246, 0));
}

.focus\:from-purple-600:focus {
  --tw-gradient-from: #7c3aed;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(124, 58, 237, 0));
}

.focus\:from-purple-700:focus {
  --tw-gradient-from: #6d28d9;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(109, 40, 217, 0));
}

.focus\:from-purple-800:focus {
  --tw-gradient-from: #5b21b6;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(91, 33, 182, 0));
}

.focus\:from-purple-900:focus {
  --tw-gradient-from: #4c1d95;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(76, 29, 149, 0));
}

.focus\:from-pink-50:focus {
  --tw-gradient-from: #fdf2f8;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(253, 242, 248, 0));
}

.focus\:from-pink-100:focus {
  --tw-gradient-from: #fce7f3;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(252, 231, 243, 0));
}

.focus\:from-pink-200:focus {
  --tw-gradient-from: #fbcfe8;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(251, 207, 232, 0));
}

.focus\:from-pink-300:focus {
  --tw-gradient-from: #f9a8d4;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(249, 168, 212, 0));
}

.focus\:from-pink-400:focus {
  --tw-gradient-from: #f472b6;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(244, 114, 182, 0));
}

.focus\:from-pink-500:focus {
  --tw-gradient-from: #ec4899;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(236, 72, 153, 0));
}

.focus\:from-pink-600:focus {
  --tw-gradient-from: #db2777;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(219, 39, 119, 0));
}

.focus\:from-pink-700:focus {
  --tw-gradient-from: #be185d;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(190, 24, 93, 0));
}

.focus\:from-pink-800:focus {
  --tw-gradient-from: #9d174d;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(157, 23, 77, 0));
}

.focus\:from-pink-900:focus {
  --tw-gradient-from: #831843;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(131, 24, 67, 0));
}

.via-transparent {
  --tw-gradient-stops: var(--tw-gradient-from), transparent, var(--tw-gradient-to, rgba(0, 0, 0, 0));
}

.via-black {
  --tw-gradient-stops: var(--tw-gradient-from), #000, var(--tw-gradient-to, rgba(0, 0, 0, 0));
}

.via-white {
  --tw-gradient-stops: var(--tw-gradient-from), #fff, var(--tw-gradient-to, rgba(255, 255, 255, 0));
}

.via-gray-700 {
  --tw-gradient-stops: var(--tw-gradient-from), #374151, var(--tw-gradient-to, rgba(55, 65, 81, 0));
}

.via-gray-800 {
  --tw-gradient-stops: var(--tw-gradient-from), #1f2937, var(--tw-gradient-to, rgba(31, 41, 55, 0));
}

.via-red-400 {
  --tw-gradient-stops: var(--tw-gradient-from), #f87171, var(--tw-gradient-to, rgba(248, 113, 113, 0));
}

.via-yellow-400 {
  --tw-gradient-stops: var(--tw-gradient-from), #fbbf24, var(--tw-gradient-to, rgba(251, 191, 36, 0));
}

.via-green-200 {
  --tw-gradient-stops: var(--tw-gradient-from), #a7f3d0, var(--tw-gradient-to, rgba(167, 243, 208, 0));
}

.via-green-400 {
  --tw-gradient-stops: var(--tw-gradient-from), #34d399, var(--tw-gradient-to, rgba(52, 211, 153, 0));
}

.via-green-500 {
  --tw-gradient-stops: var(--tw-gradient-from), #10b981, var(--tw-gradient-to, rgba(16, 185, 129, 0));
}

.via-green-900 {
  --tw-gradient-stops: var(--tw-gradient-from), #064e3b, var(--tw-gradient-to, rgba(6, 78, 59, 0));
}

.via-blue-200 {
  --tw-gradient-stops: var(--tw-gradient-from), #bfdbfe, var(--tw-gradient-to, rgba(191, 219, 254, 0));
}

.via-blue-400 {
  --tw-gradient-stops: var(--tw-gradient-from), #60a5fa, var(--tw-gradient-to, rgba(96, 165, 250, 0));
}

.via-blue-500 {
  --tw-gradient-stops: var(--tw-gradient-from), #3b82f6, var(--tw-gradient-to, rgba(59, 130, 246, 0));
}

.via-blue-900 {
  --tw-gradient-stops: var(--tw-gradient-from), #1e3a8a, var(--tw-gradient-to, rgba(30, 58, 138, 0));
}

.via-indigo-400 {
  --tw-gradient-stops: var(--tw-gradient-from), #818cf8, var(--tw-gradient-to, rgba(129, 140, 248, 0));
}

.via-purple-200 {
  --tw-gradient-stops: var(--tw-gradient-from), #ddd6fe, var(--tw-gradient-to, rgba(221, 214, 254, 0));
}

.via-purple-400 {
  --tw-gradient-stops: var(--tw-gradient-from), #a78bfa, var(--tw-gradient-to, rgba(167, 139, 250, 0));
}

.via-purple-500 {
  --tw-gradient-stops: var(--tw-gradient-from), #8b5cf6, var(--tw-gradient-to, rgba(139, 92, 246, 0));
}

.via-purple-900 {
  --tw-gradient-stops: var(--tw-gradient-from), #4c1d95, var(--tw-gradient-to, rgba(76, 29, 149, 0));
}

.via-pink-400 {
  --tw-gradient-stops: var(--tw-gradient-from), #f472b6, var(--tw-gradient-to, rgba(244, 114, 182, 0));
}

.via-pink-500 {
  --tw-gradient-stops: var(--tw-gradient-from), #ec4899, var(--tw-gradient-to, rgba(236, 72, 153, 0));
}

.via-pink-900 {
  --tw-gradient-stops: var(--tw-gradient-from), #831843, var(--tw-gradient-to, rgba(131, 24, 67, 0));
}

.hover\:via-transparent:hover {
  --tw-gradient-stops: var(--tw-gradient-from), transparent, var(--tw-gradient-to, rgba(0, 0, 0, 0));
}

.hover\:via-current:hover {
  --tw-gradient-stops: var(--tw-gradient-from), currentColor, var(--tw-gradient-to, rgba(255, 255, 255, 0));
}

.hover\:via-black:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #000, var(--tw-gradient-to, rgba(0, 0, 0, 0));
}

.hover\:via-white:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #fff, var(--tw-gradient-to, rgba(255, 255, 255, 0));
}

.hover\:via-gray-50:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #f9fafb, var(--tw-gradient-to, rgba(249, 250, 251, 0));
}

.hover\:via-gray-100:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #f3f4f6, var(--tw-gradient-to, rgba(243, 244, 246, 0));
}

.hover\:via-gray-200:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #e5e7eb, var(--tw-gradient-to, rgba(229, 231, 235, 0));
}

.hover\:via-gray-300:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #d1d5db, var(--tw-gradient-to, rgba(209, 213, 219, 0));
}

.hover\:via-gray-400:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #9ca3af, var(--tw-gradient-to, rgba(156, 163, 175, 0));
}

.hover\:via-gray-500:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #6b7280, var(--tw-gradient-to, rgba(107, 114, 128, 0));
}

.hover\:via-gray-600:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #4b5563, var(--tw-gradient-to, rgba(75, 85, 99, 0));
}

.hover\:via-gray-700:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #374151, var(--tw-gradient-to, rgba(55, 65, 81, 0));
}

.hover\:via-gray-800:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #1f2937, var(--tw-gradient-to, rgba(31, 41, 55, 0));
}

.hover\:via-gray-900:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #111827, var(--tw-gradient-to, rgba(17, 24, 39, 0));
}

.hover\:via-red-50:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #fef2f2, var(--tw-gradient-to, rgba(254, 242, 242, 0));
}

.hover\:via-red-100:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #fee2e2, var(--tw-gradient-to, rgba(254, 226, 226, 0));
}

.hover\:via-red-200:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #fecaca, var(--tw-gradient-to, rgba(254, 202, 202, 0));
}

.hover\:via-red-300:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #fca5a5, var(--tw-gradient-to, rgba(252, 165, 165, 0));
}

.hover\:via-red-400:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #f87171, var(--tw-gradient-to, rgba(248, 113, 113, 0));
}

.hover\:via-red-500:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #ef4444, var(--tw-gradient-to, rgba(239, 68, 68, 0));
}

.hover\:via-red-600:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #dc2626, var(--tw-gradient-to, rgba(220, 38, 38, 0));
}

.hover\:via-red-700:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #b91c1c, var(--tw-gradient-to, rgba(185, 28, 28, 0));
}

.hover\:via-red-800:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #991b1b, var(--tw-gradient-to, rgba(153, 27, 27, 0));
}

.hover\:via-red-900:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #7f1d1d, var(--tw-gradient-to, rgba(127, 29, 29, 0));
}

.hover\:via-yellow-50:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #fffbeb, var(--tw-gradient-to, rgba(255, 251, 235, 0));
}

.hover\:via-yellow-100:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #fef3c7, var(--tw-gradient-to, rgba(254, 243, 199, 0));
}

.hover\:via-yellow-200:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #fde68a, var(--tw-gradient-to, rgba(253, 230, 138, 0));
}

.hover\:via-yellow-300:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #fcd34d, var(--tw-gradient-to, rgba(252, 211, 77, 0));
}

.hover\:via-yellow-400:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #fbbf24, var(--tw-gradient-to, rgba(251, 191, 36, 0));
}

.hover\:via-yellow-500:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #f59e0b, var(--tw-gradient-to, rgba(245, 158, 11, 0));
}

.hover\:via-yellow-600:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #d97706, var(--tw-gradient-to, rgba(217, 119, 6, 0));
}

.hover\:via-yellow-700:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #b45309, var(--tw-gradient-to, rgba(180, 83, 9, 0));
}

.hover\:via-yellow-800:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #92400e, var(--tw-gradient-to, rgba(146, 64, 14, 0));
}

.hover\:via-yellow-900:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #78350f, var(--tw-gradient-to, rgba(120, 53, 15, 0));
}

.hover\:via-green-50:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #ecfdf5, var(--tw-gradient-to, rgba(236, 253, 245, 0));
}

.hover\:via-green-100:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #d1fae5, var(--tw-gradient-to, rgba(209, 250, 229, 0));
}

.hover\:via-green-200:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #a7f3d0, var(--tw-gradient-to, rgba(167, 243, 208, 0));
}

.hover\:via-green-300:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #6ee7b7, var(--tw-gradient-to, rgba(110, 231, 183, 0));
}

.hover\:via-green-400:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #34d399, var(--tw-gradient-to, rgba(52, 211, 153, 0));
}

.hover\:via-green-500:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #10b981, var(--tw-gradient-to, rgba(16, 185, 129, 0));
}

.hover\:via-green-600:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #059669, var(--tw-gradient-to, rgba(5, 150, 105, 0));
}

.hover\:via-green-700:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #047857, var(--tw-gradient-to, rgba(4, 120, 87, 0));
}

.hover\:via-green-800:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #065f46, var(--tw-gradient-to, rgba(6, 95, 70, 0));
}

.hover\:via-green-900:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #064e3b, var(--tw-gradient-to, rgba(6, 78, 59, 0));
}

.hover\:via-blue-50:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #eff6ff, var(--tw-gradient-to, rgba(239, 246, 255, 0));
}

.hover\:via-blue-100:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #dbeafe, var(--tw-gradient-to, rgba(219, 234, 254, 0));
}

.hover\:via-blue-200:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #bfdbfe, var(--tw-gradient-to, rgba(191, 219, 254, 0));
}

.hover\:via-blue-300:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #93c5fd, var(--tw-gradient-to, rgba(147, 197, 253, 0));
}

.hover\:via-blue-400:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #60a5fa, var(--tw-gradient-to, rgba(96, 165, 250, 0));
}

.hover\:via-blue-500:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #3b82f6, var(--tw-gradient-to, rgba(59, 130, 246, 0));
}

.hover\:via-blue-600:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #2563eb, var(--tw-gradient-to, rgba(37, 99, 235, 0));
}

.hover\:via-blue-700:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #1d4ed8, var(--tw-gradient-to, rgba(29, 78, 216, 0));
}

.hover\:via-blue-800:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #1e40af, var(--tw-gradient-to, rgba(30, 64, 175, 0));
}

.hover\:via-blue-900:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #1e3a8a, var(--tw-gradient-to, rgba(30, 58, 138, 0));
}

.hover\:via-indigo-50:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #eef2ff, var(--tw-gradient-to, rgba(238, 242, 255, 0));
}

.hover\:via-indigo-100:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #e0e7ff, var(--tw-gradient-to, rgba(224, 231, 255, 0));
}

.hover\:via-indigo-200:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #c7d2fe, var(--tw-gradient-to, rgba(199, 210, 254, 0));
}

.hover\:via-indigo-300:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #a5b4fc, var(--tw-gradient-to, rgba(165, 180, 252, 0));
}

.hover\:via-indigo-400:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #818cf8, var(--tw-gradient-to, rgba(129, 140, 248, 0));
}

.hover\:via-indigo-500:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #6366f1, var(--tw-gradient-to, rgba(99, 102, 241, 0));
}

.hover\:via-indigo-600:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #4f46e5, var(--tw-gradient-to, rgba(79, 70, 229, 0));
}

.hover\:via-indigo-700:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #4338ca, var(--tw-gradient-to, rgba(67, 56, 202, 0));
}

.hover\:via-indigo-800:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #3730a3, var(--tw-gradient-to, rgba(55, 48, 163, 0));
}

.hover\:via-indigo-900:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #312e81, var(--tw-gradient-to, rgba(49, 46, 129, 0));
}

.hover\:via-purple-50:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #f5f3ff, var(--tw-gradient-to, rgba(245, 243, 255, 0));
}

.hover\:via-purple-100:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #ede9fe, var(--tw-gradient-to, rgba(237, 233, 254, 0));
}

.hover\:via-purple-200:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #ddd6fe, var(--tw-gradient-to, rgba(221, 214, 254, 0));
}

.hover\:via-purple-300:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #c4b5fd, var(--tw-gradient-to, rgba(196, 181, 253, 0));
}

.hover\:via-purple-400:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #a78bfa, var(--tw-gradient-to, rgba(167, 139, 250, 0));
}

.hover\:via-purple-500:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #8b5cf6, var(--tw-gradient-to, rgba(139, 92, 246, 0));
}

.hover\:via-purple-600:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #7c3aed, var(--tw-gradient-to, rgba(124, 58, 237, 0));
}

.hover\:via-purple-700:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #6d28d9, var(--tw-gradient-to, rgba(109, 40, 217, 0));
}

.hover\:via-purple-800:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #5b21b6, var(--tw-gradient-to, rgba(91, 33, 182, 0));
}

.hover\:via-purple-900:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #4c1d95, var(--tw-gradient-to, rgba(76, 29, 149, 0));
}

.hover\:via-pink-50:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #fdf2f8, var(--tw-gradient-to, rgba(253, 242, 248, 0));
}

.hover\:via-pink-100:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #fce7f3, var(--tw-gradient-to, rgba(252, 231, 243, 0));
}

.hover\:via-pink-200:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #fbcfe8, var(--tw-gradient-to, rgba(251, 207, 232, 0));
}

.hover\:via-pink-300:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #f9a8d4, var(--tw-gradient-to, rgba(249, 168, 212, 0));
}

.hover\:via-pink-400:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #f472b6, var(--tw-gradient-to, rgba(244, 114, 182, 0));
}

.hover\:via-pink-500:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #ec4899, var(--tw-gradient-to, rgba(236, 72, 153, 0));
}

.hover\:via-pink-600:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #db2777, var(--tw-gradient-to, rgba(219, 39, 119, 0));
}

.hover\:via-pink-700:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #be185d, var(--tw-gradient-to, rgba(190, 24, 93, 0));
}

.hover\:via-pink-800:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #9d174d, var(--tw-gradient-to, rgba(157, 23, 77, 0));
}

.hover\:via-pink-900:hover {
  --tw-gradient-stops: var(--tw-gradient-from), #831843, var(--tw-gradient-to, rgba(131, 24, 67, 0));
}

.focus\:via-transparent:focus {
  --tw-gradient-stops: var(--tw-gradient-from), transparent, var(--tw-gradient-to, rgba(0, 0, 0, 0));
}

.focus\:via-current:focus {
  --tw-gradient-stops: var(--tw-gradient-from), currentColor, var(--tw-gradient-to, rgba(255, 255, 255, 0));
}

.focus\:via-black:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #000, var(--tw-gradient-to, rgba(0, 0, 0, 0));
}

.focus\:via-white:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #fff, var(--tw-gradient-to, rgba(255, 255, 255, 0));
}

.focus\:via-gray-50:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #f9fafb, var(--tw-gradient-to, rgba(249, 250, 251, 0));
}

.focus\:via-gray-100:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #f3f4f6, var(--tw-gradient-to, rgba(243, 244, 246, 0));
}

.focus\:via-gray-200:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #e5e7eb, var(--tw-gradient-to, rgba(229, 231, 235, 0));
}

.focus\:via-gray-300:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #d1d5db, var(--tw-gradient-to, rgba(209, 213, 219, 0));
}

.focus\:via-gray-400:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #9ca3af, var(--tw-gradient-to, rgba(156, 163, 175, 0));
}

.focus\:via-gray-500:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #6b7280, var(--tw-gradient-to, rgba(107, 114, 128, 0));
}

.focus\:via-gray-600:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #4b5563, var(--tw-gradient-to, rgba(75, 85, 99, 0));
}

.focus\:via-gray-700:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #374151, var(--tw-gradient-to, rgba(55, 65, 81, 0));
}

.focus\:via-gray-800:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #1f2937, var(--tw-gradient-to, rgba(31, 41, 55, 0));
}

.focus\:via-gray-900:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #111827, var(--tw-gradient-to, rgba(17, 24, 39, 0));
}

.focus\:via-red-50:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #fef2f2, var(--tw-gradient-to, rgba(254, 242, 242, 0));
}

.focus\:via-red-100:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #fee2e2, var(--tw-gradient-to, rgba(254, 226, 226, 0));
}

.focus\:via-red-200:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #fecaca, var(--tw-gradient-to, rgba(254, 202, 202, 0));
}

.focus\:via-red-300:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #fca5a5, var(--tw-gradient-to, rgba(252, 165, 165, 0));
}

.focus\:via-red-400:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #f87171, var(--tw-gradient-to, rgba(248, 113, 113, 0));
}

.focus\:via-red-500:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #ef4444, var(--tw-gradient-to, rgba(239, 68, 68, 0));
}

.focus\:via-red-600:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #dc2626, var(--tw-gradient-to, rgba(220, 38, 38, 0));
}

.focus\:via-red-700:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #b91c1c, var(--tw-gradient-to, rgba(185, 28, 28, 0));
}

.focus\:via-red-800:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #991b1b, var(--tw-gradient-to, rgba(153, 27, 27, 0));
}

.focus\:via-red-900:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #7f1d1d, var(--tw-gradient-to, rgba(127, 29, 29, 0));
}

.focus\:via-yellow-50:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #fffbeb, var(--tw-gradient-to, rgba(255, 251, 235, 0));
}

.focus\:via-yellow-100:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #fef3c7, var(--tw-gradient-to, rgba(254, 243, 199, 0));
}

.focus\:via-yellow-200:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #fde68a, var(--tw-gradient-to, rgba(253, 230, 138, 0));
}

.focus\:via-yellow-300:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #fcd34d, var(--tw-gradient-to, rgba(252, 211, 77, 0));
}

.focus\:via-yellow-400:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #fbbf24, var(--tw-gradient-to, rgba(251, 191, 36, 0));
}

.focus\:via-yellow-500:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #f59e0b, var(--tw-gradient-to, rgba(245, 158, 11, 0));
}

.focus\:via-yellow-600:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #d97706, var(--tw-gradient-to, rgba(217, 119, 6, 0));
}

.focus\:via-yellow-700:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #b45309, var(--tw-gradient-to, rgba(180, 83, 9, 0));
}

.focus\:via-yellow-800:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #92400e, var(--tw-gradient-to, rgba(146, 64, 14, 0));
}

.focus\:via-yellow-900:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #78350f, var(--tw-gradient-to, rgba(120, 53, 15, 0));
}

.focus\:via-green-50:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #ecfdf5, var(--tw-gradient-to, rgba(236, 253, 245, 0));
}

.focus\:via-green-100:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #d1fae5, var(--tw-gradient-to, rgba(209, 250, 229, 0));
}

.focus\:via-green-200:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #a7f3d0, var(--tw-gradient-to, rgba(167, 243, 208, 0));
}

.focus\:via-green-300:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #6ee7b7, var(--tw-gradient-to, rgba(110, 231, 183, 0));
}

.focus\:via-green-400:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #34d399, var(--tw-gradient-to, rgba(52, 211, 153, 0));
}

.focus\:via-green-500:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #10b981, var(--tw-gradient-to, rgba(16, 185, 129, 0));
}

.focus\:via-green-600:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #059669, var(--tw-gradient-to, rgba(5, 150, 105, 0));
}

.focus\:via-green-700:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #047857, var(--tw-gradient-to, rgba(4, 120, 87, 0));
}

.focus\:via-green-800:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #065f46, var(--tw-gradient-to, rgba(6, 95, 70, 0));
}

.focus\:via-green-900:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #064e3b, var(--tw-gradient-to, rgba(6, 78, 59, 0));
}

.focus\:via-blue-50:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #eff6ff, var(--tw-gradient-to, rgba(239, 246, 255, 0));
}

.focus\:via-blue-100:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #dbeafe, var(--tw-gradient-to, rgba(219, 234, 254, 0));
}

.focus\:via-blue-200:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #bfdbfe, var(--tw-gradient-to, rgba(191, 219, 254, 0));
}

.focus\:via-blue-300:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #93c5fd, var(--tw-gradient-to, rgba(147, 197, 253, 0));
}

.focus\:via-blue-400:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #60a5fa, var(--tw-gradient-to, rgba(96, 165, 250, 0));
}

.focus\:via-blue-500:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #3b82f6, var(--tw-gradient-to, rgba(59, 130, 246, 0));
}

.focus\:via-blue-600:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #2563eb, var(--tw-gradient-to, rgba(37, 99, 235, 0));
}

.focus\:via-blue-700:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #1d4ed8, var(--tw-gradient-to, rgba(29, 78, 216, 0));
}

.focus\:via-blue-800:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #1e40af, var(--tw-gradient-to, rgba(30, 64, 175, 0));
}

.focus\:via-blue-900:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #1e3a8a, var(--tw-gradient-to, rgba(30, 58, 138, 0));
}

.focus\:via-indigo-50:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #eef2ff, var(--tw-gradient-to, rgba(238, 242, 255, 0));
}

.focus\:via-indigo-100:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #e0e7ff, var(--tw-gradient-to, rgba(224, 231, 255, 0));
}

.focus\:via-indigo-200:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #c7d2fe, var(--tw-gradient-to, rgba(199, 210, 254, 0));
}

.focus\:via-indigo-300:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #a5b4fc, var(--tw-gradient-to, rgba(165, 180, 252, 0));
}

.focus\:via-indigo-400:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #818cf8, var(--tw-gradient-to, rgba(129, 140, 248, 0));
}

.focus\:via-indigo-500:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #6366f1, var(--tw-gradient-to, rgba(99, 102, 241, 0));
}

.focus\:via-indigo-600:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #4f46e5, var(--tw-gradient-to, rgba(79, 70, 229, 0));
}

.focus\:via-indigo-700:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #4338ca, var(--tw-gradient-to, rgba(67, 56, 202, 0));
}

.focus\:via-indigo-800:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #3730a3, var(--tw-gradient-to, rgba(55, 48, 163, 0));
}

.focus\:via-indigo-900:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #312e81, var(--tw-gradient-to, rgba(49, 46, 129, 0));
}

.focus\:via-purple-50:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #f5f3ff, var(--tw-gradient-to, rgba(245, 243, 255, 0));
}

.focus\:via-purple-100:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #ede9fe, var(--tw-gradient-to, rgba(237, 233, 254, 0));
}

.focus\:via-purple-200:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #ddd6fe, var(--tw-gradient-to, rgba(221, 214, 254, 0));
}

.focus\:via-purple-300:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #c4b5fd, var(--tw-gradient-to, rgba(196, 181, 253, 0));
}

.focus\:via-purple-400:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #a78bfa, var(--tw-gradient-to, rgba(167, 139, 250, 0));
}

.focus\:via-purple-500:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #8b5cf6, var(--tw-gradient-to, rgba(139, 92, 246, 0));
}

.focus\:via-purple-600:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #7c3aed, var(--tw-gradient-to, rgba(124, 58, 237, 0));
}

.focus\:via-purple-700:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #6d28d9, var(--tw-gradient-to, rgba(109, 40, 217, 0));
}

.focus\:via-purple-800:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #5b21b6, var(--tw-gradient-to, rgba(91, 33, 182, 0));
}

.focus\:via-purple-900:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #4c1d95, var(--tw-gradient-to, rgba(76, 29, 149, 0));
}

.focus\:via-pink-50:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #fdf2f8, var(--tw-gradient-to, rgba(253, 242, 248, 0));
}

.focus\:via-pink-100:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #fce7f3, var(--tw-gradient-to, rgba(252, 231, 243, 0));
}

.focus\:via-pink-200:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #fbcfe8, var(--tw-gradient-to, rgba(251, 207, 232, 0));
}

.focus\:via-pink-300:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #f9a8d4, var(--tw-gradient-to, rgba(249, 168, 212, 0));
}

.focus\:via-pink-400:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #f472b6, var(--tw-gradient-to, rgba(244, 114, 182, 0));
}

.focus\:via-pink-500:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #ec4899, var(--tw-gradient-to, rgba(236, 72, 153, 0));
}

.focus\:via-pink-600:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #db2777, var(--tw-gradient-to, rgba(219, 39, 119, 0));
}

.focus\:via-pink-700:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #be185d, var(--tw-gradient-to, rgba(190, 24, 93, 0));
}

.focus\:via-pink-800:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #9d174d, var(--tw-gradient-to, rgba(157, 23, 77, 0));
}

.focus\:via-pink-900:focus {
  --tw-gradient-stops: var(--tw-gradient-from), #831843, var(--tw-gradient-to, rgba(131, 24, 67, 0));
}

.to-transparent {
  --tw-gradient-to: transparent;
}

.to-black {
  --tw-gradient-to: #000;
}

.to-gray-500 {
  --tw-gradient-to: #6b7280;
}

.to-gray-600 {
  --tw-gradient-to: #4b5563;
}

.to-gray-700 {
  --tw-gradient-to: #374151;
}

.to-gray-800 {
  --tw-gradient-to: #1f2937;
}

.to-gray-900 {
  --tw-gradient-to: #111827;
}

.to-red-400 {
  --tw-gradient-to: #f87171;
}

.to-red-500 {
  --tw-gradient-to: #ef4444;
}

.to-red-600 {
  --tw-gradient-to: #dc2626;
}

.to-red-700 {
  --tw-gradient-to: #b91c1c;
}

.to-red-900 {
  --tw-gradient-to: #7f1d1d;
}

.to-yellow-50 {
  --tw-gradient-to: #fffbeb;
}

.to-yellow-400 {
  --tw-gradient-to: #fbbf24;
}

.to-yellow-500 {
  --tw-gradient-to: #f59e0b;
}

.to-green-300 {
  --tw-gradient-to: #6ee7b7;
}

.to-green-400 {
  --tw-gradient-to: #34d399;
}

.to-green-500 {
  --tw-gradient-to: #10b981;
}

.to-green-600 {
  --tw-gradient-to: #059669;
}

.to-green-900 {
  --tw-gradient-to: #064e3b;
}

.to-blue-50 {
  --tw-gradient-to: #eff6ff;
}

.to-blue-300 {
  --tw-gradient-to: #93c5fd;
}

.to-blue-400 {
  --tw-gradient-to: #60a5fa;
}

.to-blue-500 {
  --tw-gradient-to: #3b82f6;
}

.to-blue-600 {
  --tw-gradient-to: #2563eb;
}

.to-blue-700 {
  --tw-gradient-to: #1d4ed8;
}

.to-blue-900 {
  --tw-gradient-to: #1e3a8a;
}

.to-indigo-50 {
  --tw-gradient-to: #eef2ff;
}

.to-indigo-400 {
  --tw-gradient-to: #818cf8;
}

.to-indigo-500 {
  --tw-gradient-to: #6366f1;
}

.to-indigo-600 {
  --tw-gradient-to: #4f46e5;
}

.to-indigo-700 {
  --tw-gradient-to: #4338ca;
}

.to-indigo-900 {
  --tw-gradient-to: #312e81;
}

.to-purple-200 {
  --tw-gradient-to: #ddd6fe;
}

.to-purple-300 {
  --tw-gradient-to: #c4b5fd;
}

.to-purple-400 {
  --tw-gradient-to: #a78bfa;
}

.to-purple-500 {
  --tw-gradient-to: #8b5cf6;
}

.to-purple-600 {
  --tw-gradient-to: #7c3aed;
}

.to-purple-700 {
  --tw-gradient-to: #6d28d9;
}

.to-purple-900 {
  --tw-gradient-to: #4c1d95;
}

.to-pink-50 {
  --tw-gradient-to: #fdf2f8;
}

.to-pink-300 {
  --tw-gradient-to: #f9a8d4;
}

.to-pink-400 {
  --tw-gradient-to: #f472b6;
}

.to-pink-500 {
  --tw-gradient-to: #ec4899;
}

.to-pink-600 {
  --tw-gradient-to: #db2777;
}

.to-pink-900 {
  --tw-gradient-to: #831843;
}

.hover\:to-transparent:hover {
  --tw-gradient-to: transparent;
}

.hover\:to-current:hover {
  --tw-gradient-to: currentColor;
}

.hover\:to-black:hover {
  --tw-gradient-to: #000;
}

.hover\:to-white:hover {
  --tw-gradient-to: #fff;
}

.hover\:to-gray-50:hover {
  --tw-gradient-to: #f9fafb;
}

.hover\:to-gray-100:hover {
  --tw-gradient-to: #f3f4f6;
}

.hover\:to-gray-200:hover {
  --tw-gradient-to: #e5e7eb;
}

.hover\:to-gray-300:hover {
  --tw-gradient-to: #d1d5db;
}

.hover\:to-gray-400:hover {
  --tw-gradient-to: #9ca3af;
}

.hover\:to-gray-500:hover {
  --tw-gradient-to: #6b7280;
}

.hover\:to-gray-600:hover {
  --tw-gradient-to: #4b5563;
}

.hover\:to-gray-700:hover {
  --tw-gradient-to: #374151;
}

.hover\:to-gray-800:hover {
  --tw-gradient-to: #1f2937;
}

.hover\:to-gray-900:hover {
  --tw-gradient-to: #111827;
}

.hover\:to-red-50:hover {
  --tw-gradient-to: #fef2f2;
}

.hover\:to-red-100:hover {
  --tw-gradient-to: #fee2e2;
}

.hover\:to-red-200:hover {
  --tw-gradient-to: #fecaca;
}

.hover\:to-red-300:hover {
  --tw-gradient-to: #fca5a5;
}

.hover\:to-red-400:hover {
  --tw-gradient-to: #f87171;
}

.hover\:to-red-500:hover {
  --tw-gradient-to: #ef4444;
}

.hover\:to-red-600:hover {
  --tw-gradient-to: #dc2626;
}

.hover\:to-red-700:hover {
  --tw-gradient-to: #b91c1c;
}

.hover\:to-red-800:hover {
  --tw-gradient-to: #991b1b;
}

.hover\:to-red-900:hover {
  --tw-gradient-to: #7f1d1d;
}

.hover\:to-yellow-50:hover {
  --tw-gradient-to: #fffbeb;
}

.hover\:to-yellow-100:hover {
  --tw-gradient-to: #fef3c7;
}

.hover\:to-yellow-200:hover {
  --tw-gradient-to: #fde68a;
}

.hover\:to-yellow-300:hover {
  --tw-gradient-to: #fcd34d;
}

.hover\:to-yellow-400:hover {
  --tw-gradient-to: #fbbf24;
}

.hover\:to-yellow-500:hover {
  --tw-gradient-to: #f59e0b;
}

.hover\:to-yellow-600:hover {
  --tw-gradient-to: #d97706;
}

.hover\:to-yellow-700:hover {
  --tw-gradient-to: #b45309;
}

.hover\:to-yellow-800:hover {
  --tw-gradient-to: #92400e;
}

.hover\:to-yellow-900:hover {
  --tw-gradient-to: #78350f;
}

.hover\:to-green-50:hover {
  --tw-gradient-to: #ecfdf5;
}

.hover\:to-green-100:hover {
  --tw-gradient-to: #d1fae5;
}

.hover\:to-green-200:hover {
  --tw-gradient-to: #a7f3d0;
}

.hover\:to-green-300:hover {
  --tw-gradient-to: #6ee7b7;
}

.hover\:to-green-400:hover {
  --tw-gradient-to: #34d399;
}

.hover\:to-green-500:hover {
  --tw-gradient-to: #10b981;
}

.hover\:to-green-600:hover {
  --tw-gradient-to: #059669;
}

.hover\:to-green-700:hover {
  --tw-gradient-to: #047857;
}

.hover\:to-green-800:hover {
  --tw-gradient-to: #065f46;
}

.hover\:to-green-900:hover {
  --tw-gradient-to: #064e3b;
}

.hover\:to-blue-50:hover {
  --tw-gradient-to: #eff6ff;
}

.hover\:to-blue-100:hover {
  --tw-gradient-to: #dbeafe;
}

.hover\:to-blue-200:hover {
  --tw-gradient-to: #bfdbfe;
}

.hover\:to-blue-300:hover {
  --tw-gradient-to: #93c5fd;
}

.hover\:to-blue-400:hover {
  --tw-gradient-to: #60a5fa;
}

.hover\:to-blue-500:hover {
  --tw-gradient-to: #3b82f6;
}

.hover\:to-blue-600:hover {
  --tw-gradient-to: #2563eb;
}

.hover\:to-blue-700:hover {
  --tw-gradient-to: #1d4ed8;
}

.hover\:to-blue-800:hover {
  --tw-gradient-to: #1e40af;
}

.hover\:to-blue-900:hover {
  --tw-gradient-to: #1e3a8a;
}

.hover\:to-indigo-50:hover {
  --tw-gradient-to: #eef2ff;
}

.hover\:to-indigo-100:hover {
  --tw-gradient-to: #e0e7ff;
}

.hover\:to-indigo-200:hover {
  --tw-gradient-to: #c7d2fe;
}

.hover\:to-indigo-300:hover {
  --tw-gradient-to: #a5b4fc;
}

.hover\:to-indigo-400:hover {
  --tw-gradient-to: #818cf8;
}

.hover\:to-indigo-500:hover {
  --tw-gradient-to: #6366f1;
}

.hover\:to-indigo-600:hover {
  --tw-gradient-to: #4f46e5;
}

.hover\:to-indigo-700:hover {
  --tw-gradient-to: #4338ca;
}

.hover\:to-indigo-800:hover {
  --tw-gradient-to: #3730a3;
}

.hover\:to-indigo-900:hover {
  --tw-gradient-to: #312e81;
}

.hover\:to-purple-50:hover {
  --tw-gradient-to: #f5f3ff;
}

.hover\:to-purple-100:hover {
  --tw-gradient-to: #ede9fe;
}

.hover\:to-purple-200:hover {
  --tw-gradient-to: #ddd6fe;
}

.hover\:to-purple-300:hover {
  --tw-gradient-to: #c4b5fd;
}

.hover\:to-purple-400:hover {
  --tw-gradient-to: #a78bfa;
}

.hover\:to-purple-500:hover {
  --tw-gradient-to: #8b5cf6;
}

.hover\:to-purple-600:hover {
  --tw-gradient-to: #7c3aed;
}

.hover\:to-purple-700:hover {
  --tw-gradient-to: #6d28d9;
}

.hover\:to-purple-800:hover {
  --tw-gradient-to: #5b21b6;
}

.hover\:to-purple-900:hover {
  --tw-gradient-to: #4c1d95;
}

.hover\:to-pink-50:hover {
  --tw-gradient-to: #fdf2f8;
}

.hover\:to-pink-100:hover {
  --tw-gradient-to: #fce7f3;
}

.hover\:to-pink-200:hover {
  --tw-gradient-to: #fbcfe8;
}

.hover\:to-pink-300:hover {
  --tw-gradient-to: #f9a8d4;
}

.hover\:to-pink-400:hover {
  --tw-gradient-to: #f472b6;
}

.hover\:to-pink-500:hover {
  --tw-gradient-to: #ec4899;
}

.hover\:to-pink-600:hover {
  --tw-gradient-to: #db2777;
}

.hover\:to-pink-700:hover {
  --tw-gradient-to: #be185d;
}

.hover\:to-pink-800:hover {
  --tw-gradient-to: #9d174d;
}

.hover\:to-pink-900:hover {
  --tw-gradient-to: #831843;
}

.focus\:to-transparent:focus {
  --tw-gradient-to: transparent;
}

.focus\:to-current:focus {
  --tw-gradient-to: currentColor;
}

.focus\:to-black:focus {
  --tw-gradient-to: #000;
}

.focus\:to-white:focus {
  --tw-gradient-to: #fff;
}

.focus\:to-gray-50:focus {
  --tw-gradient-to: #f9fafb;
}

.focus\:to-gray-100:focus {
  --tw-gradient-to: #f3f4f6;
}

.focus\:to-gray-200:focus {
  --tw-gradient-to: #e5e7eb;
}

.focus\:to-gray-300:focus {
  --tw-gradient-to: #d1d5db;
}

.focus\:to-gray-400:focus {
  --tw-gradient-to: #9ca3af;
}

.focus\:to-gray-500:focus {
  --tw-gradient-to: #6b7280;
}

.focus\:to-gray-600:focus {
  --tw-gradient-to: #4b5563;
}

.focus\:to-gray-700:focus {
  --tw-gradient-to: #374151;
}

.focus\:to-gray-800:focus {
  --tw-gradient-to: #1f2937;
}

.focus\:to-gray-900:focus {
  --tw-gradient-to: #111827;
}

.focus\:to-red-50:focus {
  --tw-gradient-to: #fef2f2;
}

.focus\:to-red-100:focus {
  --tw-gradient-to: #fee2e2;
}

.focus\:to-red-200:focus {
  --tw-gradient-to: #fecaca;
}

.focus\:to-red-300:focus {
  --tw-gradient-to: #fca5a5;
}

.focus\:to-red-400:focus {
  --tw-gradient-to: #f87171;
}

.focus\:to-red-500:focus {
  --tw-gradient-to: #ef4444;
}

.focus\:to-red-600:focus {
  --tw-gradient-to: #dc2626;
}

.focus\:to-red-700:focus {
  --tw-gradient-to: #b91c1c;
}

.focus\:to-red-800:focus {
  --tw-gradient-to: #991b1b;
}

.focus\:to-red-900:focus {
  --tw-gradient-to: #7f1d1d;
}

.focus\:to-yellow-50:focus {
  --tw-gradient-to: #fffbeb;
}

.focus\:to-yellow-100:focus {
  --tw-gradient-to: #fef3c7;
}

.focus\:to-yellow-200:focus {
  --tw-gradient-to: #fde68a;
}

.focus\:to-yellow-300:focus {
  --tw-gradient-to: #fcd34d;
}

.focus\:to-yellow-400:focus {
  --tw-gradient-to: #fbbf24;
}

.focus\:to-yellow-500:focus {
  --tw-gradient-to: #f59e0b;
}

.focus\:to-yellow-600:focus {
  --tw-gradient-to: #d97706;
}

.focus\:to-yellow-700:focus {
  --tw-gradient-to: #b45309;
}

.focus\:to-yellow-800:focus {
  --tw-gradient-to: #92400e;
}

.focus\:to-yellow-900:focus {
  --tw-gradient-to: #78350f;
}

.focus\:to-green-50:focus {
  --tw-gradient-to: #ecfdf5;
}

.focus\:to-green-100:focus {
  --tw-gradient-to: #d1fae5;
}

.focus\:to-green-200:focus {
  --tw-gradient-to: #a7f3d0;
}

.focus\:to-green-300:focus {
  --tw-gradient-to: #6ee7b7;
}

.focus\:to-green-400:focus {
  --tw-gradient-to: #34d399;
}

.focus\:to-green-500:focus {
  --tw-gradient-to: #10b981;
}

.focus\:to-green-600:focus {
  --tw-gradient-to: #059669;
}

.focus\:to-green-700:focus {
  --tw-gradient-to: #047857;
}

.focus\:to-green-800:focus {
  --tw-gradient-to: #065f46;
}

.focus\:to-green-900:focus {
  --tw-gradient-to: #064e3b;
}

.focus\:to-blue-50:focus {
  --tw-gradient-to: #eff6ff;
}

.focus\:to-blue-100:focus {
  --tw-gradient-to: #dbeafe;
}

.focus\:to-blue-200:focus {
  --tw-gradient-to: #bfdbfe;
}

.focus\:to-blue-300:focus {
  --tw-gradient-to: #93c5fd;
}

.focus\:to-blue-400:focus {
  --tw-gradient-to: #60a5fa;
}

.focus\:to-blue-500:focus {
  --tw-gradient-to: #3b82f6;
}

.focus\:to-blue-600:focus {
  --tw-gradient-to: #2563eb;
}

.focus\:to-blue-700:focus {
  --tw-gradient-to: #1d4ed8;
}

.focus\:to-blue-800:focus {
  --tw-gradient-to: #1e40af;
}

.focus\:to-blue-900:focus {
  --tw-gradient-to: #1e3a8a;
}

.focus\:to-indigo-50:focus {
  --tw-gradient-to: #eef2ff;
}

.focus\:to-indigo-100:focus {
  --tw-gradient-to: #e0e7ff;
}

.focus\:to-indigo-200:focus {
  --tw-gradient-to: #c7d2fe;
}

.focus\:to-indigo-300:focus {
  --tw-gradient-to: #a5b4fc;
}

.focus\:to-indigo-400:focus {
  --tw-gradient-to: #818cf8;
}

.focus\:to-indigo-500:focus {
  --tw-gradient-to: #6366f1;
}

.focus\:to-indigo-600:focus {
  --tw-gradient-to: #4f46e5;
}

.focus\:to-indigo-700:focus {
  --tw-gradient-to: #4338ca;
}

.focus\:to-indigo-800:focus {
  --tw-gradient-to: #3730a3;
}

.focus\:to-indigo-900:focus {
  --tw-gradient-to: #312e81;
}

.focus\:to-purple-50:focus {
  --tw-gradient-to: #f5f3ff;
}

.focus\:to-purple-100:focus {
  --tw-gradient-to: #ede9fe;
}

.focus\:to-purple-200:focus {
  --tw-gradient-to: #ddd6fe;
}

.focus\:to-purple-300:focus {
  --tw-gradient-to: #c4b5fd;
}

.focus\:to-purple-400:focus {
  --tw-gradient-to: #a78bfa;
}

.focus\:to-purple-500:focus {
  --tw-gradient-to: #8b5cf6;
}

.focus\:to-purple-600:focus {
  --tw-gradient-to: #7c3aed;
}

.focus\:to-purple-700:focus {
  --tw-gradient-to: #6d28d9;
}

.focus\:to-purple-800:focus {
  --tw-gradient-to: #5b21b6;
}

.focus\:to-purple-900:focus {
  --tw-gradient-to: #4c1d95;
}

.focus\:to-pink-50:focus {
  --tw-gradient-to: #fdf2f8;
}

.focus\:to-pink-100:focus {
  --tw-gradient-to: #fce7f3;
}

.focus\:to-pink-200:focus {
  --tw-gradient-to: #fbcfe8;
}

.focus\:to-pink-300:focus {
  --tw-gradient-to: #f9a8d4;
}

.focus\:to-pink-400:focus {
  --tw-gradient-to: #f472b6;
}

.focus\:to-pink-500:focus {
  --tw-gradient-to: #ec4899;
}

.focus\:to-pink-600:focus {
  --tw-gradient-to: #db2777;
}

.focus\:to-pink-700:focus {
  --tw-gradient-to: #be185d;
}

.focus\:to-pink-800:focus {
  --tw-gradient-to: #9d174d;
}

.focus\:to-pink-900:focus {
  --tw-gradient-to: #831843;
}

.bg-clip-text {
  -webkit-background-clip: text;
          background-clip: text;
}

.fill-current {
  fill: currentColor;
}

.stroke-2 {
  stroke-width: 2;
}

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

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

.p-0 {
  padding: 0px;
}

.p-1 {
  padding: 0.25rem;
}

.p-2 {
  padding: 0.5rem;
}

.p-3 {
  padding: 0.75rem;
}

.p-4 {
  padding: 1rem;
}

.p-5 {
  padding: 1.25rem;
}

.p-6 {
  padding: 1.5rem;
}

.p-7 {
  padding: 1.75rem;
}

.p-8 {
  padding: 2rem;
}

.p-9 {
  padding: 2.25rem;
}

.p-10 {
  padding: 2.5rem;
}

.p-11 {
  padding: 2.75rem;
}

.p-12 {
  padding: 3rem;
}

.p-14 {
  padding: 3.5rem;
}

.p-16 {
  padding: 4rem;
}

.p-20 {
  padding: 5rem;
}

.p-24 {
  padding: 6rem;
}

.p-28 {
  padding: 7rem;
}

.p-32 {
  padding: 8rem;
}

.p-36 {
  padding: 9rem;
}

.p-40 {
  padding: 10rem;
}

.p-44 {
  padding: 11rem;
}

.p-48 {
  padding: 12rem;
}

.p-52 {
  padding: 13rem;
}

.p-56 {
  padding: 14rem;
}

.p-60 {
  padding: 15rem;
}

.p-64 {
  padding: 16rem;
}

.p-72 {
  padding: 18rem;
}

.p-80 {
  padding: 20rem;
}

.p-96 {
  padding: 24rem;
}

.p-px {
  padding: 1px;
}

.p-0\.5 {
  padding: 0.125rem;
}

.p-1\.5 {
  padding: 0.375rem;
}

.p-2\.5 {
  padding: 0.625rem;
}

.p-3\.5 {
  padding: 0.875rem;
}

.px-1 {
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}

.px-2 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

.px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}

.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}

.px-5 {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}

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

.px-8 {
  padding-left: 2rem;
  padding-right: 2rem;
}

.px-10 {
  padding-left: 2.5rem;
  padding-right: 2.5rem;
}

.px-1\.5 {
  padding-left: 0.375rem;
  padding-right: 0.375rem;
}

.px-2\.5 {
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}

.py-0 {
  padding-top: 0px;
  padding-bottom: 0px;
}

.py-1 {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}

.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

.py-4 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.py-5 {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}

.py-6 {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}

.py-8 {
  padding-top: 2rem;
  padding-bottom: 2rem;
}

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

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

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

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

.py-0\.5 {
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}

.py-1\.5 {
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}

.py-2\.5 {
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}

.py-3\.5 {
  padding-top: 0.875rem;
  padding-bottom: 0.875rem;
}

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

.pt-1 {
  padding-top: 0.25rem;
}

.pt-2 {
  padding-top: 0.5rem;
}

.pt-3 {
  padding-top: 0.75rem;
}

.pt-4 {
  padding-top: 1rem;
}

.pt-6 {
  padding-top: 1.5rem;
}

.pt-8 {
  padding-top: 2rem;
}

.pt-16 {
  padding-top: 4rem;
}

.pt-20 {
  padding-top: 5rem;
}

.pt-24 {
  padding-top: 6rem;
}

.pt-32 {
  padding-top: 8rem;
}

.pt-36 {
  padding-top: 9rem;
}

.pt-48 {
  padding-top: 12rem;
}

.pr-1 {
  padding-right: 0.25rem;
}

.pr-2 {
  padding-right: 0.5rem;
}

.pr-3 {
  padding-right: 0.75rem;
}

.pr-4 {
  padding-right: 1rem;
}

.pr-8 {
  padding-right: 2rem;
}

.pr-10 {
  padding-right: 2.5rem;
}

.pr-12 {
  padding-right: 3rem;
}

.pb-2 {
  padding-bottom: 0.5rem;
}

.pb-3 {
  padding-bottom: 0.75rem;
}

.pb-4 {
  padding-bottom: 1rem;
}

.pb-5 {
  padding-bottom: 1.25rem;
}

.pb-6 {
  padding-bottom: 1.5rem;
}

.pb-8 {
  padding-bottom: 2rem;
}

.pb-12 {
  padding-bottom: 3rem;
}

.pb-16 {
  padding-bottom: 4rem;
}

.pb-20 {
  padding-bottom: 5rem;
}

.pl-3 {
  padding-left: 0.75rem;
}

.pl-4 {
  padding-left: 1rem;
}

.pl-5 {
  padding-left: 1.25rem;
}

.pl-6 {
  padding-left: 1.5rem;
}

.pl-8 {
  padding-left: 2rem;
}

.pl-9 {
  padding-left: 2.25rem;
}

.pl-10 {
  padding-left: 2.5rem;
}

.pl-12 {
  padding-left: 3rem;
}

.pl-14 {
  padding-left: 3.5rem;
}

.pl-3\.5 {
  padding-left: 0.875rem;
}

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

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

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

.font-sans {
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}

.font-mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

.text-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}

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

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

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

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

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

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

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

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

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

.text-7xl {
  font-size: 4.5rem;
  line-height: 1;
}

.text-8xl {
  font-size: 6rem;
  line-height: 1;
}

.font-thin {
  font-weight: 100;
}

.font-extralight {
  font-weight: 200;
}

.font-light {
  font-weight: 300;
}

.font-normal {
  font-weight: 400;
}

.font-medium {
  font-weight: 500;
}

.font-semibold {
  font-weight: 600;
}

.font-bold {
  font-weight: 700;
}

.font-black {
  font-weight: 900;
}

.uppercase {
  text-transform: uppercase;
}

.lowercase {
  text-transform: lowercase;
}

.capitalize {
  text-transform: capitalize;
}

.italic {
  font-style: italic;
}

.leading-none {
  line-height: 1;
}

.leading-tight {
  line-height: 1.25;
}

.leading-snug {
  line-height: 1.375;
}

.leading-relaxed {
  line-height: 1.625;
}

.tracking-tight {
  letter-spacing: -0.025em;
}

.tracking-wide {
  letter-spacing: 0.025em;
}

.tracking-wider {
  letter-spacing: 0.05em;
}

.text-transparent {
  color: transparent;
}

.text-black {
  --tw-text-opacity: 1;
  color: rgba(0, 0, 0, var(--tw-text-opacity));
}

.text-white {
  --tw-text-opacity: 1;
  color: rgba(255, 255, 255, var(--tw-text-opacity));
}

.text-gray-50 {
  --tw-text-opacity: 1;
  color: rgba(249, 250, 251, var(--tw-text-opacity));
}

.text-gray-100 {
  --tw-text-opacity: 1;
  color: rgba(243, 244, 246, var(--tw-text-opacity));
}

.text-gray-200 {
  --tw-text-opacity: 1;
  color: rgba(229, 231, 235, var(--tw-text-opacity));
}

.text-gray-300 {
  --tw-text-opacity: 1;
  color: rgba(209, 213, 219, var(--tw-text-opacity));
}

.text-gray-400 {
  --tw-text-opacity: 1;
  color: rgba(156, 163, 175, var(--tw-text-opacity));
}

.text-gray-500 {
  --tw-text-opacity: 1;
  color: rgba(107, 114, 128, var(--tw-text-opacity));
}

.text-gray-600 {
  --tw-text-opacity: 1;
  color: rgba(75, 85, 99, var(--tw-text-opacity));
}

.text-gray-700 {
  --tw-text-opacity: 1;
  color: rgba(55, 65, 81, var(--tw-text-opacity));
}

.text-gray-800 {
  --tw-text-opacity: 1;
  color: rgba(31, 41, 55, var(--tw-text-opacity));
}

.text-gray-900 {
  --tw-text-opacity: 1;
  color: rgba(17, 24, 39, var(--tw-text-opacity));
}

.text-red-50 {
  --tw-text-opacity: 1;
  color: rgba(254, 242, 242, var(--tw-text-opacity));
}

.text-red-100 {
  --tw-text-opacity: 1;
  color: rgba(254, 226, 226, var(--tw-text-opacity));
}

.text-red-200 {
  --tw-text-opacity: 1;
  color: rgba(254, 202, 202, var(--tw-text-opacity));
}

.text-red-300 {
  --tw-text-opacity: 1;
  color: rgba(252, 165, 165, var(--tw-text-opacity));
}

.text-red-400 {
  --tw-text-opacity: 1;
  color: rgba(248, 113, 113, var(--tw-text-opacity));
}

.text-red-500 {
  --tw-text-opacity: 1;
  color: rgba(239, 68, 68, var(--tw-text-opacity));
}

.text-red-600 {
  --tw-text-opacity: 1;
  color: rgba(220, 38, 38, var(--tw-text-opacity));
}

.text-red-700 {
  --tw-text-opacity: 1;
  color: rgba(185, 28, 28, var(--tw-text-opacity));
}

.text-red-800 {
  --tw-text-opacity: 1;
  color: rgba(153, 27, 27, var(--tw-text-opacity));
}

.text-red-900 {
  --tw-text-opacity: 1;
  color: rgba(127, 29, 29, var(--tw-text-opacity));
}

.text-yellow-50 {
  --tw-text-opacity: 1;
  color: rgba(255, 251, 235, var(--tw-text-opacity));
}

.text-yellow-100 {
  --tw-text-opacity: 1;
  color: rgba(254, 243, 199, var(--tw-text-opacity));
}

.text-yellow-200 {
  --tw-text-opacity: 1;
  color: rgba(253, 230, 138, var(--tw-text-opacity));
}

.text-yellow-300 {
  --tw-text-opacity: 1;
  color: rgba(252, 211, 77, var(--tw-text-opacity));
}

.text-yellow-400 {
  --tw-text-opacity: 1;
  color: rgba(251, 191, 36, var(--tw-text-opacity));
}

.text-yellow-500 {
  --tw-text-opacity: 1;
  color: rgba(245, 158, 11, var(--tw-text-opacity));
}

.text-yellow-600 {
  --tw-text-opacity: 1;
  color: rgba(217, 119, 6, var(--tw-text-opacity));
}

.text-yellow-700 {
  --tw-text-opacity: 1;
  color: rgba(180, 83, 9, var(--tw-text-opacity));
}

.text-yellow-800 {
  --tw-text-opacity: 1;
  color: rgba(146, 64, 14, var(--tw-text-opacity));
}

.text-yellow-900 {
  --tw-text-opacity: 1;
  color: rgba(120, 53, 15, var(--tw-text-opacity));
}

.text-green-50 {
  --tw-text-opacity: 1;
  color: rgba(236, 253, 245, var(--tw-text-opacity));
}

.text-green-100 {
  --tw-text-opacity: 1;
  color: rgba(209, 250, 229, var(--tw-text-opacity));
}

.text-green-200 {
  --tw-text-opacity: 1;
  color: rgba(167, 243, 208, var(--tw-text-opacity));
}

.text-green-300 {
  --tw-text-opacity: 1;
  color: rgba(110, 231, 183, var(--tw-text-opacity));
}

.text-green-400 {
  --tw-text-opacity: 1;
  color: rgba(52, 211, 153, var(--tw-text-opacity));
}

.text-green-500 {
  --tw-text-opacity: 1;
  color: rgba(16, 185, 129, var(--tw-text-opacity));
}

.text-green-600 {
  --tw-text-opacity: 1;
  color: rgba(5, 150, 105, var(--tw-text-opacity));
}

.text-green-700 {
  --tw-text-opacity: 1;
  color: rgba(4, 120, 87, var(--tw-text-opacity));
}

.text-green-800 {
  --tw-text-opacity: 1;
  color: rgba(6, 95, 70, var(--tw-text-opacity));
}

.text-green-900 {
  --tw-text-opacity: 1;
  color: rgba(6, 78, 59, var(--tw-text-opacity));
}

.text-blue-50 {
  --tw-text-opacity: 1;
  color: rgba(239, 246, 255, var(--tw-text-opacity));
}

.text-blue-100 {
  --tw-text-opacity: 1;
  color: rgba(219, 234, 254, var(--tw-text-opacity));
}

.text-blue-200 {
  --tw-text-opacity: 1;
  color: rgba(191, 219, 254, var(--tw-text-opacity));
}

.text-blue-300 {
  --tw-text-opacity: 1;
  color: rgba(147, 197, 253, var(--tw-text-opacity));
}

.text-blue-400 {
  --tw-text-opacity: 1;
  color: rgba(96, 165, 250, var(--tw-text-opacity));
}

.text-blue-500 {
  --tw-text-opacity: 1;
  color: rgba(59, 130, 246, var(--tw-text-opacity));
}

.text-blue-600 {
  --tw-text-opacity: 1;
  color: rgba(37, 99, 235, var(--tw-text-opacity));
}

.text-blue-700 {
  --tw-text-opacity: 1;
  color: rgba(29, 78, 216, var(--tw-text-opacity));
}

.text-blue-800 {
  --tw-text-opacity: 1;
  color: rgba(30, 64, 175, var(--tw-text-opacity));
}

.text-blue-900 {
  --tw-text-opacity: 1;
  color: rgba(30, 58, 138, var(--tw-text-opacity));
}

.text-indigo-200 {
  --tw-text-opacity: 1;
  color: rgba(199, 210, 254, var(--tw-text-opacity));
}

.text-indigo-300 {
  --tw-text-opacity: 1;
  color: rgba(165, 180, 252, var(--tw-text-opacity));
}

.text-indigo-400 {
  --tw-text-opacity: 1;
  color: rgba(129, 140, 248, var(--tw-text-opacity));
}

.text-purple-50 {
  --tw-text-opacity: 1;
  color: rgba(245, 243, 255, var(--tw-text-opacity));
}

.text-purple-100 {
  --tw-text-opacity: 1;
  color: rgba(237, 233, 254, var(--tw-text-opacity));
}

.text-purple-200 {
  --tw-text-opacity: 1;
  color: rgba(221, 214, 254, var(--tw-text-opacity));
}

.text-purple-300 {
  --tw-text-opacity: 1;
  color: rgba(196, 181, 253, var(--tw-text-opacity));
}

.text-purple-400 {
  --tw-text-opacity: 1;
  color: rgba(167, 139, 250, var(--tw-text-opacity));
}

.text-purple-500 {
  --tw-text-opacity: 1;
  color: rgba(139, 92, 246, var(--tw-text-opacity));
}

.text-purple-600 {
  --tw-text-opacity: 1;
  color: rgba(124, 58, 237, var(--tw-text-opacity));
}

.text-purple-700 {
  --tw-text-opacity: 1;
  color: rgba(109, 40, 217, var(--tw-text-opacity));
}

.text-purple-800 {
  --tw-text-opacity: 1;
  color: rgba(91, 33, 182, var(--tw-text-opacity));
}

.text-purple-900 {
  --tw-text-opacity: 1;
  color: rgba(76, 29, 149, var(--tw-text-opacity));
}

.text-pink-300 {
  --tw-text-opacity: 1;
  color: rgba(249, 168, 212, var(--tw-text-opacity));
}

.text-pink-400 {
  --tw-text-opacity: 1;
  color: rgba(244, 114, 182, var(--tw-text-opacity));
}

.group:hover .group-hover\:text-white {
  --tw-text-opacity: 1;
  color: rgba(255, 255, 255, var(--tw-text-opacity));
}

.group:hover .group-hover\:text-gray-300 {
  --tw-text-opacity: 1;
  color: rgba(209, 213, 219, var(--tw-text-opacity));
}

.group:hover .group-hover\:text-yellow-300 {
  --tw-text-opacity: 1;
  color: rgba(252, 211, 77, var(--tw-text-opacity));
}

.group:hover .group-hover\:text-green-300 {
  --tw-text-opacity: 1;
  color: rgba(110, 231, 183, var(--tw-text-opacity));
}

.group:hover .group-hover\:text-green-400 {
  --tw-text-opacity: 1;
  color: rgba(52, 211, 153, var(--tw-text-opacity));
}

.group:hover .group-hover\:text-blue-300 {
  --tw-text-opacity: 1;
  color: rgba(147, 197, 253, var(--tw-text-opacity));
}

.group:hover .group-hover\:text-blue-400 {
  --tw-text-opacity: 1;
  color: rgba(96, 165, 250, var(--tw-text-opacity));
}

.group:hover .group-hover\:text-purple-300 {
  --tw-text-opacity: 1;
  color: rgba(196, 181, 253, var(--tw-text-opacity));
}

.group:hover .group-hover\:text-purple-400 {
  --tw-text-opacity: 1;
  color: rgba(167, 139, 250, var(--tw-text-opacity));
}

.hover\:text-transparent:hover {
  color: transparent;
}

.hover\:text-current:hover {
  color: currentColor;
}

.hover\:text-black:hover {
  --tw-text-opacity: 1;
  color: rgba(0, 0, 0, var(--tw-text-opacity));
}

.hover\:text-white:hover {
  --tw-text-opacity: 1;
  color: rgba(255, 255, 255, var(--tw-text-opacity));
}

.hover\:text-gray-50:hover {
  --tw-text-opacity: 1;
  color: rgba(249, 250, 251, var(--tw-text-opacity));
}

.hover\:text-gray-100:hover {
  --tw-text-opacity: 1;
  color: rgba(243, 244, 246, var(--tw-text-opacity));
}

.hover\:text-gray-200:hover {
  --tw-text-opacity: 1;
  color: rgba(229, 231, 235, var(--tw-text-opacity));
}

.hover\:text-gray-300:hover {
  --tw-text-opacity: 1;
  color: rgba(209, 213, 219, var(--tw-text-opacity));
}

.hover\:text-gray-400:hover {
  --tw-text-opacity: 1;
  color: rgba(156, 163, 175, var(--tw-text-opacity));
}

.hover\:text-gray-500:hover {
  --tw-text-opacity: 1;
  color: rgba(107, 114, 128, var(--tw-text-opacity));
}

.hover\:text-gray-600:hover {
  --tw-text-opacity: 1;
  color: rgba(75, 85, 99, var(--tw-text-opacity));
}

.hover\:text-gray-700:hover {
  --tw-text-opacity: 1;
  color: rgba(55, 65, 81, var(--tw-text-opacity));
}

.hover\:text-gray-800:hover {
  --tw-text-opacity: 1;
  color: rgba(31, 41, 55, var(--tw-text-opacity));
}

.hover\:text-gray-900:hover {
  --tw-text-opacity: 1;
  color: rgba(17, 24, 39, var(--tw-text-opacity));
}

.hover\:text-red-50:hover {
  --tw-text-opacity: 1;
  color: rgba(254, 242, 242, var(--tw-text-opacity));
}

.hover\:text-red-100:hover {
  --tw-text-opacity: 1;
  color: rgba(254, 226, 226, var(--tw-text-opacity));
}

.hover\:text-red-200:hover {
  --tw-text-opacity: 1;
  color: rgba(254, 202, 202, var(--tw-text-opacity));
}

.hover\:text-red-300:hover {
  --tw-text-opacity: 1;
  color: rgba(252, 165, 165, var(--tw-text-opacity));
}

.hover\:text-red-400:hover {
  --tw-text-opacity: 1;
  color: rgba(248, 113, 113, var(--tw-text-opacity));
}

.hover\:text-red-500:hover {
  --tw-text-opacity: 1;
  color: rgba(239, 68, 68, var(--tw-text-opacity));
}

.hover\:text-red-600:hover {
  --tw-text-opacity: 1;
  color: rgba(220, 38, 38, var(--tw-text-opacity));
}

.hover\:text-red-700:hover {
  --tw-text-opacity: 1;
  color: rgba(185, 28, 28, var(--tw-text-opacity));
}

.hover\:text-red-800:hover {
  --tw-text-opacity: 1;
  color: rgba(153, 27, 27, var(--tw-text-opacity));
}

.hover\:text-red-900:hover {
  --tw-text-opacity: 1;
  color: rgba(127, 29, 29, var(--tw-text-opacity));
}

.hover\:text-yellow-50:hover {
  --tw-text-opacity: 1;
  color: rgba(255, 251, 235, var(--tw-text-opacity));
}

.hover\:text-yellow-100:hover {
  --tw-text-opacity: 1;
  color: rgba(254, 243, 199, var(--tw-text-opacity));
}

.hover\:text-yellow-200:hover {
  --tw-text-opacity: 1;
  color: rgba(253, 230, 138, var(--tw-text-opacity));
}

.hover\:text-yellow-300:hover {
  --tw-text-opacity: 1;
  color: rgba(252, 211, 77, var(--tw-text-opacity));
}

.hover\:text-yellow-400:hover {
  --tw-text-opacity: 1;
  color: rgba(251, 191, 36, var(--tw-text-opacity));
}

.hover\:text-yellow-500:hover {
  --tw-text-opacity: 1;
  color: rgba(245, 158, 11, var(--tw-text-opacity));
}

.hover\:text-yellow-600:hover {
  --tw-text-opacity: 1;
  color: rgba(217, 119, 6, var(--tw-text-opacity));
}

.hover\:text-yellow-700:hover {
  --tw-text-opacity: 1;
  color: rgba(180, 83, 9, var(--tw-text-opacity));
}

.hover\:text-yellow-800:hover {
  --tw-text-opacity: 1;
  color: rgba(146, 64, 14, var(--tw-text-opacity));
}

.hover\:text-yellow-900:hover {
  --tw-text-opacity: 1;
  color: rgba(120, 53, 15, var(--tw-text-opacity));
}

.hover\:text-green-50:hover {
  --tw-text-opacity: 1;
  color: rgba(236, 253, 245, var(--tw-text-opacity));
}

.hover\:text-green-100:hover {
  --tw-text-opacity: 1;
  color: rgba(209, 250, 229, var(--tw-text-opacity));
}

.hover\:text-green-200:hover {
  --tw-text-opacity: 1;
  color: rgba(167, 243, 208, var(--tw-text-opacity));
}

.hover\:text-green-300:hover {
  --tw-text-opacity: 1;
  color: rgba(110, 231, 183, var(--tw-text-opacity));
}

.hover\:text-green-400:hover {
  --tw-text-opacity: 1;
  color: rgba(52, 211, 153, var(--tw-text-opacity));
}

.hover\:text-green-500:hover {
  --tw-text-opacity: 1;
  color: rgba(16, 185, 129, var(--tw-text-opacity));
}

.hover\:text-green-600:hover {
  --tw-text-opacity: 1;
  color: rgba(5, 150, 105, var(--tw-text-opacity));
}

.hover\:text-green-700:hover {
  --tw-text-opacity: 1;
  color: rgba(4, 120, 87, var(--tw-text-opacity));
}

.hover\:text-green-800:hover {
  --tw-text-opacity: 1;
  color: rgba(6, 95, 70, var(--tw-text-opacity));
}

.hover\:text-green-900:hover {
  --tw-text-opacity: 1;
  color: rgba(6, 78, 59, var(--tw-text-opacity));
}

.hover\:text-blue-50:hover {
  --tw-text-opacity: 1;
  color: rgba(239, 246, 255, var(--tw-text-opacity));
}

.hover\:text-blue-100:hover {
  --tw-text-opacity: 1;
  color: rgba(219, 234, 254, var(--tw-text-opacity));
}

.hover\:text-blue-200:hover {
  --tw-text-opacity: 1;
  color: rgba(191, 219, 254, var(--tw-text-opacity));
}

.hover\:text-blue-300:hover {
  --tw-text-opacity: 1;
  color: rgba(147, 197, 253, var(--tw-text-opacity));
}

.hover\:text-blue-400:hover {
  --tw-text-opacity: 1;
  color: rgba(96, 165, 250, var(--tw-text-opacity));
}

.hover\:text-blue-500:hover {
  --tw-text-opacity: 1;
  color: rgba(59, 130, 246, var(--tw-text-opacity));
}

.hover\:text-blue-600:hover {
  --tw-text-opacity: 1;
  color: rgba(37, 99, 235, var(--tw-text-opacity));
}

.hover\:text-blue-700:hover {
  --tw-text-opacity: 1;
  color: rgba(29, 78, 216, var(--tw-text-opacity));
}

.hover\:text-blue-800:hover {
  --tw-text-opacity: 1;
  color: rgba(30, 64, 175, var(--tw-text-opacity));
}

.hover\:text-blue-900:hover {
  --tw-text-opacity: 1;
  color: rgba(30, 58, 138, var(--tw-text-opacity));
}

.hover\:text-indigo-50:hover {
  --tw-text-opacity: 1;
  color: rgba(238, 242, 255, var(--tw-text-opacity));
}

.hover\:text-indigo-100:hover {
  --tw-text-opacity: 1;
  color: rgba(224, 231, 255, var(--tw-text-opacity));
}

.hover\:text-indigo-200:hover {
  --tw-text-opacity: 1;
  color: rgba(199, 210, 254, var(--tw-text-opacity));
}

.hover\:text-indigo-300:hover {
  --tw-text-opacity: 1;
  color: rgba(165, 180, 252, var(--tw-text-opacity));
}

.hover\:text-indigo-400:hover {
  --tw-text-opacity: 1;
  color: rgba(129, 140, 248, var(--tw-text-opacity));
}

.hover\:text-indigo-500:hover {
  --tw-text-opacity: 1;
  color: rgba(99, 102, 241, var(--tw-text-opacity));
}

.hover\:text-indigo-600:hover {
  --tw-text-opacity: 1;
  color: rgba(79, 70, 229, var(--tw-text-opacity));
}

.hover\:text-indigo-700:hover {
  --tw-text-opacity: 1;
  color: rgba(67, 56, 202, var(--tw-text-opacity));
}

.hover\:text-indigo-800:hover {
  --tw-text-opacity: 1;
  color: rgba(55, 48, 163, var(--tw-text-opacity));
}

.hover\:text-indigo-900:hover {
  --tw-text-opacity: 1;
  color: rgba(49, 46, 129, var(--tw-text-opacity));
}

.hover\:text-purple-50:hover {
  --tw-text-opacity: 1;
  color: rgba(245, 243, 255, var(--tw-text-opacity));
}

.hover\:text-purple-100:hover {
  --tw-text-opacity: 1;
  color: rgba(237, 233, 254, var(--tw-text-opacity));
}

.hover\:text-purple-200:hover {
  --tw-text-opacity: 1;
  color: rgba(221, 214, 254, var(--tw-text-opacity));
}

.hover\:text-purple-300:hover {
  --tw-text-opacity: 1;
  color: rgba(196, 181, 253, var(--tw-text-opacity));
}

.hover\:text-purple-400:hover {
  --tw-text-opacity: 1;
  color: rgba(167, 139, 250, var(--tw-text-opacity));
}

.hover\:text-purple-500:hover {
  --tw-text-opacity: 1;
  color: rgba(139, 92, 246, var(--tw-text-opacity));
}

.hover\:text-purple-600:hover {
  --tw-text-opacity: 1;
  color: rgba(124, 58, 237, var(--tw-text-opacity));
}

.hover\:text-purple-700:hover {
  --tw-text-opacity: 1;
  color: rgba(109, 40, 217, var(--tw-text-opacity));
}

.hover\:text-purple-800:hover {
  --tw-text-opacity: 1;
  color: rgba(91, 33, 182, var(--tw-text-opacity));
}

.hover\:text-purple-900:hover {
  --tw-text-opacity: 1;
  color: rgba(76, 29, 149, var(--tw-text-opacity));
}

.hover\:text-pink-50:hover {
  --tw-text-opacity: 1;
  color: rgba(253, 242, 248, var(--tw-text-opacity));
}

.hover\:text-pink-100:hover {
  --tw-text-opacity: 1;
  color: rgba(252, 231, 243, var(--tw-text-opacity));
}

.hover\:text-pink-200:hover {
  --tw-text-opacity: 1;
  color: rgba(251, 207, 232, var(--tw-text-opacity));
}

.hover\:text-pink-300:hover {
  --tw-text-opacity: 1;
  color: rgba(249, 168, 212, var(--tw-text-opacity));
}

.hover\:text-pink-400:hover {
  --tw-text-opacity: 1;
  color: rgba(244, 114, 182, var(--tw-text-opacity));
}

.hover\:text-pink-500:hover {
  --tw-text-opacity: 1;
  color: rgba(236, 72, 153, var(--tw-text-opacity));
}

.hover\:text-pink-600:hover {
  --tw-text-opacity: 1;
  color: rgba(219, 39, 119, var(--tw-text-opacity));
}

.hover\:text-pink-700:hover {
  --tw-text-opacity: 1;
  color: rgba(190, 24, 93, var(--tw-text-opacity));
}

.hover\:text-pink-800:hover {
  --tw-text-opacity: 1;
  color: rgba(157, 23, 77, var(--tw-text-opacity));
}

.hover\:text-pink-900:hover {
  --tw-text-opacity: 1;
  color: rgba(131, 24, 67, var(--tw-text-opacity));
}

.focus\:text-transparent:focus {
  color: transparent;
}

.focus\:text-current:focus {
  color: currentColor;
}

.focus\:text-black:focus {
  --tw-text-opacity: 1;
  color: rgba(0, 0, 0, var(--tw-text-opacity));
}

.focus\:text-white:focus {
  --tw-text-opacity: 1;
  color: rgba(255, 255, 255, var(--tw-text-opacity));
}

.focus\:text-gray-50:focus {
  --tw-text-opacity: 1;
  color: rgba(249, 250, 251, var(--tw-text-opacity));
}

.focus\:text-gray-100:focus {
  --tw-text-opacity: 1;
  color: rgba(243, 244, 246, var(--tw-text-opacity));
}

.focus\:text-gray-200:focus {
  --tw-text-opacity: 1;
  color: rgba(229, 231, 235, var(--tw-text-opacity));
}

.focus\:text-gray-300:focus {
  --tw-text-opacity: 1;
  color: rgba(209, 213, 219, var(--tw-text-opacity));
}

.focus\:text-gray-400:focus {
  --tw-text-opacity: 1;
  color: rgba(156, 163, 175, var(--tw-text-opacity));
}

.focus\:text-gray-500:focus {
  --tw-text-opacity: 1;
  color: rgba(107, 114, 128, var(--tw-text-opacity));
}

.focus\:text-gray-600:focus {
  --tw-text-opacity: 1;
  color: rgba(75, 85, 99, var(--tw-text-opacity));
}

.focus\:text-gray-700:focus {
  --tw-text-opacity: 1;
  color: rgba(55, 65, 81, var(--tw-text-opacity));
}

.focus\:text-gray-800:focus {
  --tw-text-opacity: 1;
  color: rgba(31, 41, 55, var(--tw-text-opacity));
}

.focus\:text-gray-900:focus {
  --tw-text-opacity: 1;
  color: rgba(17, 24, 39, var(--tw-text-opacity));
}

.focus\:text-red-50:focus {
  --tw-text-opacity: 1;
  color: rgba(254, 242, 242, var(--tw-text-opacity));
}

.focus\:text-red-100:focus {
  --tw-text-opacity: 1;
  color: rgba(254, 226, 226, var(--tw-text-opacity));
}

.focus\:text-red-200:focus {
  --tw-text-opacity: 1;
  color: rgba(254, 202, 202, var(--tw-text-opacity));
}

.focus\:text-red-300:focus {
  --tw-text-opacity: 1;
  color: rgba(252, 165, 165, var(--tw-text-opacity));
}

.focus\:text-red-400:focus {
  --tw-text-opacity: 1;
  color: rgba(248, 113, 113, var(--tw-text-opacity));
}

.focus\:text-red-500:focus {
  --tw-text-opacity: 1;
  color: rgba(239, 68, 68, var(--tw-text-opacity));
}

.focus\:text-red-600:focus {
  --tw-text-opacity: 1;
  color: rgba(220, 38, 38, var(--tw-text-opacity));
}

.focus\:text-red-700:focus {
  --tw-text-opacity: 1;
  color: rgba(185, 28, 28, var(--tw-text-opacity));
}

.focus\:text-red-800:focus {
  --tw-text-opacity: 1;
  color: rgba(153, 27, 27, var(--tw-text-opacity));
}

.focus\:text-red-900:focus {
  --tw-text-opacity: 1;
  color: rgba(127, 29, 29, var(--tw-text-opacity));
}

.focus\:text-yellow-50:focus {
  --tw-text-opacity: 1;
  color: rgba(255, 251, 235, var(--tw-text-opacity));
}

.focus\:text-yellow-100:focus {
  --tw-text-opacity: 1;
  color: rgba(254, 243, 199, var(--tw-text-opacity));
}

.focus\:text-yellow-200:focus {
  --tw-text-opacity: 1;
  color: rgba(253, 230, 138, var(--tw-text-opacity));
}

.focus\:text-yellow-300:focus {
  --tw-text-opacity: 1;
  color: rgba(252, 211, 77, var(--tw-text-opacity));
}

.focus\:text-yellow-400:focus {
  --tw-text-opacity: 1;
  color: rgba(251, 191, 36, var(--tw-text-opacity));
}

.focus\:text-yellow-500:focus {
  --tw-text-opacity: 1;
  color: rgba(245, 158, 11, var(--tw-text-opacity));
}

.focus\:text-yellow-600:focus {
  --tw-text-opacity: 1;
  color: rgba(217, 119, 6, var(--tw-text-opacity));
}

.focus\:text-yellow-700:focus {
  --tw-text-opacity: 1;
  color: rgba(180, 83, 9, var(--tw-text-opacity));
}

.focus\:text-yellow-800:focus {
  --tw-text-opacity: 1;
  color: rgba(146, 64, 14, var(--tw-text-opacity));
}

.focus\:text-yellow-900:focus {
  --tw-text-opacity: 1;
  color: rgba(120, 53, 15, var(--tw-text-opacity));
}

.focus\:text-green-50:focus {
  --tw-text-opacity: 1;
  color: rgba(236, 253, 245, var(--tw-text-opacity));
}

.focus\:text-green-100:focus {
  --tw-text-opacity: 1;
  color: rgba(209, 250, 229, var(--tw-text-opacity));
}

.focus\:text-green-200:focus {
  --tw-text-opacity: 1;
  color: rgba(167, 243, 208, var(--tw-text-opacity));
}

.focus\:text-green-300:focus {
  --tw-text-opacity: 1;
  color: rgba(110, 231, 183, var(--tw-text-opacity));
}

.focus\:text-green-400:focus {
  --tw-text-opacity: 1;
  color: rgba(52, 211, 153, var(--tw-text-opacity));
}

.focus\:text-green-500:focus {
  --tw-text-opacity: 1;
  color: rgba(16, 185, 129, var(--tw-text-opacity));
}

.focus\:text-green-600:focus {
  --tw-text-opacity: 1;
  color: rgba(5, 150, 105, var(--tw-text-opacity));
}

.focus\:text-green-700:focus {
  --tw-text-opacity: 1;
  color: rgba(4, 120, 87, var(--tw-text-opacity));
}

.focus\:text-green-800:focus {
  --tw-text-opacity: 1;
  color: rgba(6, 95, 70, var(--tw-text-opacity));
}

.focus\:text-green-900:focus {
  --tw-text-opacity: 1;
  color: rgba(6, 78, 59, var(--tw-text-opacity));
}

.focus\:text-blue-50:focus {
  --tw-text-opacity: 1;
  color: rgba(239, 246, 255, var(--tw-text-opacity));
}

.focus\:text-blue-100:focus {
  --tw-text-opacity: 1;
  color: rgba(219, 234, 254, var(--tw-text-opacity));
}

.focus\:text-blue-200:focus {
  --tw-text-opacity: 1;
  color: rgba(191, 219, 254, var(--tw-text-opacity));
}

.focus\:text-blue-300:focus {
  --tw-text-opacity: 1;
  color: rgba(147, 197, 253, var(--tw-text-opacity));
}

.focus\:text-blue-400:focus {
  --tw-text-opacity: 1;
  color: rgba(96, 165, 250, var(--tw-text-opacity));
}

.focus\:text-blue-500:focus {
  --tw-text-opacity: 1;
  color: rgba(59, 130, 246, var(--tw-text-opacity));
}

.focus\:text-blue-600:focus {
  --tw-text-opacity: 1;
  color: rgba(37, 99, 235, var(--tw-text-opacity));
}

.focus\:text-blue-700:focus {
  --tw-text-opacity: 1;
  color: rgba(29, 78, 216, var(--tw-text-opacity));
}

.focus\:text-blue-800:focus {
  --tw-text-opacity: 1;
  color: rgba(30, 64, 175, var(--tw-text-opacity));
}

.focus\:text-blue-900:focus {
  --tw-text-opacity: 1;
  color: rgba(30, 58, 138, var(--tw-text-opacity));
}

.focus\:text-indigo-50:focus {
  --tw-text-opacity: 1;
  color: rgba(238, 242, 255, var(--tw-text-opacity));
}

.focus\:text-indigo-100:focus {
  --tw-text-opacity: 1;
  color: rgba(224, 231, 255, var(--tw-text-opacity));
}

.focus\:text-indigo-200:focus {
  --tw-text-opacity: 1;
  color: rgba(199, 210, 254, var(--tw-text-opacity));
}

.focus\:text-indigo-300:focus {
  --tw-text-opacity: 1;
  color: rgba(165, 180, 252, var(--tw-text-opacity));
}

.focus\:text-indigo-400:focus {
  --tw-text-opacity: 1;
  color: rgba(129, 140, 248, var(--tw-text-opacity));
}

.focus\:text-indigo-500:focus {
  --tw-text-opacity: 1;
  color: rgba(99, 102, 241, var(--tw-text-opacity));
}

.focus\:text-indigo-600:focus {
  --tw-text-opacity: 1;
  color: rgba(79, 70, 229, var(--tw-text-opacity));
}

.focus\:text-indigo-700:focus {
  --tw-text-opacity: 1;
  color: rgba(67, 56, 202, var(--tw-text-opacity));
}

.focus\:text-indigo-800:focus {
  --tw-text-opacity: 1;
  color: rgba(55, 48, 163, var(--tw-text-opacity));
}

.focus\:text-indigo-900:focus {
  --tw-text-opacity: 1;
  color: rgba(49, 46, 129, var(--tw-text-opacity));
}

.focus\:text-purple-50:focus {
  --tw-text-opacity: 1;
  color: rgba(245, 243, 255, var(--tw-text-opacity));
}

.focus\:text-purple-100:focus {
  --tw-text-opacity: 1;
  color: rgba(237, 233, 254, var(--tw-text-opacity));
}

.focus\:text-purple-200:focus {
  --tw-text-opacity: 1;
  color: rgba(221, 214, 254, var(--tw-text-opacity));
}

.focus\:text-purple-300:focus {
  --tw-text-opacity: 1;
  color: rgba(196, 181, 253, var(--tw-text-opacity));
}

.focus\:text-purple-400:focus {
  --tw-text-opacity: 1;
  color: rgba(167, 139, 250, var(--tw-text-opacity));
}

.focus\:text-purple-500:focus {
  --tw-text-opacity: 1;
  color: rgba(139, 92, 246, var(--tw-text-opacity));
}

.focus\:text-purple-600:focus {
  --tw-text-opacity: 1;
  color: rgba(124, 58, 237, var(--tw-text-opacity));
}

.focus\:text-purple-700:focus {
  --tw-text-opacity: 1;
  color: rgba(109, 40, 217, var(--tw-text-opacity));
}

.focus\:text-purple-800:focus {
  --tw-text-opacity: 1;
  color: rgba(91, 33, 182, var(--tw-text-opacity));
}

.focus\:text-purple-900:focus {
  --tw-text-opacity: 1;
  color: rgba(76, 29, 149, var(--tw-text-opacity));
}

.focus\:text-pink-50:focus {
  --tw-text-opacity: 1;
  color: rgba(253, 242, 248, var(--tw-text-opacity));
}

.focus\:text-pink-100:focus {
  --tw-text-opacity: 1;
  color: rgba(252, 231, 243, var(--tw-text-opacity));
}

.focus\:text-pink-200:focus {
  --tw-text-opacity: 1;
  color: rgba(251, 207, 232, var(--tw-text-opacity));
}

.focus\:text-pink-300:focus {
  --tw-text-opacity: 1;
  color: rgba(249, 168, 212, var(--tw-text-opacity));
}

.focus\:text-pink-400:focus {
  --tw-text-opacity: 1;
  color: rgba(244, 114, 182, var(--tw-text-opacity));
}

.focus\:text-pink-500:focus {
  --tw-text-opacity: 1;
  color: rgba(236, 72, 153, var(--tw-text-opacity));
}

.focus\:text-pink-600:focus {
  --tw-text-opacity: 1;
  color: rgba(219, 39, 119, var(--tw-text-opacity));
}

.focus\:text-pink-700:focus {
  --tw-text-opacity: 1;
  color: rgba(190, 24, 93, var(--tw-text-opacity));
}

.focus\:text-pink-800:focus {
  --tw-text-opacity: 1;
  color: rgba(157, 23, 77, var(--tw-text-opacity));
}

.focus\:text-pink-900:focus {
  --tw-text-opacity: 1;
  color: rgba(131, 24, 67, var(--tw-text-opacity));
}

.dark .dark\:text-gray-200 {
  --tw-text-opacity: 1;
  color: rgba(229, 231, 235, var(--tw-text-opacity));
}

.dark .dark\:text-gray-300 {
  --tw-text-opacity: 1;
  color: rgba(209, 213, 219, var(--tw-text-opacity));
}

.dark .dark\:text-red-300 {
  --tw-text-opacity: 1;
  color: rgba(252, 165, 165, var(--tw-text-opacity));
}

.dark .dark\:text-red-400 {
  --tw-text-opacity: 1;
  color: rgba(248, 113, 113, var(--tw-text-opacity));
}

.dark .dark\:text-green-300 {
  --tw-text-opacity: 1;
  color: rgba(110, 231, 183, var(--tw-text-opacity));
}

.dark .dark\:text-green-400 {
  --tw-text-opacity: 1;
  color: rgba(52, 211, 153, var(--tw-text-opacity));
}

.dark .dark\:text-blue-200 {
  --tw-text-opacity: 1;
  color: rgba(191, 219, 254, var(--tw-text-opacity));
}

.dark .dark\:text-blue-300 {
  --tw-text-opacity: 1;
  color: rgba(147, 197, 253, var(--tw-text-opacity));
}

.dark .dark\:text-blue-400 {
  --tw-text-opacity: 1;
  color: rgba(96, 165, 250, var(--tw-text-opacity));
}

.dark .dark\:text-purple-300 {
  --tw-text-opacity: 1;
  color: rgba(196, 181, 253, var(--tw-text-opacity));
}

.dark .dark\:text-purple-400 {
  --tw-text-opacity: 1;
  color: rgba(167, 139, 250, var(--tw-text-opacity));
}

.dark .dark\:hover\:text-blue-400:hover {
  --tw-text-opacity: 1;
  color: rgba(96, 165, 250, var(--tw-text-opacity));
}

.hover\:text-opacity-0:hover {
  --tw-text-opacity: 0;
}

.hover\:text-opacity-5:hover {
  --tw-text-opacity: 0.05;
}

.hover\:text-opacity-10:hover {
  --tw-text-opacity: 0.1;
}

.hover\:text-opacity-20:hover {
  --tw-text-opacity: 0.2;
}

.hover\:text-opacity-25:hover {
  --tw-text-opacity: 0.25;
}

.hover\:text-opacity-30:hover {
  --tw-text-opacity: 0.3;
}

.hover\:text-opacity-40:hover {
  --tw-text-opacity: 0.4;
}

.hover\:text-opacity-50:hover {
  --tw-text-opacity: 0.5;
}

.hover\:text-opacity-60:hover {
  --tw-text-opacity: 0.6;
}

.hover\:text-opacity-70:hover {
  --tw-text-opacity: 0.7;
}

.hover\:text-opacity-75:hover {
  --tw-text-opacity: 0.75;
}

.hover\:text-opacity-80:hover {
  --tw-text-opacity: 0.8;
}

.hover\:text-opacity-90:hover {
  --tw-text-opacity: 0.9;
}

.hover\:text-opacity-95:hover {
  --tw-text-opacity: 0.95;
}

.hover\:text-opacity-100:hover {
  --tw-text-opacity: 1;
}

.focus\:text-opacity-0:focus {
  --tw-text-opacity: 0;
}

.focus\:text-opacity-5:focus {
  --tw-text-opacity: 0.05;
}

.focus\:text-opacity-10:focus {
  --tw-text-opacity: 0.1;
}

.focus\:text-opacity-20:focus {
  --tw-text-opacity: 0.2;
}

.focus\:text-opacity-25:focus {
  --tw-text-opacity: 0.25;
}

.focus\:text-opacity-30:focus {
  --tw-text-opacity: 0.3;
}

.focus\:text-opacity-40:focus {
  --tw-text-opacity: 0.4;
}

.focus\:text-opacity-50:focus {
  --tw-text-opacity: 0.5;
}

.focus\:text-opacity-60:focus {
  --tw-text-opacity: 0.6;
}

.focus\:text-opacity-70:focus {
  --tw-text-opacity: 0.7;
}

.focus\:text-opacity-75:focus {
  --tw-text-opacity: 0.75;
}

.focus\:text-opacity-80:focus {
  --tw-text-opacity: 0.8;
}

.focus\:text-opacity-90:focus {
  --tw-text-opacity: 0.9;
}

.focus\:text-opacity-95:focus {
  --tw-text-opacity: 0.95;
}

.focus\:text-opacity-100:focus {
  --tw-text-opacity: 1;
}

.underline {
  text-decoration: underline;
}

.line-through {
  text-decoration: line-through;
}

.hover\:underline:hover {
  text-decoration: underline;
}

.hover\:line-through:hover {
  text-decoration: line-through;
}

.hover\:no-underline:hover {
  text-decoration: none;
}

.focus\:underline:focus {
  text-decoration: underline;
}

.focus\:line-through:focus {
  text-decoration: line-through;
}

.focus\:no-underline:focus {
  text-decoration: none;
}

.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.placeholder-gray-400::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(156, 163, 175, var(--tw-placeholder-opacity));
}

.placeholder-gray-400::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(156, 163, 175, var(--tw-placeholder-opacity));
}

.placeholder-gray-500::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(107, 114, 128, var(--tw-placeholder-opacity));
}

.placeholder-gray-500::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(107, 114, 128, var(--tw-placeholder-opacity));
}

.focus\:placeholder-transparent:focus::-moz-placeholder {
  color: transparent;
}

.focus\:placeholder-transparent:focus::placeholder {
  color: transparent;
}

.focus\:placeholder-current:focus::-moz-placeholder {
  color: currentColor;
}

.focus\:placeholder-current:focus::placeholder {
  color: currentColor;
}

.focus\:placeholder-black:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(0, 0, 0, var(--tw-placeholder-opacity));
}

.focus\:placeholder-black:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(0, 0, 0, var(--tw-placeholder-opacity));
}

.focus\:placeholder-white:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(255, 255, 255, var(--tw-placeholder-opacity));
}

.focus\:placeholder-white:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(255, 255, 255, var(--tw-placeholder-opacity));
}

.focus\:placeholder-gray-50:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(249, 250, 251, var(--tw-placeholder-opacity));
}

.focus\:placeholder-gray-50:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(249, 250, 251, var(--tw-placeholder-opacity));
}

.focus\:placeholder-gray-100:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(243, 244, 246, var(--tw-placeholder-opacity));
}

.focus\:placeholder-gray-100:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(243, 244, 246, var(--tw-placeholder-opacity));
}

.focus\:placeholder-gray-200:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(229, 231, 235, var(--tw-placeholder-opacity));
}

.focus\:placeholder-gray-200:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(229, 231, 235, var(--tw-placeholder-opacity));
}

.focus\:placeholder-gray-300:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(209, 213, 219, var(--tw-placeholder-opacity));
}

.focus\:placeholder-gray-300:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(209, 213, 219, var(--tw-placeholder-opacity));
}

.focus\:placeholder-gray-400:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(156, 163, 175, var(--tw-placeholder-opacity));
}

.focus\:placeholder-gray-400:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(156, 163, 175, var(--tw-placeholder-opacity));
}

.focus\:placeholder-gray-500:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(107, 114, 128, var(--tw-placeholder-opacity));
}

.focus\:placeholder-gray-500:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(107, 114, 128, var(--tw-placeholder-opacity));
}

.focus\:placeholder-gray-600:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(75, 85, 99, var(--tw-placeholder-opacity));
}

.focus\:placeholder-gray-600:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(75, 85, 99, var(--tw-placeholder-opacity));
}

.focus\:placeholder-gray-700:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(55, 65, 81, var(--tw-placeholder-opacity));
}

.focus\:placeholder-gray-700:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(55, 65, 81, var(--tw-placeholder-opacity));
}

.focus\:placeholder-gray-800:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(31, 41, 55, var(--tw-placeholder-opacity));
}

.focus\:placeholder-gray-800:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(31, 41, 55, var(--tw-placeholder-opacity));
}

.focus\:placeholder-gray-900:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(17, 24, 39, var(--tw-placeholder-opacity));
}

.focus\:placeholder-gray-900:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(17, 24, 39, var(--tw-placeholder-opacity));
}

.focus\:placeholder-red-50:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(254, 242, 242, var(--tw-placeholder-opacity));
}

.focus\:placeholder-red-50:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(254, 242, 242, var(--tw-placeholder-opacity));
}

.focus\:placeholder-red-100:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(254, 226, 226, var(--tw-placeholder-opacity));
}

.focus\:placeholder-red-100:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(254, 226, 226, var(--tw-placeholder-opacity));
}

.focus\:placeholder-red-200:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(254, 202, 202, var(--tw-placeholder-opacity));
}

.focus\:placeholder-red-200:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(254, 202, 202, var(--tw-placeholder-opacity));
}

.focus\:placeholder-red-300:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(252, 165, 165, var(--tw-placeholder-opacity));
}

.focus\:placeholder-red-300:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(252, 165, 165, var(--tw-placeholder-opacity));
}

.focus\:placeholder-red-400:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(248, 113, 113, var(--tw-placeholder-opacity));
}

.focus\:placeholder-red-400:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(248, 113, 113, var(--tw-placeholder-opacity));
}

.focus\:placeholder-red-500:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(239, 68, 68, var(--tw-placeholder-opacity));
}

.focus\:placeholder-red-500:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(239, 68, 68, var(--tw-placeholder-opacity));
}

.focus\:placeholder-red-600:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(220, 38, 38, var(--tw-placeholder-opacity));
}

.focus\:placeholder-red-600:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(220, 38, 38, var(--tw-placeholder-opacity));
}

.focus\:placeholder-red-700:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(185, 28, 28, var(--tw-placeholder-opacity));
}

.focus\:placeholder-red-700:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(185, 28, 28, var(--tw-placeholder-opacity));
}

.focus\:placeholder-red-800:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(153, 27, 27, var(--tw-placeholder-opacity));
}

.focus\:placeholder-red-800:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(153, 27, 27, var(--tw-placeholder-opacity));
}

.focus\:placeholder-red-900:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(127, 29, 29, var(--tw-placeholder-opacity));
}

.focus\:placeholder-red-900:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(127, 29, 29, var(--tw-placeholder-opacity));
}

.focus\:placeholder-yellow-50:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(255, 251, 235, var(--tw-placeholder-opacity));
}

.focus\:placeholder-yellow-50:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(255, 251, 235, var(--tw-placeholder-opacity));
}

.focus\:placeholder-yellow-100:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(254, 243, 199, var(--tw-placeholder-opacity));
}

.focus\:placeholder-yellow-100:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(254, 243, 199, var(--tw-placeholder-opacity));
}

.focus\:placeholder-yellow-200:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(253, 230, 138, var(--tw-placeholder-opacity));
}

.focus\:placeholder-yellow-200:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(253, 230, 138, var(--tw-placeholder-opacity));
}

.focus\:placeholder-yellow-300:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(252, 211, 77, var(--tw-placeholder-opacity));
}

.focus\:placeholder-yellow-300:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(252, 211, 77, var(--tw-placeholder-opacity));
}

.focus\:placeholder-yellow-400:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(251, 191, 36, var(--tw-placeholder-opacity));
}

.focus\:placeholder-yellow-400:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(251, 191, 36, var(--tw-placeholder-opacity));
}

.focus\:placeholder-yellow-500:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(245, 158, 11, var(--tw-placeholder-opacity));
}

.focus\:placeholder-yellow-500:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(245, 158, 11, var(--tw-placeholder-opacity));
}

.focus\:placeholder-yellow-600:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(217, 119, 6, var(--tw-placeholder-opacity));
}

.focus\:placeholder-yellow-600:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(217, 119, 6, var(--tw-placeholder-opacity));
}

.focus\:placeholder-yellow-700:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(180, 83, 9, var(--tw-placeholder-opacity));
}

.focus\:placeholder-yellow-700:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(180, 83, 9, var(--tw-placeholder-opacity));
}

.focus\:placeholder-yellow-800:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(146, 64, 14, var(--tw-placeholder-opacity));
}

.focus\:placeholder-yellow-800:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(146, 64, 14, var(--tw-placeholder-opacity));
}

.focus\:placeholder-yellow-900:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(120, 53, 15, var(--tw-placeholder-opacity));
}

.focus\:placeholder-yellow-900:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(120, 53, 15, var(--tw-placeholder-opacity));
}

.focus\:placeholder-green-50:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(236, 253, 245, var(--tw-placeholder-opacity));
}

.focus\:placeholder-green-50:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(236, 253, 245, var(--tw-placeholder-opacity));
}

.focus\:placeholder-green-100:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(209, 250, 229, var(--tw-placeholder-opacity));
}

.focus\:placeholder-green-100:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(209, 250, 229, var(--tw-placeholder-opacity));
}

.focus\:placeholder-green-200:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(167, 243, 208, var(--tw-placeholder-opacity));
}

.focus\:placeholder-green-200:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(167, 243, 208, var(--tw-placeholder-opacity));
}

.focus\:placeholder-green-300:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(110, 231, 183, var(--tw-placeholder-opacity));
}

.focus\:placeholder-green-300:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(110, 231, 183, var(--tw-placeholder-opacity));
}

.focus\:placeholder-green-400:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(52, 211, 153, var(--tw-placeholder-opacity));
}

.focus\:placeholder-green-400:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(52, 211, 153, var(--tw-placeholder-opacity));
}

.focus\:placeholder-green-500:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(16, 185, 129, var(--tw-placeholder-opacity));
}

.focus\:placeholder-green-500:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(16, 185, 129, var(--tw-placeholder-opacity));
}

.focus\:placeholder-green-600:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(5, 150, 105, var(--tw-placeholder-opacity));
}

.focus\:placeholder-green-600:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(5, 150, 105, var(--tw-placeholder-opacity));
}

.focus\:placeholder-green-700:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(4, 120, 87, var(--tw-placeholder-opacity));
}

.focus\:placeholder-green-700:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(4, 120, 87, var(--tw-placeholder-opacity));
}

.focus\:placeholder-green-800:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(6, 95, 70, var(--tw-placeholder-opacity));
}

.focus\:placeholder-green-800:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(6, 95, 70, var(--tw-placeholder-opacity));
}

.focus\:placeholder-green-900:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(6, 78, 59, var(--tw-placeholder-opacity));
}

.focus\:placeholder-green-900:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(6, 78, 59, var(--tw-placeholder-opacity));
}

.focus\:placeholder-blue-50:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(239, 246, 255, var(--tw-placeholder-opacity));
}

.focus\:placeholder-blue-50:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(239, 246, 255, var(--tw-placeholder-opacity));
}

.focus\:placeholder-blue-100:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(219, 234, 254, var(--tw-placeholder-opacity));
}

.focus\:placeholder-blue-100:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(219, 234, 254, var(--tw-placeholder-opacity));
}

.focus\:placeholder-blue-200:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(191, 219, 254, var(--tw-placeholder-opacity));
}

.focus\:placeholder-blue-200:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(191, 219, 254, var(--tw-placeholder-opacity));
}

.focus\:placeholder-blue-300:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(147, 197, 253, var(--tw-placeholder-opacity));
}

.focus\:placeholder-blue-300:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(147, 197, 253, var(--tw-placeholder-opacity));
}

.focus\:placeholder-blue-400:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(96, 165, 250, var(--tw-placeholder-opacity));
}

.focus\:placeholder-blue-400:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(96, 165, 250, var(--tw-placeholder-opacity));
}

.focus\:placeholder-blue-500:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(59, 130, 246, var(--tw-placeholder-opacity));
}

.focus\:placeholder-blue-500:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(59, 130, 246, var(--tw-placeholder-opacity));
}

.focus\:placeholder-blue-600:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(37, 99, 235, var(--tw-placeholder-opacity));
}

.focus\:placeholder-blue-600:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(37, 99, 235, var(--tw-placeholder-opacity));
}

.focus\:placeholder-blue-700:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(29, 78, 216, var(--tw-placeholder-opacity));
}

.focus\:placeholder-blue-700:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(29, 78, 216, var(--tw-placeholder-opacity));
}

.focus\:placeholder-blue-800:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(30, 64, 175, var(--tw-placeholder-opacity));
}

.focus\:placeholder-blue-800:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(30, 64, 175, var(--tw-placeholder-opacity));
}

.focus\:placeholder-blue-900:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(30, 58, 138, var(--tw-placeholder-opacity));
}

.focus\:placeholder-blue-900:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(30, 58, 138, var(--tw-placeholder-opacity));
}

.focus\:placeholder-indigo-50:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(238, 242, 255, var(--tw-placeholder-opacity));
}

.focus\:placeholder-indigo-50:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(238, 242, 255, var(--tw-placeholder-opacity));
}

.focus\:placeholder-indigo-100:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(224, 231, 255, var(--tw-placeholder-opacity));
}

.focus\:placeholder-indigo-100:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(224, 231, 255, var(--tw-placeholder-opacity));
}

.focus\:placeholder-indigo-200:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(199, 210, 254, var(--tw-placeholder-opacity));
}

.focus\:placeholder-indigo-200:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(199, 210, 254, var(--tw-placeholder-opacity));
}

.focus\:placeholder-indigo-300:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(165, 180, 252, var(--tw-placeholder-opacity));
}

.focus\:placeholder-indigo-300:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(165, 180, 252, var(--tw-placeholder-opacity));
}

.focus\:placeholder-indigo-400:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(129, 140, 248, var(--tw-placeholder-opacity));
}

.focus\:placeholder-indigo-400:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(129, 140, 248, var(--tw-placeholder-opacity));
}

.focus\:placeholder-indigo-500:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(99, 102, 241, var(--tw-placeholder-opacity));
}

.focus\:placeholder-indigo-500:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(99, 102, 241, var(--tw-placeholder-opacity));
}

.focus\:placeholder-indigo-600:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(79, 70, 229, var(--tw-placeholder-opacity));
}

.focus\:placeholder-indigo-600:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(79, 70, 229, var(--tw-placeholder-opacity));
}

.focus\:placeholder-indigo-700:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(67, 56, 202, var(--tw-placeholder-opacity));
}

.focus\:placeholder-indigo-700:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(67, 56, 202, var(--tw-placeholder-opacity));
}

.focus\:placeholder-indigo-800:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(55, 48, 163, var(--tw-placeholder-opacity));
}

.focus\:placeholder-indigo-800:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(55, 48, 163, var(--tw-placeholder-opacity));
}

.focus\:placeholder-indigo-900:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(49, 46, 129, var(--tw-placeholder-opacity));
}

.focus\:placeholder-indigo-900:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(49, 46, 129, var(--tw-placeholder-opacity));
}

.focus\:placeholder-purple-50:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(245, 243, 255, var(--tw-placeholder-opacity));
}

.focus\:placeholder-purple-50:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(245, 243, 255, var(--tw-placeholder-opacity));
}

.focus\:placeholder-purple-100:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(237, 233, 254, var(--tw-placeholder-opacity));
}

.focus\:placeholder-purple-100:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(237, 233, 254, var(--tw-placeholder-opacity));
}

.focus\:placeholder-purple-200:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(221, 214, 254, var(--tw-placeholder-opacity));
}

.focus\:placeholder-purple-200:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(221, 214, 254, var(--tw-placeholder-opacity));
}

.focus\:placeholder-purple-300:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(196, 181, 253, var(--tw-placeholder-opacity));
}

.focus\:placeholder-purple-300:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(196, 181, 253, var(--tw-placeholder-opacity));
}

.focus\:placeholder-purple-400:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(167, 139, 250, var(--tw-placeholder-opacity));
}

.focus\:placeholder-purple-400:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(167, 139, 250, var(--tw-placeholder-opacity));
}

.focus\:placeholder-purple-500:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(139, 92, 246, var(--tw-placeholder-opacity));
}

.focus\:placeholder-purple-500:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(139, 92, 246, var(--tw-placeholder-opacity));
}

.focus\:placeholder-purple-600:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(124, 58, 237, var(--tw-placeholder-opacity));
}

.focus\:placeholder-purple-600:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(124, 58, 237, var(--tw-placeholder-opacity));
}

.focus\:placeholder-purple-700:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(109, 40, 217, var(--tw-placeholder-opacity));
}

.focus\:placeholder-purple-700:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(109, 40, 217, var(--tw-placeholder-opacity));
}

.focus\:placeholder-purple-800:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(91, 33, 182, var(--tw-placeholder-opacity));
}

.focus\:placeholder-purple-800:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(91, 33, 182, var(--tw-placeholder-opacity));
}

.focus\:placeholder-purple-900:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(76, 29, 149, var(--tw-placeholder-opacity));
}

.focus\:placeholder-purple-900:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(76, 29, 149, var(--tw-placeholder-opacity));
}

.focus\:placeholder-pink-50:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(253, 242, 248, var(--tw-placeholder-opacity));
}

.focus\:placeholder-pink-50:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(253, 242, 248, var(--tw-placeholder-opacity));
}

.focus\:placeholder-pink-100:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(252, 231, 243, var(--tw-placeholder-opacity));
}

.focus\:placeholder-pink-100:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(252, 231, 243, var(--tw-placeholder-opacity));
}

.focus\:placeholder-pink-200:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(251, 207, 232, var(--tw-placeholder-opacity));
}

.focus\:placeholder-pink-200:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(251, 207, 232, var(--tw-placeholder-opacity));
}

.focus\:placeholder-pink-300:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(249, 168, 212, var(--tw-placeholder-opacity));
}

.focus\:placeholder-pink-300:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(249, 168, 212, var(--tw-placeholder-opacity));
}

.focus\:placeholder-pink-400:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(244, 114, 182, var(--tw-placeholder-opacity));
}

.focus\:placeholder-pink-400:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(244, 114, 182, var(--tw-placeholder-opacity));
}

.focus\:placeholder-pink-500:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(236, 72, 153, var(--tw-placeholder-opacity));
}

.focus\:placeholder-pink-500:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(236, 72, 153, var(--tw-placeholder-opacity));
}

.focus\:placeholder-pink-600:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(219, 39, 119, var(--tw-placeholder-opacity));
}

.focus\:placeholder-pink-600:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(219, 39, 119, var(--tw-placeholder-opacity));
}

.focus\:placeholder-pink-700:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(190, 24, 93, var(--tw-placeholder-opacity));
}

.focus\:placeholder-pink-700:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(190, 24, 93, var(--tw-placeholder-opacity));
}

.focus\:placeholder-pink-800:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(157, 23, 77, var(--tw-placeholder-opacity));
}

.focus\:placeholder-pink-800:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(157, 23, 77, var(--tw-placeholder-opacity));
}

.focus\:placeholder-pink-900:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(131, 24, 67, var(--tw-placeholder-opacity));
}

.focus\:placeholder-pink-900:focus::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgba(131, 24, 67, var(--tw-placeholder-opacity));
}

.focus\:placeholder-opacity-0:focus::-moz-placeholder {
  --tw-placeholder-opacity: 0;
}

.focus\:placeholder-opacity-0:focus::placeholder {
  --tw-placeholder-opacity: 0;
}

.focus\:placeholder-opacity-5:focus::-moz-placeholder {
  --tw-placeholder-opacity: 0.05;
}

.focus\:placeholder-opacity-5:focus::placeholder {
  --tw-placeholder-opacity: 0.05;
}

.focus\:placeholder-opacity-10:focus::-moz-placeholder {
  --tw-placeholder-opacity: 0.1;
}

.focus\:placeholder-opacity-10:focus::placeholder {
  --tw-placeholder-opacity: 0.1;
}

.focus\:placeholder-opacity-20:focus::-moz-placeholder {
  --tw-placeholder-opacity: 0.2;
}

.focus\:placeholder-opacity-20:focus::placeholder {
  --tw-placeholder-opacity: 0.2;
}

.focus\:placeholder-opacity-25:focus::-moz-placeholder {
  --tw-placeholder-opacity: 0.25;
}

.focus\:placeholder-opacity-25:focus::placeholder {
  --tw-placeholder-opacity: 0.25;
}

.focus\:placeholder-opacity-30:focus::-moz-placeholder {
  --tw-placeholder-opacity: 0.3;
}

.focus\:placeholder-opacity-30:focus::placeholder {
  --tw-placeholder-opacity: 0.3;
}

.focus\:placeholder-opacity-40:focus::-moz-placeholder {
  --tw-placeholder-opacity: 0.4;
}

.focus\:placeholder-opacity-40:focus::placeholder {
  --tw-placeholder-opacity: 0.4;
}

.focus\:placeholder-opacity-50:focus::-moz-placeholder {
  --tw-placeholder-opacity: 0.5;
}

.focus\:placeholder-opacity-50:focus::placeholder {
  --tw-placeholder-opacity: 0.5;
}

.focus\:placeholder-opacity-60:focus::-moz-placeholder {
  --tw-placeholder-opacity: 0.6;
}

.focus\:placeholder-opacity-60:focus::placeholder {
  --tw-placeholder-opacity: 0.6;
}

.focus\:placeholder-opacity-70:focus::-moz-placeholder {
  --tw-placeholder-opacity: 0.7;
}

.focus\:placeholder-opacity-70:focus::placeholder {
  --tw-placeholder-opacity: 0.7;
}

.focus\:placeholder-opacity-75:focus::-moz-placeholder {
  --tw-placeholder-opacity: 0.75;
}

.focus\:placeholder-opacity-75:focus::placeholder {
  --tw-placeholder-opacity: 0.75;
}

.focus\:placeholder-opacity-80:focus::-moz-placeholder {
  --tw-placeholder-opacity: 0.8;
}

.focus\:placeholder-opacity-80:focus::placeholder {
  --tw-placeholder-opacity: 0.8;
}

.focus\:placeholder-opacity-90:focus::-moz-placeholder {
  --tw-placeholder-opacity: 0.9;
}

.focus\:placeholder-opacity-90:focus::placeholder {
  --tw-placeholder-opacity: 0.9;
}

.focus\:placeholder-opacity-95:focus::-moz-placeholder {
  --tw-placeholder-opacity: 0.95;
}

.focus\:placeholder-opacity-95:focus::placeholder {
  --tw-placeholder-opacity: 0.95;
}

.focus\:placeholder-opacity-100:focus::-moz-placeholder {
  --tw-placeholder-opacity: 1;
}

.focus\:placeholder-opacity-100:focus::placeholder {
  --tw-placeholder-opacity: 1;
}

.opacity-0 {
  opacity: 0;
}

.opacity-5 {
  opacity: 0.05;
}

.opacity-10 {
  opacity: 0.1;
}

.opacity-20 {
  opacity: 0.2;
}

.opacity-25 {
  opacity: 0.25;
}

.opacity-30 {
  opacity: 0.3;
}

.opacity-40 {
  opacity: 0.4;
}

.opacity-50 {
  opacity: 0.5;
}

.opacity-60 {
  opacity: 0.6;
}

.opacity-70 {
  opacity: 0.7;
}

.opacity-75 {
  opacity: 0.75;
}

.opacity-80 {
  opacity: 0.8;
}

.opacity-90 {
  opacity: 0.9;
}

.opacity-95 {
  opacity: 0.95;
}

.opacity-100 {
  opacity: 1;
}

.group:hover .group-hover\:opacity-20 {
  opacity: 0.2;
}

.group:hover .group-hover\:opacity-30 {
  opacity: 0.3;
}

.group:hover .group-hover\:opacity-50 {
  opacity: 0.5;
}

.group:hover .group-hover\:opacity-100 {
  opacity: 1;
}

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

.hover\:opacity-5:hover {
  opacity: 0.05;
}

.hover\:opacity-10:hover {
  opacity: 0.1;
}

.hover\:opacity-20:hover {
  opacity: 0.2;
}

.hover\:opacity-25:hover {
  opacity: 0.25;
}

.hover\:opacity-30:hover {
  opacity: 0.3;
}

.hover\:opacity-40:hover {
  opacity: 0.4;
}

.hover\:opacity-50:hover {
  opacity: 0.5;
}

.hover\:opacity-60:hover {
  opacity: 0.6;
}

.hover\:opacity-70:hover {
  opacity: 0.7;
}

.hover\:opacity-75:hover {
  opacity: 0.75;
}

.hover\:opacity-80:hover {
  opacity: 0.8;
}

.hover\:opacity-90:hover {
  opacity: 0.9;
}

.hover\:opacity-95:hover {
  opacity: 0.95;
}

.hover\:opacity-100:hover {
  opacity: 1;
}

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

.focus\:opacity-5:focus {
  opacity: 0.05;
}

.focus\:opacity-10:focus {
  opacity: 0.1;
}

.focus\:opacity-20:focus {
  opacity: 0.2;
}

.focus\:opacity-25:focus {
  opacity: 0.25;
}

.focus\:opacity-30:focus {
  opacity: 0.3;
}

.focus\:opacity-40:focus {
  opacity: 0.4;
}

.focus\:opacity-50:focus {
  opacity: 0.5;
}

.focus\:opacity-60:focus {
  opacity: 0.6;
}

.focus\:opacity-70:focus {
  opacity: 0.7;
}

.focus\:opacity-75:focus {
  opacity: 0.75;
}

.focus\:opacity-80:focus {
  opacity: 0.8;
}

.focus\:opacity-90:focus {
  opacity: 0.9;
}

.focus\:opacity-95:focus {
  opacity: 0.95;
}

.focus\:opacity-100:focus {
  opacity: 1;
}

.mix-blend-multiply {
  mix-blend-mode: multiply;
}

*, ::before, ::after {
  --tw-shadow: 0 0 #0000;
}

.shadow-sm {
  --tw-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow {
  --tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-md {
  --tw-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-lg {
  --tw-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-xl {
  --tw-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-2xl {
  --tw-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-inner {
  --tw-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-none {
  --tw-shadow: 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.group:hover .group-hover\:shadow-lg {
  --tw-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:shadow-sm:hover {
  --tw-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:shadow:hover {
  --tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:shadow-md:hover {
  --tw-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:shadow-lg:hover {
  --tw-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:shadow-xl:hover {
  --tw-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:shadow-2xl:hover {
  --tw-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:shadow-inner:hover {
  --tw-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:shadow-none:hover {
  --tw-shadow: 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.focus\:shadow-sm:focus {
  --tw-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.focus\:shadow:focus {
  --tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.focus\:shadow-md:focus {
  --tw-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.focus\:shadow-lg:focus {
  --tw-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.focus\:shadow-xl:focus {
  --tw-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.focus\:shadow-2xl:focus {
  --tw-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.focus\:shadow-inner:focus {
  --tw-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.focus\:shadow-none:focus {
  --tw-shadow: 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.outline-none {
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.focus\:outline-none:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.focus\:outline-white:focus {
  outline: 2px dotted white;
  outline-offset: 2px;
}

.focus\:outline-black:focus {
  outline: 2px dotted black;
  outline-offset: 2px;
}

*, ::before, ::after {
  --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgba(59, 130, 246, 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
}

.ring-1 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.ring-2 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.ring-4 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.ring {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus\:ring-0:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus\:ring-1:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus\:ring-2:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus\:ring-4:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus\:ring-8:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus\:ring:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus\:ring-inset:focus {
  --tw-ring-inset: inset;
}

.ring-black {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(0, 0, 0, var(--tw-ring-opacity));
}

.ring-yellow-300 {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(252, 211, 77, var(--tw-ring-opacity));
}

.ring-blue-500 {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(59, 130, 246, var(--tw-ring-opacity));
}

.ring-purple-400 {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(167, 139, 250, var(--tw-ring-opacity));
}

.ring-purple-500 {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(139, 92, 246, var(--tw-ring-opacity));
}

.focus\:ring-transparent:focus {
  --tw-ring-color: transparent;
}

.focus\:ring-current:focus {
  --tw-ring-color: currentColor;
}

.focus\:ring-black:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(0, 0, 0, var(--tw-ring-opacity));
}

.focus\:ring-white:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(255, 255, 255, var(--tw-ring-opacity));
}

.focus\:ring-gray-50:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(249, 250, 251, var(--tw-ring-opacity));
}

.focus\:ring-gray-100:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(243, 244, 246, var(--tw-ring-opacity));
}

.focus\:ring-gray-200:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(229, 231, 235, var(--tw-ring-opacity));
}

.focus\:ring-gray-300:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(209, 213, 219, var(--tw-ring-opacity));
}

.focus\:ring-gray-400:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(156, 163, 175, var(--tw-ring-opacity));
}

.focus\:ring-gray-500:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(107, 114, 128, var(--tw-ring-opacity));
}

.focus\:ring-gray-600:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(75, 85, 99, var(--tw-ring-opacity));
}

.focus\:ring-gray-700:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(55, 65, 81, var(--tw-ring-opacity));
}

.focus\:ring-gray-800:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(31, 41, 55, var(--tw-ring-opacity));
}

.focus\:ring-gray-900:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(17, 24, 39, var(--tw-ring-opacity));
}

.focus\:ring-red-50:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(254, 242, 242, var(--tw-ring-opacity));
}

.focus\:ring-red-100:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(254, 226, 226, var(--tw-ring-opacity));
}

.focus\:ring-red-200:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(254, 202, 202, var(--tw-ring-opacity));
}

.focus\:ring-red-300:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(252, 165, 165, var(--tw-ring-opacity));
}

.focus\:ring-red-400:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(248, 113, 113, var(--tw-ring-opacity));
}

.focus\:ring-red-500:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(239, 68, 68, var(--tw-ring-opacity));
}

.focus\:ring-red-600:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(220, 38, 38, var(--tw-ring-opacity));
}

.focus\:ring-red-700:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(185, 28, 28, var(--tw-ring-opacity));
}

.focus\:ring-red-800:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(153, 27, 27, var(--tw-ring-opacity));
}

.focus\:ring-red-900:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(127, 29, 29, var(--tw-ring-opacity));
}

.focus\:ring-yellow-50:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(255, 251, 235, var(--tw-ring-opacity));
}

.focus\:ring-yellow-100:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(254, 243, 199, var(--tw-ring-opacity));
}

.focus\:ring-yellow-200:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(253, 230, 138, var(--tw-ring-opacity));
}

.focus\:ring-yellow-300:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(252, 211, 77, var(--tw-ring-opacity));
}

.focus\:ring-yellow-400:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(251, 191, 36, var(--tw-ring-opacity));
}

.focus\:ring-yellow-500:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(245, 158, 11, var(--tw-ring-opacity));
}

.focus\:ring-yellow-600:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(217, 119, 6, var(--tw-ring-opacity));
}

.focus\:ring-yellow-700:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(180, 83, 9, var(--tw-ring-opacity));
}

.focus\:ring-yellow-800:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(146, 64, 14, var(--tw-ring-opacity));
}

.focus\:ring-yellow-900:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(120, 53, 15, var(--tw-ring-opacity));
}

.focus\:ring-green-50:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(236, 253, 245, var(--tw-ring-opacity));
}

.focus\:ring-green-100:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(209, 250, 229, var(--tw-ring-opacity));
}

.focus\:ring-green-200:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(167, 243, 208, var(--tw-ring-opacity));
}

.focus\:ring-green-300:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(110, 231, 183, var(--tw-ring-opacity));
}

.focus\:ring-green-400:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(52, 211, 153, var(--tw-ring-opacity));
}

.focus\:ring-green-500:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(16, 185, 129, var(--tw-ring-opacity));
}

.focus\:ring-green-600:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(5, 150, 105, var(--tw-ring-opacity));
}

.focus\:ring-green-700:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(4, 120, 87, var(--tw-ring-opacity));
}

.focus\:ring-green-800:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(6, 95, 70, var(--tw-ring-opacity));
}

.focus\:ring-green-900:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(6, 78, 59, var(--tw-ring-opacity));
}

.focus\:ring-blue-50:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(239, 246, 255, var(--tw-ring-opacity));
}

.focus\:ring-blue-100:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(219, 234, 254, var(--tw-ring-opacity));
}

.focus\:ring-blue-200:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(191, 219, 254, var(--tw-ring-opacity));
}

.focus\:ring-blue-300:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(147, 197, 253, var(--tw-ring-opacity));
}

.focus\:ring-blue-400:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(96, 165, 250, var(--tw-ring-opacity));
}

.focus\:ring-blue-500:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(59, 130, 246, var(--tw-ring-opacity));
}

.focus\:ring-blue-600:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(37, 99, 235, var(--tw-ring-opacity));
}

.focus\:ring-blue-700:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(29, 78, 216, var(--tw-ring-opacity));
}

.focus\:ring-blue-800:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(30, 64, 175, var(--tw-ring-opacity));
}

.focus\:ring-blue-900:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(30, 58, 138, var(--tw-ring-opacity));
}

.focus\:ring-indigo-50:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(238, 242, 255, var(--tw-ring-opacity));
}

.focus\:ring-indigo-100:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(224, 231, 255, var(--tw-ring-opacity));
}

.focus\:ring-indigo-200:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(199, 210, 254, var(--tw-ring-opacity));
}

.focus\:ring-indigo-300:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(165, 180, 252, var(--tw-ring-opacity));
}

.focus\:ring-indigo-400:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(129, 140, 248, var(--tw-ring-opacity));
}

.focus\:ring-indigo-500:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(99, 102, 241, var(--tw-ring-opacity));
}

.focus\:ring-indigo-600:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(79, 70, 229, var(--tw-ring-opacity));
}

.focus\:ring-indigo-700:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(67, 56, 202, var(--tw-ring-opacity));
}

.focus\:ring-indigo-800:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(55, 48, 163, var(--tw-ring-opacity));
}

.focus\:ring-indigo-900:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(49, 46, 129, var(--tw-ring-opacity));
}

.focus\:ring-purple-50:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(245, 243, 255, var(--tw-ring-opacity));
}

.focus\:ring-purple-100:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(237, 233, 254, var(--tw-ring-opacity));
}

.focus\:ring-purple-200:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(221, 214, 254, var(--tw-ring-opacity));
}

.focus\:ring-purple-300:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(196, 181, 253, var(--tw-ring-opacity));
}

.focus\:ring-purple-400:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(167, 139, 250, var(--tw-ring-opacity));
}

.focus\:ring-purple-500:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(139, 92, 246, var(--tw-ring-opacity));
}

.focus\:ring-purple-600:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(124, 58, 237, var(--tw-ring-opacity));
}

.focus\:ring-purple-700:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(109, 40, 217, var(--tw-ring-opacity));
}

.focus\:ring-purple-800:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(91, 33, 182, var(--tw-ring-opacity));
}

.focus\:ring-purple-900:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(76, 29, 149, var(--tw-ring-opacity));
}

.focus\:ring-pink-50:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(253, 242, 248, var(--tw-ring-opacity));
}

.focus\:ring-pink-100:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(252, 231, 243, var(--tw-ring-opacity));
}

.focus\:ring-pink-200:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(251, 207, 232, var(--tw-ring-opacity));
}

.focus\:ring-pink-300:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(249, 168, 212, var(--tw-ring-opacity));
}

.focus\:ring-pink-400:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(244, 114, 182, var(--tw-ring-opacity));
}

.focus\:ring-pink-500:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(236, 72, 153, var(--tw-ring-opacity));
}

.focus\:ring-pink-600:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(219, 39, 119, var(--tw-ring-opacity));
}

.focus\:ring-pink-700:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(190, 24, 93, var(--tw-ring-opacity));
}

.focus\:ring-pink-800:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(157, 23, 77, var(--tw-ring-opacity));
}

.focus\:ring-pink-900:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgba(131, 24, 67, var(--tw-ring-opacity));
}

.focus\:ring-opacity-0:focus {
  --tw-ring-opacity: 0;
}

.focus\:ring-opacity-5:focus {
  --tw-ring-opacity: 0.05;
}

.focus\:ring-opacity-10:focus {
  --tw-ring-opacity: 0.1;
}

.focus\:ring-opacity-20:focus {
  --tw-ring-opacity: 0.2;
}

.focus\:ring-opacity-25:focus {
  --tw-ring-opacity: 0.25;
}

.focus\:ring-opacity-30:focus {
  --tw-ring-opacity: 0.3;
}

.focus\:ring-opacity-40:focus {
  --tw-ring-opacity: 0.4;
}

.focus\:ring-opacity-50:focus {
  --tw-ring-opacity: 0.5;
}

.focus\:ring-opacity-60:focus {
  --tw-ring-opacity: 0.6;
}

.focus\:ring-opacity-70:focus {
  --tw-ring-opacity: 0.7;
}

.focus\:ring-opacity-75:focus {
  --tw-ring-opacity: 0.75;
}

.focus\:ring-opacity-80:focus {
  --tw-ring-opacity: 0.8;
}

.focus\:ring-opacity-90:focus {
  --tw-ring-opacity: 0.9;
}

.focus\:ring-opacity-95:focus {
  --tw-ring-opacity: 0.95;
}

.focus\:ring-opacity-100:focus {
  --tw-ring-opacity: 1;
}

.ring-offset-2 {
  --tw-ring-offset-width: 2px;
}

.focus\:ring-offset-0:focus {
  --tw-ring-offset-width: 0px;
}

.focus\:ring-offset-1:focus {
  --tw-ring-offset-width: 1px;
}

.focus\:ring-offset-2:focus {
  --tw-ring-offset-width: 2px;
}

.focus\:ring-offset-4:focus {
  --tw-ring-offset-width: 4px;
}

.focus\:ring-offset-8:focus {
  --tw-ring-offset-width: 8px;
}

.ring-offset-black {
  --tw-ring-offset-color: #000;
}

.focus\:ring-offset-transparent:focus {
  --tw-ring-offset-color: transparent;
}

.focus\:ring-offset-current:focus {
  --tw-ring-offset-color: currentColor;
}

.focus\:ring-offset-black:focus {
  --tw-ring-offset-color: #000;
}

.focus\:ring-offset-white:focus {
  --tw-ring-offset-color: #fff;
}

.focus\:ring-offset-gray-50:focus {
  --tw-ring-offset-color: #f9fafb;
}

.focus\:ring-offset-gray-100:focus {
  --tw-ring-offset-color: #f3f4f6;
}

.focus\:ring-offset-gray-200:focus {
  --tw-ring-offset-color: #e5e7eb;
}

.focus\:ring-offset-gray-300:focus {
  --tw-ring-offset-color: #d1d5db;
}

.focus\:ring-offset-gray-400:focus {
  --tw-ring-offset-color: #9ca3af;
}

.focus\:ring-offset-gray-500:focus {
  --tw-ring-offset-color: #6b7280;
}

.focus\:ring-offset-gray-600:focus {
  --tw-ring-offset-color: #4b5563;
}

.focus\:ring-offset-gray-700:focus {
  --tw-ring-offset-color: #374151;
}

.focus\:ring-offset-gray-800:focus {
  --tw-ring-offset-color: #1f2937;
}

.focus\:ring-offset-gray-900:focus {
  --tw-ring-offset-color: #111827;
}

.focus\:ring-offset-red-50:focus {
  --tw-ring-offset-color: #fef2f2;
}

.focus\:ring-offset-red-100:focus {
  --tw-ring-offset-color: #fee2e2;
}

.focus\:ring-offset-red-200:focus {
  --tw-ring-offset-color: #fecaca;
}

.focus\:ring-offset-red-300:focus {
  --tw-ring-offset-color: #fca5a5;
}

.focus\:ring-offset-red-400:focus {
  --tw-ring-offset-color: #f87171;
}

.focus\:ring-offset-red-500:focus {
  --tw-ring-offset-color: #ef4444;
}

.focus\:ring-offset-red-600:focus {
  --tw-ring-offset-color: #dc2626;
}

.focus\:ring-offset-red-700:focus {
  --tw-ring-offset-color: #b91c1c;
}

.focus\:ring-offset-red-800:focus {
  --tw-ring-offset-color: #991b1b;
}

.focus\:ring-offset-red-900:focus {
  --tw-ring-offset-color: #7f1d1d;
}

.focus\:ring-offset-yellow-50:focus {
  --tw-ring-offset-color: #fffbeb;
}

.focus\:ring-offset-yellow-100:focus {
  --tw-ring-offset-color: #fef3c7;
}

.focus\:ring-offset-yellow-200:focus {
  --tw-ring-offset-color: #fde68a;
}

.focus\:ring-offset-yellow-300:focus {
  --tw-ring-offset-color: #fcd34d;
}

.focus\:ring-offset-yellow-400:focus {
  --tw-ring-offset-color: #fbbf24;
}

.focus\:ring-offset-yellow-500:focus {
  --tw-ring-offset-color: #f59e0b;
}

.focus\:ring-offset-yellow-600:focus {
  --tw-ring-offset-color: #d97706;
}

.focus\:ring-offset-yellow-700:focus {
  --tw-ring-offset-color: #b45309;
}

.focus\:ring-offset-yellow-800:focus {
  --tw-ring-offset-color: #92400e;
}

.focus\:ring-offset-yellow-900:focus {
  --tw-ring-offset-color: #78350f;
}

.focus\:ring-offset-green-50:focus {
  --tw-ring-offset-color: #ecfdf5;
}

.focus\:ring-offset-green-100:focus {
  --tw-ring-offset-color: #d1fae5;
}

.focus\:ring-offset-green-200:focus {
  --tw-ring-offset-color: #a7f3d0;
}

.focus\:ring-offset-green-300:focus {
  --tw-ring-offset-color: #6ee7b7;
}

.focus\:ring-offset-green-400:focus {
  --tw-ring-offset-color: #34d399;
}

.focus\:ring-offset-green-500:focus {
  --tw-ring-offset-color: #10b981;
}

.focus\:ring-offset-green-600:focus {
  --tw-ring-offset-color: #059669;
}

.focus\:ring-offset-green-700:focus {
  --tw-ring-offset-color: #047857;
}

.focus\:ring-offset-green-800:focus {
  --tw-ring-offset-color: #065f46;
}

.focus\:ring-offset-green-900:focus {
  --tw-ring-offset-color: #064e3b;
}

.focus\:ring-offset-blue-50:focus {
  --tw-ring-offset-color: #eff6ff;
}

.focus\:ring-offset-blue-100:focus {
  --tw-ring-offset-color: #dbeafe;
}

.focus\:ring-offset-blue-200:focus {
  --tw-ring-offset-color: #bfdbfe;
}

.focus\:ring-offset-blue-300:focus {
  --tw-ring-offset-color: #93c5fd;
}

.focus\:ring-offset-blue-400:focus {
  --tw-ring-offset-color: #60a5fa;
}

.focus\:ring-offset-blue-500:focus {
  --tw-ring-offset-color: #3b82f6;
}

.focus\:ring-offset-blue-600:focus {
  --tw-ring-offset-color: #2563eb;
}

.focus\:ring-offset-blue-700:focus {
  --tw-ring-offset-color: #1d4ed8;
}

.focus\:ring-offset-blue-800:focus {
  --tw-ring-offset-color: #1e40af;
}

.focus\:ring-offset-blue-900:focus {
  --tw-ring-offset-color: #1e3a8a;
}

.focus\:ring-offset-indigo-50:focus {
  --tw-ring-offset-color: #eef2ff;
}

.focus\:ring-offset-indigo-100:focus {
  --tw-ring-offset-color: #e0e7ff;
}

.focus\:ring-offset-indigo-200:focus {
  --tw-ring-offset-color: #c7d2fe;
}

.focus\:ring-offset-indigo-300:focus {
  --tw-ring-offset-color: #a5b4fc;
}

.focus\:ring-offset-indigo-400:focus {
  --tw-ring-offset-color: #818cf8;
}

.focus\:ring-offset-indigo-500:focus {
  --tw-ring-offset-color: #6366f1;
}

.focus\:ring-offset-indigo-600:focus {
  --tw-ring-offset-color: #4f46e5;
}

.focus\:ring-offset-indigo-700:focus {
  --tw-ring-offset-color: #4338ca;
}

.focus\:ring-offset-indigo-800:focus {
  --tw-ring-offset-color: #3730a3;
}

.focus\:ring-offset-indigo-900:focus {
  --tw-ring-offset-color: #312e81;
}

.focus\:ring-offset-purple-50:focus {
  --tw-ring-offset-color: #f5f3ff;
}

.focus\:ring-offset-purple-100:focus {
  --tw-ring-offset-color: #ede9fe;
}

.focus\:ring-offset-purple-200:focus {
  --tw-ring-offset-color: #ddd6fe;
}

.focus\:ring-offset-purple-300:focus {
  --tw-ring-offset-color: #c4b5fd;
}

.focus\:ring-offset-purple-400:focus {
  --tw-ring-offset-color: #a78bfa;
}

.focus\:ring-offset-purple-500:focus {
  --tw-ring-offset-color: #8b5cf6;
}

.focus\:ring-offset-purple-600:focus {
  --tw-ring-offset-color: #7c3aed;
}

.focus\:ring-offset-purple-700:focus {
  --tw-ring-offset-color: #6d28d9;
}

.focus\:ring-offset-purple-800:focus {
  --tw-ring-offset-color: #5b21b6;
}

.focus\:ring-offset-purple-900:focus {
  --tw-ring-offset-color: #4c1d95;
}

.focus\:ring-offset-pink-50:focus {
  --tw-ring-offset-color: #fdf2f8;
}

.focus\:ring-offset-pink-100:focus {
  --tw-ring-offset-color: #fce7f3;
}

.focus\:ring-offset-pink-200:focus {
  --tw-ring-offset-color: #fbcfe8;
}

.focus\:ring-offset-pink-300:focus {
  --tw-ring-offset-color: #f9a8d4;
}

.focus\:ring-offset-pink-400:focus {
  --tw-ring-offset-color: #f472b6;
}

.focus\:ring-offset-pink-500:focus {
  --tw-ring-offset-color: #ec4899;
}

.focus\:ring-offset-pink-600:focus {
  --tw-ring-offset-color: #db2777;
}

.focus\:ring-offset-pink-700:focus {
  --tw-ring-offset-color: #be185d;
}

.focus\:ring-offset-pink-800:focus {
  --tw-ring-offset-color: #9d174d;
}

.focus\:ring-offset-pink-900:focus {
  --tw-ring-offset-color: #831843;
}

.filter {
  --tw-blur: var(--tw-empty,/*!*/ /*!*/);
  --tw-brightness: var(--tw-empty,/*!*/ /*!*/);
  --tw-contrast: var(--tw-empty,/*!*/ /*!*/);
  --tw-grayscale: var(--tw-empty,/*!*/ /*!*/);
  --tw-hue-rotate: var(--tw-empty,/*!*/ /*!*/);
  --tw-invert: var(--tw-empty,/*!*/ /*!*/);
  --tw-saturate: var(--tw-empty,/*!*/ /*!*/);
  --tw-sepia: var(--tw-empty,/*!*/ /*!*/);
  --tw-drop-shadow: var(--tw-empty,/*!*/ /*!*/);
  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-sm {
  --tw-blur: blur(4px);
}

.blur {
  --tw-blur: blur(8px);
}

.blur-lg {
  --tw-blur: blur(16px);
}

.blur-xl {
  --tw-blur: blur(24px);
}

.blur-2xl {
  --tw-blur: blur(40px);
}

.blur-3xl {
  --tw-blur: blur(64px);
}

.brightness-75 {
  --tw-brightness: brightness(.75);
}

.drop-shadow-sm {
  --tw-drop-shadow: drop-shadow(0 1px 1px rgba(0,0,0,0.05));
}

.drop-shadow {
  --tw-drop-shadow: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1)) drop-shadow(0 1px 1px rgba(0, 0, 0, 0.06));
}

.drop-shadow-lg {
  --tw-drop-shadow: drop-shadow(0 10px 8px rgba(0, 0, 0, 0.04)) drop-shadow(0 4px 3px rgba(0, 0, 0, 0.1));
}

.grayscale {
  --tw-grayscale: grayscale(100%);
}

.backdrop-filter {
  --tw-backdrop-blur: var(--tw-empty,/*!*/ /*!*/);
  --tw-backdrop-brightness: var(--tw-empty,/*!*/ /*!*/);
  --tw-backdrop-contrast: var(--tw-empty,/*!*/ /*!*/);
  --tw-backdrop-grayscale: var(--tw-empty,/*!*/ /*!*/);
  --tw-backdrop-hue-rotate: var(--tw-empty,/*!*/ /*!*/);
  --tw-backdrop-invert: var(--tw-empty,/*!*/ /*!*/);
  --tw-backdrop-opacity: var(--tw-empty,/*!*/ /*!*/);
  --tw-backdrop-saturate: var(--tw-empty,/*!*/ /*!*/);
  --tw-backdrop-sepia: var(--tw-empty,/*!*/ /*!*/);
  -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-none {
  -webkit-backdrop-filter: none;
          backdrop-filter: none;
}

.backdrop-blur-0 {
  --tw-backdrop-blur: blur(0);
}

.backdrop-blur-none {
  --tw-backdrop-blur: blur(0);
}

.backdrop-blur-sm {
  --tw-backdrop-blur: blur(4px);
}

.backdrop-blur {
  --tw-backdrop-blur: blur(8px);
}

.backdrop-blur-md {
  --tw-backdrop-blur: blur(12px);
}

.backdrop-blur-lg {
  --tw-backdrop-blur: blur(16px);
}

.backdrop-blur-xl {
  --tw-backdrop-blur: blur(24px);
}

.backdrop-blur-2xl {
  --tw-backdrop-blur: blur(40px);
}

.backdrop-blur-3xl {
  --tw-backdrop-blur: blur(64px);
}

.backdrop-brightness-0 {
  --tw-backdrop-brightness: brightness(0);
}

.backdrop-brightness-50 {
  --tw-backdrop-brightness: brightness(.5);
}

.backdrop-brightness-75 {
  --tw-backdrop-brightness: brightness(.75);
}

.backdrop-brightness-90 {
  --tw-backdrop-brightness: brightness(.9);
}

.backdrop-brightness-95 {
  --tw-backdrop-brightness: brightness(.95);
}

.backdrop-brightness-100 {
  --tw-backdrop-brightness: brightness(1);
}

.backdrop-brightness-105 {
  --tw-backdrop-brightness: brightness(1.05);
}

.backdrop-brightness-110 {
  --tw-backdrop-brightness: brightness(1.1);
}

.backdrop-brightness-125 {
  --tw-backdrop-brightness: brightness(1.25);
}

.backdrop-brightness-150 {
  --tw-backdrop-brightness: brightness(1.5);
}

.backdrop-brightness-200 {
  --tw-backdrop-brightness: brightness(2);
}

.backdrop-contrast-0 {
  --tw-backdrop-contrast: contrast(0);
}

.backdrop-contrast-50 {
  --tw-backdrop-contrast: contrast(.5);
}

.backdrop-contrast-75 {
  --tw-backdrop-contrast: contrast(.75);
}

.backdrop-contrast-100 {
  --tw-backdrop-contrast: contrast(1);
}

.backdrop-contrast-125 {
  --tw-backdrop-contrast: contrast(1.25);
}

.backdrop-contrast-150 {
  --tw-backdrop-contrast: contrast(1.5);
}

.backdrop-contrast-200 {
  --tw-backdrop-contrast: contrast(2);
}

.backdrop-grayscale-0 {
  --tw-backdrop-grayscale: grayscale(0);
}

.backdrop-grayscale {
  --tw-backdrop-grayscale: grayscale(100%);
}

.backdrop-hue-rotate-0 {
  --tw-backdrop-hue-rotate: hue-rotate(0deg);
}

.backdrop-hue-rotate-15 {
  --tw-backdrop-hue-rotate: hue-rotate(15deg);
}

.backdrop-hue-rotate-30 {
  --tw-backdrop-hue-rotate: hue-rotate(30deg);
}

.backdrop-hue-rotate-60 {
  --tw-backdrop-hue-rotate: hue-rotate(60deg);
}

.backdrop-hue-rotate-90 {
  --tw-backdrop-hue-rotate: hue-rotate(90deg);
}

.backdrop-hue-rotate-180 {
  --tw-backdrop-hue-rotate: hue-rotate(180deg);
}

.backdrop-invert-0 {
  --tw-backdrop-invert: invert(0);
}

.backdrop-invert {
  --tw-backdrop-invert: invert(100%);
}

.backdrop-opacity-0 {
  --tw-backdrop-opacity: opacity(0);
}

.backdrop-opacity-5 {
  --tw-backdrop-opacity: opacity(0.05);
}

.backdrop-opacity-10 {
  --tw-backdrop-opacity: opacity(0.1);
}

.backdrop-opacity-20 {
  --tw-backdrop-opacity: opacity(0.2);
}

.backdrop-opacity-25 {
  --tw-backdrop-opacity: opacity(0.25);
}

.backdrop-opacity-30 {
  --tw-backdrop-opacity: opacity(0.3);
}

.backdrop-opacity-40 {
  --tw-backdrop-opacity: opacity(0.4);
}

.backdrop-opacity-50 {
  --tw-backdrop-opacity: opacity(0.5);
}

.backdrop-opacity-60 {
  --tw-backdrop-opacity: opacity(0.6);
}

.backdrop-opacity-70 {
  --tw-backdrop-opacity: opacity(0.7);
}

.backdrop-opacity-75 {
  --tw-backdrop-opacity: opacity(0.75);
}

.backdrop-opacity-80 {
  --tw-backdrop-opacity: opacity(0.8);
}

.backdrop-opacity-90 {
  --tw-backdrop-opacity: opacity(0.9);
}

.backdrop-opacity-95 {
  --tw-backdrop-opacity: opacity(0.95);
}

.backdrop-opacity-100 {
  --tw-backdrop-opacity: opacity(1);
}

.backdrop-saturate-0 {
  --tw-backdrop-saturate: saturate(0);
}

.backdrop-saturate-50 {
  --tw-backdrop-saturate: saturate(.5);
}

.backdrop-saturate-100 {
  --tw-backdrop-saturate: saturate(1);
}

.backdrop-saturate-150 {
  --tw-backdrop-saturate: saturate(1.5);
}

.backdrop-saturate-200 {
  --tw-backdrop-saturate: saturate(2);
}

.backdrop-sepia-0 {
  --tw-backdrop-sepia: sepia(0);
}

.backdrop-sepia {
  --tw-backdrop-sepia: sepia(100%);
}

.transition-all {
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition {
  transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-colors {
  transition-property: background-color, border-color, color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-opacity {
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-shadow {
  transition-property: box-shadow;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-transform {
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.delay-75 {
  transition-delay: 75ms;
}

.delay-100 {
  transition-delay: 100ms;
}

.delay-150 {
  transition-delay: 150ms;
}

.delay-200 {
  transition-delay: 200ms;
}

.duration-150 {
  transition-duration: 150ms;
}

.duration-200 {
  transition-duration: 200ms;
}

.duration-300 {
  transition-duration: 300ms;
}

.duration-500 {
  transition-duration: 500ms;
}

.duration-700 {
  transition-duration: 700ms;
}

.duration-1000 {
  transition-duration: 1000ms;
}

.ease-linear {
  transition-timing-function: linear;
}

.ease-in {
  transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
}

.ease-out {
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}

.ease-in-out {
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

/* ===== CSS IMPORTS ===== */

/* Workflow Studio Ultimate Components - CSS file not found, import removed */

/* Navigation Unifiée Style TalentAI - CSS file not found, import removed */

/* ===== GLOBAL SELECT FIX - TRANSPARENT BACKGROUND ===== */

/* ===== LOADING SCREEN SMOOTH TRANSITIONS ===== */

body {
  background-color: #000 !important;
  transition: background-color 0.5s ease;
}

.app-container {
  width: 100vw !important;
  min-height: 100vh;
  transition: opacity 0.5s ease;
  position: relative;
  overflow-x: hidden;
}

/* ===== RESPONSIVE CLASSES FIX ===== */

/* ===== TAILWIND CUSTOM COMPONENTS ===== */

/* ===== CSS OLIVITCHY - VERSION SIMPLIFIÉE ===== */

/* ===== GOOGLE VERIFIED TESTIMONIALS STYLES ===== */

.toast-container .platform-icon::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: transparent;
  border-radius: inherit;
  pointer-events: none;
  z-index: -1;
}

.star.filled {
  --tw-text-opacity: 1;
  color: rgba(251, 191, 36, var(--tw-text-opacity));
}

.star.empty {
  --tw-text-opacity: 1;
  color: rgba(209, 213, 219, var(--tw-text-opacity));
}

.stat-label {
  font-size: 0.875rem;
  line-height: 1.25rem;
  --tw-text-opacity: 1;
  color: rgba(75, 85, 99, var(--tw-text-opacity));
}

.stats-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
  border-top-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgba(229, 231, 235, var(--tw-border-opacity));
  padding-top: 1.5rem;
}

.testimonials-grid > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}

.testimonial-card {
  border-radius: 0.75rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgba(229, 231, 235, var(--tw-border-opacity));
  --tw-bg-opacity: 1;
  background-color: rgba(255, 255, 255, var(--tw-bg-opacity));
  padding: 1.5rem;
  --tw-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.testimonial-card:hover {
  --tw-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.testimonial-card {
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
  transition-duration: 300ms;
}

.testimonial-header {
  margin-bottom: 1rem;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.review-date::after {
  content: "•";
  margin-left: 0.5rem;
  margin-right: 0.5rem;
}

.testimonial-text {
  margin-bottom: 0.75rem;
  line-height: 1.625;
  --tw-text-opacity: 1;
  color: rgba(55, 65, 81, var(--tw-text-opacity));
}

.project-details {
  margin-top: 1rem;
  border-radius: 0.5rem;
  --tw-bg-opacity: 1;
  background-color: rgba(249, 250, 251, var(--tw-bg-opacity));
  padding: 1rem;
}

.project-details h5 {
  margin-bottom: 0.5rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgba(17, 24, 39, var(--tw-text-opacity));
}

.tech-stack {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.tech-tag {
  border-radius: 0.375rem;
  --tw-bg-opacity: 1;
  background-color: rgba(219, 234, 254, var(--tw-bg-opacity));
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgba(29, 78, 216, var(--tw-text-opacity));
}

.cta-content h3 {
  margin-bottom: 0.5rem;
  font-size: 1.25rem;
  line-height: 1.75rem;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgba(17, 24, 39, var(--tw-text-opacity));
}

.cta-content p {
  margin-bottom: 1.5rem;
  --tw-text-opacity: 1;
  color: rgba(75, 85, 99, var(--tw-text-opacity));
}

/* ===== ENHANCED TIMELINE STYLES ===== */

.glass-card {
  background: rgba(255, 255, 255, 0.05);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37);
  transition: all 0.3s ease;
}

.glass-card:hover {
  background: rgba(255, 255, 255, 0.08);
  transform: translateY(-2px);
  box-shadow: 0 12px 40px 0 rgba(31, 38, 135, 0.5);
}

/* Timeline border animation */

.border-gradient-to-b {
  border-image: linear-gradient(to bottom, #60a5fa, #a855f7, #ec4899) 1;
}

/* Pulse animation for timeline dots */

@keyframes timeline-pulse {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }

  50% {
    opacity: 0.7;
    transform: scale(1.1);
  }
}

.animate-pulse {
  animation: timeline-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

/* Tech badge hover effects */

.tech-badge {
  position: relative;
  overflow: hidden;
}

.tech-badge::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
  transition: left 0.5s;
}

.tech-badge:hover::before {
  left: 100%;
}

/* Achievement cards animation */

@keyframes achievement-glow {
  0%, 100% {
    box-shadow: 0 0 5px rgba(34, 197, 94, 0.2);
  }

  50% {
    box-shadow: 0 0 20px rgba(34, 197, 94, 0.4);
  }
}

.achievement-card:hover {
  animation: achievement-glow 2s ease-in-out infinite;
}

/* Metrics cards */

.metric-card {
  background: rgba(59, 130, 246, 0.1);
  border: 1px solid rgba(59, 130, 246, 0.3);
  -webkit-backdrop-filter: blur(5px);
          backdrop-filter: blur(5px);
  transition: all 0.3s ease;
}

.metric-card:hover {
  background: rgba(59, 130, 246, 0.2);
  transform: scale(1.05);
}

/* ===== MASONRY TIMELINE STYLES ===== */

/* Masonry container */

.masonry-container {
  position: relative;
  width: 100%;
  min-height: 200vh;
}

/* Card states and transitions */

.masonry-card {
  position: absolute;
  transition: all 0.6s cubic-bezier(0.4, 0.0, 0.2, 1);
  will-change: transform, opacity;
}

.masonry-card.compact {
  width: 280px;
  z-index: 1;
}

.masonry-card.expanded {
  width: 400px;
  z-index: 10;
}

.masonry-card.modal-mode {
  z-index: 50;
}

/* Glassmorphism enhanced */

.experience-card {
  background: rgba(255, 255, 255, 0.05);
  -webkit-backdrop-filter: blur(16px);
          backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 
    0 8px 32px 0 rgba(31, 38, 135, 0.37),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
  transition: all 0.4s cubic-bezier(0.4, 0.0, 0.2, 1);
}

.experience-card:hover {
  background: rgba(255, 255, 255, 0.08);
  transform: translateY(-8px);
  box-shadow: 
    0 20px 40px 0 rgba(31, 38, 135, 0.5),
    inset 0 1px 0 rgba(255, 255, 255, 0.15);
}

.experience-card.expanded {
  background: rgba(255, 255, 255, 0.1);
  transform: translateY(-12px);
  box-shadow: 
    0 25px 50px 0 rgba(31, 38, 135, 0.6),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

/* Tech badge shimmer effect */

.tech-badge {
  position: relative;
  overflow: hidden;
  background: rgba(59, 130, 246, 0.2);
  border: 1px solid rgba(59, 130, 246, 0.3);
  transition: all 0.3s ease;
}

.tech-badge::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    90deg, 
    transparent, 
    rgba(255, 255, 255, 0.4), 
    transparent
  );
  transition: left 0.6s ease;
}

.tech-badge:hover::before {
  left: 100%;
}

.tech-badge:hover {
  background: rgba(59, 130, 246, 0.3);
  transform: scale(1.05);
}

/* Progress bars for tech levels */

.tech-progress {
  position: relative;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 9999px;
}

.tech-progress-fill {
  height: 100%;
  border-radius: 9999px;
  transition: width 0.8s cubic-bezier(0.4, 0.0, 0.2, 1);
  position: relative;
  overflow: hidden;
}

.tech-progress-fill::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.3),
    transparent
  );
  animation: progress-shimmer 2s infinite;
}

@keyframes progress-shimmer {
  0% { transform: translateX(-100%);
  }

  100% { transform: translateX(100%);
  }
}

/* Achievement cards glow */

.achievement-card {
  background: rgba(34, 197, 94, 0.1);
  border: 1px solid rgba(34, 197, 94, 0.2);
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
}

.achievement-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(circle at center, rgba(34, 197, 94, 0.1) 0%, transparent 70%);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.achievement-card:hover::before {
  opacity: 1;
}

.achievement-card:hover {
  background: rgba(34, 197, 94, 0.15);
  border-color: rgba(34, 197, 94, 0.4);
  transform: translateX(4px);
}

/* Modal backdrop */

.modal-backdrop {
  background: rgba(0, 0, 0, 0.8);
  -webkit-backdrop-filter: blur(8px);
          backdrop-filter: blur(8px);
  transition: all 0.3s ease;
}

/* Modal content */

.modal-content {
  background: rgba(255, 255, 255, 0.1);
  -webkit-backdrop-filter: blur(20px);
          backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow: 
    0 25px 50px 0 rgba(0, 0, 0, 0.5),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

/* Card type indicators */

/* Responsive masonry */

@media (max-width: 768px) {
  .masonry-card.compact,
  .masonry-card.expanded {
    width: 100% !important;
    position: relative !important;
    margin-bottom: 1.5rem;
  }

  .masonry-container {
    min-height: auto;
  }
}

@media (min-width: 769px) and (max-width: 1024px) {
  .masonry-card.compact {
    width: calc(50% - 1rem);
  }

  .masonry-card.expanded {
    width: calc(100% - 2rem);
  }
}

/* Scroll animations */

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.fade-in-up {
  animation: fadeInUp 0.6s ease-out;
}

/* Stagger animation delays */

.stagger-1 { animation-delay: 0.1s;
}

.stagger-2 { animation-delay: 0.2s;
}

.stagger-3 { animation-delay: 0.3s;
}

.stagger-4 { animation-delay: 0.4s;
}

.stagger-5 { animation-delay: 0.5s;
}

.stagger-6 { animation-delay: 0.6s;
}

/* NOUVELLES ANIMATIONS POUR LA SECTION DEV-APPROACH */

@keyframes gradient-x {
  0%, 100% {
    background-size: 200% 200%;
    background-position: left center;
  }

  50% {
    background-size: 200% 200%;
    background-position: right center;
  }
}

@keyframes float-slow {
  0%, 100% {
    transform: translateY(0px);
  }

  50% {
    transform: translateY(-20px);
  }
}

@keyframes float-delayed {
  0%, 100% {
    transform: translateY(0px);
  }

  50% {
    transform: translateY(-15px);
  }
}

@keyframes bounce-slow {
  0%, 100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-10px);
  }
}

@keyframes pulse-slow {
  0%, 100% {
    opacity: 1;
  }

  50% {
    opacity: 0.7;
  }
}

.animate-gradient-x {
  animation: gradient-x 3s ease infinite;
}

.animate-float-slow {
  animation: float-slow 6s ease-in-out infinite;
}

.animate-float-delayed {
  animation: float-delayed 6s ease-in-out infinite 2s;
}

.animate-bounce-slow {
  animation: bounce-slow 4s ease-in-out infinite;
}

.animate-pulse-slow {
  animation: pulse-slow 3s ease-in-out infinite;
}

/* ===== STYLES DE BASE ===== */

.workflow-composer select {
  color: #374151 !important;
  background: transparent;
  border: 1px solid transparent !important;
}

/* Fix spécifique pour l'assistant universel */

/* Fix pour les placeholders */

.workflow-composer input::-moz-placeholder, .intelligent-questionnaire input::-moz-placeholder, .intelligent-workflow-launcher input::-moz-placeholder, .intelligent-assistant-creator input::-moz-placeholder, .universal-assistant-widget input::-moz-placeholder {
  color: #9CA3AF !important;
}

.workflow-composer input::placeholder,
.intelligent-questionnaire input::placeholder,
.intelligent-workflow-launcher input::placeholder,
.intelligent-assistant-creator input::placeholder,
.universal-assistant-widget input::placeholder {
  color: #9CA3AF !important;
}

/* Fix pour les labels et textes dans les composants workflow */

.workflow-composer label {
  color: #F9FAFB !important;
}

/* Fix pour les boutons dans les composants workflow */

.workflow-composer button {
  color: white !important;
  background: transparent;
}

/* Fix pour les boutons secondaires */

.workflow-composer .btn-secondary {
  color: #374151 !important;
  background: transparent;
  border: 1px solid transparent !important;
}

/* ===== GLASSOMORPHISM TOASTS ===== */

.toast-container {
  /* Support pour backdrop-blur */
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  /* Support Safari */
  transform: translateZ(0);
}

.toast-container .relative {
  /* Enhanced glassomorphism */
  background: transparent;
  border: 1px solid rgba(0, 0, 0, 0.2);
  box-shadow: 
    0 8px 32px rgba(0, 0, 0, 0.1),
    inset 0 1px 0 rgba(0, 0, 0, 0.2);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
}

.toast-container .relative::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: transparent;
  border-radius: inherit;
  pointer-events: none;
  z-index: -1;
}

/* Fallback pour navigateurs sans support backdrop-blur */

@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  .toast-container .relative {
    background: transparent;
    border: 1px solid rgba(0, 0, 0, 0.3);
  }
}

/* ===== STYLES TECH ICONS ESSENTIELS ===== */

/* ===== BLOG STYLES ===== */

/* Glass Card Effects */

.glass-card {
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
}

.glass-card:hover {
  background: rgba(255, 255, 255, 0.15);
  transform: translateY(-2px);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15);
}

.glass-card-strong {
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 16px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15);
}

/* Badge Styles */

/* Prose Styles for Blog Content */

.prose {
  color: #e5e7eb;
  max-width: none;
}

.prose h1 {
  color: #f9fafb;
  font-size: 2.25rem;
  font-weight: 300;
  margin-bottom: 1rem;
}

.prose h2 {
  color: #f3f4f6;
  font-size: 1.875rem;
  font-weight: 300;
  margin-top: 2rem;
  margin-bottom: 1rem;
}

.prose h3 {
  color: #f3f4f6;
  font-size: 1.5rem;
  font-weight: 300;
  margin-top: 1.5rem;
  margin-bottom: 0.75rem;
}

.prose p {
  margin-bottom: 1rem;
  line-height: 1.7;
}

.prose a {
  color: #60a5fa;
  text-decoration: none;
  transition: color 0.2s ease;
}

.prose a:hover {
  color: #93c5fd;
}

.prose code {
  background: rgba(255, 255, 255, 0.1);
  color: #fbbf24;
  padding: 0.125rem 0.25rem;
  border-radius: 0.25rem;
  font-size: 0.875em;
}

.prose pre {
  background: rgba(0, 0, 0, 0.3);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0.5rem;
  padding: 1rem;
  overflow-x: auto;
  margin: 1rem 0;
}

.prose pre code {
  background: transparent;
  color: inherit;
  padding: 0;
}

.prose blockquote {
  border-left: 4px solid #60a5fa;
  background: rgba(96, 165, 250, 0.1);
  padding: 1rem;
  margin: 1rem 0;
  border-radius: 0 0.5rem 0.5rem 0;
}

.prose ul, .prose ol {
  margin: 1rem 0;
  padding-left: 1.5rem;
}

.prose li {
  margin: 0.5rem 0;
}

.prose img {
  border-radius: 0.5rem;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  margin: 1rem 0;
}

/* Blog List Specific Styles */

.blog-category-button {
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: white;
  transition: all 0.3s ease;
}

.blog-category-button:hover {
  background: rgba(255, 255, 255, 0.2);
  transform: translateY(-1px);
}

.blog-category-button.active {
  background: linear-gradient(135deg, #3b82f6, #1d4ed8);
  border-color: rgba(255, 255, 255, 0.3);
  box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
}

/* Blog Article Content Styles */

.article-content {
  font-size: 1.125rem;
  line-height: 1.8;
  color: #e5e7eb;
}

.article-content h1,
.article-content h2,
.article-content h3,
.article-content h4,
.article-content h5,
.article-content h6 {
  color: #f9fafb;
  font-weight: 300;
  margin-top: 2rem;
  margin-bottom: 1rem;
  scroll-margin-top: 6rem;
}

.article-content h1 {
  font-size: 2.5rem;
  border-bottom: 2px solid #10b981;
  padding-bottom: 0.5rem;
}

.article-content h2 {
  font-size: 2rem;
  color: #10b981;
}

.article-content h3 {
  font-size: 1.5rem;
  color: #34d399;
}

.article-content p {
  margin-bottom: 1.5rem;
}

.article-content a {
  color: #22d3ee;
  text-decoration: none;
  transition: color 0.2s ease;
}

.article-content a:hover {
  color: #67e8f9;
}

.article-content strong {
  color: #f3f4f6;
  font-weight: 300;
}

.article-content em {
  color: #d1d5db;
  font-style: italic;
}

.article-content code {
  background: rgba(16, 185, 129, 0.1);
  color: #6ee7b7;
  padding: 0.25rem 0.5rem;
  border-radius: 0.375rem;
  font-size: 0.9em;
  font-family: 'JetBrains Mono', 'Fira Code', monospace;
  border: 1px solid rgba(16, 185, 129, 0.2);
}

.article-content pre {
  background: rgba(0, 0, 0, 0.4);
  border: 1px solid rgba(16, 185, 129, 0.2);
  border-radius: 0.75rem;
  padding: 1.5rem;
  overflow-x: auto;
  margin: 2rem 0;
  position: relative;
}

.article-content pre code {
  background: transparent;
  color: #e5e7eb;
  padding: 0;
  border: none;
  font-size: 0.875rem;
}

.article-content blockquote {
  border-left: 4px solid #22d3ee;
  background: rgba(34, 211, 238, 0.1);
  padding: 1.5rem;
  margin: 2rem 0;
  border-radius: 0 0.75rem 0.75rem 0;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.article-content blockquote p {
  margin-bottom: 0.5rem;
  font-style: italic;
  color: #f3f4f6;
}

.article-content ul,
.article-content ol {
  margin: 1.5rem 0;
  padding-left: 2rem;
}

.article-content li {
  margin: 0.75rem 0;
  color: #d1d5db;
}

.article-content li::marker {
  color: #10b981;
}

.article-content img {
  border-radius: 0.75rem;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
  margin: 2rem auto;
  max-width: 100%;
  height: auto;
}

.article-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 2rem 0;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 0.75rem;
  overflow: hidden;
}

.article-content th,
.article-content td {
  padding: 1rem;
  text-align: left;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.article-content th {
  background: rgba(16, 185, 129, 0.2);
  color: #f9fafb;
  font-weight: 300;
}

.article-content hr {
  border: none;
  height: 2px;
  background: linear-gradient(to right, transparent, #10b981, transparent);
  margin: 3rem 0;
}

/* Reading Progress Animations */

@keyframes reading-pulse {
  0%, 100% { opacity: 0.8;
  }

  50% { opacity: 1;
  }
}

/* Smooth scroll behavior and prevent horizontal overflow */

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
}

/* Selection styling */

::-moz-selection {
  background: rgba(16, 185, 129, 0.3);
  color: #ffffff;
}

::selection {
  background: rgba(16, 185, 129, 0.3);
  color: #ffffff;
}

::-moz-selection {
  background: rgba(16, 185, 129, 0.3);
  color: #ffffff;
}

/* ===== DARK MODE HEADINGS VISIBILITY FIX ===== */

.dark h1, .dark h2, .dark h3, .dark h4, .dark h5, .dark h6 {
  color: #fff !important;
  text-shadow: 0 1px 6px rgba(0,0,0,0.12);
}

/* Force gradient titles to override other styles */

h1[class*="gradient-title-"],
h2[class*="gradient-title-"],
h3[class*="gradient-title-"],
h4[class*="gradient-title-"],
h5[class*="gradient-title-"],
h6[class*="gradient-title-"] {
  background-clip: text !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  background-color: transparent !important;
  text-shadow: none !important;
}

.tech-icon-container {
  -webkit-backdrop-filter: blur(12px);
          backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 1rem;
  padding: 1.5rem;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  transition: all 0.3s ease-in-out, border-color 0.3s ease-in-out, -webkit-backdrop-filter 0.3s ease-in-out;
  transition: all 0.3s ease-in-out, backdrop-filter 0.3s ease-in-out, border-color 0.3s ease-in-out;
  transition: all 0.3s ease-in-out, backdrop-filter 0.3s ease-in-out, border-color 0.3s ease-in-out, -webkit-backdrop-filter 0.3s ease-in-out;
}

.tech-icon-container:hover {
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  -webkit-backdrop-filter: blur(16px);
          backdrop-filter: blur(16px);
  border-color: rgba(255, 255, 255, 0.2);
}

.tech-icon-item {
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 0.5rem;
  padding: 0.25rem;
  transition: all 0.3s ease-in-out, border-color 0.3s ease-in-out, transform 0.3s ease-in-out, -webkit-backdrop-filter 0.3s ease-in-out;
  transition: all 0.3s ease-in-out, backdrop-filter 0.3s ease-in-out, border-color 0.3s ease-in-out, transform 0.3s ease-in-out;
  transition: all 0.3s ease-in-out, backdrop-filter 0.3s ease-in-out, border-color 0.3s ease-in-out, transform 0.3s ease-in-out, -webkit-backdrop-filter 0.3s ease-in-out;
}

.tech-icon-item:hover {
  -webkit-backdrop-filter: blur(8px);
          backdrop-filter: blur(8px);
  border-color: rgba(255, 255, 255, 0.3);
  transform: scale(1.05);
}

.tech-icon-image {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform 0.3s ease-in-out;
}

.tech-icon-item:hover .tech-icon-image {
  transform: scale(1.1);
}

.tech-level-badge {
  font-size: 0.75rem;
  padding: 0.25rem 0.5rem;
  border-radius: 9999px;
  color: white;
  font-weight: 200;
  display: inline-block;
  line-height: 1;
}

.tech-level-expert { background-color: #10B981;
}

.tech-level-avance { background-color: #3B82F6;
}

.tech-level-intermediaire { background-color: #F59E0B;
}

.tech-tooltip {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  margin-top: 0.25rem;
  padding: 0.25rem 0.5rem;
  background-color: rgba(0, 0, 0, 0.8);
  color: white;
  font-size: 0.75rem;
  border-radius: 0.25rem;
  opacity: 0;
  transition: opacity 0.2s ease-in-out;
  z-index: 20;
  white-space: nowrap;
  pointer-events: none;
}

/* ===== ANIMATIONS POUR LA GALERIE ===== */

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(20px);
  }

  to { opacity: 1; transform: none;
  }
}

@keyframes fadeInPulse {
  from { opacity: 0; transform: scale(0.92); filter: blur(2px);
  }

  to { opacity: 1; transform: none; filter: none;
  }
}

@keyframes pulseGlow {
  from { box-shadow: 0 0 12px rgba(34, 211, 238, 0.6);
  }

  to { box-shadow: 0 0 32px rgba(236, 72, 153, 0.53), 0 0 24px rgba(34, 211, 238, 0.53);
  }
}

.animate-fadeIn {
  animation: fadeIn 0.7s cubic-bezier(0.4, 0, 0.2, 1) both;
}

.animate-fadeInPulse {
  animation: fadeInPulse 1s cubic-bezier(0.4, 0, 0.2, 1) both;
}

.animate-pulseGlow {
  animation: pulseGlow 1.2s infinite alternate;
}

.animate-glowText {
  text-shadow: 0 0 8px #22d3ee, 0 0 16px #ec4899;
}

.shadow-neon {
  box-shadow: 0 0 16px 2px #22d3ee, 0 0 32px 8px rgba(236, 72, 153, 0.67);
}

/* Gallery Animations */

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeIn {
  from { opacity: 0;
  }

  to { opacity: 1;
  }
}

/* ===== LOGO OLIVE GÉANT - Animations Avancées ===== */

/* Animation delays pour les particules */

/* Logo débordant - styles additionnels */

.logo-giant-overflow {
  overflow: visible !important;
  z-index: 999 !important;
}

/* Particules flottantes améliorées */

@keyframes ping-enhanced {
  0% {
    transform: scale(1);
    opacity: 1;
  }

  50% {
    transform: scale(1.5);
    opacity: 0.7;
  }

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

.animate-ping-enhanced {
  animation: ping-enhanced 2s cubic-bezier(0, 0, 0.2, 1) infinite;
}

/* Glow effect renforcé */

.olive-logo-glow {
  filter: drop-shadow(0 0 30px rgba(52, 211, 153, 0.8)) 
          drop-shadow(0 0 60px rgba(6, 182, 212, 0.4));
}

.olive-logo-glow:hover {
  filter: drop-shadow(0 0 40px rgba(52, 211, 153, 1)) 
          drop-shadow(0 0 80px rgba(6, 182, 212, 0.6))
          drop-shadow(0 0 120px rgba(52, 211, 153, 0.3));
}

/* ===== EMERGENCY NAVIGATION FIXES ===== */

/* Ensure navigation has proper height and spacing */

nav {
  height: 80px !important;
}

/* Ensure main content doesn't overlap navigation */

.pt-20 {
  padding-top: 5rem !important; /* 80px */
}

/* Emergency fix for any missing TailwindCSS classes */

.min-h-screen {
  min-height: 100vh;
}

.relative {
  position: relative;
}

.fixed {
  position: fixed;
}

.top-0 {
  top: 0;
}

.left-0 {
  left: 0;
}

.right-0 {
  right: 0;
}

.z-50 {
  z-index: 50;
}

.z-10 {
  z-index: 10;
}

/* Ensure proper background blur and transparency */

.bg-black\/60 {
  background-color: rgba(0, 0, 0, 0.6);
}

.backdrop-blur-md {
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.border-b {
  border-bottom-width: 1px;
}

.border-white\/10 {
  border-color: rgba(255, 255, 255, 0.1);
}

/* ===== STABILISATION ULTRA-SUBTILE - Solution Anti-Scintillement ===== */

/* 🎯 Performance & Anti-flicker optimizations */

* {
  will-change: auto;
}

/* 🎨 Animations fluides et subtiles avec contrôle de performances */

@keyframes blob-stable {
  0%, 100% {
    transform: translate3d(0px, 0px, 0) scale(1) rotate(0deg);
    filter: blur(40px) opacity(0.8);
  }

  33% {
    transform: translate3d(15px, -25px, 0) scale(1.05) rotate(60deg);
    filter: blur(42px) opacity(0.9);
  }

  66% {
    transform: translate3d(-10px, 10px, 0) scale(0.95) rotate(120deg);
    filter: blur(38px) opacity(0.85);
  }
}

.animate-blob {
  animation: blob-stable 12s cubic-bezier(0.25, 0.46, 0.45, 0.94) infinite;
  transform-origin: center center;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  perspective: 1000px;
  will-change: transform;
}

.animation-delay-2000 {
  animation-delay: 2s;
}

/* 🌊 Transitions ultra-lisses */

@keyframes float-graceful {
  0%, 100% {
    transform: translateY(0px) translateZ(0);
  }

  50% {
    transform: translateY(-12px) translateZ(0);
  }
}

.animate-float {
  animation: float-graceful 6s cubic-bezier(0.4, 0.0, 0.2, 1) infinite;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

@keyframes spin-elegant {
  from {
    transform: rotate(0deg) translateZ(0);
  }

  to {
    transform: rotate(360deg) translateZ(0);
  }
}

.animate-spin-slow {
  animation: spin-elegant 12s cubic-bezier(0.4, 0.0, 0.2, 1) infinite;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

/* 💫 Stabilisation des intersections et scrolls */

/* 🎭 Réduction des repaints et reflows */

/* 🛡️ Anti-flicker pour les sections dynamiques */

.content-stabilizer {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  contain: layout style paint;
}

/* 🎯 Optimisations spécifiques ML et scroll */

.ml-stable {
  transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1);
  will-change: auto;
}

.scroll-stable {
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* 🌟 Effets subtils sans scintillement */

@keyframes subtle-glow {
  0%, 100% {
    box-shadow: 0 0 5px rgba(59, 130, 246, 0.1);
    opacity: 0.8;
  }

  50% {
    box-shadow: 0 0 20px rgba(59, 130, 246, 0.2);
    opacity: 1;
  }
}

/* 🎨 Background fixes pour éviter les "jumps" */

.bg-fixed-stable {
  background-attachment: scroll; /* Plus stable que fixed */
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  will-change: auto;
}

/* 🔧 Utility classes pour debug et stabilité */

@media (min-width: 640px) {
  .sm\:top-3 {
    top: 0.75rem;
  }

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

  .sm\:mt-0 {
    margin-top: 0px;
  }

  .sm\:mt-4 {
    margin-top: 1rem;
  }

  .sm\:mr-2 {
    margin-right: 0.5rem;
  }

  .sm\:mb-3 {
    margin-bottom: 0.75rem;
  }

  .sm\:mb-4 {
    margin-bottom: 1rem;
  }

  .sm\:mb-5 {
    margin-bottom: 1.25rem;
  }

  .sm\:mb-6 {
    margin-bottom: 1.5rem;
  }

  .sm\:mb-8 {
    margin-bottom: 2rem;
  }

  .sm\:inline {
    display: inline;
  }

  .sm\:flex {
    display: flex;
  }

  .sm\:h-2 {
    height: 0.5rem;
  }

  .sm\:h-3 {
    height: 0.75rem;
  }

  .sm\:h-6 {
    height: 1.5rem;
  }

  .sm\:h-7 {
    height: 1.75rem;
  }

  .sm\:h-10 {
    height: 2.5rem;
  }

  .sm\:h-12 {
    height: 3rem;
  }

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

  .sm\:h-56 {
    height: 14rem;
  }

  .sm\:h-64 {
    height: 16rem;
  }

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

  .sm\:h-3\.5 {
    height: 0.875rem;
  }

  .sm\:w-2 {
    width: 0.5rem;
  }

  .sm\:w-3 {
    width: 0.75rem;
  }

  .sm\:w-7 {
    width: 1.75rem;
  }

  .sm\:w-10 {
    width: 2.5rem;
  }

  .sm\:w-12 {
    width: 3rem;
  }

  .sm\:w-20 {
    width: 5rem;
  }

  .sm\:w-56 {
    width: 14rem;
  }

  .sm\:w-64 {
    width: 16rem;
  }

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

  .sm\:w-3\.5 {
    width: 0.875rem;
  }

  .sm\:scale-150 {
    --tw-scale-x: 1.5;
    --tw-scale-y: 1.5;
  }

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

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

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

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

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

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

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

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

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

  .sm\:gap-0 {
    gap: 0px;
  }

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

  .sm\:gap-2 {
    gap: 0.5rem;
  }

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

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

  .sm\:gap-5 {
    gap: 1.25rem;
  }

  .sm\:space-x-1 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-x-reverse: 0;
    margin-right: calc(0.25rem * var(--tw-space-x-reverse));
    margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));
  }

  .sm\:space-x-2 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-x-reverse: 0;
    margin-right: calc(0.5rem * var(--tw-space-x-reverse));
    margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
  }

  .sm\:space-x-1\.5 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-x-reverse: 0;
    margin-right: calc(0.375rem * var(--tw-space-x-reverse));
    margin-left: calc(0.375rem * calc(1 - var(--tw-space-x-reverse)));
  }

  .sm\:space-x-2\.5 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-x-reverse: 0;
    margin-right: calc(0.625rem * var(--tw-space-x-reverse));
    margin-left: calc(0.625rem * calc(1 - var(--tw-space-x-reverse)));
  }

  .sm\:space-y-1 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
  }

  .sm\:space-y-4 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(1rem * var(--tw-space-y-reverse));
  }

  .sm\:space-y-1\.5 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(0.375rem * var(--tw-space-y-reverse));
  }

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

  .sm\:rounded-xl {
    border-radius: 0.75rem;
  }

  .sm\:border-2 {
    border-width: 2px;
  }

  .sm\:p-2 {
    padding: 0.5rem;
  }

  .sm\:p-3 {
    padding: 0.75rem;
  }

  .sm\:p-4 {
    padding: 1rem;
  }

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

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

  .sm\:p-8 {
    padding: 2rem;
  }

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

  .sm\:px-2 {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }

  .sm\:px-3 {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }

  .sm\:px-4 {
    padding-left: 1rem;
    padding-right: 1rem;
  }

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

  .sm\:py-1 {
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
  }

  .sm\:py-2 {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
  }

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

  .sm\:py-1\.5 {
    padding-top: 0.375rem;
    padding-bottom: 0.375rem;
  }

  .sm\:py-2\.5 {
    padding-top: 0.625rem;
    padding-bottom: 0.625rem;
  }

  .sm\:pt-3 {
    padding-top: 0.75rem;
  }

  .sm\:pt-36 {
    padding-top: 9rem;
  }

  .sm\:pb-12 {
    padding-bottom: 3rem;
  }

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

  .sm\:text-xs {
    font-size: 0.75rem;
    line-height: 1rem;
  }

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

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

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

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

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

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

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

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

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

  .sm\:shadow-2xl {
    --tw-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  }
}

@media (min-width: 768px) {
  .md\:sticky {
    position: sticky;
  }

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

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

  .md\:col-span-4 {
    grid-column: span 4 / span 4;
  }

  .md\:mr-8 {
    margin-right: 2rem;
  }

  .md\:mb-24 {
    margin-bottom: 6rem;
  }

  .md\:ml-0 {
    margin-left: 0px;
  }

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

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

  .md\:block {
    display: block;
  }

  .md\:flex {
    display: flex;
  }

  .md\:hidden {
    display: none;
  }

  .md\:h-8 {
    height: 2rem;
  }

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

  .md\:h-28 {
    height: 7rem;
  }

  .md\:h-36 {
    height: 9rem;
  }

  .md\:h-40 {
    height: 10rem;
  }

  .md\:h-44 {
    height: 11rem;
  }

  .md\:h-64 {
    height: 16rem;
  }

  .md\:h-screen {
    height: 100vh;
  }

  .md\:w-8 {
    width: 2rem;
  }

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

  .md\:w-28 {
    width: 7rem;
  }

  .md\:w-36 {
    width: 9rem;
  }

  .md\:w-40 {
    width: 10rem;
  }

  .md\:w-44 {
    width: 11rem;
  }

  .md\:w-56 {
    width: 14rem;
  }

  .md\:w-64 {
    width: 16rem;
  }

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

  .md\:translate-x-0 {
    --tw-translate-x: 0px;
  }

  .md\:scale-100 {
    --tw-scale-x: 1;
    --tw-scale-y: 1;
  }

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

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

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

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

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

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

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

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

  .md\:gap-1 {
    gap: 0.25rem;
  }

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

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

  .md\:space-y-6 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
  }

  .md\:space-y-8 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(2rem * var(--tw-space-y-reverse));
  }

  .md\:rounded-2xl {
    border-radius: 1rem;
  }

  .md\:p-4 {
    padding: 1rem;
  }

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

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

  .md\:p-8 {
    padding: 2rem;
  }

  .md\:p-12 {
    padding: 3rem;
  }

  .md\:px-4 {
    padding-left: 1rem;
    padding-right: 1rem;
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

@media (min-width: 1024px) {
  .lg\:order-1 {
    order: 1;
  }

  .lg\:order-2 {
    order: 2;
  }

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

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

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

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

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

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

  .lg\:mr-3 {
    margin-right: 0.75rem;
  }

  .lg\:mb-6 {
    margin-bottom: 1.5rem;
  }

  .lg\:mb-8 {
    margin-bottom: 2rem;
  }

  .lg\:mb-12 {
    margin-bottom: 3rem;
  }

  .lg\:block {
    display: block;
  }

  .lg\:flex {
    display: flex;
  }

  .lg\:hidden {
    display: none;
  }

  .lg\:h-4 {
    height: 1rem;
  }

  .lg\:h-24 {
    height: 6rem;
  }

  .lg\:h-56 {
    height: 14rem;
  }

  .lg\:w-4 {
    width: 1rem;
  }

  .lg\:w-24 {
    width: 6rem;
  }

  .lg\:w-56 {
    width: 14rem;
  }

  .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-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

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

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

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

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

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

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

  .lg\:gap-1 {
    gap: 0.25rem;
  }

  .lg\:gap-2 {
    gap: 0.5rem;
  }

  .lg\:gap-6 {
    gap: 1.5rem;
  }

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

  .lg\:gap-10 {
    gap: 2.5rem;
  }

  .lg\:gap-12 {
    gap: 3rem;
  }

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

  .lg\:rounded-2xl {
    border-radius: 1rem;
  }

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

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

  .lg\:p-8 {
    padding: 2rem;
  }

  .lg\:px-8 {
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .lg\:py-3 {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
  }

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

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

  .lg\:pt-32 {
    padding-top: 8rem;
  }

  .lg\:pr-2 {
    padding-right: 0.5rem;
  }

  .lg\:text-xs {
    font-size: 0.75rem;
    line-height: 1rem;
  }

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

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

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

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

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

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

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

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

  .lg\:text-7xl {
    font-size: 4.5rem;
    line-height: 1;
  }

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

@media (min-width: 1280px) {
  .xl\:order-1 {
    order: 1;
  }

  .xl\:order-2 {
    order: 2;
  }

  .xl\:col-span-1 {
    grid-column: span 1 / span 1;
  }

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

  .xl\:col-span-3 {
    grid-column: span 3 / span 3;
  }

  .xl\:block {
    display: block;
  }

  .xl\:flex {
    display: flex;
  }

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

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

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

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

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

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

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

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

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

  .xl\:justify-start {
    justify-content: flex-start;
  }

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

  .xl\:gap-12 {
    gap: 3rem;
  }

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

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

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

@media (min-width: 850px) {
  .tablet-lg\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1016px) {
}

/* 🌙 GLOBAL DARK THEME - Inputs et Textarea */

/* Variables CSS pour cohérence */

:root {
  --dark-bg-primary: #0f172a;
  --dark-bg-secondary: #1e293b;
  --dark-bg-tertiary: #334155;
  --dark-border: #475569;
  --dark-text: #f1f5f9;
  --dark-text-secondary: #cbd5e1;
  --dark-accent: #06b6d4;
  --dark-accent-hover: #0891b2;
}

/* 🎨 GLOBAL INPUT STYLING - Dark Theme */

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="password"],
input[type="search"],
input[type="url"],
input[type="number"],
textarea {
  /* Background sombre glassmorphique */
  background: rgba(15, 23, 42, 0.8) !important;
  border: 1px solid rgba(71, 85, 105, 0.3) !important;
  color: #f1f5f9 !important;
  /* Transitions fluides */
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  /* Bordure radius moderne */
  border-radius: 12px !important;
  /* Padding confortable */
  padding: 12px 16px !important;
  /* Typographie */
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  /* Backdrop blur pour effet verre */
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
}

/* 🌟 États Focus et Hover */

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="url"]:focus,
input[type="number"]:focus,
textarea:focus {
  outline: none !important;
  border-color: var(--dark-accent) !important;
  box-shadow: 
    0 0 0 3px rgba(6, 182, 212, 0.1),
    0 4px 12px rgba(6, 182, 212, 0.15) !important;
  background: rgba(15, 23, 42, 0.9) !important;
}

input[type="text"]:hover,
input[type="email"]:hover,
input[type="tel"]:hover,
input[type="password"]:hover,
input[type="search"]:hover,
input[type="url"]:hover,
input[type="number"]:hover,
textarea:hover {
  border-color: rgba(71, 85, 105, 0.5) !important;
  background: rgba(15, 23, 42, 0.85) !important;
}

/* 🎯 Placeholder Styling */

input::-moz-placeholder, textarea::-moz-placeholder {
  color: #94a3b8 !important;
  opacity: 0.8 !important;
}

input::placeholder,
textarea::placeholder {
  color: #94a3b8 !important;
  opacity: 0.8 !important;
}

/* 📝 Textarea Spécifique */

textarea {
  min-height: 120px !important;
  resize: vertical !important;
  font-family: inherit !important;
}

/* 🏷️ Labels Dark Theme */

label {
  color: var(--dark-text) !important;
  font-weight: 400 !important;
  margin-bottom: 6px !important;
  display: block !important;
}

/* 🔲 Checkbox et Radio Buttons */

input[type="checkbox"],
input[type="radio"] {
  accent-color: var(--dark-accent) !important;
  transform: scale(1.1) !important;
}

/* 🛡️ Disabled States - Inputs et Textarea seulement */

input:disabled,
textarea:disabled {
  opacity: 0.5 !important;
  cursor: not-allowed !important;
  background: rgba(15, 23, 42, 0.5) !important;
}

/* 📱 Mobile Optimizations */

@media (max-width: 768px) {
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="password"],
  input[type="search"],
  input[type="url"],
  input[type="number"],
  textarea {
    padding: 14px 16px !important;
    font-size: 16px !important; /* Évite le zoom iOS */
  }
}

/* 🎯 Validation States */

input.valid,
textarea.valid {
  border-color: #22c55e !important;
  box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.1) !important;
}

input.invalid,
textarea.invalid {
  border-color: #ef4444 !important;
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1) !important;
}

/* 🔍 Search Inputs */

input[type="search"] {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23f1f5f9%27%3E%3Ccircle cx=%2711%27 cy=%2711%27 r=%278%27/%3E%3Cpath d=%27m21 21-4.35-4.35%27/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 12px center !important;
  background-size: 18px !important;
  padding-right: 45px !important;
}

/* 🎨 Form Groups */

.form-group,
.input-group {
  margin-bottom: 20px !important;
}

.form-group label,
.input-group label {
  margin-bottom: 8px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--dark-text) !important;
}

/* 💫 Animation d'apparition - Inputs et Textarea seulement */

input,
textarea {
  animation: fadeInUp 0.3s ease-out !important;
}

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

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/**
 * 🌟 GLASSMORPHISM ANIMATIONS - Animations pour Navigation Premium
 * 
 * Animations CSS pour les effets de brillance et glassmorphisme
 * de la navigation UniversalMegaNavigation
 */

/* Animation de brillance pour les icônes */

@keyframes shimmer {
  0% {
    transform: translateX(-100%) skewX(-25deg);
  }

  100% {
    transform: translateX(200%) skewX(-25deg);
  }
}

/* Animation de glissement pour les CTAs */

@keyframes slide {
  0% {
    transform: translateX(-100%) skewX(-25deg);
  }

  100% {
    transform: translateX(200%) skewX(-25deg);
  }
}

/* Animation de pulsation pour les points indicateurs */

@keyframes pulse-indicator {
  0%, 100% {
    opacity: 0.6;
    transform: scale(1);
    box-shadow: 0 0 8px rgba(59, 130, 246, 0.4);
  }

  50% {
    opacity: 1;
    transform: scale(1.1);
    box-shadow: 0 0 16px rgba(59, 130, 246, 0.6);
  }
}

/* Animation de flottement pour les particules */

@keyframes float {
  0%, 100% {
    transform: translateY(0px) rotate(0deg);
  }

  33% {
    transform: translateY(-10px) rotate(120deg);
  }

  66% {
    transform: translateY(5px) rotate(240deg);
  }
}

/* Animation d'apparition progressive pour le mega-menu */

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px) scale(0.95);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* Animation de vague lumineuse */

@keyframes wave-light {
  0% {
    background-position: -200% center;
  }

  100% {
    background-position: 200% center;
  }
}

/* Styles pour les effets de glassmorphisme */

.glassmorphism-surface {
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  background: linear-gradient(
    135deg, 
    rgba(255, 255, 255, 0.1) 0%, 
    rgba(255, 255, 255, 0.05) 100%
  );
  border: 1px solid rgba(255, 255, 255, 0.15);
  box-shadow: 
    0 8px 32px rgba(0, 0, 0, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

/* Effet de brillance au hover */

.shine-effect {
  position: relative;
  overflow: hidden;
}

.shine-effect::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    90deg, 
    transparent, 
    rgba(255, 255, 255, 0.2), 
    transparent
  );
  transition: left 0.5s ease;
  z-index: 1;
}

.shine-effect:hover::before {
  left: 100%;
}

/* Effet de glow adaptatif */

.adaptive-glow {
  transition: all 0.3s ease;
  box-shadow: 0 0 20px rgba(59, 130, 246, 0);
}

.adaptive-glow:hover {
  box-shadow: 
    0 0 30px rgba(59, 130, 246, 0.3),
    0 0 60px rgba(59, 130, 246, 0.1);
}

/* Animation de typing pour les textes */

@keyframes typing {
  from { width: 0;
  }

  to { width: 100%;
  }
}

/* Animation de clignotement pour le curseur */

@keyframes blink {
  0%, 50% { border-color: transparent;
  }

  51%, 100% { border-color: rgba(59, 130, 246, 0.8);
  }
}

/* Styles pour les transitions fluides */

.smooth-transition {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.smooth-transition-slow {
  transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Effet de morphing pour les éléments */

.morph-effect {
  transition: 
    transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
    border-radius 0.3s cubic-bezier(0.4, 0, 0.2, 1),
    background 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Animation de rotation infinie douce */

@keyframes rotate-gentle {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

.rotate-gentle {
  animation: rotate-gentle 20s linear infinite;
}

/* Effet de parallax subtil */

.parallax-subtle {
  transform: translateZ(0);
  will-change: transform;
}

/* Classes utilitaires pour l'optimisation GPU */

.gpu-accelerated {
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  perspective: 1000px;
}

/* Animation de respiration pour les éléments importants */

@keyframes breathe {
  0%, 100% {
    transform: scale(1);
    opacity: 0.8;
  }

  50% {
    transform: scale(1.05);
    opacity: 1;
  }
}

.breathe {
  animation: breathe 3s ease-in-out infinite;
}

/* Effet de dispersion de particules */

@keyframes particle-disperse {
  0% {
    opacity: 1;
    transform: scale(0) translate(0, 0);
  }

  100% {
    opacity: 0;
    transform: scale(1) translate(var(--x, 0), var(--y, 0));
  }
}

/* Style pour masquer le scrollbar sur les éléments avec overflow */

.hide-scrollbar {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.hide-scrollbar::-webkit-scrollbar {
  display: none;
}

/* Responsive breakpoints helpers */

@media (max-width: 768px) {
  .glassmorphism-surface {
    backdrop-filter: blur(15px) saturate(150%);
    -webkit-backdrop-filter: blur(15px) saturate(150%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .shimmer,
  .slide,
  .pulse-indicator,
  .float,
  .breathe,
  .rotate-gentle {
    animation: none;
  }

  .smooth-transition,
  .smooth-transition-slow,
  .morph-effect {
    transition: none;
  }
}

/* 🎨 ANIMATIONS AVANCÉES POUR LES ICÔNES TECHNOLOGIQUES */

/* Animation de pulse subtile pour les icônes prioritaires */

@keyframes pulse-subtle {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }

  50% {
    opacity: 0.85;
    transform: scale(1.02);
  }
}

.animate-pulse-subtle {
  animation: pulse-subtle 3s ease-in-out infinite;
}

/* Animation de flottement magnétique */

@keyframes magnetic-float {
  0%, 100% {
    transform: translateY(0px) rotate(0deg);
  }

  25% {
    transform: translateY(-2px) rotate(0.5deg);
  }

  75% {
    transform: translateY(2px) rotate(-0.5deg);
  }
}

.tech-magnetic-float {
  animation: magnetic-float 4s ease-in-out infinite;
}

/* Animation de brillance technologique */

@keyframes tech-shine {
  0% {
    box-shadow: 0 0 5px rgba(59, 130, 246, 0.3);
  }

  50% {
    box-shadow: 0 0 20px rgba(59, 130, 246, 0.6), 0 0 30px rgba(59, 130, 246, 0.3);
  }

  100% {
    box-shadow: 0 0 5px rgba(59, 130, 246, 0.3);
  }
}

.tech-shine {
  animation: tech-shine 2s ease-in-out infinite alternate;
}

/* Animation de rotation douce pour les icônes */

@keyframes gentle-rotate {
  0% {
    transform: rotate(0deg);
  }

  25% {
    transform: rotate(2deg);
  }

  75% {
    transform: rotate(-2deg);
  }

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

.tech-gentle-rotate {
  animation: gentle-rotate 6s ease-in-out infinite;
}

/* Animation d'apparition décalée pour le hero */

@keyframes tech-hero-appear {
  0% {
    opacity: 0;
    transform: translateY(20px) scale(0.8);
  }

  60% {
    opacity: 0.7;
    transform: translateY(-5px) scale(1.05);
  }

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

.tech-hero-appear {
  animation: tech-hero-appear 0.8s ease-out forwards;
  opacity: 0; /* État initial */
}

/* Animation de hover sophistiquée */

.techicon-hover {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer;
}

.techicon-hover:hover {
  transform: translateY(-3px) scale(1.15);
  filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.3));
  z-index: 10;
}

/* Animation de pulsation pour les icônes prioritaires */

.priority-high {
  animation: tech-shine 3s ease-in-out infinite alternate;
}

.priority-high:hover {
  animation: none;
  transform: translateY(-4px) scale(1.2);
  filter: drop-shadow(0 15px 25px rgba(59, 130, 246, 0.4));
}

/* Animation de groupe - wave effect */

@keyframes wave-effect {
  0%, 100% {
    transform: translateY(0px);
  }

  50% {
    transform: translateY(-3px);
  }
}

.tech-wave-1 { animation: wave-effect 2s ease-in-out infinite; animation-delay: 0.1s;
}

.tech-wave-2 { animation: wave-effect 2s ease-in-out infinite; animation-delay: 0.2s;
}

.tech-wave-3 { animation: wave-effect 2s ease-in-out infinite; animation-delay: 0.3s;
}

.tech-wave-4 { animation: wave-effect 2s ease-in-out infinite; animation-delay: 0.4s;
}

.tech-wave-5 { animation: wave-effect 2s ease-in-out infinite; animation-delay: 0.5s;
}

/* Animation de rotation pour les icônes spécifiques */

.tech-react { animation: gentle-rotate 8s linear infinite;
}

.tech-vue { animation: tech-shine 2.5s ease-in-out infinite alternate;
}

.tech-angular { animation: magnetic-float 5s ease-in-out infinite;
}

/* Effets de survol par technologie */

.tech-icon-container:hover .tech-react {
  animation: gentle-rotate 1s linear infinite;
}

.tech-icon-container:hover .tech-vue {
  filter: hue-rotate(90deg);
}

.tech-icon-container:hover .tech-angular {
  transform: scale(1.1) rotate(360deg);
  transition: transform 0.5s ease-in-out;
}

/* Animation d'entrée progressive */

.tech-entrance-delay-1 { animation-delay: 0.1s;
}

.tech-entrance-delay-2 { animation-delay: 0.2s;
}

.tech-entrance-delay-3 { animation-delay: 0.3s;
}

.tech-entrance-delay-4 { animation-delay: 0.4s;
}

.tech-entrance-delay-5 { animation-delay: 0.5s;
}

.tech-entrance-delay-6 { animation-delay: 0.6s;
}

.tech-entrance-delay-7 { animation-delay: 0.7s;
}

.tech-entrance-delay-8 { animation-delay: 0.8s;
}

/* Animation globale du container */

.techhero {
  animation: tech-container-appear 1.2s ease-out forwards;
}

@keyframes tech-container-appear {
  0% {
    opacity: 0;
    transform: translateY(30px);
  }

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

/* Effet de parallaxe subtil */

.tech-parallax {
  transition: transform 0.1s ease-out;
}

/* Responsive: réduire les animations sur mobile */

@media (max-width: 640px) {
  .techicon-hover:hover {
    transform: scale(1.05);
  }

  .tech-shine,
  .magnetic-float,
  .gentle-rotate {
    animation-duration: 4s;
  }
}

/* Mode réduit pour les utilisateurs préférant moins d'animations */

@media (prefers-reduced-motion: reduce) {
  .tech-shine,
  .magnetic-float,
  .gentle-rotate,
  .animate-pulse-subtle,
  .wave-effect {
    animation: none;
  }

  .techicon-hover:hover {
    transform: scale(1.05);
  }
}

/* GRADIENT TITLES - Styles modernes pour les titres h1, h2, h3 */

/* === GRADIENTS PRINCIPAUX === */

/* Gradient principal cyan-purple */

.gradient-title-primary {
  background: linear-gradient(135deg, #06b6d4 0%, #3b82f6 25%, #8b5cf6 50%, #d946ef 75%, #ec4899 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-size: 200% 200%;
  animation: gradient-shift 8s ease-in-out infinite;
}

/* Gradient neon électrique */

.gradient-title-neon {
  background: linear-gradient(45deg, #00ffff 0%, #ff00ff 25%, #ffff00 50%, #00ff00 75%, #ff0080 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-size: 300% 300%;
  animation: neon-pulse 6s ease-in-out infinite;
  filter: drop-shadow(0 0 20px rgba(0, 255, 255, 0.3));
}

/* Gradient sunset moderne */

.gradient-title-sunset {
  background: linear-gradient(135deg, #f97316 0%, #ef4444 25%, #ec4899 50%, #8b5cf6 75%, #06b6d4 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-size: 250% 250%;
  animation: sunset-flow 10s ease-in-out infinite;
}

/* Gradient aurora boréale */

.gradient-title-aurora {
  background: linear-gradient(45deg, #10b981 0%, #06b6d4 20%, #3b82f6 40%, #8b5cf6 60%, #ec4899 80%, #f59e0b 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-size: 400% 400%;
  animation: aurora-dance 12s ease-in-out infinite;
}

/* Gradient océan profond */

.gradient-title-ocean {
  background: linear-gradient(135deg, #1e3a8a 0%, #1e40af 25%, #2563eb 50%, #06b6d4 75%, #0891b2 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-size: 200% 200%;
  animation: ocean-wave 8s ease-in-out infinite;
}

/* Gradient feu digital */

.gradient-title-fire {
  background: linear-gradient(45deg, #fbbf24 0%, #f59e0b 25%, #f97316 50%, #ef4444 75%, #dc2626 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-size: 250% 250%;
  animation: fire-flicker 4s ease-in-out infinite;
}

/* === GRADIENTS SUBTILS POUR H2/H3 === */

/* Gradient doux purple-cyan */

.gradient-title-soft {
  background: linear-gradient(90deg, #a855f7 0%, #3b82f6 50%, #06b6d4 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-size: 150% 150%;
  animation: soft-glow 6s ease-in-out infinite;
}

/* Gradient élégant silver-gold */

.gradient-title-elegant {
  background: linear-gradient(135deg, #e5e7eb 0%, #d1d5db 25%, #fbbf24 50%, #f59e0b 75%, #d97706 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-size: 200% 200%;
  animation: elegant-shine 8s ease-in-out infinite;
}

/* Gradient minimaliste */

.gradient-title-minimal {
  background: linear-gradient(90deg, #6b7280 0%, #374151 50%, #1f2937 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-size: 150% 150%;
  animation: minimal-shift 10s ease-in-out infinite;
}

/* === ANIMATIONS === */

@keyframes gradient-shift {
  0%, 100% { background-position: 0% 0%;
  }

  25% { background-position: 100% 0%;
  }

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

  75% { background-position: 0% 100%;
  }
}

@keyframes neon-pulse {
  0%, 100% {
    background-position: 0% 0%;
    filter: drop-shadow(0 0 20px rgba(0, 255, 255, 0.3));
  }

  25% {
    background-position: 100% 50%;
    filter: drop-shadow(0 0 30px rgba(255, 0, 255, 0.4));
  }

  50% {
    background-position: 50% 100%;
    filter: drop-shadow(0 0 25px rgba(255, 255, 0, 0.35));
  }

  75% {
    background-position: 0% 50%;
    filter: drop-shadow(0 0 35px rgba(0, 255, 0, 0.4));
  }
}

@keyframes sunset-flow {
  0%, 100% { background-position: 0% 50%;
  }

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

@keyframes aurora-dance {
  0%, 100% { background-position: 0% 0%;
  }

  20% { background-position: 25% 25%;
  }

  40% { background-position: 75% 75%;
  }

  60% { background-position: 100% 50%;
  }

  80% { background-position: 50% 100%;
  }
}

@keyframes ocean-wave {
  0%, 100% { background-position: 0% 50%;
  }

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

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

  75% { background-position: 50% 100%;
  }
}

@keyframes fire-flicker {
  0%, 100% {
    background-position: 0% 50%;
    transform: scale(1);
  }

  25% {
    background-position: 25% 25%;
    transform: scale(1.02);
  }

  50% {
    background-position: 75% 75%;
    transform: scale(0.98);
  }

  75% {
    background-position: 100% 50%;
    transform: scale(1.01);
  }
}

@keyframes soft-glow {
  0%, 100% { background-position: 0% 50%;
  }

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

@keyframes elegant-shine {
  0%, 100% { background-position: 0% 0%;
  }

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

@keyframes minimal-shift {
  0%, 100% { background-position: 0% 50%;
  }

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

/* === CLASSES UTILITAIRES === */

/* Application automatique aux titres H1 */

h1.gradient-auto {
  background: linear-gradient(135deg, #06b6d4 0%, #3b82f6 25%, #8b5cf6 50%, #d946ef 75%, #ec4899 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-size: 200% 200%;
  animation: gradient-shift 8s ease-in-out infinite;
}

@media (max-width: 768px) {
  h1.gradient-auto,
  .gradient-title-neon,
  .gradient-title-sunset,
  .gradient-title-aurora,
  .gradient-title-ocean,
  .gradient-title-fire {
    animation-duration: 12s; /* Plus lent sur mobile */
  }
}

@media (prefers-reduced-motion: reduce) {
  h1.gradient-auto,
  .gradient-title-neon,
  .gradient-title-sunset,
  .gradient-title-aurora,
  .gradient-title-ocean,
  .gradient-title-fire,
  .gradient-title-soft,
  .gradient-title-elegant,
  .gradient-title-minimal {
    animation: none;
    background-position: 50% 50%;
  }
}

h1.gradient-auto {
  font-weight: 800;
  line-height: 1.1;
}

/* Application automatique aux titres H2 */

h2.gradient-auto {
  background: linear-gradient(90deg, #a855f7 0%, #3b82f6 50%, #06b6d4 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-size: 150% 150%;
  animation: soft-glow 6s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .gradient-title-primary,
  .gradient-title-neon,
  .gradient-title-sunset,
  .gradient-title-aurora,
  .gradient-title-ocean,
  .gradient-title-fire,
  .gradient-title-soft,
  .gradient-title-elegant,
  .gradient-title-minimal {
    animation: none;
    background-position: 50% 50%;
  }
}

h2.gradient-auto {
  font-weight: 700;
  line-height: 1.2;
}

/* Application automatique aux titres H3 */

h3.gradient-auto {
  background: linear-gradient(135deg, #e5e7eb 0%, #d1d5db 25%, #fbbf24 50%, #f59e0b 75%, #d97706 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-size: 200% 200%;
  animation: elegant-shine 8s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .gradient-title-primary,
  .gradient-title-neon,
  .gradient-title-sunset,
  .gradient-title-aurora,
  .gradient-title-ocean,
  .gradient-title-fire,
  .gradient-title-soft,
  .gradient-title-elegant,
  .gradient-title-minimal {
    animation: none;
    background-position: 50% 50%;
  }
}

h3.gradient-auto {
  font-weight: 600;
  line-height: 1.3;
}

/* === VARIANTS RESPONSIVE === */

/* Mobile : gradients plus subtils */

@media (max-width: 768px) {
  .gradient-title-primary,
  .gradient-title-neon,
  .gradient-title-sunset,
  .gradient-title-aurora,
  .gradient-title-ocean,
  .gradient-title-fire {
    animation-duration: 12s; /* Plus lent sur mobile */
  }

  .gradient-title-neon {
    filter: drop-shadow(0 0 10px rgba(0, 255, 255, 0.2)); /* Moins intense */
  }
}

/* === CLASSES POUR CONTEXTES SPÉCIFIQUES === */

/* Pour les pages d'accueil - gradient très impactant */

.home-hero-title {
  background: linear-gradient(45deg, #10b981 0%, #06b6d4 20%, #3b82f6 40%, #8b5cf6 60%, #ec4899 80%, #f59e0b 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-size: 400% 400%;
  animation: aurora-dance 12s ease-in-out infinite;
}

@media (max-width: 768px) {
  .gradient-title-primary,
  .gradient-title-neon,
  .gradient-title-sunset,
  .gradient-title-aurora,
  .gradient-title-ocean,
  .gradient-title-fire {
    animation-duration: 12s; /* Plus lent sur mobile */
  }
}

@media (prefers-reduced-motion: reduce) {
  .gradient-title-primary,
  .gradient-title-neon,
  .gradient-title-sunset,
  .gradient-title-aurora,
  .gradient-title-ocean,
  .gradient-title-fire,
  .gradient-title-soft,
  .gradient-title-elegant,
  .gradient-title-minimal {
    animation: none;
    background-position: 50% 50%;
  }
}

.home-hero-title {
  font-size: clamp(2.5rem, 8vw, 6rem);
  font-weight: 900;
  letter-spacing: -0.02em;
}

/* Pour les sections services - gradient professionnel */

.services-title {
  background: linear-gradient(135deg, #1e3a8a 0%, #1e40af 25%, #2563eb 50%, #06b6d4 75%, #0891b2 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-size: 200% 200%;
  animation: ocean-wave 8s ease-in-out infinite;
}

@media (max-width: 768px) {
  .gradient-title-primary,
  .gradient-title-neon,
  .gradient-title-sunset,
  .gradient-title-aurora,
  .gradient-title-ocean,
  .gradient-title-fire {
    animation-duration: 12s; /* Plus lent sur mobile */
  }
}

@media (prefers-reduced-motion: reduce) {
  .gradient-title-primary,
  .gradient-title-neon,
  .gradient-title-sunset,
  .gradient-title-aurora,
  .gradient-title-ocean,
  .gradient-title-fire,
  .gradient-title-soft,
  .gradient-title-elegant,
  .gradient-title-minimal {
    animation: none;
    background-position: 50% 50%;
  }
}

.services-title {
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 700;
}

/* Pour les articles de blog - gradient lisible */

.blog-title {
  background: linear-gradient(90deg, #a855f7 0%, #3b82f6 50%, #06b6d4 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-size: 150% 150%;
  animation: soft-glow 6s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .gradient-title-primary,
  .gradient-title-neon,
  .gradient-title-sunset,
  .gradient-title-aurora,
  .gradient-title-ocean,
  .gradient-title-fire,
  .gradient-title-soft,
  .gradient-title-elegant,
  .gradient-title-minimal {
    animation: none;
    background-position: 50% 50%;
  }
}

.blog-title {
  font-size: clamp(1.5rem, 4vw, 2.5rem);
  font-weight: 600;
}

/* Pour les CTA - gradient énergique */

.cta-title {
  background: linear-gradient(45deg, #fbbf24 0%, #f59e0b 25%, #f97316 50%, #ef4444 75%, #dc2626 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-size: 250% 250%;
  animation: fire-flicker 4s ease-in-out infinite;
}

@media (max-width: 768px) {
  .gradient-title-primary,
  .gradient-title-neon,
  .gradient-title-sunset,
  .gradient-title-aurora,
  .gradient-title-ocean,
  .gradient-title-fire {
    animation-duration: 12s; /* Plus lent sur mobile */
  }
}

@media (prefers-reduced-motion: reduce) {
  .gradient-title-primary,
  .gradient-title-neon,
  .gradient-title-sunset,
  .gradient-title-aurora,
  .gradient-title-ocean,
  .gradient-title-fire,
  .gradient-title-soft,
  .gradient-title-elegant,
  .gradient-title-minimal {
    animation: none;
    background-position: 50% 50%;
  }
}

.cta-title {
  font-size: clamp(1.8rem, 4vw, 3rem);
  font-weight: 800;
}

/* === EFFETS HOVER === */

.gradient-title-hover:hover {
  animation-duration: 2s !important;
  transform: scale(1.02);
  transition: transform 0.3s ease;
}

/* === ACCESSIBILITÉ === */

/* Mode sombre forcé pour certains gradients */

@media (prefers-color-scheme: dark) {
  .gradient-title-minimal {
    background: linear-gradient(90deg, #d1d5db 0%, #9ca3af 50%, #6b7280 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
  }
}

/* Réduction de mouvement pour les utilisateurs sensibles */

@media (prefers-reduced-motion: reduce) {
  .gradient-title-primary,
  .gradient-title-neon,
  .gradient-title-sunset,
  .gradient-title-aurora,
  .gradient-title-ocean,
  .gradient-title-fire,
  .gradient-title-soft,
  .gradient-title-elegant,
  .gradient-title-minimal {
    animation: none;
    background-position: 50% 50%;
  }
}

/**
 * BLOG CLEAN CSS - Styles simples et fonctionnels pour les pages blog
 */

/* ========================================
   RESET ET BASE
   ======================================== */

.blog-container {
  min-height: 100vh;
  background: #000;
  color: #e2e8f0;
  padding-top: 150px; /* Espace pour PerfectDarkNavigation (130px height + 20px margin) */
}

/* ========================================
   LOADING & ERROR STATES
   ======================================== */

.blog-loading,
.blog-error {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 50vh;
  color: #e2e8f0;
  gap: 1rem;
}

.blog-loading .spinner {
  width: 50px;
  height: 50px;
  border: 3px solid rgba(16, 185, 129, 0.2);
  border-top-color: #10b981;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  to { transform: rotate(360deg);
  }
}

.blog-error a {
  color: #10b981;
  text-decoration: none !important;
  padding: 0.5rem 1rem;
  border: 1px solid #10b981;
  border-radius: 0.5rem;
  transition: all 0.3s ease;
}

.blog-error a:hover {
  background: rgba(16, 185, 129, 0.1);
}

/* ========================================
   ARTICLE CONTAINER
   ======================================== */

.blog-article {
  max-width: 900px;
  margin: 0 auto;
  padding: 2rem 1rem 4rem;
}

/* ========================================
   ARTICLE HEADER
   ======================================== */

.blog-header {
  margin-bottom: 3rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid rgba(148, 163, 184, 0.2);
}

.blog-breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 2rem;
  font-size: 0.875rem;
  color: #9ca3af;
}

.blog-breadcrumb a {
  color: #10b981;
  text-decoration: none !important;
  transition: color 0.3s ease;
}

.blog-breadcrumb a:hover {
  color: #34d399;
}

.blog-breadcrumb span {
  color: #6b7280;
}

.blog-title {
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.2;
  margin: 0 0 1.5rem;
  background: linear-gradient(135deg, #10b981, #14b8a6);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.blog-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
  font-size: 0.875rem;
  color: #9ca3af;
}

.blog-meta span {
  display: flex;
  align-items: center;
}

.blog-meta span::before {
  content: '';
  display: inline-block;
  width: 4px;
  height: 4px;
  background: #10b981;
  border-radius: 50%;
  margin-right: 0.5rem;
}

.blog-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.blog-tag {
  padding: 0.25rem 0.75rem;
  background: rgba(16, 185, 129, 0.1);
  border: 1px solid rgba(16, 185, 129, 0.3);
  border-radius: 1rem;
  font-size: 0.875rem;
  color: #10b981;
}

/* ========================================
   ARTICLE CONTENT
   ======================================== */

.blog-content {
  font-size: 1.125rem;
  line-height: 1.8;
  color: #d1d5db;
}

.blog-content h1,
.blog-content h2,
.blog-content h3,
.blog-content h4,
.blog-content h5,
.blog-content h6 {
  margin: 2rem 0 1rem;
  font-weight: 600;
  line-height: 1.3;
  color: #fff;
}

.blog-content h1 { font-size: 2rem;
}

.blog-content h2 {
  font-size: 1.75rem;
  padding-left: 1rem;
  border-left: 4px solid #10b981;
}

.blog-content h3 {
  font-size: 1.5rem;
  color: #10b981;
}

.blog-content h4 { font-size: 1.25rem;
}

.blog-content h5 { font-size: 1.125rem;
}

.blog-content h6 { font-size: 1rem;
}

.blog-content p {
  margin: 0 0 1.5rem;
}

/* Styles UNIQUEMENT pour les liens dans le contenu de l'article - PAS la navigation */

.blog-article a,
.blog-content a,
.blog-container .blog-article a,
.blog-container .blog-content a {
  color: #10b981;
  text-decoration: none !important;
  transition: color 0.3s ease;
}

.blog-article a:hover,
.blog-content a:hover,
.blog-container .blog-article a:hover,
.blog-container .blog-content a:hover {
  color: #34d399;
}

/* Exclure EXPLICITEMENT tous les éléments de navigation des styles de blog */

.blog-article header a,
.blog-article nav a,
.blog-article .navigation-wrapper a,
.blog-article .unified-page-navigation a,
.blog-content header a,
.blog-content nav a,
.blog-content .navigation-wrapper a,
.blog-content .unified-page-navigation a,
.blog-container header a,
.blog-container nav a,
.blog-container .navigation-wrapper a,
.blog-container .unified-page-navigation a {
  color: #e2e8f0 !important;
  text-decoration: none !important;
  background: none !important;
}

.blog-article header a:hover,
.blog-article nav a:hover,
.blog-container header a:hover,
.blog-container nav a:hover {
  color: #10b981 !important;
  background: rgba(16, 185, 129, 0.1) !important;
}

.blog-content ul,
.blog-content ol {
  margin: 1.5rem 0;
  padding-left: 2rem;
}

.blog-content li {
  margin-bottom: 0.5rem;
  line-height: 1.7;
}

.blog-content blockquote {
  margin: 2rem 0;
  padding: 1rem 1.5rem;
  border-left: 4px solid #10b981;
  background: rgba(16, 185, 129, 0.05);
  font-style: italic;
  color: #e2e8f0;
}

.blog-content pre {
  margin: 2rem 0;
  padding: 1.5rem;
  background: #0f172a;
  border: 1px solid rgba(148, 163, 184, 0.2);
  border-radius: 0.5rem;
  overflow-x: auto;
}

.blog-content code {
  font-family: 'Fira Code', 'Courier New', monospace;
  font-size: 0.9em;
}

.blog-content :not(pre) > code {
  padding: 0.2rem 0.4rem;
  background: rgba(16, 185, 129, 0.1);
  border: 1px solid rgba(16, 185, 129, 0.2);
  border-radius: 0.25rem;
  color: #10b981;
}

.blog-content img {
  max-width: 100%;
  height: auto;
  margin: 2rem auto;
  display: block;
  border-radius: 0.5rem;
}

.blog-content table {
  width: 100%;
  margin: 2rem 0;
  border-collapse: collapse;
  overflow-x: auto;
  display: block;
}

.blog-content th,
.blog-content td {
  padding: 0.75rem;
  text-align: left;
  border: 1px solid rgba(148, 163, 184, 0.2);
}

.blog-content th {
  background: rgba(16, 185, 129, 0.1);
  color: #10b981;
  font-weight: 600;
}

.blog-content tr:hover {
  background: rgba(16, 185, 129, 0.05);
}

.blog-content hr {
  margin: 3rem 0;
  border: none;
  border-top: 1px solid rgba(148, 163, 184, 0.2);
}

.blog-content strong {
  font-weight: 600;
  color: #fff;
}

.blog-content em {
  font-style: italic;
}

/* ========================================
   ARTICLE FOOTER
   ======================================== */

.blog-article-footer {
  margin-top: 4rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(148, 163, 184, 0.2);
  text-align: center;
}

.blog-back-link {
  display: inline-block;
  padding: 0.75rem 1.5rem;
  background: rgba(16, 185, 129, 0.1);
  border: 1px solid rgba(16, 185, 129, 0.3);
  border-radius: 0.5rem;
  color: #10b981;
  text-decoration: none !important;
  transition: all 0.3s ease;
}

.blog-back-link:hover {
  background: rgba(16, 185, 129, 0.2);
  transform: translateY(-2px);
}

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

@media (max-width: 768px) {
  .blog-container {
    padding-top: 150px; /* Même padding pour mobile */
  }

  .blog-article {
    padding: 1rem;
  }

  .blog-title {
    font-size: 2rem;
  }

  .blog-meta {
    font-size: 0.8rem;
    gap: 1rem;
  }

  .blog-content {
    font-size: 1rem;
  }

  .blog-content h1 { font-size: 1.75rem;
  }

  .blog-content h2 { font-size: 1.5rem;
  }

  .blog-content h3 { font-size: 1.25rem;
  }

  .blog-content pre {
    padding: 1rem;
    font-size: 0.8rem;
  }
}

/* ========================================
   FIX POUR LA NAVIGATION ET LE FOOTER
   ======================================== */

/* S'assurer que la navigation UnifiedPageNavigation reste visible et stylée comme sur /contact */

.navigation-wrapper,
.unified-page-navigation,
nav[data-navigation="unified"],
.navigation-header {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 9999 !important;
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  background: rgba(0, 0, 0, 0.9) !important;
  -webkit-backdrop-filter: blur(20px) !important;
          backdrop-filter: blur(20px) !important;
  border-bottom: 1px solid rgba(148, 163, 184, 0.2) !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* NUCLEAR FIX pour les liens de navigation - Priorité maximale */

header a,
header a:link,
header a:visited,
header a:hover,
header a:active,
nav a,
nav a:link, 
nav a:visited,
nav a:hover,
nav a:active,
.navigation-wrapper a,
.navigation-wrapper a:link,
.navigation-wrapper a:visited,
.navigation-wrapper a:hover,
.navigation-wrapper a:active,
.unified-page-navigation a,
.unified-page-navigation a:link,
.unified-page-navigation a:visited,
.unified-page-navigation a:hover,
.unified-page-navigation a:active {
  color: #e2e8f0 !important;
  text-decoration: none !important;
  border-bottom: none !important;
  text-underline-offset: initial !important;
  text-decoration-line: none !important;
  text-decoration-color: transparent !important;
  text-decoration-style: none !important;
  text-decoration-thickness: 0 !important;
}

/* Hover spécifique pour navigation */

header a:hover,
nav a:hover,
.navigation-wrapper a:hover,
.unified-page-navigation a:hover {
  color: #10b981 !important;
  background: rgba(16, 185, 129, 0.1) !important;
  text-decoration: none !important;
}

/* Container de navigation */

.unified-page-navigation .navigation-content,
.navigation-wrapper > div,
.navigation-header > div {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 0.75rem 1rem !important;
}

/* Logo dans la navigation */

.unified-page-navigation .logo,
.navigation-wrapper .logo,
.navigation-header .logo {
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
}

/* Liens de navigation - Override complet pour éviter conflicts */

.unified-page-navigation a,
.navigation-wrapper a,
.navigation-header a,
nav[data-navigation="unified"] a,
.nav-link,
a[data-navigation] {
  color: #e2e8f0 !important;
  text-decoration: none !important;
  padding: 0.5rem 1rem !important;
  border-radius: 0.5rem !important;
  transition: all 0.3s ease !important;
  font-weight: 400 !important;
  background: none !important;
  border: none !important;
  outline: none !important;
}

.unified-page-navigation a:hover,
.navigation-wrapper a:hover,
.navigation-header a:hover,
nav[data-navigation="unified"] a:hover,
.nav-link:hover,
a[data-navigation]:hover {
  background: rgba(16, 185, 129, 0.1) !important;
  color: #10b981 !important;
  text-decoration: none !important;
}

/* Menu items */

.unified-page-navigation .nav-links,
.navigation-wrapper .nav-links,
.navigation-header .nav-links {
  display: flex !important;
  gap: 0.5rem !important;
  align-items: center !important;
}

/* Language selector et autres boutons */

.unified-page-navigation .language-selector,
.navigation-wrapper .language-selector,
.navigation-header .language-selector {
  display: flex !important;
  gap: 0.5rem !important;
  margin-left: 1rem !important;
}

/* S'assurer que le contenu blog ne masque pas la navigation */

body:has(.blog-container) .unified-page-navigation,
body:has(.blog-container) .navigation-wrapper,
body:has(.blog-container) .navigation-header {
  display: flex !important;
  position: fixed !important;
  z-index: 9999 !important;
}

/* Empêcher les styles de blog d'affecter la navigation */

.unified-page-navigation *,
.navigation-wrapper *,
.navigation-header *,
nav[data-navigation="unified"] * {
  text-decoration: none !important;
}

.unified-page-navigation a,
.navigation-wrapper a,
.navigation-header a {
  color: #e2e8f0 !important;
}

.unified-page-navigation a:hover,
.navigation-wrapper a:hover,  
.navigation-header a:hover {
  color: #10b981 !important;
  text-decoration: none !important;
  background: rgba(16, 185, 129, 0.1) !important;
}

/* S'assurer que le footer est visible */

.blog-container > footer,
.blog-container + footer {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  margin-top: 4rem !important;
}

/**
 * 🎨 UNIVERSAL ARTICLE PARSER STYLES
 *
 * Styles pour le nouveau système de parsing universel des articles
 * - Version simplifiée compatible TailwindCSS 2.2.19
 * - Design glassmorphique
 * - Responsive et accessible
 */

/* Container principal */

.universal-parsed-content {
  max-width: none;
}

.universal-parsed-article {
  margin-bottom: 2rem;
}

.universal-parsed-article > * + * {
  margin-top: 2rem;
}

/* Sections d'article */

.article-section {
  position: relative;
  margin-bottom: 2rem;
}

.article-section.hero-section {
  margin-bottom: 3rem;
}

.article-section.main-section {
  padding: 1.5rem 0;
  border-left: 4px solid rgba(59, 130, 246, 0.2);
  padding-left: 1.5rem;
}

/* Titres améliorés */

.article-title {
  font-size: 2.5rem;
  font-weight: bold;
  color: white;
  margin-bottom: 1.5rem;
  line-height: 1.2;
  background: linear-gradient(135deg, #60a5fa, #a78bfa, #34d399);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

@media (min-width: 768px) {
  .article-title {
    font-size: 3rem;
  }
}

.section-title {
  font-size: 1.5rem;
  font-weight: bold;
  color: white;
  margin-bottom: 1rem;
  position: relative;
  scroll-margin-top: 6rem;
}

@media (min-width: 768px) {
  .section-title {
    font-size: 1.875rem;
  }
}

.section-title::before {
  content: '';
  position: absolute;
  left: -1.5rem;
  top: 0;
  bottom: 0;
  width: 0.25rem;
  background: linear-gradient(to bottom, #3b82f6, #8b5cf6);
  border-radius: 9999px;
}

.subsection-title {
  font-size: 1.25rem;
  font-weight: 600;
  color: #60a5fa;
  margin-bottom: 0.75rem;
  scroll-margin-top: 5rem;
}

@media (min-width: 768px) {
  .subsection-title {
    font-size: 1.5rem;
  }
}

/* Paragraphes */

.article-paragraph {
  color: #d1d5db;
  line-height: 1.75;
  margin-bottom: 1rem;
  font-size: 1rem;
}

@media (min-width: 768px) {
  .article-paragraph {
    font-size: 1.125rem;
  }
}

/* Listes améliorées */

.article-list,
.article-ordered-list {
  margin-bottom: 1.5rem;
  padding-left: 1.5rem;
}

.article-list > li,
.article-ordered-list > li {
  color: #d1d5db;
  line-height: 1.75;
  position: relative;
  margin-bottom: 0.5rem;
}

.article-list > li::before {
  content: '▸';
  position: absolute;
  left: -1rem;
  color: #60a5fa;
  font-weight: bold;
}

.article-ordered-list > li::before {
  content: none;
}

/* Code inline et blocs */

.inline-code {
  padding: 0.25rem 0.5rem;
  background-color: rgba(31, 41, 55, 0.7);
  border: 1px solid rgba(75, 85, 99, 0.5);
  color: #93c5fd;
  border-radius: 0.25rem;
  font-size: 0.875rem;
  font-family: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
}

.code-block-wrapper {
  position: relative;
  margin: 1.5rem 0;
  border-radius: 0.75rem;
  overflow: hidden;
  background: rgba(26, 26, 26, 0.9);
  -webkit-backdrop-filter: blur(8px);
          backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.article-code-block {
  margin: 0;
  background: transparent;
}

.article-code {
  font-family: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;
  font-size: 0.875rem;
  line-height: 1.75;
}

/* Éléments de mise en forme */

.article-strong {
  font-weight: 600;
  color: white;
}

.article-emphasis {
  font-style: italic;
  color: #93c5fd;
}

/* Liens */

.article-link {
  color: #60a5fa;
  transition-property: color;
  transition-duration: 200ms;
  text-decoration: none;
}

.article-link:hover {
  color: #93c5fd;
}

/* Ancres de titres */

.header-anchor {
  text-decoration: none;
  color: inherit;
  position: relative;
  transition-property: color;
  transition-duration: 200ms;
}

.header-anchor:hover {
  color: #60a5fa;
}

.header-anchor::before {
  content: '#';
  position: absolute;
  left: -1.5rem;
  color: rgba(96, 165, 250, 0.5);
  opacity: 0;
  transition-property: color, opacity;
  transition-duration: 200ms;
}

.header-anchor:hover::before {
  opacity: 1;
  color: #60a5fa;
}

/* Images et figures */

.article-figure {
  margin: 2rem 0;
  text-align: center;
}

.article-image {
  max-width: 100%;
  height: auto;
  border-radius: 0.5rem;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

/* Citations */

.article-blockquote {
  border-left: 4px solid rgba(59, 130, 246, 0.5);
  padding-left: 1.5rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
  margin: 1.5rem 0;
  background-color: rgba(59, 130, 246, 0.05);
  border-top-right-radius: 0.5rem;
  border-bottom-right-radius: 0.5rem;
}

.article-blockquote p {
  color: #d1d5db;
  font-style: italic;
  font-size: 1.125rem;
  margin-bottom: 0;
}

/* Subsections */

.subsection {
  margin-left: 1rem;
  margin-bottom: 1.5rem;
  padding-left: 1rem;
  border-left: 2px solid rgba(168, 85, 247, 0.3);
}

/* États d'amélioration */

.universal-enhanced {
  position: relative;
}

.universal-enhanced::before {
  content: '✨ Article optimisé';
  position: absolute;
  top: 0;
  right: 0;
  background-color: rgba(34, 197, 94, 0.2);
  color: #86efac;
  font-size: 0.75rem;
  padding: 0.25rem 0.5rem;
  border-bottom-left-radius: 0.5rem;
  border-left: 1px solid rgba(34, 197, 94, 0.3);
  border-bottom: 1px solid rgba(34, 197, 94, 0.3);
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
}

.legacy-formatted {
  position: relative;
}

.legacy-formatted::before {
  content: '📝 Format standard';
  position: absolute;
  top: 0;
  right: 0;
  background-color: rgba(107, 114, 128, 0.2);
  color: #9ca3af;
  font-size: 0.75rem;
  padding: 0.25rem 0.5rem;
  border-bottom-left-radius: 0.5rem;
  border-left: 1px solid rgba(107, 114, 128, 0.3);
  border-bottom: 1px solid rgba(107, 114, 128, 0.3);
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
}

/* Animation d'entrée */

.universal-parsed-content {
  animation: fadeInUp 0.6s ease-out;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Amélioration de la sélection de texte */

.universal-parsed-content::-moz-selection {
  background: rgba(96, 165, 250, 0.3);
  color: white;
}

.universal-parsed-content::selection {
  background: rgba(96, 165, 250, 0.3);
  color: white;
}

/* Responsive design */

@media (max-width: 768px) {
  .article-title {
    font-size: 1.875rem;
  }

  .section-title {
    font-size: 1.25rem;
  }

  .subsection-title {
    font-size: 1.125rem;
  }

  .article-paragraph {
    font-size: 1rem;
  }

  .section-title::before {
    left: -1rem;
  }

  .article-section.main-section {
    padding-left: 1rem;
  }
}

/* Accessibilité */

@media (prefers-reduced-motion: reduce) {
  .universal-parsed-content {
    animation: none;
  }

  .article-link,
  .header-anchor {
    transition: none;
  }
}

/* ===== UNIFIED MOUSE 3D BUTTONS SYSTEM ===== */

/* Style transparent unifié avec border et perspective 3D */

.unified-mouse3d-container {
  display: inline-block;
  perspective: 1200px;
  perspective-origin: center center;
  transform-style: preserve-3d;
  position: relative;
}

.unified-mouse3d-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 24px;
  border: none;
  border-radius: 12px;
  font-family: inherit;
  font-weight: 300;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  transform-style: preserve-3d;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  outline: none;
  overflow: hidden;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  /* EFFET 3D TRACKING SOURIS */
  transform: perspective(var(--perspective-intensity)) 
             rotateX(var(--rotation-x)) 
             rotateY(var(--rotation-y)) 
             translateZ(0px);
  transition: transform 0.15s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  /* Variables CSS pour effets dynamiques */
  --mouse-x: 50%;
  --mouse-y: 50%;
  --proximity: 0;
  --energy-level: 0;
  --velocity: 0;
  /* Variables pour tracking style ancien Mouse3DButton */
  --rotation-x: 0deg;
  --rotation-y: 0deg;
  --shine-x: 50%;
  --shine-y: 50%;
  --tilt-intensity: 5deg;
  --parallax-x: 0px;
  --parallax-y: 0px;
  --perspective-intensity: 1000px;
  --transform-origin: center center;
  /* Base colors */
  --btn-bg: rgba(59, 130, 246, 0.9);
  --btn-border: rgba(59, 130, 246, 0.3);
  --btn-text: white;
  --btn-shadow: rgba(59, 130, 246, 0.4);
  --btn-glow: rgba(59, 130, 246, 0.6);
}

/* ===== BACKGROUND LAYER ===== */

.unified-mouse3d-background {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--btn-bg);
  border-radius: inherit;
  z-index: 1;
  transition: all 0.3s ease;
}

/* Force violet-glow background sur l'élément background */

.violet-glow-button .unified-mouse3d-background,
.unified-mouse3d-btn.violet-glow-button .unified-mouse3d-background {
  background: radial-gradient(ellipse at center, 
    rgba(30, 41, 59, 0.8) 0%,
    rgba(20, 25, 35, 0.9) 40%,
    rgba(10, 15, 25, 0.95) 70%,
    rgba(0, 0, 0, 0.9) 100%
  ) !important;
}

.violet-glow-button:hover .unified-mouse3d-background,
.unified-mouse3d-btn.violet-glow-button:hover .unified-mouse3d-background {
  background: radial-gradient(ellipse at center, 
    rgba(40, 51, 69, 0.9) 0%,
    rgba(30, 35, 45, 0.95) 35%,
    rgba(15, 20, 30, 0.98) 65%,
    rgba(5, 5, 15, 0.95) 100%
  ) !important;
}

/* ===== CONTENT LAYER ===== */

.unified-mouse3d-content {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: var(--btn-text);
  font-size: inherit;
  font-weight: inherit;
}

.unified-mouse3d-text {
  white-space: nowrap;
}

.unified-mouse3d-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1em;
}

/* ===== SHINE EFFECT ===== */

.unified-mouse3d-shine {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(
    circle at var(--shine-x) var(--shine-y),
    rgba(255, 255, 255, calc(0.1 + var(--proximity) * 0.2)) 0%,
    transparent 50%
  );
  border-radius: inherit;
  z-index: 2;
  opacity: calc(0.5 + var(--proximity) * 0.5);
  transition: opacity 0.3s ease;
}

/* ===== ENERGY BORDER ===== */

.unified-mouse3d-energy-border {
  position: absolute;
  top: -1px;
  left: -1px;
  right: -1px;
  bottom: -1px;
  background: linear-gradient(
    calc(45deg + var(--velocity) * 180deg),
    var(--btn-border),
    var(--btn-glow),
    var(--btn-border)
  );
  border-radius: 13px;
  z-index: 0;
  opacity: calc(0.3 + var(--energy-level) * 0.7);
  animation: energy-pulse 2s ease-in-out infinite;
}

/* ===== LOADING STATE ===== */

.unified-mouse3d-loading {
  display: flex;
  align-items: center;
  justify-content: center;
}

.unified-spinner {
  width: 16px;
  height: 16px;
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-top: 2px solid currentColor;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

/* ===== VARIANTS ===== */

/* Primary */

.unified-mouse3d-btn--primary {
  --btn-bg: rgba(59, 130, 246, 0.9);
  --btn-border: rgba(59, 130, 246, 0.3);
  --btn-text: white;
  --btn-shadow: rgba(59, 130, 246, 0.4);
  --btn-glow: rgba(59, 130, 246, 0.6);
}

/* Success (WhatsApp) */

.unified-mouse3d-btn--success {
  --btn-bg: rgba(34, 197, 94, 0.9);
  --btn-border: rgba(34, 197, 94, 0.3);
  --btn-text: white;
  --btn-shadow: rgba(34, 197, 94, 0.4);
  --btn-glow: rgba(34, 197, 94, 0.6);
}

/* Professional (LinkedIn) */

.unified-mouse3d-btn--professional {
  --btn-bg: rgba(10, 102, 194, 0.9);
  --btn-border: rgba(10, 102, 194, 0.3);
  --btn-text: white;
  --btn-shadow: rgba(10, 102, 194, 0.4);
  --btn-glow: rgba(10, 102, 194, 0.6);
}

/* Dark (GitHub) */

.unified-mouse3d-btn--dark {
  --btn-bg: rgba(30, 41, 59, 0.9);
  --btn-border: rgba(100, 116, 139, 0.3);
  --btn-text: white;
  --btn-shadow: rgba(30, 41, 59, 0.4);
  --btn-glow: rgba(100, 116, 139, 0.6);
}

/* Accent (Phone) */

.unified-mouse3d-btn--accent {
  --btn-bg: rgba(168, 85, 247, 0.9);
  --btn-border: rgba(168, 85, 247, 0.3);
  --btn-text: white;
  --btn-shadow: rgba(168, 85, 247, 0.4);
  --btn-glow: rgba(168, 85, 247, 0.6);
}

/* ===== VIOLET GLOW VARIANT - RADIAL BLEU NUIT VERS NOIR DESIGN ===== */

.unified-mouse3d-btn.unified-mouse3d-btn--violet-glow {
  /* Variables CSS personnalisées - bleu nuit design */
  --btn-bg: rgba(30, 41, 59, 0.7) !important;
  --btn-border: rgba(59, 70, 100, 0.6) !important;
  --btn-text: rgba(255, 255, 255, 0.95) !important;
  --btn-shadow: rgba(30, 41, 59, 0.8) !important;
  --btn-glow: rgba(59, 70, 100, 0.5) !important;
  /* Background radial bleu nuit vers noir très design */
  background: radial-gradient(ellipse at center, 
    rgba(30, 41, 59, 0.8) 0%,
    rgba(20, 25, 35, 0.9) 40%,
    rgba(10, 15, 25, 0.95) 70%,
    rgba(0, 0, 0, 0.9) 100%
  ) !important;
  /* Bordure bleu nuit élégante */
  border: 1px solid rgba(59, 70, 100, 0.6) !important;
  /* Backdrop filter pour effet verre premium */
  -webkit-backdrop-filter: blur(12px) !important;
          backdrop-filter: blur(12px) !important;
  /* Couleur du texte claire et contrastée */
  color: rgba(255, 255, 255, 0.95) !important;
  /* Glow effect bleu nuit sophistiqué */
  box-shadow: 0px 0px 30px 0px rgba(59, 70, 100, 0.4) !important;
}

/* Effet hover pour violet-glow - intensification du radial design */

.unified-mouse3d-btn.unified-mouse3d-btn--violet-glow:hover {
  /* Background radial intensifié au hover */
  background: radial-gradient(ellipse at center, 
    rgba(40, 51, 69, 0.9) 0%,
    rgba(30, 35, 45, 0.95) 35%,
    rgba(15, 20, 30, 0.98) 65%,
    rgba(5, 5, 15, 0.95) 100%
  ) !important;
  /* Bordure plus brillante au hover */
  border: 1px solid rgba(69, 80, 110, 0.8) !important;
  /* Glow intensifié avec effet radial */
  box-shadow: 0px 0px 40px 0px rgba(59, 70, 100, 0.6) !important;
  /* Transform 3D avec tracking */
  transform: perspective(var(--perspective-intensity)) 
             rotateX(var(--rotation-x)) 
             rotateY(var(--rotation-y)) 
             translateZ(8px) 
             scale(1.02) !important;
}

/* Secondary */

.unified-mouse3d-btn--secondary {
  --btn-bg: rgba(107, 114, 128, 0.9);
  --btn-border: rgba(107, 114, 128, 0.3);
  --btn-text: white;
  --btn-shadow: rgba(107, 114, 128, 0.4);
  --btn-glow: rgba(107, 114, 128, 0.6);
}

.unified-mouse3d-btn--secondary:hover {
  background-color: #5a6268;
  transform: translateY(-2px);
}

/* Danger */

.unified-mouse3d-btn--danger {
  --btn-bg: rgba(239, 68, 68, 0.9);
  --btn-border: rgba(239, 68, 68, 0.3);
  --btn-text: white;
  --btn-shadow: rgba(239, 68, 68, 0.4);
  --btn-glow: rgba(239, 68, 68, 0.6);
}

/* Neon */

.unified-mouse3d-btn--neon {
  --btn-bg: rgba(0, 255, 255, 0.15);
  --btn-border: rgba(0, 255, 255, 0.6);
  --btn-text: #00ffff;
  --btn-shadow: rgba(0, 255, 255, 0.5);
  --btn-glow: rgba(0, 255, 255, 0.8);
  border: 2px solid var(--btn-border);
  background: linear-gradient(45deg, 
    rgba(0, 255, 255, 0.1), 
    rgba(0, 255, 255, 0.05),
    rgba(255, 0, 255, 0.1)
  );
}

/* Glass */

.unified-mouse3d-btn--glass {
  --btn-bg: rgba(255, 255, 255, 0.1);
  --btn-border: rgba(255, 255, 255, 0.2);
  --btn-text: rgba(255, 255, 255, 0.9);
  --btn-shadow: rgba(0, 0, 0, 0.2);
  --btn-glow: rgba(255, 255, 255, 0.3);
  -webkit-backdrop-filter: blur(15px);
          backdrop-filter: blur(15px);
  border: 1px solid rgba(255, 255, 255, 0.2);
}

/* Holographic */

.unified-mouse3d-btn--holographic {
  --btn-bg: transparent;
  --btn-border: rgba(255, 255, 255, 0.3);
  --btn-text: white;
  --btn-shadow: rgba(147, 51, 234, 0.4);
  --btn-glow: rgba(147, 51, 234, 0.6);
  background: linear-gradient(45deg, 
    rgba(255, 0, 150, 0.3),
    rgba(0, 255, 255, 0.3),
    rgba(255, 255, 0, 0.3),
    rgba(147, 51, 234, 0.3)
  );
  background-size: 300% 300%;
  animation: holographic-shift 3s ease-in-out infinite;
}

/* Cyber */

.unified-mouse3d-btn--cyber {
  --btn-bg: rgba(0, 0, 0, 0.8);
  --btn-border: rgba(0, 255, 0, 0.6);
  --btn-text: #00ff00;
  --btn-shadow: rgba(0, 255, 0, 0.4);
  --btn-glow: rgba(0, 255, 0, 0.8);
  font-family: 'Courier New', monospace;
  border: 1px solid var(--btn-border);
  position: relative;
}

.unified-mouse3d-btn--cyber::before {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: linear-gradient(45deg, 
    transparent, 
    rgba(0, 255, 0, 0.3), 
    transparent
  );
  z-index: -1;
  animation: cyber-scan 2s linear infinite;
}

/* Quantum */

.unified-mouse3d-btn--quantum {
  --btn-bg: rgba(75, 0, 130, 0.7);
  --btn-border: rgba(138, 43, 226, 0.5);
  --btn-text: #e6e6fa;
  --btn-shadow: rgba(138, 43, 226, 0.6);
  --btn-glow: rgba(138, 43, 226, 0.9);
  background: radial-gradient(circle at center,
    rgba(75, 0, 130, 0.9),
    rgba(138, 43, 226, 0.6),
    rgba(147, 0, 211, 0.8)
  );
  animation: quantum-flux 1.5s ease-in-out infinite alternate;
}

/* Black 3D Semi-Transparent */

.unified-mouse3d-btn--black-3d {
  --btn-bg: rgba(0, 0, 0, 0.7);
  --btn-border: rgba(80, 80, 80, 0.5);
  --btn-text: rgba(255, 255, 255, 0.95);
  --btn-shadow: rgba(0, 0, 0, 0.6);
  --btn-glow: rgba(80, 80, 80, 0.5);
  background: linear-gradient(135deg, 
    rgba(40, 40, 40, 0.8) 0%,
    rgba(0, 0, 0, 0.7) 50%,
    rgba(20, 20, 20, 0.75) 100%
  );
  -webkit-backdrop-filter: blur(12px);
          backdrop-filter: blur(12px);
  border: 1px solid rgba(80, 80, 80, 0.3);
  position: relative;
  overflow: visible;
}

.unified-mouse3d-btn--black-3d::before {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: linear-gradient(45deg,
    rgba(120, 120, 120, 0.2) 0%,
    rgba(60, 60, 60, 0.3) 25%,
    rgba(30, 30, 30, 0.4) 50%,
    rgba(60, 60, 60, 0.3) 75%,
    rgba(120, 120, 120, 0.2) 100%
  );
  border-radius: inherit;
  z-index: -1;
  animation: black-3d-border 3s ease-in-out infinite;
}

.unified-mouse3d-btn--black-3d::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(145deg,
    rgba(255, 255, 255, 0.08) 0%,
    transparent 15%,
    transparent 85%,
    rgba(255, 255, 255, 0.03) 100%
  );
  border-radius: inherit;
  z-index: 1;
  pointer-events: none;
}

/* ===== SIZES ===== */

.unified-mouse3d-btn--small {
  padding: 8px 16px;
  font-size: 0.875rem;
  border-radius: 8px;
}

.unified-mouse3d-btn--medium {
  padding: 12px 24px;
  font-size: 1rem;
  border-radius: 12px;
}

.unified-mouse3d-btn--large {
  padding: 16px 32px;
  font-size: 1.125rem;
  border-radius: 16px;
}

.unified-mouse3d-btn--xl {
  padding: 20px 40px;
  font-size: 1.25rem;
  border-radius: 20px;
}

/* ===== EFFECTS ===== */

/* Standard */

.unified-mouse3d-btn--standard {
  box-shadow: 
    0 4px 6px -1px var(--btn-shadow),
    0 2px 4px -1px rgba(0, 0, 0, 0.06);
}

/* Glow */

.unified-mouse3d-btn--glow {
  box-shadow: 
    0 4px 6px -1px var(--btn-shadow),
    0 0 20px var(--btn-glow);
}

/* Neon Effect */

.unified-mouse3d-btn--neon {
  box-shadow: 
    0 0 5px var(--btn-glow),
    0 0 10px var(--btn-glow),
    0 0 20px var(--btn-glow),
    0 0 40px var(--btn-glow);
  text-shadow: 0 0 10px currentColor;
}

/* Glass Effect */

.unified-mouse3d-btn--glass {
  box-shadow: 
    0 8px 32px rgba(0, 0, 0, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.4),
    inset 0 -1px 0 rgba(255, 255, 255, 0.1);
}

/* Holographic Effect */

.unified-mouse3d-btn--holographic {
  box-shadow: 
    0 8px 32px rgba(147, 51, 234, 0.4),
    0 0 0 1px rgba(255, 255, 255, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

/* Cyber Effect */

.unified-mouse3d-btn--cyber {
  box-shadow: 
    0 0 10px var(--btn-glow),
    0 0 20px var(--btn-glow),
    inset 0 1px 0 rgba(0, 255, 0, 0.2);
  text-shadow: 0 0 5px currentColor;
}

/* Quantum Effect */

.unified-mouse3d-btn--quantum {
  box-shadow: 
    0 8px 25px rgba(138, 43, 226, 0.5),
    0 0 30px var(--btn-glow),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

/* Black 3D Semi-Transparent Effect */

.unified-mouse3d-btn--black-3d {
  box-shadow: 
    0 12px 25px rgba(0, 0, 0, 0.5),
    0 6px 12px rgba(0, 0, 0, 0.3),
    0 2px 4px rgba(0, 0, 0, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    inset 0 -1px 0 rgba(0, 0, 0, 0.3);
}

/* ===== STYLES ADDITIONNELS POUR VIOLET GLOW ===== */

/* Classes spécifiques pour forcer l'application du radial design */

.violet-glow-button,
.unified-mouse3d-btn.violet-glow-button,
button.violet-glow-button,
a.violet-glow-button {
  background: radial-gradient(ellipse at center, 
    rgba(30, 41, 59, 0.8) 0%,
    rgba(20, 25, 35, 0.9) 40%,
    rgba(10, 15, 25, 0.95) 70%,
    rgba(0, 0, 0, 0.9) 100%
  ) !important;
  border: 1px solid rgba(59, 70, 100, 0.6) !important;
  color: rgba(255, 255, 255, 0.95) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  /* Glow externe très visible */
  box-shadow: 
    0px 0px 20px 5px rgba(59, 70, 100, 0.6),
    0px 0px 40px 10px rgba(59, 70, 100, 0.4),
    0px 0px 60px 15px rgba(59, 70, 100, 0.2) !important;
}

.violet-glow-button:hover,
.unified-mouse3d-btn.violet-glow-button:hover,
button.violet-glow-button:hover,
a.violet-glow-button:hover {
  background: radial-gradient(ellipse at center, 
    rgba(40, 51, 69, 0.9) 0%,
    rgba(30, 35, 45, 0.95) 35%,
    rgba(15, 20, 30, 0.98) 65%,
    rgba(5, 5, 15, 0.95) 100%
  ) !important;
  border: 1px solid rgba(69, 80, 110, 0.8) !important;
  /* Glow intensifié au hover */
  box-shadow: 
    0px 0px 30px 8px rgba(69, 80, 110, 0.8),
    0px 0px 50px 15px rgba(69, 80, 110, 0.6),
    0px 0px 80px 20px rgba(69, 80, 110, 0.3) !important;
  transform: perspective(var(--perspective-intensity)) 
             rotateX(var(--rotation-x)) 
             rotateY(var(--rotation-y)) 
             translateZ(8px) 
             scale(1.02) !important;
}

/* Premium */

.unified-mouse3d-btn--premium {
  box-shadow: 
    0 8px 25px -5px var(--btn-shadow),
    0 0 30px var(--btn-glow),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

/* Code */

.unified-mouse3d-btn--code {
  font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
  box-shadow: 
    0 4px 6px -1px var(--btn-shadow),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

/* Pulse */

.unified-mouse3d-btn--pulse {
  animation: pulse-glow 2s ease-in-out infinite alternate;
}

/* ===== INTENSITY LEVELS ===== */

.unified-mouse3d-btn--low {
  transform: translateZ(0);
}

.unified-mouse3d-btn--medium {
  transform: translateZ(0);
}

.unified-mouse3d-btn--high {
  transform: translateZ(0);
}

.unified-mouse3d-btn--ultra {
  transform: translateZ(0);
}

.unified-mouse3d-btn--extreme {
  transform: translateZ(0);
}

/* ===== STATES ===== */

/* Hovered - avec tracking 3D */

.unified-mouse3d-btn--hovered {
  transform: perspective(var(--perspective-intensity)) 
             rotateX(var(--rotation-x)) 
             rotateY(var(--rotation-y)) 
             translateZ(8px) 
             scale(1.02);
}

/* Tracking actif */

.unified-mouse3d-btn.tracking-active {
  transform: perspective(var(--perspective-intensity)) 
             rotateX(var(--rotation-x)) 
             rotateY(var(--rotation-y)) 
             translateZ(3px) 
             scale(1.008);
}

.unified-mouse3d-btn--hovered .unified-mouse3d-background {
  filter: brightness(1.1);
}

.unified-mouse3d-btn--hovered .unified-mouse3d-energy-border {
  opacity: 1;
  animation-duration: 1s;
}

/* Pressed */

.unified-mouse3d-btn--pressed {
  transform: translateZ(2px) scale(0.98);
}

.unified-mouse3d-btn--pressed .unified-mouse3d-background {
  filter: brightness(0.9);
}

/* Disabled */

.unified-mouse3d-btn--disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none !important;
}

.unified-mouse3d-btn--disabled * {
  pointer-events: none;
}

/* Loading */

.unified-mouse3d-btn--loading {
  opacity: 0.8;
  cursor: wait;
}

/* ===== CONTACT TYPE SPECIFIC STYLES ===== */

/* WhatsApp specific */

.unified-mouse3d-btn--whatsapp:hover {
  --btn-glow: rgba(37, 211, 102, 0.8);
}

/* LinkedIn specific */

.unified-mouse3d-btn--linkedin:hover {
  --btn-glow: rgba(10, 102, 194, 0.8);
}

/* GitHub specific */

.unified-mouse3d-btn--github:hover {
  --btn-glow: rgba(100, 116, 139, 0.8);
}

/* Email specific */

.unified-mouse3d-btn--email:hover {
  --btn-glow: rgba(59, 130, 246, 0.8);
}

/* Phone specific */

.unified-mouse3d-btn--phone:hover {
  --btn-glow: rgba(168, 85, 247, 0.8);
}

/* ===== ANIMATIONS ===== */

@keyframes energy-pulse {
  0%, 100% {
    opacity: calc(0.3 + var(--energy-level) * 0.5);
    transform: scale(1);
  }

  50% {
    opacity: calc(0.5 + var(--energy-level) * 0.7);
    transform: scale(1.01);
  }
}

@keyframes pulse-glow {
  from {
    box-shadow: 
      0 4px 6px -1px var(--btn-shadow),
      0 0 10px var(--btn-glow);
  }

  to {
    box-shadow: 
      0 4px 6px -1px var(--btn-shadow),
      0 0 25px var(--btn-glow);
  }
}

@keyframes spin {
  from { transform: rotate(0deg);
  }

  to { transform: rotate(360deg);
  }
}

@keyframes holographic-shift {
  0%, 100% { background-position: 0% 50%;
  }

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

@keyframes cyber-scan {
  0% { transform: translateX(-100%);
  }

  100% { transform: translateX(100%);
  }
}

@keyframes quantum-flux {
  0% {
    filter: hue-rotate(0deg) brightness(1);
    transform: scale(1);
  }

  100% {
    filter: hue-rotate(60deg) brightness(1.2);
    transform: scale(1.02);
  }
}

@keyframes black-3d-border {
  0%, 100% {
    background: linear-gradient(45deg,
      rgba(128, 128, 128, 0.2) 0%,
      rgba(64, 64, 64, 0.4) 25%,
      rgba(32, 32, 32, 0.6) 50%,
      rgba(64, 64, 64, 0.4) 75%,
      rgba(128, 128, 128, 0.2) 100%
    );
    transform: perspective(1000px) rotateX(0deg) rotateY(0deg);
  }

  50% {
    background: linear-gradient(45deg,
      rgba(160, 160, 160, 0.4) 0%,
      rgba(96, 96, 96, 0.6) 25%,
      rgba(48, 48, 48, 0.8) 50%,
      rgba(96, 96, 96, 0.6) 75%,
      rgba(160, 160, 160, 0.4) 100%
    );
    transform: perspective(1000px) rotateX(2deg) rotateY(2deg);
  }
}

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

@media (max-width: 768px) {
  .unified-mouse3d-btn {
    padding: 10px 20px;
    font-size: 0.9rem;
  }

  .unified-mouse3d-btn--small {
    padding: 6px 12px;
    font-size: 0.8rem;
  }

  .unified-mouse3d-btn--large {
    padding: 14px 28px;
    font-size: 1rem;
  }

  .unified-mouse3d-btn--xl {
    padding: 16px 32px;
    font-size: 1.1rem;
  }
}

/* ===== ACCESSIBILITY ===== */

.unified-mouse3d-btn:focus-visible {
  outline: 2px solid var(--btn-glow);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .unified-mouse3d-btn,
  .unified-mouse3d-background,
  .unified-mouse3d-shine,
  .unified-mouse3d-energy-border {
    transition: none;
    animation: none;
  }
}

/* ===== HIGH CONTRAST MODE ===== */

@media (prefers-contrast: high) {
  .unified-mouse3d-btn {
    border: 2px solid currentColor;
  }

  .unified-mouse3d-shine {
    display: none;
  }
}

/* ===== STYLE UNIFIÉ TRANSPARENT - OVERRIDE GLOBAL ===== */

/* Applique un style transparent avec border à TOUS les boutons par défaut */

/* Les styles inline du composant React prennent le dessus */

.unified-mouse3d-btn:not(.violet-glow-button):not(.unified-mouse3d-btn--neon):not(.unified-mouse3d-btn--cyber) {
  /* Force le background transparent pour tous les boutons sauf violet-glow, neon et cyber */
  background: transparent !important;
}

.unified-mouse3d-btn:not(.violet-glow-button):not(.unified-mouse3d-btn--neon):not(.unified-mouse3d-btn--cyber):hover {
  background: rgba(255, 255, 255, 0.04) !important;
}

/* Background layer transparent également */

.unified-mouse3d-btn:not(.violet-glow-button):not(.unified-mouse3d-btn--neon):not(.unified-mouse3d-btn--cyber) .unified-mouse3d-background {
  background: transparent !important;
}

.unified-mouse3d-btn:not(.violet-glow-button):not(.unified-mouse3d-btn--neon):not(.unified-mouse3d-btn--cyber):hover .unified-mouse3d-background {
  background: transparent !important;
}

/* Border subtil et élégant */

.unified-mouse3d-btn:not(.violet-glow-button) {
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
}

.unified-mouse3d-btn:not(.violet-glow-button):hover {
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
}

/* Glassmorphisme très léger */

.unified-mouse3d-btn {
  backdrop-filter: blur(4px) !important;
  -webkit-backdrop-filter: blur(4px) !important;
}

.unified-mouse3d-btn:hover {
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
}

/* Energy border plus subtil */

.unified-mouse3d-energy-border {
  opacity: 0 !important;
}

.unified-mouse3d-btn:hover .unified-mouse3d-energy-border {
  opacity: 0.15 !important;
}

/* Shine plus discret */

.unified-mouse3d-shine {
  opacity: 0.2 !important;
}

.unified-mouse3d-btn:hover .unified-mouse3d-shine {
  opacity: 0.4 !important;
}

/* ===== STYLE PREMIUM GLOBAL POUR TOUS LES BOUTONS ===== */

/* STYLE UNIQUE - AUCUNE VARIANTE AUTORISÉE */

/* Priorité maximale - chargé après les autres CSS */

/* Application FORCÉE du style premium sur TOUS les boutons du site */

.unified-mouse3d-btn,
button.unified-mouse3d-btn,
a.unified-mouse3d-btn,
.unified-mouse3d-btn--primary,
.unified-mouse3d-btn--secondary,
.unified-mouse3d-btn--success,
.unified-mouse3d-btn--danger,
.unified-mouse3d-btn--warning,
.unified-mouse3d-btn--info,
.unified-mouse3d-btn--dark,
.unified-mouse3d-btn--professional,
.unified-mouse3d-btn--accent,
.unified-mouse3d-btn--violet-glow,
.unified-mouse3d-btn--neon,
.unified-mouse3d-btn--glass,
.unified-mouse3d-btn--holographic,
.unified-mouse3d-btn--cyber,
.unified-mouse3d-btn--quantum,
.unified-mouse3d-btn--black-3d {
  /* TAILLE STANDARDISÉE POUR TOUS LES BOUTONS */
  min-height: 48px !important;
  padding: 12px 24px !important;
  font-size: 16px !important;
  font-weight: 400;
  /* Background glassmorphique subtil */
  background: rgba(255, 255, 255, 0.08) !important;
  /* Bordure subtile et élégante */
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  /* Glow glassmorphique subtil */
  box-shadow: 
    0px 0px 15px 1px rgba(0, 0, 0, 0.1), 
    0px 0px 30px 4px rgba(0, 0, 0, 0.05), 
    inset 0px 1px 0px rgba(255, 255, 255, 0.08) !important;
  /* Backdrop filter premium */
  backdrop-filter: blur(16px) saturate(1.2) !important;
  -webkit-backdrop-filter: blur(16px) saturate(1.2) !important;
  /* Couleur de texte premium */
  color: rgba(255, 255, 255, 0.92) !important;
  /* Border radius moderne */
  border-radius: 14px !important;
  /* Transition fluide */
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
  /* Position relative pour les effets */
  position: relative !important;
  overflow: hidden !important;
  /* Flexbox pour l'alignement des icônes */
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
}

/* Effet hover premium global - TOUTES VARIANTES FORCÉES */

.unified-mouse3d-btn:hover,
button.unified-mouse3d-btn:hover,
a.unified-mouse3d-btn:hover,
.unified-mouse3d-btn--primary:hover,
.unified-mouse3d-btn--secondary:hover,
.unified-mouse3d-btn--success:hover,
.unified-mouse3d-btn--danger:hover,
.unified-mouse3d-btn--warning:hover,
.unified-mouse3d-btn--info:hover,
.unified-mouse3d-btn--dark:hover,
.unified-mouse3d-btn--professional:hover,
.unified-mouse3d-btn--accent:hover,
.unified-mouse3d-btn--violet-glow:hover,
.unified-mouse3d-btn--neon:hover,
.unified-mouse3d-btn--glass:hover,
.unified-mouse3d-btn--holographic:hover,
.unified-mouse3d-btn--cyber:hover,
.unified-mouse3d-btn--quantum:hover,
.unified-mouse3d-btn--black-3d:hover {
  /* Background glassmorphique hover */
  background: rgba(255, 255, 255, 0.12) !important;
  /* Bordure plus visible au hover */
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  /* GLOW BLEU NUIT AU HOVER */
  box-shadow: 
    0px 0px 25px 3px rgba(30, 41, 59, 0.4), 
    0px 0px 40px 8px rgba(30, 41, 59, 0.3), 
    0px 0px 60px 12px rgba(30, 41, 59, 0.2),
    inset 0px 1px 0px rgba(255, 255, 255, 0.1) !important;
  /* Transform subtil au hover */
  transform: scale(1.02) translateY(-1px) !important;
}

/* Application sur l'élément background */

.unified-mouse3d-btn .unified-mouse3d-background {
  background: radial-gradient(ellipse at center, 
    rgba(20, 30, 50, 0.3) 0%, 
    rgba(10, 20, 35, 0.5) 40%, 
    rgba(5, 10, 25, 0.6) 80%, 
    rgba(0, 0, 0, 0.4) 100%
  ) !important;
}

.unified-mouse3d-btn:hover .unified-mouse3d-background {
  background: radial-gradient(ellipse at center, 
    rgba(25, 35, 55, 0.4) 0%, 
    rgba(15, 25, 40, 0.6) 40%, 
    rgba(5, 10, 20, 0.7) 80%, 
    rgba(0, 0, 0, 0.5) 100%
  ) !important;
}

/* Force application sur tous les contenus avec espacement des icônes */

.unified-mouse3d-btn .unified-mouse3d-content {
  color: rgba(255, 255, 255, 0.92) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
}

/* Espacement spécifique pour les icônes */

.unified-mouse3d-btn .unified-mouse3d-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
}

.unified-mouse3d-btn .unified-mouse3d-text {
  white-space: nowrap !important;
}

/* Force la taille sur tous les types de boutons */

.unified-mouse3d-btn--small,
.unified-mouse3d-btn--medium,
.unified-mouse3d-btn--large,
.unified-mouse3d-btn--xl {
  min-height: 48px !important;
  padding: 12px 24px !important;
  font-size: 16px !important;
  font-weight: 400;
}

/* Classe pour désactiver le style premium si nécessaire */

.unified-mouse3d-btn.no-premium-style {
  background: unset !important;
  border: unset !important;
  box-shadow: unset !important;
  backdrop-filter: unset !important;
  -webkit-backdrop-filter: unset !important;
}

.unified-mouse3d-btn.no-premium-style .unified-mouse3d-background {
  background: unset !important;
}

/* Style premium pour les boutons désactivés */

.unified-mouse3d-btn:disabled,
.unified-mouse3d-btn--disabled {
  opacity: 0.5 !important;
  cursor: not-allowed !important;
  transform: none !important;
}

/* Style premium pour les boutons en loading */

.unified-mouse3d-btn--loading {
  opacity: 0.8 !important;
  cursor: wait !important;
}

/* =====================================================
   ICON COLOR POLICY - Seules les technologies colorées
   ===================================================== */

/* Règle générale : toutes les icônes sont monochromes par défaut */

.icon, 
.hero-icon,
.nav-icon,
.button-icon,
.modal-icon,
.notification-icon {
  color: rgba(255, 255, 255, 0.7) !important;
  transition: color 0.3s ease;
}

.icon:hover,
.hero-icon:hover,
.nav-icon:hover,
.button-icon:hover {
  color: rgba(255, 255, 255, 0.9) !important;
}

/* =====================================================
   EXCEPTIONS : TECHNOLOGIES UNIQUEMENT
   ===================================================== */

/* Icônes de technologies - gardent leurs couleurs */

.tech-icon,
.tech-stack-icon,
.technology-icon,
.universal-tech-icon,
.unified-sprite-icon,
.unified-sprite-techIcons,
.tech-icon-sprite,
[class*="tech-icon-"] {
  /* Les couleurs sont définies dans TechIcon.jsx et UniversalTechIcon.jsx */
  filter: none !important;
  -webkit-filter: none !important;
}

/* Technologies spécifiques avec couleurs autorisées */

.tech-react { color: #61DAFB !important;
}

.tech-vue { color: #4FC08D !important;
}

.tech-angular { color: #DD0031 !important;
}

.tech-javascript { color: #F7DF1E !important;
}

.tech-typescript { color: #3178C6 !important;
}

.tech-php { color: #777BB4 !important;
}

.tech-python { color: #3776AB !important;
}

.tech-node { color: #339933 !important;
}

.tech-docker { color: #2496ED !important;
}

.tech-aws { color: #FF9900 !important;
}

.tech-mysql { color: #4479A1 !important;
}

.tech-mongodb { color: #47A248 !important;
}

.tech-redis { color: #DC382D !important;
}

.tech-git { color: #F05032 !important;
}

.tech-github { color: #181717 !important;
}

.tech-gitlab { color: #FCA326 !important;
}

/* =====================================================
   SUPPRESSION DE COULEURS NON-TECHNIQUES
   ===================================================== */

/* Reset couleurs pour les icônes non-techniques */

.fa-heart,
.fa-star,
.fa-fire,
.fa-rocket,
.fa-lightbulb,
.fa-trophy,
.fa-crown,
.fa-gem,
.fa-magic,
.fa-sparkles,
.fa-zap,
.fa-bolt,
.fa-flash {
  color: rgba(255, 255, 255, 0.7) !important;
}

/* Emojis remplacés par des icônes glassmorphiques */

.emoji-replacement {
  display: none !important;
}

/* =====================================================
   GLASSMORPHIC ICONS STYLING
   ===================================================== */

.glassmorphic-icon {
  background: rgba(255, 255, 255, 0.05);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.glassmorphic-icon svg {
  color: rgba(255, 255, 255, 0.7);
  transition: color 0.3s ease;
}

.glassmorphic-icon:hover {
  background: rgba(255, 255, 255, 0.08);
  transform: scale(1.02);
}

.glassmorphic-icon:hover svg {
  color: rgba(255, 255, 255, 0.85);
}

/* =====================================================
   MEDIA QUERIES
   ===================================================== */

/* Hide all FontAwesome icons on mobile devices */

@media (max-width: 768px) {
  .fa,
  .fas,
  .far,
  .fab,
  .fal,
  .fad,
  [class*="fa-"],
  .fontawesome-i2svg-active [class*="fa-"] {
    display: none !important;
  }
}

@media (prefers-color-scheme: light) {
  .glassmorphic-icon {
    background: rgba(0, 0, 0, 0.05);
    border-color: rgba(0, 0, 0, 0.08);
  }

  .glassmorphic-icon svg {
    color: rgba(0, 0, 0, 0.7);
  }

  .glassmorphic-icon:hover {
    background: rgba(0, 0, 0, 0.08);
  }

  .glassmorphic-icon:hover svg {
    color: rgba(0, 0, 0, 0.85);
  }
}

/* 🎨 ICÔNES NOIR ET BLANC - Style Global */

/* Force toutes les icônes FontAwesome en noir et blanc */

.fa,
.fas,
.far,
.fab,
.fal,
.fad,
[class*="fa-"],
.fontawesome-i2svg-active [class*="fa-"] {
  color: #ffffff !important;
  filter: none !important;
  transition: all 0.3s ease !important;
}

/* Icônes noir et blanc avec états hover */

.icon-black-white,
.fa.icon-black-white,
.fas.icon-black-white,
.far.icon-black-white,
.fab.icon-black-white {
  color: #ffffff !important;
  filter: grayscale(100%) brightness(1.2) !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.icon-black-white:hover,
.fa.icon-black-white:hover,
.fas.icon-black-white:hover,
.far.icon-black-white:hover,
.fab.icon-black-white:hover {
  color: #06b6d4 !important;
  filter: grayscale(0%) brightness(1.1) !important;
  transform: scale(1.1) !important;
}

/* Boutons avec icônes noir et blanc */

.btn-icon-bw,
button.icon-black-white {
  background: rgba(255, 255, 255, 0.05) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  -webkit-backdrop-filter: blur(12px) !important;
          backdrop-filter: blur(12px) !important;
  border-radius: 12px !important;
  padding: 12px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: all 0.3s ease !important;
  min-width: 48px !important;
  min-height: 48px !important;
}

.btn-icon-bw:hover,
button.icon-black-white:hover {
  background: rgba(6, 182, 212, 0.1) !important;
  border-color: rgba(6, 182, 212, 0.3) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 25px rgba(6, 182, 212, 0.15) !important;
}

/* Contact icons spécifiques */

.contact-icon {
  color: #ffffff !important;
  font-size: 20px !important;
  padding: 12px !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  -webkit-backdrop-filter: blur(12px) !important;
          backdrop-filter: blur(12px) !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  width: 48px !important;
  height: 48px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-decoration: none !important;
}

.contact-icon:hover {
  color: #ffffff !important;
  background: rgba(6, 182, 212, 0.2) !important;
  border-color: rgba(6, 182, 212, 0.4) !important;
  transform: translateY(-3px) scale(1.05) !important;
  box-shadow: 0 12px 30px rgba(6, 182, 212, 0.2) !important;
}

/* Icônes spécifiques par plateforme */

.contact-icon.github:hover {
  background: rgba(255, 255, 255, 0.15) !important;
  border-color: rgba(255, 255, 255, 0.3) !important;
}

.contact-icon.linkedin:hover {
  background: rgba(10, 102, 194, 0.2) !important;
  border-color: rgba(10, 102, 194, 0.4) !important;
}

.contact-icon.email:hover {
  background: rgba(239, 68, 68, 0.2) !important;
  border-color: rgba(239, 68, 68, 0.4) !important;
}

.contact-icon.phone:hover {
  background: rgba(34, 197, 94, 0.2) !important;
  border-color: rgba(34, 197, 94, 0.4) !important;
}

/* Layout des icônes de contact */

.contact-icons-container {
  display: flex !important;
  gap: 16px !important;
  justify-content: center !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  margin: 24px 0 !important;
}

/* Mobile responsive */

@media (max-width: 768px) {
  /* Hide all FontAwesome icons on mobile */

  .fa,
  .fas,
  .far,
  .fab,
  .fal,
  .fad,
  [class*="fa-"],
  .fontawesome-i2svg-active [class*="fa-"] {
    display: none !important;
  }

  .contact-icons-container {
    gap: 12px !important;
    margin: 20px 0 !important;
  }

  .contact-icon {
    width: 44px !important;
    height: 44px !important;
    font-size: 18px !important;
    padding: 10px !important;
  }
}

/* Animations spéciales */

@keyframes iconPulse {
  0%, 100% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.05);
  }
}

.contact-icon.pulse {
  animation: iconPulse 2s infinite !important;
}

/* Force black and white pour tous les SVGs - SAUF ICÔNES DE TECHNOLOGIES */

.icon-bw svg:not(.tech-icon):not(.tech-icon-sprite):not([class*="tech-icon-"]),
.icon-black-white svg:not(.tech-icon):not(.tech-icon-sprite):not([class*="tech-icon-"]) {
  filter: grayscale(100%) brightness(1.2) !important;
  transition: filter 0.3s ease !important;
}

.icon-bw:hover svg:not(.tech-icon):not(.tech-icon-sprite):not([class*="tech-icon-"]),
.icon-black-white:hover svg:not(.tech-icon):not(.tech-icon-sprite):not([class*="tech-icon-"]) {
  filter: grayscale(0%) brightness(1.1) !important;
}

/* EXCEPTIONS: Icônes de technologies gardent leurs couleurs */

.tech-icon,
.tech-icon-sprite,
[class*="tech-icon-"] {
  filter: none !important;
}

/* UnifiedMouse3DButton avec icônes noir et blanc */

.unified-mouse3d-button .fa,
.unified-mouse3d-button .fas,
.unified-mouse3d-button .far,
.unified-mouse3d-button .fab {
  color: #ffffff !important;
  filter: none !important;
}

/* État actif pour les icônes */

.contact-icon:active {
  transform: translateY(0) scale(0.98) !important;
  transition: all 0.1s ease !important;
}

/**
 * 🚀 UNIVERSAL NAVIGATION - Styles globaux
 *
 * Styles pour la navigation universelle qui doit être visible
 * par-dessus tous les éléments, y compris le PlaneCanvas
 */

/* Hide navigation on workflow studio page */

body[data-route="/workflow-studio"] .universal-nav,
body[data-route="/workflow-studio"] nav,
body[data-route="/workflow-studio"] header {
  display: none !important;
}

/* Navigation universelle - Z-index maximum */

.universal-nav {
  z-index: 999999 !important;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
}

/* S'assurer que tous les éléments de navigation ont le bon z-index */

.universal-nav * {
  position: relative;
  z-index: 1;
}

/* Mega-menus avec z-index élevé */

.universal-nav .mega-menu {
  z-index: 999998 !important;
}

/* Menu mobile avec z-index élevé */

.universal-nav .mobile-menu {
  z-index: 999997 !important;
}

/* Background de navigation avec transparence optimisée */

.universal-nav .nav-background {
  background: rgba(0, 0, 0, 0.85) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
}

/* Effets de survol améliorés */

.universal-nav .nav-item:hover {
  transform: translateY(-1px);
  transition: all 0.2s ease;
}

/* Animation de l'Universe Switcher */

.universal-nav .universe-switcher {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.universal-nav .universe-switcher:hover {
  transform: scale(1.05);
}

/* Olive logo avec interactions améliorées */

.universal-nav .olive-logo {
  transition: all 0.3s ease;
}

.universal-nav .olive-logo:hover {
  transform: scale(1.1);
  filter: drop-shadow(0 0 10px rgba(0, 255, 255, 0.3));
}

/* Responsive pour très petits écrans */

@media (max-width: 480px) {
  .universal-nav {
    font-size: 0.9rem;
  }

  .universal-nav .nav-padding {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
}

/* Animation d'apparition de la navigation */

.universal-nav {
  animation: slideInFromTop 0.5s ease-out;
}

@keyframes slideInFromTop {
  from {
    transform: translateY(-100%);
    opacity: 0;
  }

  to {
    transform: translateY(0);
    opacity: 1;
  }
}

/* Indicateurs visuels pour la page active */

.universal-nav .nav-item.active::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 50%;
  transform: translateX(-50%);
  width: 20px;
  height: 2px;
  background: linear-gradient(90deg, #00D4FF, #FF6B9D);
  border-radius: 1px;
}

/* Effets de particules pour l'Universe Switcher */

.universe-particles {
  pointer-events: none;
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.universe-particles .particle {
  position: absolute;
  width: 2px;
  height: 2px;
  background: linear-gradient(45deg, #00D4FF, #FF6B9D);
  border-radius: 50%;
  animation: float 3s ease-in-out infinite;
}

@keyframes float {
  0%, 100% {
    transform: translateY(0) scale(1);
    opacity: 0.3;
  }

  50% {
    transform: translateY(-20px) scale(1.5);
    opacity: 1;
  }
}

/* Amélioration de la lisibilité sur fond sombre */

.universal-nav .text-shadow {
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}

/* Séparateurs visuels pour les mega-menus */

.universal-nav .mega-menu-separator {
  width: 1px;
  height: 40px;
  background: linear-gradient(to bottom, transparent, rgba(255,255,255,0.2), transparent);
  margin: 0 2rem;
}

/* Améliorations des mega-menus */

.universal-nav .mega-menu-item {
  position: relative;
  overflow: hidden;
}

.universal-nav .mega-menu-item::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(0, 212, 255, 0.1), transparent);
  transition: left 0.5s ease;
}

.universal-nav .mega-menu-item:hover::before {
  left: 100%;
}

/* Animation des icônes dans les mega-menus */

.universal-nav .mega-menu-icon {
  transition: all 0.3s ease;
}

.universal-nav .mega-menu-item:hover .mega-menu-icon {
  transform: scale(1.1) rotate(5deg);
}

/* Pulsation subtile pour les points indicateurs */

@keyframes pulse-dot {
  0%, 100% {
    opacity: 0.6;
    transform: scale(1);
  }

  50% {
    opacity: 1;
    transform: scale(1.2);
  }
}

.universal-nav .indicator-dot {
  animation: pulse-dot 2s ease-in-out infinite;
}

/* Effets de glow pour les CTAs */

.universal-nav .cta-button {
  position: relative;
}

.universal-nav .cta-button::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: inherit;
  filter: blur(8px);
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: -1;
}

.universal-nav .cta-button:hover::after {
  opacity: 0.4;
}

/**
 * 🌟 PERFECT NAVIGATION IA - Styles Premium
 * 
 * Styles CSS pour la navigation parfaite inspirée de la page /ia
 * Design glassmorphisme de niveau enterprise
 */

/* Navigation principal */

.perfect-nav {
  /* Variables CSS pour cohérence */
  --nav-glass-bg: linear-gradient(135deg, 
    rgba(0, 0, 0, 0.95) 0%, 
    rgba(15, 23, 42, 0.92) 30%, 
    rgba(30, 41, 59, 0.95) 70%, 
    rgba(0, 0, 0, 0.95) 100%
  );
  --nav-blur: blur(40px) saturate(180%);
  --nav-border: 1px solid rgba(255, 255, 255, 0.15);
  --nav-shadow: 
    0 8px 32px rgba(0, 0, 0, 0.9),
    0 0 80px rgba(59, 130, 246, 0.15),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

/* Dropdown premium styles */

.premium-dropdown {
  /* Variables pour dropdowns */
  --dropdown-bg: linear-gradient(135deg, 
    rgba(0, 0, 0, 0.95) 0%, 
    rgba(15, 23, 42, 0.92) 40%, 
    rgba(30, 41, 59, 0.95) 100%
  );
  --dropdown-blur: blur(40px) saturate(180%);
  --dropdown-border: 1px solid rgba(255, 255, 255, 0.15);
  --dropdown-shadow: 
    0 25px 50px -12px rgba(0, 0, 0, 0.8),
    0 0 100px rgba(59, 130, 246, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

/* Animation d'apparition fluide */

@keyframes fadeInScale {
  from {
    opacity: 0;
    transform: translateY(-20px) scale(0.95);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* Animation de brillance pour les éléments interactifs */

@keyframes shine-sweep {
  0% {
    transform: translateX(-100%) skewX(-25deg);
  }

  100% {
    transform: translateX(200%) skewX(-25deg);
  }
}

/* Effet de brillance sur les items */

.nav-item-shine {
  position: relative;
  overflow: hidden;
}

.nav-item-shine::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    90deg, 
    transparent, 
    rgba(255, 255, 255, 0.15), 
    transparent
  );
  transition: left 0.5s ease;
  z-index: 1;
}

.nav-item-shine:hover::before {
  left: 100%;
}

/* Glassmorphisme premium pour les cartes */

.glass-premium {
  background: rgba(255, 255, 255, 0.05);
  backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 
    0 8px 32px rgba(0, 0, 0, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.1),
    inset 0 -1px 0 rgba(0, 0, 0, 0.1);
}

/* Effet de hover premium */

.glass-premium-hover {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.glass-premium-hover:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
  box-shadow: 
    0 12px 40px rgba(0, 0, 0, 0.4),
    0 0 60px rgba(59, 130, 246, 0.15),
    inset 0 1px 0 rgba(255, 255, 255, 0.15);
  transform: translateY(-2px);
}

/* Animation de pulsation pour les badges */

@keyframes pulse-glow {
  0%, 100% {
    opacity: 0.8;
    box-shadow: 0 0 15px rgba(147, 51, 234, 0.3);
  }

  50% {
    opacity: 1;
    box-shadow: 0 0 25px rgba(147, 51, 234, 0.5);
  }
}

.badge-glow {
  animation: pulse-glow 2s ease-in-out infinite;
}

/* Gradient de texte premium */

.text-gradient-premium {
  background: linear-gradient(135deg, 
    rgba(255, 255, 255, 0.9) 0%,
    rgba(59, 130, 246, 0.8) 50%,
    rgba(147, 51, 234, 0.9) 100%
  );
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* Effet de particules flottantes */

@keyframes float-particle {
  0%, 100% {
    transform: translateY(0px) rotate(0deg);
    opacity: 0.6;
  }

  50% {
    transform: translateY(-10px) rotate(180deg);
    opacity: 1;
  }
}

.floating-particle {
  animation: float-particle 3s ease-in-out infinite;
}

/* Transitions ultra-fluides */

.ultra-smooth {
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Effet de morphing sur les boutons */

.morph-button {
  transition: 
    transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
    border-radius 0.3s cubic-bezier(0.4, 0, 0.2, 1),
    background 0.3s cubic-bezier(0.4, 0, 0.2, 1),
    box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.morph-button:hover {
  transform: scale(1.05);
  border-radius: 16px;
}

/* Séparateurs lumineux */

.luminous-separator {
  background: linear-gradient(
    90deg, 
    transparent 0%, 
    rgba(59, 130, 246, 0.3) 20%, 
    rgba(147, 51, 234, 0.5) 50%, 
    rgba(59, 130, 246, 0.3) 80%, 
    transparent 100%
  );
  height: 1px;
  opacity: 0.6;
}

/* Effet de glow adaptatif selon le thème */

.adaptive-glow-cyan {
  box-shadow: 0 0 20px rgba(59, 130, 246, 0);
  transition: box-shadow 0.3s ease;
}

.adaptive-glow-cyan:hover {
  box-shadow: 
    0 0 30px rgba(59, 130, 246, 0.4),
    0 0 60px rgba(59, 130, 246, 0.2);
}

.adaptive-glow-purple {
  box-shadow: 0 0 20px rgba(147, 51, 234, 0);
  transition: box-shadow 0.3s ease;
}

.adaptive-glow-purple:hover {
  box-shadow: 
    0 0 30px rgba(147, 51, 234, 0.4),
    0 0 60px rgba(147, 51, 234, 0.2);
}

/* Animation de rotation douce pour les icônes */

@keyframes rotate-smooth {
  from { transform: rotate(0deg);
  }

  to { transform: rotate(360deg);
  }
}

.rotate-on-hover {
  transition: transform 0.3s ease;
}

.rotate-on-hover:hover {
  transform: rotate(180deg);
}

/* Effet de dispersion pour les micro-interactions */

@keyframes disperse {
  0% {
    transform: scale(1) translate(0, 0);
    opacity: 1;
  }

  100% {
    transform: scale(0) translate(var(--random-x), var(--random-y));
    opacity: 0;
  }
}

/* Responsive - Optimisations mobile */

@media (max-width: 1024px) {
  .perfect-nav {
    --nav-blur: blur(25px) saturate(150%);
  }

  .premium-dropdown {
    --dropdown-blur: blur(25px) saturate(150%);
  }
}

/* Optimisations pour les animations sur dispositifs lents */

@media (prefers-reduced-motion: reduce) {
  .fadeInScale,
  .shine-sweep,
  .pulse-glow,
  .float-particle,
  .disperse {
    animation: none;
  }

  .ultra-smooth,
  .morph-button,
  .glass-premium-hover {
    transition: none;
  }
}

/* Support pour les écrans haute densité */

@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
  .perfect-nav {
    --nav-blur: blur(30px) saturate(160%);
  }

  .glass-premium {
    backdrop-filter: blur(25px) saturate(160%);
    -webkit-backdrop-filter: blur(25px) saturate(160%);
  }
}

/* Variables de couleurs pour cohérence */

:root {
  --nav-text-primary: rgba(255, 255, 255, 0.9);
  --nav-text-secondary: rgba(255, 255, 255, 0.7);
  --nav-text-muted: rgba(255, 255, 255, 0.5);
  --nav-accent-cyan: #3b82f6;
  --nav-accent-purple: #9333ea;
  --nav-accent-pink: #ec4899;
  --nav-glass-light: rgba(255, 255, 255, 0.1);
  --nav-glass-medium: rgba(255, 255, 255, 0.15);
  --nav-glass-strong: rgba(255, 255, 255, 0.2);
}

/**
 * 🤖 OLIVE LOGO FF STYLES
 * Clean PNG logo styling without animations
 */

.olive-logo-ff {
  /* Clean image rendering */
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
  /* Remove any transforms and animations */
  transform: none !important;
  transition: none !important;
  animation: none !important;
  /* Ensure proper display */
  display: block !important;
  border: none !important;
  outline: none !important;
  background: transparent !important;
  /* Prevent dragging */
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  -webkit-user-drag: none;
  -khtml-user-drag: none;
  -moz-user-drag: none;
  -o-user-drag: none;
  /* Force visibility */
  opacity: 1 !important;
  visibility: visible !important;
}

/* High DPI displays */

@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
  .olive-logo-ff {
    image-rendering: pixelated;
  }
}

/* Ensure no interference with other elements */

.olive-logo-ff {
  z-index: auto;
  position: relative;
  pointer-events: auto;
}

/* Clean container for minimized state */

.olive-assistant-minimized {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.olive-assistant-minimized * {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Ensure logo container in minimized state is clean */

.olive-assistant-minimized .olive-logo-ff {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

/* Clean round logo without borders */

.olive-logo-ff {
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
  background: transparent !important;
  border-radius: 50% !important;
}

/* Make sure the container doesn't interfere */

.olive-master-assistant-revolutionary {
  pointer-events: auto !important;
}

.olive-master-assistant-revolutionary .olive-logo-ff {
  pointer-events: auto !important;
  cursor: pointer !important;
  border: none !important;
  box-shadow: none !important;
}

/**
 * Styles pour le composant GoogleReviewsQRCode
 * Designs intelligents pour maximiser les conversions
 */

/* Container de base */

.qr-code-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  padding: 20px;
}

.qr-code-wrapper {
  background: white;
  border-radius: 16px;
  padding: 20px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
  border: 2px solid #e5e7eb;
  transition: all 0.3s ease;
}

.qr-code-wrapper:hover {
  transform: scale(1.05);
  box-shadow: 0 20px 40px rgba(6, 182, 212, 0.3);
  border-color: #06b6d4;
}

/* Instructions */

.qr-instructions {
  display: flex;
  flex-direction: column;
  gap: 12px;
  text-align: center;
}

.instruction-step {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 16px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  color: white;
  font-size: 0.9rem;
}

.instruction-icon {
  color: #06b6d4;
  font-size: 1.1rem;
}

/* Popup Modal */

.qr-popup-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.8);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.qr-popup-modal {
  background: linear-gradient(135deg, #1e293b, #334155);
  border-radius: 24px;
  padding: 40px;
  max-width: 500px;
  width: 100%;
  position: relative;
  border: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 25px 50px rgba(0, 0, 0, 0.5);
}

.popup-close-btn {
  position: absolute;
  top: 20px;
  right: 20px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  transition: all 0.3s ease;
  cursor: pointer;
}

.popup-close-btn:hover {
  background: rgba(239, 68, 68, 0.2);
  border-color: #ef4444;
  color: #ef4444;
}

.popup-header {
  text-align: center;
  margin-bottom: 30px;
}

.popup-icon {
  font-size: 3rem;
  color: #fbbf24;
  margin-bottom: 15px;
}

.popup-title {
  color: white;
  font-size: 1.5rem;
  font-weight: bold;
  margin-bottom: 10px;
}

.popup-subtitle {
  color: #94a3b8;
  line-height: 1.5;
}

.popup-actions {
  display: flex;
  gap: 12px;
  margin-top: 30px;
  flex-wrap: wrap;
}

.action-btn {
  flex: 1;
  padding: 12px 20px;
  border-radius: 12px;
  font-weight: 600;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
  cursor: pointer;
  border: none;
  font-size: 0.9rem;
}

.action-btn.primary {
  background: linear-gradient(135deg, #4285f4, #34a853);
  color: white;
}

.action-btn.primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 25px rgba(66, 133, 244, 0.4);
}

.action-btn.secondary {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: white;
}

.action-btn.secondary:hover {
  background: rgba(255, 255, 255, 0.2);
  border-color: #06b6d4;
}

.popup-footer {
  text-align: center;
  margin-top: 20px;
  color: #94a3b8;
  font-size: 0.85rem;
}

/* Floating Widget */

.qr-floating-widget {
  position: fixed;
  right: 20px;
  bottom: 100px;
  z-index: 9999;
}

.floating-trigger {
  background: linear-gradient(135deg, #fbbf24, #f59e0b);
  color: white;
  border: none;
  border-radius: 50px;
  padding: 15px 20px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 10px 25px rgba(251, 191, 36, 0.4);
  transition: all 0.3s ease;
}

.floating-trigger:hover {
  transform: translateY(-3px);
  box-shadow: 0 15px 35px rgba(251, 191, 36, 0.6);
}

.floating-trigger:active {
  transform: translateY(-1px);
}

/* CTA Section */

.qr-cta-section {
  background: linear-gradient(135deg, rgba(6, 182, 212, 0.1), rgba(139, 92, 246, 0.1));
  border-radius: 20px;
  padding: 40px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
}

.cta-content {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 40px;
  align-items: center;
}

.cta-title {
  color: white;
  font-size: 1.75rem;
  font-weight: bold;
  margin-bottom: 12px;
}

.cta-subtitle {
  color: #94a3b8;
  font-size: 1.1rem;
  margin-bottom: 20px;
  line-height: 1.5;
}

.cta-benefits {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}

.benefit-item {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #06b6d4;
  font-size: 0.9rem;
  font-weight: 400;
}

.cta-qr-section {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}

.cta-actions {
  width: 100%;
}

.cta-btn-primary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 15px 30px;
  background: linear-gradient(135deg, #4285f4, #34a853);
  color: white;
  border-radius: 12px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s ease;
  width: 100%;
}

.cta-btn-primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 15px 30px rgba(66, 133, 244, 0.4);
}

/* Inline Display */

.qr-inline-display {
  text-align: center;
  padding: 20px;
}

/* Responsive Design */

@media (max-width: 768px) {
  .qr-popup-modal {
    padding: 30px 20px;
    margin: 20px;
  }

  .popup-title {
    font-size: 1.25rem;
  }

  .action-btn {
    font-size: 0.85rem;
    padding: 10px 16px;
  }

  .cta-content {
    grid-template-columns: 1fr;
    gap: 30px;
    text-align: center;
  }

  .cta-title {
    font-size: 1.5rem;
  }

  .cta-benefits {
    justify-content: center;
  }

  .floating-trigger {
    padding: 12px 16px;
    font-size: 0.9rem;
  }

  .qr-floating-widget {
    right: 15px;
    bottom: 80px;
  }
}

@media (max-width: 480px) {
  .popup-actions {
    flex-direction: column;
  }

  .action-btn {
    width: 100%;
  }

  .qr-code-wrapper {
    padding: 15px;
  }

  .instruction-step {
    font-size: 0.85rem;
    padding: 6px 12px;
  }
}

/* Animations */

@keyframes qr-pulse {
  0%, 100% {
    opacity: 1;
  }

  50% {
    opacity: 0.8;
  }
}

.qr-code-wrapper.pulse {
  animation: qr-pulse 2s infinite;
}

@keyframes qr-bounce {
  0%, 20%, 50%, 80%, 100% {
    transform: translateY(0);
  }

  40% {
    transform: translateY(-10px);
  }

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

.floating-trigger.bounce {
  animation: qr-bounce 2s infinite;
}

/* High contrast mode */

@media (prefers-contrast: high) {
  .qr-code-wrapper {
    border-color: #000;
    background: #fff;
  }

  .instruction-step {
    background: rgba(0, 0, 0, 0.8);
    color: white;
  }
}

/* Reduced motion */

@media (prefers-reduced-motion: reduce) {
  .qr-code-wrapper {
    transition: none;
  }

  .qr-code-wrapper:hover {
    transform: none;
  }

  .action-btn:hover {
    transform: none;
  }

  .floating-trigger:hover {
    transform: none;
  }
}

/**
 * Styles pour le système FAQ
 * Design glassmorphique avec animations élégantes
 */

.faq-system {
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 20px;
}

/* Header */

.faq-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 40px;
  padding: 30px;
  background: rgba(255, 255, 255, 0.05);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.header-content {
  display: flex;
  align-items: center;
  gap: 20px;
}

.service-icon {
  font-size: 3rem;
  color: #06b6d4;
}

.faq-title {
  font-size: 2rem;
  font-weight: bold;
  color: white;
  margin-bottom: 8px;
}

.faq-description {
  color: #94a3b8;
  font-size: 1.1rem;
  line-height: 1.5;
}

.faq-stats {
  display: flex;
  gap: 30px;
}

.stat-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.stat-number {
  font-size: 2rem;
  font-weight: bold;
  color: #06b6d4;
  margin-bottom: 4px;
}

.stat-label {
  color: #94a3b8;
  font-size: 0.9rem;
}

/* Controls */

.faq-controls {
  margin-bottom: 40px;
}

.search-section {
  display: flex;
  gap: 20px;
  align-items: center;
  flex-wrap: wrap;
}

.search-bar {
  flex: 1;
  position: relative;
  min-width: 300px;
}

.search-icon {
  position: absolute;
  left: 15px;
  top: 50%;
  transform: translateY(-50%);
  color: #94a3b8;
  font-size: 1rem;
}

.search-input {
  width: 100%;
  padding: 12px 15px 12px 45px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 12px;
  color: white;
  font-size: 1rem;
  transition: all 0.3s ease;
}

.search-input::-moz-placeholder {
  color: #94a3b8;
}

.search-input::placeholder {
  color: #94a3b8;
}

.search-input:focus {
  outline: none;
  background: rgba(255, 255, 255, 0.15);
  border-color: #06b6d4;
  box-shadow: 0 0 0 3px rgba(6, 182, 212, 0.1);
}

.control-buttons {
  display: flex;
  gap: 10px;
}

.control-btn {
  padding: 10px 20px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 8px;
  color: white;
  font-size: 0.9rem;
  cursor: pointer;
  transition: all 0.3s ease;
}

.control-btn:hover {
  background: rgba(6, 182, 212, 0.2);
  border-color: #06b6d4;
  color: #06b6d4;
}

/* Categories */

.faq-categories {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.faq-category {
  background: rgba(255, 255, 255, 0.03);
  border-radius: 16px;
  padding: 30px;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.category-header {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 25px;
  padding-bottom: 15px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.category-icon {
  font-size: 1.5rem;
  color: #8b5cf6;
}

.category-title {
  font-size: 1.3rem;
  font-weight: 600;
  color: white;
  flex: 1;
}

.category-count {
  padding: 4px 12px;
  background: rgba(139, 92, 246, 0.2);
  border-radius: 20px;
  color: #8b5cf6;
  font-size: 0.85rem;
  font-weight: 400;
}

/* Questions */

.category-questions {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.faq-item {
  background: rgba(255, 255, 255, 0.05);
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.1);
  transition: all 0.3s ease;
}

.faq-item:hover {
  border-color: #06b6d4;
  background: rgba(255, 255, 255, 0.08);
}

.faq-question {
  width: 100%;
  padding: 20px;
  background: transparent;
  border: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  text-align: left;
  transition: all 0.3s ease;
}

.faq-question:hover {
  background: rgba(6, 182, 212, 0.05);
}

.question-text {
  flex: 1;
  color: white;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  padding-right: 20px;
}

.toggle-icon {
  color: #06b6d4;
  font-size: 1rem;
  transition: transform 0.3s ease;
}

.faq-answer {
  overflow: hidden;
}

.answer-content {
  padding: 0 20px 20px 20px;
  color: #cbd5e1;
  line-height: 1.7;
  font-size: 0.95rem;
}

.answer-content p {
  margin: 0;
}

.answer-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 15px;
}

.tag {
  padding: 4px 10px;
  background: rgba(6, 182, 212, 0.15);
  border: 1px solid rgba(6, 182, 212, 0.3);
  border-radius: 6px;
  color: #06b6d4;
  font-size: 0.8rem;
  font-weight: 400;
}

/* Highlight de recherche */

.highlight {
  background: linear-gradient(135deg, rgba(251, 191, 36, 0.3), rgba(245, 158, 11, 0.3));
  padding: 2px 4px;
  border-radius: 4px;
  font-weight: 600;
}

/* No results */

.no-results {
  text-align: center;
  padding: 60px 20px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.no-results-icon {
  font-size: 3rem;
  color: #94a3b8;
  margin-bottom: 20px;
  opacity: 0.5;
}

.no-results h3 {
  color: white;
  font-size: 1.5rem;
  margin-bottom: 10px;
}

.no-results p {
  color: #94a3b8;
  margin-bottom: 20px;
}

.clear-search-btn {
  padding: 10px 24px;
  background: linear-gradient(135deg, #06b6d4, #8b5cf6);
  border: none;
  border-radius: 8px;
  color: white;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
}

.clear-search-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 25px rgba(6, 182, 212, 0.3);
}

/* CTA */

.faq-cta {
  margin-top: 60px;
  padding: 40px;
  background: linear-gradient(135deg, rgba(6, 182, 212, 0.1), rgba(139, 92, 246, 0.1));
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  text-align: center;
}

.faq-cta h3 {
  color: white;
  font-size: 1.5rem;
  margin-bottom: 10px;
}

.faq-cta p {
  color: #94a3b8;
  margin-bottom: 25px;
  font-size: 1.1rem;
}

.cta-button {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 15px 30px;
  background: linear-gradient(135deg, #06b6d4, #8b5cf6);
  border-radius: 12px;
  color: white;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s ease;
}

.cta-button:hover {
  transform: translateY(-3px);
  box-shadow: 0 15px 30px rgba(6, 182, 212, 0.4);
}

/* Responsive */

@media (max-width: 768px) {
  .faq-header {
    flex-direction: column;
    gap: 20px;
  }

  .header-content {
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
  }

  .service-icon {
    font-size: 2rem;
  }

  .faq-title {
    font-size: 1.5rem;
  }

  .faq-stats {
    width: 100%;
    justify-content: space-around;
  }

  .search-section {
    flex-direction: column;
    gap: 15px;
  }

  .search-bar {
    min-width: 100%;
  }

  .control-buttons {
    width: 100%;
    justify-content: stretch;
  }

  .control-btn {
    flex: 1;
  }

  .faq-category {
    padding: 20px;
  }

  .question-text {
    font-size: 0.95rem;
  }

  .answer-content {
    font-size: 0.9rem;
  }
}

@media (max-width: 480px) {
  .faq-system {
    padding: 20px 10px;
  }

  .faq-header {
    padding: 20px;
  }

  .stat-number {
    font-size: 1.5rem;
  }

  .faq-item {
    border-radius: 8px;
  }

  .faq-question {
    padding: 15px;
  }

  .answer-content {
    padding: 0 15px 15px 15px;
  }

  .faq-cta {
    padding: 30px 20px;
  }
}

/* Animations */

@keyframes faq-fade-in {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.faq-item {
  animation: faq-fade-in 0.4s ease-out;
}

/* Accessibilité */

.faq-question:focus {
  outline: 2px solid #06b6d4;
  outline-offset: 2px;
}

/* Mode impression */

@media print {
  .faq-system {
    background: white;
    color: black;
  }

  .faq-controls,
  .faq-cta {
    display: none;
  }

  .faq-item {
    page-break-inside: avoid;
  }

  .faq-answer {
    height: auto !important;
    opacity: 1 !important;
  }
}

/* Olive Portfolio - Consolidated CSS Entry Point */

/* Generated: 2025-10-10 - Build Optimization Week 1 */

/* CRITICAL PATH CSS - Loaded immediately */

/* NON-CRITICAL CSS - Deferred loading */

/* =============================================================================
   PERFECT DARK NAVIGATION - Styles pour le menu unifié révolutionnaire
   ============================================================================= */

/**
 * Navigation principale - Suprématie absolue avec glassmorphism
 */

.perfect-dark-navigation {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 9999 !important;
  width: 100% !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* États de scroll */

.perfect-dark-navigation.scrolled {
  background: rgba(0, 0, 0, 0.6) !important;
}

.perfect-dark-navigation:not(.scrolled) {
  background: rgba(0, 0, 0, 0.4) !important;
}

/* Container principal - Full width like UnifiedPageNavigation */

.perfect-dark-navigation .nav-container {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 130px;
  min-height: 130px;
  transition: background 0.3s ease, box-shadow 0.3s ease;
}

@media (min-width: 640px) {
  .perfect-dark-navigation .nav-container {
    padding: 0 1.5rem;
  }
}

@media (min-width: 1024px) {
  .perfect-dark-navigation .nav-container {
    padding: 0 2rem;
  }
}

@media (min-width: 1536px) {
  .perfect-dark-navigation .nav-container {
    padding: 0 4rem;
  }
}

/* Logo et stats Tamagotchi */

.perfect-dark-navigation .logo-section {
  display: none;
  align-items: center;
  gap: 1rem;
  flex-shrink: 0;
}

@media (min-width: 1250px) {
  .perfect-dark-navigation .logo-section {
    display: flex;
  }
}

.perfect-dark-navigation .logo-section-compact {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-shrink: 0;
}

/* Hide mobile logo on desktop */

@media (min-width: 851px) {
  .perfect-dark-navigation .logo-section {
    display: none !important;
  }
}

/* Hide desktop logo on mobile/tablet */

@media (max-width: 850px) {
  .perfect-dark-navigation .logo-section-compact {
    display: none !important;
  }
}

.perfect-dark-navigation .olive-logo {
  cursor: pointer;
  transition: transform 0.3s ease;
}

.perfect-dark-navigation .olive-logo:hover {
  transform: scale(1.05);
}

/* Navigation centrale avec dropdowns - Conteneurisée et CENTRÉE */

.perfect-dark-navigation .nav-center {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
}

.perfect-dark-navigation .nav-container-inner {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  width: auto;
  max-width: 1280px;
  min-width: 60%;
  justify-content: center;
  flex-wrap: nowrap;
  padding: 0.5rem 2rem;
  margin: 0 auto;
}

/* Dropdowns */

.perfect-dark-navigation .dropdown {
  position: relative;
}

.perfect-dark-navigation .dropdown-button {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.5rem 0.75rem;
  border-radius: 0.75rem;
  font-size: 0.8125rem;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.8);
  background: transparent;
  border: 1px solid transparent;
  transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
  cursor: pointer;
  white-space: nowrap;
  position: relative;
  overflow: hidden;
}

.perfect-dark-navigation .dropdown-button:hover {
  color: rgba(255, 255, 255, 0.95);
  background: transparent;
  border-color: rgba(255, 255, 255, 0.2);
}

.perfect-dark-navigation .dropdown-button.active {
  color: white;
  background: transparent;
  border-color: rgba(255, 255, 255, 0.2);
}

/* Indicateur actif */

.perfect-dark-navigation .dropdown-button::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  height: 2px;
  border-radius: 1px;
  transition: width 0.3s ease;
}

.perfect-dark-navigation .dropdown-button.active::after,
.perfect-dark-navigation .dropdown-button:hover::after {
  width: 80%;
}

.perfect-dark-navigation .dropdown-button:not(.active):not(:hover)::after {
  width: 0%;
}

/* Dropdown IA */

.perfect-dark-navigation .dropdown-ia .dropdown-button::after {
  background: linear-gradient(to right, #ec4899, #06b6d4);
}

/* Dropdown Code */

.perfect-dark-navigation .dropdown-code .dropdown-button::after {
  background: linear-gradient(to right, #06b6d4, #8b5cf6);
}

/* Dropdown Workflows */

.perfect-dark-navigation .dropdown-workflows .dropdown-button::after {
  background: linear-gradient(to right, #fbbf24, #f97316);
}

/* Menu dropdown - Compact */

.perfect-dark-navigation .dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  margin-top: 0.5rem;
  width: 280px;
  background: rgba(0, 0, 0, 0.9);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 1rem;
  overflow: hidden;
  z-index: 50;
}

/* Header du dropdown - Compact */

.perfect-dark-navigation .dropdown-header {
  padding: 0.625rem 0.875rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.perfect-dark-navigation .dropdown-header h3 {
  font-weight: 600;
  font-size: 0.875rem;
  color: white;
  margin: 0;
}

/* Items du dropdown - Compact */

.perfect-dark-navigation .dropdown-items {
  padding: 0.375rem 0;
}

.perfect-dark-navigation .dropdown-item {
  display: block;
  width: 100%;
  padding: 0.625rem 0.875rem;
  text-align: left;
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.8);
  transition: color 0.15s ease, transform 0.15s ease, background-color 0.15s ease;
  cursor: pointer;
  will-change: transform;
}

.perfect-dark-navigation .dropdown-item:hover {
  background: transparent;
  color: rgba(6, 182, 212, 1);
  transform: translateX(5px);
}

.perfect-dark-navigation .dropdown-item-title {
  font-weight: 400;
  font-size: 0.875rem;
  margin-bottom: 0.125rem;
}

.perfect-dark-navigation .dropdown-item-description {
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.55);
  margin-top: 0.125rem;
}

.perfect-dark-navigation .dropdown-item:hover .dropdown-item-description {
  color: rgba(255, 255, 255, 0.75);
}

.perfect-dark-navigation .dropdown-item-content {
  flex: 1;
}

/* Footer du dropdown */

.perfect-dark-navigation .dropdown-footer {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding: 0.5rem 1rem;
}

.perfect-dark-navigation .dropdown-footer a {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  font-weight: 400;
  background: linear-gradient(to right, #06b6d4, #8b5cf6);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  transition: opacity 0.2s ease;
  text-decoration: none;
}

.perfect-dark-navigation .dropdown-footer a:hover {
  opacity: 0.8;
}

/* Section droite - drapeaux et mobile */

.perfect-dark-navigation .nav-right {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-shrink: 0;
}

/* Hide contact button in mobile top bar (only in hamburger menu) */

.perfect-dark-navigation .contact-mobile {
  display: none !important;
}

/* Bouton hamburger mobile */

.perfect-dark-navigation .mobile-toggle {
  display: none;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.75rem;
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: white;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
}

.perfect-dark-navigation .mobile-toggle:hover {
  transform: scale(1.05);
  background: rgba(255, 255, 255, 0.15);
}

/* Menu mobile */

.perfect-dark-navigation .mobile-menu {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.95);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  z-index: 9998;
  max-height: calc(100vh - 130px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

/* Indicateur de swipe mobile */

.perfect-dark-navigation .mobile-menu::before {
  content: '';
  display: block;
  width: 40px;
  height: 4px;
  background: rgba(255, 255, 255, 0.3);
  border-radius: 2px;
  margin: 0.5rem auto 0;
}

.perfect-dark-navigation .mobile-menu-content {
  padding: 1rem 1rem 1.5rem;
}

.perfect-dark-navigation .mobile-section {
  margin-bottom: 1.5rem;
}

.perfect-dark-navigation .mobile-section:last-child {
  margin-bottom: 0;
  padding-top: 1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.perfect-dark-navigation .mobile-section-title {
  font-size: 0.875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.5rem;
  padding: 0 0.5rem;
}

.perfect-dark-navigation .mobile-section-title.ia {
  color: #ec4899;
}

.perfect-dark-navigation .mobile-section-title.code {
  color: #06b6d4;
}

.perfect-dark-navigation .mobile-section-title.workflows {
  color: #fbbf24;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.perfect-dark-navigation .mobile-item {
  display: block;
  width: 100%;
  padding: 0.5rem 1rem;
  text-align: left;
  background: transparent;
  border: none;
  border-radius: 0.5rem;
  color: rgba(255, 255, 255, 0.8);
  transition: all 0.2s ease;
  cursor: pointer;
  margin-bottom: 0.25rem;
}

.perfect-dark-navigation .mobile-item:hover {
  background: transparent;
  color: white;
  transform: translateX(5px);
}

.perfect-dark-navigation .mobile-contact {
  width: 100%;
  padding: 0.75rem 1rem;
  border-radius: 0.75rem;
  font-weight: 400;
  color: white;
  background: linear-gradient(to right, rgba(236, 72, 153, 0.2), rgba(251, 113, 133, 0.2));
  border: 1px solid rgba(236, 72, 153, 0.3);
  transition: all 0.3s ease;
  cursor: pointer;
}

.perfect-dark-navigation .mobile-contact:hover {
  background: linear-gradient(to right, rgba(236, 72, 153, 0.3), rgba(251, 113, 133, 0.3));
  transform: scale(1.02);
}

/* Mobile section wrapper - Enhanced grid layout */

.perfect-dark-navigation .mobile-section-wrapper {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1rem;
  width: 100%;
  padding: 0.75rem 0;
}

/* Very small screens: Logo + Hamburger only */

@media (max-width: 640px) {
  .perfect-dark-navigation .mobile-section-wrapper {
    grid-template-columns: 1fr auto;
  }
}

/* Medium screens: Logo + Language + Hamburger */

@media (min-width: 641px) and (max-width: 1024px) {
  .perfect-dark-navigation .mobile-section-wrapper {
    grid-template-columns: 1fr auto auto;
  }
}

/* Desktop: Hide mobile layout */

@media (min-width: 1250px) {
  .perfect-dark-navigation .mobile-section-wrapper {
    display: none;
  }
}

/* Logo section - Mobile (left) */

.perfect-dark-navigation .logo-section-mobile {
  display: flex;
  align-items: center;
  justify-self: start;
  transform: scale(0.9);
  transition: transform 0.3s ease;
}

.perfect-dark-navigation .logo-section-mobile:hover {
  transform: scale(0.95);
}

/* Language selector - Mobile Center (hidden on very small screens) */

.perfect-dark-navigation .language-selector-mobile-center {
  display: flex;
  align-items: center;
  justify-self: center;
}

@media (max-width: 640px) {
  .perfect-dark-navigation .language-selector-mobile-center {
    display: none;
  }
}

/* Nav right mobile - Hamburger + Admin indicator */

.perfect-dark-navigation .nav-right-mobile {
  display: flex;
  align-items: center;
  justify-self: end;
  gap: 0.75rem;
}

/* Hamburger icon animation */

.perfect-dark-navigation .hamburger-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  transition: transform 0.3s ease;
}

.perfect-dark-navigation .hamburger-icon.open {
  transform: rotate(90deg);
}

/* Mobile menu header - Logo + Language */

.perfect-dark-navigation .mobile-menu-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  padding: 1rem 0 1.5rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  margin-bottom: 1rem;
}

.perfect-dark-navigation .mobile-menu-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  transform: scale(1.1);
}

.perfect-dark-navigation .mobile-menu-language {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Responsive - Desktop nav visible at 1250px+ */

@media (max-width: 1249px) {
  .perfect-dark-navigation .nav-center {
    display: none;
  }

  .perfect-dark-navigation .mobile-toggle {
    display: flex;
  }
}

@media (min-width: 1250px) {
  .perfect-dark-navigation .nav-center {
    display: flex;
  }
}

/* Language selector visibility rules */

.perfect-dark-navigation .language-selector-compact {
  display: flex;
}

.perfect-dark-navigation .language-selector-mobile {
  display: none;
}

@media (max-width: 850px) {
  .perfect-dark-navigation .language-selector-compact {
    display: none;
  }

  .perfect-dark-navigation .language-selector-mobile {
    display: flex;
  }
}

@media (max-width: 768px) {
  .perfect-dark-navigation .nav-container {
    padding: 0 1rem;
  }

  .perfect-dark-navigation .language-selector-desktop {
    display: none;
  }
}

/* Animations d'entrée pour les dropdowns - DÉSACTIVÉES pour éviter le clignotement */

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(-10px) scale(0.95);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* Animation désactivée - gérée par Framer Motion
.perfect-dark-navigation .dropdown-menu {
  animation: fadeInUp 0.2s ease-out;
}
*/

/* Animations pour les items du dropdown - DÉSACTIVÉES */

@keyframes slideInLeft {
  from {
    opacity: 0;
    transform: translateX(-10px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Animations désactivées pour éviter le clignotement - gérées par Framer Motion
.perfect-dark-navigation .dropdown-item {
  animation: slideInLeft 0.2s ease-out;
}

.perfect-dark-navigation .dropdown-item:nth-child(1) { animation-delay: 0.05s; }
.perfect-dark-navigation .dropdown-item:nth-child(2) { animation-delay: 0.1s; }
.perfect-dark-navigation .dropdown-item:nth-child(3) { animation-delay: 0.15s; }
.perfect-dark-navigation .dropdown-item:nth-child(4) { animation-delay: 0.2s; }
.perfect-dark-navigation .dropdown-item:nth-child(5) { animation-delay: 0.25s; }
.perfect-dark-navigation .dropdown-item:nth-child(6) { animation-delay: 0.3s; }
*/

/* ==========================================
   SIMPLE NAV ITEMS
   ========================================== */

.perfect-dark-navigation .nav-item-simple {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  border-radius: 0.75rem;
  font-size: 0.875rem;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.8);
  background: transparent;
  border: 1px solid transparent;
  transition: all 0.3s ease;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
  position: relative;
}

.perfect-dark-navigation .nav-item-simple:hover {
  color: rgba(255, 255, 255, 0.95);
  background: transparent;
  border-color: rgba(255, 255, 255, 0.15);
  transform: translateY(-1px);
}

.perfect-dark-navigation .nav-item-simple.active {
  color: white;
  background: transparent;
  border-color: rgba(255, 255, 255, 0.2);
}

.perfect-dark-navigation .nav-item-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
}

.perfect-dark-navigation .nav-item-label {
  font-size: 0.875rem;
}

/* Mobile link */

.perfect-dark-navigation .mobile-link {
  display: flex;
  align-items: center;
  text-decoration: none;
  color: rgba(255, 255, 255, 0.8);
}

/* Fix pour éviter les conflits avec d'autres éléments */

.perfect-dark-navigation * {
  box-sizing: border-box;
}

/* Assurer que la navigation reste au-dessus de tout */

.perfect-dark-navigation {
  z-index: 2147483647 !important;
}

.perfect-dark-navigation .dropdown-menu {
  z-index: 2147483646 !important;
}

.perfect-dark-navigation .mobile-menu {
  z-index: 2147483645 !important;
}
