.dark.theme-bw {
  --background: 0 0% 4%;
  --foreground: 0 0% 95%;
  --card: 0 0% 8%;
  --card-foreground: 0 0% 95%;
  --popover: 0 0% 8%;
  --popover-foreground: 0 0% 95%;
  --primary: 0 0% 95%;
  --primary-foreground: 0 0% 0%;
  --secondary: 0 0% 50%;
  --secondary-foreground: 0 0% 100%;
  --muted: 0 0% 12%;
  --muted-foreground: 0 0% 55%;
  --accent: 0 0% 95%;
  --accent-foreground: 0 0% 0%;
  --destructive: 0 70% 50%;
  --destructive-foreground: 210 40% 98%;
  --border: 0 0% 20%;
  --input: 0 0% 20%;
  --ring: 0 0% 70%;
  --radius: 0.5rem;
  --sidebar: 0 0% 4%;
  --sidebar-foreground: 0 0% 95%;
  --sidebar-primary: 0 0% 95%;
  --sidebar-primary-foreground: 0 0% 0%;
  --sidebar-accent: 0 0% 95%;
  --sidebar-accent-foreground: 0 0% 0%;
  --sidebar-border: 0 0% 15%;
  --sidebar-ring: 0 0% 70%;
}

.light.theme-bw {
  --background: 0 0% 97%;
  --foreground: 0 0% 10%;
  --card: 0 0% 100%;
  --card-foreground: 0 0% 10%;
  --popover: 0 0% 100%;
  --popover-foreground: 0 0% 10%;
  --primary: 0 0% 10%;
  --primary-foreground: 0 0% 100%;
  --secondary: 0 0% 40%;
  --secondary-foreground: 0 0% 100%;
  --muted: 0 0% 90%;
  --muted-foreground: 0 0% 45%;
  --accent: 0 0% 10%;
  --accent-foreground: 0 0% 100%;
  --destructive: 0 80% 50%;
  --destructive-foreground: 0 0% 100%;
  --border: 0 0% 82%;
  --input: 0 0% 82%;
  --ring: 0 0% 50%;
  --radius: 0.5rem;
  --sidebar: 0 0% 100%;
  --sidebar-foreground: 0 0% 10%;
  --sidebar-primary: 0 0% 10%;
  --sidebar-primary-foreground: 0 0% 100%;
  --sidebar-accent: 0 0% 10%;
  --sidebar-accent-foreground: 0 0% 100%;
  --sidebar-border: 0 0% 82%;
  --sidebar-ring: 0 0% 50%;
}

.dark.theme-bw body {
  background: transparent
    radial-gradient(ellipse 100% 60% at 30% 20%, hsla(0,0%,100%,0.03) 0%, transparent 60%),
    radial-gradient(ellipse 60% 50% at 70% 80%, hsla(0,0%,50%,0.02) 0%, transparent 50%);
  position: relative;
}

.dark.theme-bw body > div {
  background: transparent !important;
}

.dark.theme-bw body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background-image:
    radial-gradient(1px 1px at 10% 20%, hsla(0,0%,100%,0.12) 0%, transparent 100%),
    radial-gradient(1px 1px at 30% 70%, hsla(0,0%,100%,0.08) 0%, transparent 100%),
    radial-gradient(1px 1px at 50% 10%, hsla(0,0%,100%,0.1) 0%, transparent 100%),
    radial-gradient(1px 1px at 70% 50%, hsla(0,0%,100%,0.06) 0%, transparent 100%),
    radial-gradient(1px 1px at 90% 30%, hsla(0,0%,100%,0.1) 0%, transparent 100%),
    radial-gradient(1px 1px at 15% 85%, hsla(0,0%,100%,0.08) 0%, transparent 100%),
    radial-gradient(1px 1px at 65% 90%, hsla(0,0%,100%,0.06) 0%, transparent 100%),
    radial-gradient(1px 1px at 85% 15%, hsla(0,0%,100%,0.1) 0%, transparent 100%),
    radial-gradient(1px 1px at 40% 40%, hsla(0,0%,100%,0.07) 0%, transparent 100%),
    radial-gradient(1px 1px at 55% 60%, hsla(0,0%,100%,0.05) 0%, transparent 100%);
  background-size: 200% 200%;
  animation: bw-drift 40s ease-in-out infinite alternate;
}

