Spaces:
Sleeping
Sleeping
| @tailwind base; | |
| @tailwind components; | |
| @tailwind utilities; | |
| @layer base { | |
| :root { | |
| /* oklch-based color system for perceptual uniformity */ | |
| --background: 0 0% 100%; | |
| --foreground: 240 10% 3.9%; | |
| --card: 0 0% 100%; | |
| --card-foreground: 240 10% 3.9%; | |
| --popover: 0 0% 100%; | |
| --popover-foreground: 240 10% 3.9%; | |
| --primary: 240 5.9% 10%; | |
| --primary-foreground: 0 0% 98%; | |
| --secondary: 240 4.8% 95.9%; | |
| --secondary-foreground: 240 5.9% 10%; | |
| --muted: 240 4.8% 95.9%; | |
| --muted-foreground: 240 3.8% 46.1%; | |
| --accent: 240 4.8% 95.9%; | |
| --accent-foreground: 240 5.9% 10%; | |
| --destructive: 0 84.2% 60.2%; | |
| --destructive-foreground: 0 0% 98%; | |
| --border: 240 5.9% 90%; | |
| --input: 240 5.9% 90%; | |
| --ring: 240 5.9% 10%; | |
| --radius: 0.375rem; | |
| /* Semantic status colors */ | |
| --success: 142 71% 45%; | |
| --success-foreground: 0 0% 98%; | |
| --warning: 38 92% 50%; | |
| --warning-foreground: 0 0% 9%; | |
| --info: 217 91% 60%; | |
| --info-foreground: 0 0% 98%; | |
| /* Void accent colors (light fallbacks) */ | |
| --void-cyan: 187 82% 40%; | |
| --void-mint: 160 60% 40%; | |
| --void-amber: 38 92% 42%; | |
| --void-violet: 263 70% 55%; | |
| --void-crimson: 0 72% 45%; | |
| /* Surface hierarchy */ | |
| --surface-0: 0 0% 100%; | |
| --surface-1: 240 5% 96%; | |
| --surface-2: 240 6% 93%; | |
| --surface-3: 240 5% 88%; | |
| } | |
| .dark { | |
| /* Void palette */ | |
| --background: 215 27% 4%; | |
| --foreground: 210 20% 92%; | |
| --card: 220 30% 8%; | |
| --card-foreground: 210 20% 92%; | |
| --popover: 220 30% 8%; | |
| --popover-foreground: 210 20% 92%; | |
| --primary: 187 82% 53%; | |
| --primary-foreground: 220 30% 6%; | |
| --secondary: 220 25% 11%; | |
| --secondary-foreground: 210 20% 92%; | |
| --muted: 220 20% 14%; | |
| --muted-foreground: 220 15% 50%; | |
| --accent: 220 20% 14%; | |
| --accent-foreground: 210 20% 92%; | |
| --destructive: 0 72% 51%; | |
| --destructive-foreground: 0 0% 98%; | |
| --border: 220 20% 14%; | |
| --input: 220 20% 14%; | |
| --ring: 187 82% 53%; | |
| /* Void accent colors */ | |
| --void-cyan: 187 82% 53%; | |
| --void-mint: 160 60% 52%; | |
| --void-amber: 38 92% 50%; | |
| --void-violet: 263 90% 66%; | |
| --void-crimson: 0 72% 51%; | |
| /* Void status */ | |
| --success: 160 60% 52%; | |
| --success-foreground: 0 0% 98%; | |
| --warning: 38 92% 50%; | |
| --warning-foreground: 0 0% 9%; | |
| --info: 187 82% 53%; | |
| --info-foreground: 0 0% 98%; | |
| /* Void surface hierarchy */ | |
| --surface-0: 215 27% 4%; | |
| --surface-1: 222 35% 7%; | |
| --surface-2: 220 30% 10%; | |
| --surface-3: 220 25% 14%; | |
| } | |
| } | |
| @layer base { | |
| * { | |
| @apply border-border; | |
| } | |
| body { | |
| @apply bg-background text-foreground; | |
| font-feature-settings: "rlig" 1, "calt" 1; | |
| -webkit-font-smoothing: antialiased; | |
| -moz-osx-font-smoothing: grayscale; | |
| } | |
| /* Custom scrollbar */ | |
| ::-webkit-scrollbar { | |
| width: 5px; | |
| height: 5px; | |
| } | |
| ::-webkit-scrollbar-track { | |
| background: transparent; | |
| } | |
| ::-webkit-scrollbar-thumb { | |
| @apply bg-border rounded-full; | |
| } | |
| ::-webkit-scrollbar-thumb:hover { | |
| @apply bg-muted-foreground; | |
| } | |
| /* Modern button defaults — enhances ALL raw <button> elements */ | |
| button:focus-visible { | |
| outline: none; | |
| box-shadow: | |
| 0 0 0 2px hsl(var(--background)), | |
| 0 0 0 4px hsl(var(--ring)); | |
| } | |
| } | |
| @layer utilities { | |
| /* Kanban drag-over highlight */ | |
| .drag-over { | |
| @apply border-primary/40; | |
| background: hsl(var(--primary) / 0.02); | |
| } | |
| /* Glass morphism effects */ | |
| .glass { | |
| @apply bg-card/80 backdrop-blur-xl border border-border/50; | |
| } | |
| .glass-strong { | |
| @apply bg-card/90 backdrop-blur-2xl border border-border/60; | |
| } | |
| /* Surface levels */ | |
| .surface-0 { | |
| background: hsl(var(--surface-0)); | |
| } | |
| .surface-1 { | |
| background: hsl(var(--surface-1)); | |
| } | |
| .surface-2 { | |
| background: hsl(var(--surface-2)); | |
| } | |
| .surface-3 { | |
| background: hsl(var(--surface-3)); | |
| } | |
| /* Status badge styles */ | |
| .badge-success { | |
| @apply bg-green-500/15 text-green-400 border border-green-500/20; | |
| } | |
| .badge-warning { | |
| @apply bg-amber-500/15 text-amber-400 border border-amber-500/20; | |
| } | |
| .badge-error { | |
| @apply bg-red-500/15 text-red-400 border border-red-500/20; | |
| } | |
| .badge-info { | |
| @apply bg-blue-500/15 text-blue-400 border border-blue-500/20; | |
| } | |
| .badge-neutral { | |
| @apply bg-muted text-muted-foreground border border-border; | |
| } | |
| /* Glow effects for active states */ | |
| .glow-primary { | |
| box-shadow: 0 0 20px hsl(var(--primary) / 0.15); | |
| } | |
| .glow-success { | |
| box-shadow: 0 0 20px hsl(var(--success) / 0.15); | |
| } | |
| /* Smooth transitions */ | |
| .transition-smooth { | |
| @apply transition-all duration-200 ease-out; | |
| } | |
| /* Void glow utilities */ | |
| .glow-cyan { | |
| box-shadow: 0 0 20px hsl(var(--void-cyan) / 0.2), 0 0 40px hsl(var(--void-cyan) / 0.08); | |
| } | |
| .glow-mint { | |
| box-shadow: 0 0 20px hsl(var(--void-mint) / 0.2), 0 0 40px hsl(var(--void-mint) / 0.08); | |
| } | |
| .glow-amber { | |
| box-shadow: 0 0 20px hsl(var(--void-amber) / 0.2), 0 0 40px hsl(var(--void-amber) / 0.08); | |
| } | |
| .glow-violet { | |
| box-shadow: 0 0 20px hsl(var(--void-violet) / 0.2), 0 0 40px hsl(var(--void-violet) / 0.08); | |
| } | |
| /* Void panel — glass card with luminous border */ | |
| .void-panel { | |
| @apply bg-card/90 backdrop-blur-sm border border-border rounded-lg; | |
| box-shadow: | |
| inset 0 1px 0 hsl(var(--void-cyan) / 0.04), | |
| 0 4px 24px hsl(var(--background) / 0.5), | |
| 0 0 0 1px hsl(var(--void-cyan) / 0.04); | |
| } | |
| /* Void border glow — animated gradient border */ | |
| .void-border-glow { | |
| position: relative; | |
| } | |
| .void-border-glow::before { | |
| content: ''; | |
| position: absolute; | |
| inset: -1px; | |
| border-radius: inherit; | |
| background: linear-gradient( | |
| 135deg, | |
| hsl(var(--void-cyan) / 0.3), | |
| transparent 40%, | |
| transparent 60%, | |
| hsl(var(--void-violet) / 0.2) | |
| ); | |
| -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); | |
| mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); | |
| -webkit-mask-composite: xor; | |
| mask-composite: exclude; | |
| padding: 1px; | |
| pointer-events: none; | |
| animation: edgeGlow 2s ease-in-out infinite; | |
| } | |
| /* Neon button hover effect */ | |
| .btn-neon { | |
| @apply transition-all duration-200; | |
| } | |
| .btn-neon:hover { | |
| box-shadow: 0 0 16px hsl(var(--void-cyan) / 0.25); | |
| } | |
| /* Status badge glow variants */ | |
| .badge-glow-success { | |
| box-shadow: 0 0 12px hsl(var(--void-mint) / 0.25); | |
| } | |
| .badge-glow-warning { | |
| box-shadow: 0 0 12px hsl(var(--void-amber) / 0.25); | |
| } | |
| .badge-glow-error { | |
| box-shadow: 0 0 12px hsl(var(--void-crimson) / 0.25); | |
| } | |
| /* Void background — layered CSS gradients */ | |
| .void-bg { | |
| background-image: | |
| /* Subtle cyan spotlight at top */ | |
| radial-gradient(ellipse 60% 30% at 50% 0%, hsl(var(--void-cyan) / 0.03), transparent), | |
| /* Grid lines */ | |
| repeating-linear-gradient(0deg, hsl(var(--border) / 0.08) 0px, transparent 1px, transparent 40px), | |
| repeating-linear-gradient(90deg, hsl(var(--border) / 0.08) 0px, transparent 1px, transparent 40px), | |
| /* Dot intersections */ | |
| radial-gradient(circle 0.5px at 0px 0px, hsl(var(--border) / 0.2) 0.5px, transparent 0.5px); | |
| background-size: 100% 100%, 40px 40px, 40px 40px, 40px 40px; | |
| } | |
| /* Panel styles */ | |
| .panel { | |
| @apply bg-card border border-border rounded-lg; | |
| } | |
| .panel-header { | |
| @apply px-4 py-3 border-b border-border flex items-center justify-between; | |
| } | |
| .panel-body { | |
| @apply p-4; | |
| } | |
| /* Mono/code font */ | |
| .font-mono-tight { | |
| font-family: 'JetBrains Mono', 'SF Mono', 'Fira Code', 'Cascadia Code', ui-monospace, monospace; | |
| font-variant-numeric: tabular-nums; | |
| } | |
| /* Digital clock styling */ | |
| .digital-clock { | |
| font-family: 'JetBrains Mono', 'SF Mono', ui-monospace, monospace; | |
| font-weight: 600; | |
| letter-spacing: 0.04em; | |
| font-variant-numeric: tabular-nums; | |
| } | |
| /* Pulse animations for status */ | |
| .pulse-live { | |
| animation: pulse-live 2s ease-in-out infinite; | |
| } | |
| @keyframes pulse-live { | |
| 0%, 100% { opacity: 1; } | |
| 50% { opacity: 0.5; } | |
| } | |
| .pulse-dot { | |
| animation: pulse-dot 2s ease-in-out infinite; | |
| } | |
| @keyframes pulse-dot { | |
| 0%, 100% { transform: scale(1); opacity: 1; } | |
| 50% { transform: scale(1.3); opacity: 0.7; } | |
| } | |
| /* Shimmer loading */ | |
| .shimmer { | |
| background: linear-gradient( | |
| 90deg, | |
| hsl(var(--muted)) 0%, | |
| hsl(var(--muted-foreground) / 0.1) 50%, | |
| hsl(var(--muted)) 100% | |
| ); | |
| background-size: 200% 100%; | |
| animation: shimmer 1.5s ease-in-out infinite; | |
| } | |
| @keyframes shimmer { | |
| 0% { background-position: -200% 0; } | |
| 100% { background-position: 200% 0; } | |
| } | |
| /* Slide-in for panels */ | |
| .slide-in-right { | |
| animation: slideInRight 0.2s ease-out; | |
| } | |
| @keyframes slideInRight { | |
| from { transform: translateX(100%); opacity: 0; } | |
| to { transform: translateX(0); opacity: 1; } | |
| } | |
| .slide-in-left { | |
| animation: slideInLeft 0.2s ease-out; | |
| } | |
| @keyframes slideInLeft { | |
| from { transform: translateX(-100%); opacity: 0; } | |
| to { transform: translateX(0); opacity: 1; } | |
| } | |
| .fade-in { | |
| animation: fadeIn 0.15s ease-out; | |
| } | |
| @keyframes fadeIn { | |
| from { opacity: 0; } | |
| to { opacity: 1; } | |
| } | |
| .command-palette-in { | |
| animation: commandPaletteIn 0.1s ease-out; | |
| } | |
| @keyframes commandPaletteIn { | |
| from { | |
| opacity: 0; | |
| transform: scale(0.985); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: scale(1); | |
| } | |
| } | |
| /* iOS safe area for bottom nav */ | |
| .safe-area-bottom { | |
| padding-bottom: env(safe-area-inset-bottom, 0px); | |
| } | |
| /* Touch-friendly tap targets */ | |
| @media (pointer: coarse) { | |
| .touch-target { | |
| min-height: 44px; | |
| min-width: 44px; | |
| } | |
| } | |
| /* Progress bar shimmer */ | |
| .shimmer-bar { | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .shimmer-bar::after { | |
| content: ''; | |
| position: absolute; | |
| inset: 0; | |
| background: linear-gradient(90deg, transparent 0%, hsl(var(--primary-foreground) / 0.25) 50%, transparent 100%); | |
| background-size: 50% 100%; | |
| animation: shimmerBar 1.5s ease-in-out infinite; | |
| } | |
| @keyframes shimmerBar { | |
| 0% { transform: translateX(-100%); } | |
| 100% { transform: translateX(200%); } | |
| } | |
| /* Step check entrance */ | |
| .check-enter { | |
| animation: checkEnter 0.3s ease-out; | |
| } | |
| @keyframes checkEnter { | |
| 0% { opacity: 0; transform: scale(0.5); } | |
| 60% { transform: scale(1.15); } | |
| 100% { opacity: 1; transform: scale(1); } | |
| } | |
| /* Reduced motion */ | |
| @media (prefers-reduced-motion: reduce) { | |
| *, | |
| *::before, | |
| *::after { | |
| animation-duration: 0.01ms ; | |
| animation-iteration-count: 1 ; | |
| transition-duration: 0.01ms ; | |
| } | |
| } | |
| } | |
| /* ═══════════════════════════════════════════════════════════════════════ | |
| * Theme overrides — MUST come after @layer base so they win the cascade. | |
| * Each class is applied to <html> by next-themes alongside the "dark" class. | |
| * .void is empty because .dark already defines the void palette. | |
| * ═══════════════════════════════════════════════════════════════════════ */ | |
| .void { | |
| /* Inherits from .dark — no overrides needed */ | |
| } | |
| .midnight-blue { | |
| --background: 222 47% 5%; | |
| --foreground: 213 20% 92%; | |
| --card: 222 44% 8%; | |
| --card-foreground: 213 20% 92%; | |
| --popover: 222 44% 8%; | |
| --popover-foreground: 213 20% 92%; | |
| --primary: 217 91% 60%; | |
| --primary-foreground: 222 47% 5%; | |
| --secondary: 222 30% 12%; | |
| --secondary-foreground: 213 20% 92%; | |
| --muted: 222 25% 15%; | |
| --muted-foreground: 215 15% 50%; | |
| --accent: 222 25% 15%; | |
| --accent-foreground: 213 20% 92%; | |
| --destructive: 0 72% 51%; | |
| --destructive-foreground: 0 0% 98%; | |
| --border: 222 25% 15%; | |
| --input: 222 25% 15%; | |
| --ring: 217 91% 60%; | |
| --void-cyan: 217 91% 60%; | |
| --void-mint: 160 60% 52%; | |
| --void-amber: 38 92% 50%; | |
| --void-violet: 263 90% 66%; | |
| --void-crimson: 0 72% 51%; | |
| --success: 160 60% 52%; | |
| --success-foreground: 0 0% 98%; | |
| --warning: 38 92% 50%; | |
| --warning-foreground: 0 0% 9%; | |
| --info: 217 91% 60%; | |
| --info-foreground: 0 0% 98%; | |
| --surface-0: 222 47% 5%; | |
| --surface-1: 222 44% 8%; | |
| --surface-2: 222 35% 12%; | |
| --surface-3: 222 25% 16%; | |
| } | |
| .synthwave { | |
| --background: 270 30% 5%; | |
| --foreground: 300 10% 92%; | |
| --card: 270 35% 9%; | |
| --card-foreground: 300 10% 92%; | |
| --popover: 270 35% 9%; | |
| --popover-foreground: 300 10% 92%; | |
| --primary: 330 80% 72%; | |
| --primary-foreground: 270 30% 5%; | |
| --secondary: 270 25% 13%; | |
| --secondary-foreground: 300 10% 92%; | |
| --muted: 270 20% 16%; | |
| --muted-foreground: 280 15% 50%; | |
| --accent: 270 20% 16%; | |
| --accent-foreground: 300 10% 92%; | |
| --destructive: 0 72% 51%; | |
| --destructive-foreground: 0 0% 98%; | |
| --border: 270 20% 16%; | |
| --input: 270 20% 16%; | |
| --ring: 330 80% 72%; | |
| --void-cyan: 330 80% 72%; | |
| --void-mint: 174 80% 55%; | |
| --void-amber: 45 100% 60%; | |
| --void-violet: 280 100% 70%; | |
| --void-crimson: 350 80% 55%; | |
| --success: 174 80% 55%; | |
| --success-foreground: 0 0% 98%; | |
| --warning: 45 100% 60%; | |
| --warning-foreground: 0 0% 9%; | |
| --info: 280 100% 70%; | |
| --info-foreground: 0 0% 98%; | |
| --surface-0: 270 30% 5%; | |
| --surface-1: 270 35% 9%; | |
| --surface-2: 270 28% 13%; | |
| --surface-3: 270 22% 18%; | |
| } | |
| .solarized-dark { | |
| --background: 192 100% 5%; | |
| --foreground: 44 10% 80%; | |
| --card: 192 81% 8%; | |
| --card-foreground: 44 10% 80%; | |
| --popover: 192 81% 8%; | |
| --popover-foreground: 44 10% 80%; | |
| --primary: 45 100% 35%; | |
| --primary-foreground: 192 100% 5%; | |
| --secondary: 194 50% 12%; | |
| --secondary-foreground: 44 10% 80%; | |
| --muted: 194 35% 15%; | |
| --muted-foreground: 195 20% 45%; | |
| --accent: 194 35% 15%; | |
| --accent-foreground: 44 10% 80%; | |
| --destructive: 1 71% 52%; | |
| --destructive-foreground: 0 0% 98%; | |
| --border: 194 35% 15%; | |
| --input: 194 35% 15%; | |
| --ring: 45 100% 35%; | |
| --void-cyan: 175 59% 40%; | |
| --void-mint: 68 100% 30%; | |
| --void-amber: 45 100% 35%; | |
| --void-violet: 237 45% 55%; | |
| --void-crimson: 1 71% 52%; | |
| --success: 68 100% 30%; | |
| --success-foreground: 0 0% 98%; | |
| --warning: 18 89% 55%; | |
| --warning-foreground: 0 0% 9%; | |
| --info: 175 59% 40%; | |
| --info-foreground: 0 0% 98%; | |
| --surface-0: 192 100% 5%; | |
| --surface-1: 192 81% 8%; | |
| --surface-2: 194 50% 12%; | |
| --surface-3: 194 35% 16%; | |
| } | |
| .catppuccin { | |
| --background: 240 21% 12%; | |
| --foreground: 227 68% 88%; | |
| --card: 240 21% 15%; | |
| --card-foreground: 227 68% 88%; | |
| --popover: 240 21% 15%; | |
| --popover-foreground: 227 68% 88%; | |
| --primary: 267 84% 81%; | |
| --primary-foreground: 240 21% 12%; | |
| --secondary: 240 18% 19%; | |
| --secondary-foreground: 227 68% 88%; | |
| --muted: 240 15% 22%; | |
| --muted-foreground: 228 24% 55%; | |
| --accent: 240 15% 22%; | |
| --accent-foreground: 227 68% 88%; | |
| --destructive: 347 87% 68%; | |
| --destructive-foreground: 0 0% 98%; | |
| --border: 240 15% 22%; | |
| --input: 240 15% 22%; | |
| --ring: 267 84% 81%; | |
| --void-cyan: 189 71% 73%; | |
| --void-mint: 115 54% 76%; | |
| --void-amber: 22 99% 68%; | |
| --void-violet: 267 84% 81%; | |
| --void-crimson: 347 87% 68%; | |
| --success: 115 54% 76%; | |
| --success-foreground: 240 21% 12%; | |
| --warning: 35 77% 49%; | |
| --warning-foreground: 0 0% 9%; | |
| --info: 189 71% 73%; | |
| --info-foreground: 240 21% 12%; | |
| --surface-0: 240 21% 12%; | |
| --surface-1: 240 21% 15%; | |
| --surface-2: 240 18% 19%; | |
| --surface-3: 240 15% 23%; | |
| } | |
| .dracula { | |
| --background: 231 15% 16%; | |
| --foreground: 60 30% 96%; | |
| --card: 232 14% 19%; | |
| --card-foreground: 60 30% 96%; | |
| --popover: 232 14% 19%; | |
| --popover-foreground: 60 30% 96%; | |
| --primary: 135 94% 65%; | |
| --primary-foreground: 231 15% 16%; | |
| --secondary: 232 12% 24%; | |
| --secondary-foreground: 60 30% 96%; | |
| --muted: 232 10% 28%; | |
| --muted-foreground: 228 8% 55%; | |
| --accent: 232 10% 28%; | |
| --accent-foreground: 60 30% 96%; | |
| --destructive: 0 100% 67%; | |
| --destructive-foreground: 0 0% 98%; | |
| --border: 232 10% 24%; | |
| --input: 232 10% 24%; | |
| --ring: 135 94% 65%; | |
| --void-cyan: 191 97% 77%; | |
| --void-mint: 135 94% 65%; | |
| --void-amber: 65 92% 76%; | |
| --void-violet: 265 89% 78%; | |
| --void-crimson: 0 100% 67%; | |
| --success: 135 94% 65%; | |
| --success-foreground: 231 15% 16%; | |
| --warning: 65 92% 76%; | |
| --warning-foreground: 0 0% 9%; | |
| --info: 191 97% 77%; | |
| --info-foreground: 231 15% 16%; | |
| --surface-0: 231 15% 16%; | |
| --surface-1: 232 14% 19%; | |
| --surface-2: 232 12% 24%; | |
| --surface-3: 232 10% 28%; | |
| } | |
| .nord { | |
| --background: 220 16% 16%; | |
| --foreground: 219 28% 88%; | |
| --card: 222 16% 19%; | |
| --card-foreground: 219 28% 88%; | |
| --popover: 222 16% 19%; | |
| --popover-foreground: 219 28% 88%; | |
| --primary: 193 43% 67%; | |
| --primary-foreground: 220 16% 16%; | |
| --secondary: 220 14% 24%; | |
| --secondary-foreground: 219 28% 88%; | |
| --muted: 220 12% 28%; | |
| --muted-foreground: 219 15% 52%; | |
| --accent: 220 12% 28%; | |
| --accent-foreground: 219 28% 88%; | |
| --destructive: 354 42% 56%; | |
| --destructive-foreground: 0 0% 98%; | |
| --border: 220 12% 24%; | |
| --input: 220 12% 24%; | |
| --ring: 193 43% 67%; | |
| --void-cyan: 193 43% 67%; | |
| --void-mint: 92 28% 65%; | |
| --void-amber: 40 71% 73%; | |
| --void-violet: 311 20% 63%; | |
| --void-crimson: 354 42% 56%; | |
| --success: 92 28% 65%; | |
| --success-foreground: 220 16% 16%; | |
| --warning: 40 71% 73%; | |
| --warning-foreground: 0 0% 9%; | |
| --info: 179 25% 65%; | |
| --info-foreground: 220 16% 16%; | |
| --surface-0: 220 16% 16%; | |
| --surface-1: 222 16% 19%; | |
| --surface-2: 220 14% 24%; | |
| --surface-3: 220 12% 28%; | |
| } | |
| .vercel { | |
| --background: 0 0% 0%; | |
| --foreground: 0 0% 93%; | |
| --card: 0 0% 7%; | |
| --card-foreground: 0 0% 93%; | |
| --popover: 0 0% 7%; | |
| --popover-foreground: 0 0% 93%; | |
| --primary: 0 0% 100%; | |
| --primary-foreground: 0 0% 0%; | |
| --secondary: 0 0% 10%; | |
| --secondary-foreground: 0 0% 93%; | |
| --muted: 0 0% 15%; | |
| --muted-foreground: 0 0% 53%; | |
| --accent: 0 0% 15%; | |
| --accent-foreground: 0 0% 93%; | |
| --destructive: 0 100% 45%; | |
| --destructive-foreground: 0 0% 98%; | |
| --border: 0 0% 20%; | |
| --input: 0 0% 20%; | |
| --ring: 0 0% 100%; | |
| --void-cyan: 0 0% 93%; | |
| --void-mint: 160 60% 52%; | |
| --void-amber: 38 92% 50%; | |
| --void-violet: 263 90% 66%; | |
| --void-crimson: 0 72% 51%; | |
| --success: 212 100% 60%; | |
| --success-foreground: 0 0% 98%; | |
| --warning: 36 77% 49%; | |
| --warning-foreground: 0 0% 9%; | |
| --info: 212 100% 60%; | |
| --info-foreground: 0 0% 98%; | |
| --surface-0: 0 0% 0%; | |
| --surface-1: 0 0% 7%; | |
| --surface-2: 0 0% 10%; | |
| --surface-3: 0 0% 15%; | |
| } | |
| .retro-terminal { | |
| --background: 0 0% 2%; | |
| --foreground: 120 100% 50%; | |
| --card: 0 0% 5%; | |
| --card-foreground: 120 80% 55%; | |
| --popover: 0 0% 5%; | |
| --popover-foreground: 120 80% 55%; | |
| --primary: 120 100% 50%; | |
| --primary-foreground: 0 0% 2%; | |
| --secondary: 120 10% 10%; | |
| --secondary-foreground: 120 80% 55%; | |
| --muted: 120 8% 13%; | |
| --muted-foreground: 120 30% 35%; | |
| --accent: 120 8% 13%; | |
| --accent-foreground: 120 80% 55%; | |
| --destructive: 0 80% 45%; | |
| --destructive-foreground: 0 0% 98%; | |
| --border: 120 15% 12%; | |
| --input: 120 15% 12%; | |
| --ring: 120 100% 50%; | |
| --void-cyan: 120 100% 50%; | |
| --void-mint: 120 80% 55%; | |
| --void-amber: 45 100% 45%; | |
| --void-violet: 120 60% 40%; | |
| --void-crimson: 0 80% 45%; | |
| --success: 120 80% 55%; | |
| --success-foreground: 0 0% 2%; | |
| --warning: 45 100% 45%; | |
| --warning-foreground: 0 0% 2%; | |
| --info: 120 100% 50%; | |
| --info-foreground: 0 0% 2%; | |
| --surface-0: 0 0% 2%; | |
| --surface-1: 0 0% 5%; | |
| --surface-2: 120 5% 9%; | |
| --surface-3: 120 10% 13%; | |
| } | |
| .paper { | |
| --background: 40 40% 95%; | |
| --foreground: 30 10% 15%; | |
| --card: 40 35% 92%; | |
| --card-foreground: 30 10% 15%; | |
| --popover: 40 35% 92%; | |
| --popover-foreground: 30 10% 15%; | |
| --primary: 43 80% 28%; | |
| --primary-foreground: 40 40% 95%; | |
| --secondary: 40 25% 88%; | |
| --secondary-foreground: 30 10% 15%; | |
| --muted: 40 20% 88%; | |
| --muted-foreground: 30 10% 45%; | |
| --accent: 40 20% 88%; | |
| --accent-foreground: 30 10% 15%; | |
| --destructive: 0 72% 45%; | |
| --destructive-foreground: 0 0% 98%; | |
| --border: 40 20% 82%; | |
| --input: 40 20% 82%; | |
| --ring: 43 80% 28%; | |
| --void-cyan: 43 80% 28%; | |
| --void-mint: 160 50% 35%; | |
| --void-amber: 30 80% 40%; | |
| --void-violet: 263 50% 45%; | |
| --void-crimson: 0 60% 40%; | |
| --success: 142 60% 38%; | |
| --success-foreground: 0 0% 98%; | |
| --warning: 38 80% 45%; | |
| --warning-foreground: 0 0% 9%; | |
| --info: 217 70% 50%; | |
| --info-foreground: 0 0% 98%; | |
| --surface-0: 40 40% 95%; | |
| --surface-1: 40 35% 92%; | |
| --surface-2: 40 25% 88%; | |
| --surface-3: 40 20% 82%; | |
| } | |
| /* Themed backgrounds */ | |
| .synthwave-bg { | |
| background-image: | |
| radial-gradient(ellipse 60% 30% at 50% 0%, hsl(330 80% 72% / 0.06), transparent), | |
| repeating-linear-gradient(0deg, hsl(var(--border) / 0.08) 0px, transparent 1px, transparent 40px), | |
| repeating-linear-gradient(90deg, hsl(var(--border) / 0.08) 0px, transparent 1px, transparent 40px), | |
| radial-gradient(circle 0.5px at 0px 0px, hsl(var(--border) / 0.2) 0.5px, transparent 0.5px); | |
| background-size: 100% 100%, 40px 40px, 40px 40px, 40px 40px; | |
| } | |
| @media (prefers-reduced-motion: reduce) { | |
| .animate-converge-left, | |
| .animate-converge-right, | |
| .animate-pair-fade-out { | |
| animation: none ; | |
| opacity: 0 ; | |
| } | |
| .animate-converge-burst { | |
| animation: none ; | |
| opacity: 0 ; | |
| } | |
| .animate-mc-fade-in { | |
| animation: none ; | |
| opacity: 1 ; | |
| } | |
| } | |
| .terminal-bg { | |
| background-image: | |
| radial-gradient(ellipse 50% 25% at 50% 0%, hsl(120 100% 50% / 0.04), transparent), | |
| repeating-linear-gradient(0deg, hsl(120 100% 50% / 0.03) 0px, transparent 1px, transparent 20px), | |
| repeating-linear-gradient(90deg, transparent 0px, transparent 19px, hsl(120 100% 50% / 0.02) 20px); | |
| background-size: 100% 100%, 20px 20px, 20px 20px; | |
| } | |