/* Testeurest unique palette: graphite, ultramarine, emerald, coral, ivory */
:root {
  --color-fg: #101522;
  --color-primary: #4d46ff;
  --color-secondary: #0ea57c;
  --color-accent: #ff7b6b;
  --color-bg: #f5f7ff;
  --color-panel: #ffffff;
  --color-muted: #58607a;
}

body {
  color: var(--color-fg) !important;
  background-image:
    radial-gradient(circle at 8% 10%, rgba(77, 70, 255, 0.09), transparent 24%),
    radial-gradient(circle at 92% 22%, rgba(14, 165, 124, 0.08), transparent 22%),
    radial-gradient(circle at 40% 88%, rgba(255, 123, 107, 0.08), transparent 20%);
}

.bg-bg { background-color: var(--color-bg) !important; }
.bg-fg { background-color: var(--color-fg) !important; }
.bg-primary { background-color: var(--color-primary) !important; }
.bg-secondary { background-color: var(--color-secondary) !important; }
.bg-accent { background-color: var(--color-accent) !important; }
.bg-white { background-color: var(--color-panel) !important; }

.text-fg { color: var(--color-fg) !important; }
.text-primary { color: var(--color-primary) !important; }
.text-secondary { color: var(--color-secondary) !important; }
.text-accent { color: var(--color-accent) !important; }

.border-fg { border-color: var(--color-fg) !important; }
.border-primary { border-color: var(--color-primary) !important; }
.border-secondary { border-color: var(--color-secondary) !important; }
.border-accent { border-color: var(--color-accent) !important; }

.bg-zinc-50 { background-color: var(--color-bg) !important; }
.bg-zinc-900 { background-color: var(--color-fg) !important; }

.shadow-neo { box-shadow: 6px 6px 0 0 rgba(16, 21, 34, 0.9), 0 10px 30px rgba(77, 70, 255, 0.14) !important; }
.shadow-neo-hover:hover { box-shadow: 4px 4px 0 0 rgba(16, 21, 34, 0.95), 0 12px 28px rgba(14, 165, 124, 0.18) !important; }
.hover\:shadow-neo-hover:hover { box-shadow: 4px 4px 0 0 rgba(16, 21, 34, 0.95), 0 12px 28px rgba(14, 165, 124, 0.18) !important; }
.hover\:shadow-neo-lg:hover { box-shadow: 10px 10px 0 0 rgba(16, 21, 34, 0.95), 0 16px 36px rgba(77, 70, 255, 0.18) !important; }
.focus\:shadow-neo:focus { box-shadow: 6px 6px 0 0 rgba(16, 21, 34, 0.9), 0 10px 30px rgba(77, 70, 255, 0.14) !important; }
.group:hover .group-hover\:shadow-neo-lg { box-shadow: 10px 10px 0 0 rgba(16, 21, 34, 0.95), 0 16px 36px rgba(77, 70, 255, 0.18) !important; }

.selection\:bg-primary ::selection,
.selection\:bg-primary::-moz-selection { background-color: var(--color-primary) !important; }
.hover\:bg-primary:hover { background-color: var(--color-primary) !important; }
.hover\:bg-fg:hover { background-color: var(--color-fg) !important; }
.hover\:bg-secondary:hover { background-color: var(--color-secondary) !important; }
.hover\:bg-accent:hover { background-color: var(--color-accent) !important; }
.hover\:text-primary:hover { color: var(--color-primary) !important; }
.hover\:text-fg:hover { color: var(--color-fg) !important; }
.hover\:border-primary:hover { border-color: var(--color-primary) !important; }
.focus\:border-primary:focus { border-color: var(--color-primary) !important; }

.group:hover .group-hover\:text-primary { color: var(--color-primary) !important; }
.group:hover .group-hover\:text-secondary { color: var(--color-secondary) !important; }
.group:hover .group-hover\:text-accent { color: var(--color-accent) !important; }
.group:hover .group-hover\:text-fg { color: var(--color-fg) !important; }

:::-webkit-scrollbar-track { background-color: var(--color-bg) !important; }
:::-webkit-scrollbar-thumb { background-color: var(--color-secondary) !important; }
:::-webkit-scrollbar-thumb:hover { background-color: var(--color-primary) !important; }

.from-zinc-900 { --tw-gradient-from: var(--color-fg) var(--tw-gradient-from-position) !important; }
.prose-zinc { --tw-prose-headings: var(--color-fg) !important; --tw-prose-links: var(--color-fg) !important; --tw-prose-bold: var(--color-fg) !important; --tw-prose-quotes: var(--color-fg) !important; --tw-prose-kbd: var(--color-fg) !important; --tw-prose-code: var(--color-fg) !important; }

.text-gray-500 { color: var(--color-muted) !important; }
.text-gray-600 { color: #394056 !important; }
.border-gray-800 { border-color: #1f2438 !important; }

nav.bg-white { background-color: rgba(255, 255, 255, 0.9) !important; backdrop-filter: blur(8px); }

nav { border-radius: 0 0 14px 14px; }
footer { border-radius: 14px 14px 0 0; }

a, button {
  transition: transform 0.18s ease, box-shadow 0.22s ease, background-color 0.22s ease, color 0.22s ease !important;
}

button:hover, .bg-primary:hover, .bg-fg:hover {
  filter: saturate(1.05);
}