.dark.theme-bw body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(ellipse 80% 40% at 20% 30%, hsla(0,0%,100%,0.04) 0%, transparent 60%),
    radial-gradient(ellipse 60% 40% at 80% 70%, hsla(0,0%,50%,0.02) 0%, transparent 50%),
    radial-gradient(ellipse 50% 30% at 50% 50%, hsla(0,0%,100%,0.02) 0%, transparent 50%);
}

.light.theme-bw body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(ellipse 80% 50% at 20% 30%, hsla(0,0%,0%,0.02) 0%, transparent 60%),
    radial-gradient(ellipse 60% 40% at 80% 70%, hsla(0,0%,0%,0.01) 0%, transparent 50%),
    repeating-linear-gradient(0deg, transparent, transparent 60px, hsla(0,0%,0%,0.015) 60px, hsla(0,0%,0%,0.015) 61px),
    repeating-linear-gradient(90deg, transparent, transparent 60px, hsla(0,0%,0%,0.015) 60px, hsla(0,0%,0%,0.015) 61px);
}

@keyframes bw-drift {
  0% { background-position: 0% 0%; opacity: 0.5; }
  50% { background-position: 100% 100%; opacity: 1; }
  100% { background-position: 0% 100%; opacity: 0.5; }
}

.dark.theme-bw .text-glow {
  text-shadow: 0 0 10px hsla(0,0%,100%,0.15), 0 0 30px hsla(0,0%,100%,0.05);
}

.light.theme-bw .text-glow {
  text-shadow: 0 0 8px hsla(0,0%,0%,0.08), 0 0 20px hsla(0,0%,0%,0.04);
}

.dark.theme-bw h1, .dark.theme-bw h2, .dark.theme-bw h3 {
  background: linear-gradient(135deg, hsl(0, 0%, 90%), hsl(0, 0%, 60%));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.light.theme-bw h1, .light.theme-bw h2, .light.theme-bw h3 {
  background: linear-gradient(135deg, hsl(0, 0%, 20%), hsl(0, 0%, 50%));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.dark.theme-bw a {
  color: hsl(0, 0%, 80%);
  text-decoration: none;
  transition: color 0.2s;
}

.light.theme-bw a {
  color: hsl(0, 0%, 30%);
  text-decoration: none;
  transition: color 0.2s;
}

.dark.theme-bw a:hover {
  color: hsl(0, 0%, 100%);
  text-shadow: 0 0 8px hsla(0,0%,100%,0.3);
}

.light.theme-bw a:hover {
  color: hsl(0, 0%, 0%);
}

.dark.theme-bw blockquote {
  border-left: 3px solid hsl(0, 0%, 50%);
  color: hsl(0, 0%, 60%);
  font-style: italic;
}

.light.theme-bw blockquote {
  border-left: 3px solid hsl(0, 0%, 60%);
  color: hsl(0, 0%, 50%);
  font-style: italic;
}

.dark.theme-bw code {
  color: hsl(0, 0%, 80%);
  background: hsla(0, 0%, 100%, 0.08);
  border: 1px solid hsla(0, 0%, 100%, 0.12);
}

.light.theme-bw code {
  color: hsl(0, 0%, 30%);
  background: hsla(0, 0%, 0%, 0.04);
  border: 1px solid hsla(0, 0%, 0%, 0.1);
}

.dark.theme-bw pre {
  background: rgba(0, 0, 0, 0.9);
  border: 1px solid hsla(0, 0%, 100%, 0.1);
}

.light.theme-bw pre {
  background: hsla(0, 0%, 0%, 0.02);
  border: 1px solid hsla(0, 0%, 0%, 0.08);
}

.dark.theme-bw hr {
  border-color: hsla(0, 0%, 100%, 0.12);
}

.light.theme-bw hr {
  border-color: hsla(0, 0%, 0%, 0.08);
}

.dark.theme-bw table th {
  color: hsl(0, 0%, 80%);
}

.light.theme-bw table th {
  color: hsl(0, 0%, 30%);
}

.dark.theme-bw table td {
  border-color: hsla(0, 0%, 100%, 0.1);
}

.light.theme-bw table td {
  border-color: hsla(0, 0%, 0%, 0.08);
}

.dark.theme-bw ::selection {
  background: hsla(0, 0%, 100%, 0.15);
  color: hsl(0, 0%, 100%);
}

.light.theme-bw ::selection {
  background: hsla(0, 0%, 0%, 0.1);
  color: hsl(0, 0%, 0%);
}

.dark.theme-bw input::placeholder,
.dark.theme-bw textarea::placeholder {
  color: hsl(0, 0%, 40%);
}

.light.theme-bw input::placeholder,
.light.theme-bw textarea::placeholder {
  color: hsl(0, 0%, 65%);
}

.dark.theme-bw .page-header-title {
  color: hsl(0, 0%, 95%);
}

.light.theme-bw .page-header-title {
  color: hsl(0, 0%, 10%);
}

.dark.theme-bw .stat-card-value {
  color: hsl(0, 0%, 95%);
}

.light.theme-bw .stat-card-value {
  color: hsl(0, 0%, 10%);
}

.dark.theme-bw .badge {
  color: hsl(0, 0%, 80%);
}

.light.theme-bw .badge {
  color: hsl(0, 0%, 30%);
}

.dark.theme-bw .sm\:grid-cols-2.lg\:grid-cols-3.gap-4.mt-4 > .relative:nth-child(odd) .group .h-1.w-full {
  background: linear-gradient(to right, hsl(0, 0%, 80%), hsl(0, 0%, 95%), hsl(0, 0%, 80%)) !important;
}

.dark.theme-bw .sm\:grid-cols-2.lg\:grid-cols-3.gap-4.mt-4 > .relative:nth-child(even) .group .h-1.w-full {
  background: linear-gradient(to right, hsl(0, 0%, 50%), hsl(0, 0%, 70%), hsl(0, 0%, 50%)) !important;
}

.dark.theme-bw .sm\:grid-cols-2.lg\:grid-cols-3.gap-4.mt-4 > .relative:nth-child(odd) .group .rounded-xl.shrink-0 {
  background: hsla(0, 0%, 100%, 0.08) !important;
}

.dark.theme-bw .sm\:grid-cols-2.lg\:grid-cols-3.gap-4.mt-4 > .relative:nth-child(even) .group .rounded-xl.shrink-0 {
  background: hsla(0, 0%, 50%, 0.08) !important;
}

.dark.theme-bw .sm\:grid-cols-2.lg\:grid-cols-3.gap-4.mt-4 > .relative:nth-child(odd) .group .rounded-xl.shrink-0 svg {
  color: hsl(0, 0%, 95%) !important;
}

.dark.theme-bw .sm\:grid-cols-2.lg\:grid-cols-3.gap-4.mt-4 > .relative:nth-child(even) .group .rounded-xl.shrink-0 svg {
  color: hsl(0, 0%, 70%) !important;
}

.dark.theme-bw .sm\:grid-cols-2.lg\:grid-cols-3.gap-4.mt-4 > .relative:nth-child(odd) .group .absolute.bottom-0.h-1 {
  background: linear-gradient(to right, transparent, hsla(0, 0%, 100%, 0.2), transparent) !important;
}

.dark.theme-bw .sm\:grid-cols-2.lg\:grid-cols-3.gap-4.mt-4 > .relative:nth-child(even) .group .absolute.bottom-0.h-1 {
  background: linear-gradient(to right, transparent, hsla(0, 0%, 50%, 0.15), transparent) !important;
}

.dark.theme-bw .sm\:grid-cols-2.lg\:grid-cols-3.gap-4.mt-4 .rounded-full.bg-gradient-to-r {
  background: linear-gradient(to right, hsl(0, 0%, 80%), hsl(0, 0%, 50%)) !important;
}

.light.theme-bw .sm\:grid-cols-2.lg\:grid-cols-3.gap-4.mt-4 > .relative:nth-child(odd) .group .h-1.w-full {
  background: linear-gradient(to right, hsl(0, 0%, 30%), hsl(0, 0%, 50%), hsl(0, 0%, 30%)) !important;
}

.light.theme-bw .sm\:grid-cols-2.lg\:grid-cols-3.gap-4.mt-4 > .relative:nth-child(even) .group .h-1.w-full {
  background: linear-gradient(to right, hsl(0, 0%, 50%), hsl(0, 0%, 65%), hsl(0, 0%, 50%)) !important;
}

.dark.theme-bw .growth-word,
.light.theme-bw .growth-word {
  -webkit-text-fill-color: #1BB0CE !important;
  color: #1BB0CE !important;
  background: none !important;
}
