Spaces:
Paused
Paused
| @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600;700&display=swap'); | |
| @tailwind base; | |
| @tailwind components; | |
| @tailwind utilities; | |
| @layer base { | |
| :root { | |
| /* Cyber Terminal Dark Theme */ | |
| --background: 220 20% 4%; | |
| --foreground: 180 100% 90%; | |
| --card: 220 25% 6%; | |
| --card-foreground: 180 100% 90%; | |
| --popover: 220 25% 6%; | |
| --popover-foreground: 180 100% 90%; | |
| /* Neon Cyan - Primary */ | |
| --primary: 166 100% 50%; | |
| --primary-foreground: 220 20% 4%; | |
| /* Deep Navy - Secondary */ | |
| --secondary: 220 30% 12%; | |
| --secondary-foreground: 180 100% 90%; | |
| --muted: 220 25% 15%; | |
| --muted-foreground: 200 20% 55%; | |
| /* Electric Teal - Accent */ | |
| --accent: 175 100% 45%; | |
| --accent-foreground: 220 20% 4%; | |
| /* Hot Coral - Destructive/Alert */ | |
| --destructive: 0 85% 55%; | |
| --destructive-foreground: 0 0% 100%; | |
| /* Alert Orange */ | |
| --warning: 30 100% 55%; | |
| --warning-foreground: 220 20% 4%; | |
| --border: 200 50% 20%; | |
| --input: 220 30% 15%; | |
| --ring: 166 100% 50%; | |
| --radius: 0.25rem; | |
| /* Custom Design Tokens */ | |
| --glow-primary: 0 0 20px hsl(166 100% 50% / 0.5), 0 0 40px hsl(166 100% 50% / 0.3); | |
| --glow-accent: 0 0 20px hsl(175 100% 45% / 0.5), 0 0 40px hsl(175 100% 45% / 0.3); | |
| --glow-destructive: 0 0 20px hsl(0 85% 55% / 0.5), 0 0 40px hsl(0 85% 55% / 0.3); | |
| --gradient-primary: linear-gradient(135deg, hsl(166 100% 50%), hsl(175 100% 45%)); | |
| --gradient-dark: linear-gradient(180deg, hsl(220 20% 4%), hsl(220 25% 8%)); | |
| --gradient-card: linear-gradient(135deg, hsl(220 25% 8%), hsl(220 30% 6%)); | |
| --scanline-opacity: 0.03; | |
| --noise-opacity: 0.02; | |
| --sidebar-background: 220 25% 6%; | |
| --sidebar-foreground: 180 100% 90%; | |
| --sidebar-primary: 166 100% 50%; | |
| --sidebar-primary-foreground: 220 20% 4%; | |
| --sidebar-accent: 220 30% 15%; | |
| --sidebar-accent-foreground: 180 100% 90%; | |
| --sidebar-border: 200 50% 20%; | |
| --sidebar-ring: 166 100% 50%; | |
| } | |
| .dark { | |
| --background: 220 20% 4%; | |
| --foreground: 180 100% 90%; | |
| --card: 220 25% 6%; | |
| --card-foreground: 180 100% 90%; | |
| --popover: 220 25% 6%; | |
| --popover-foreground: 180 100% 90%; | |
| --primary: 166 100% 50%; | |
| --primary-foreground: 220 20% 4%; | |
| --secondary: 220 30% 12%; | |
| --secondary-foreground: 180 100% 90%; | |
| --muted: 220 25% 15%; | |
| --muted-foreground: 200 20% 55%; | |
| --accent: 175 100% 45%; | |
| --accent-foreground: 220 20% 4%; | |
| --destructive: 0 85% 55%; | |
| --destructive-foreground: 0 0% 100%; | |
| --border: 200 50% 20%; | |
| --input: 220 30% 15%; | |
| --ring: 166 100% 50%; | |
| } | |
| .light { | |
| --background: 210 20% 98%; | |
| --foreground: 220 30% 10%; | |
| --card: 0 0% 100%; | |
| --card-foreground: 220 30% 10%; | |
| --popover: 0 0% 100%; | |
| --popover-foreground: 220 30% 10%; | |
| --primary: 166 80% 40%; | |
| --primary-foreground: 0 0% 100%; | |
| --secondary: 210 20% 93%; | |
| --secondary-foreground: 220 30% 10%; | |
| --muted: 210 15% 90%; | |
| --muted-foreground: 220 15% 40%; | |
| --accent: 175 70% 35%; | |
| --accent-foreground: 0 0% 100%; | |
| --destructive: 0 70% 50%; | |
| --destructive-foreground: 0 0% 100%; | |
| --border: 210 15% 85%; | |
| --input: 210 15% 90%; | |
| --ring: 166 80% 40%; | |
| --scanline-opacity: 0.01; | |
| --noise-opacity: 0.01; | |
| } | |
| } | |
| @layer base { | |
| * { | |
| @apply border-border; | |
| } | |
| html { | |
| scroll-behavior: smooth; | |
| } | |
| body { | |
| @apply bg-background text-foreground font-sans antialiased; | |
| background-image: | |
| repeating-linear-gradient( | |
| 0deg, | |
| transparent, | |
| transparent 2px, | |
| hsl(var(--foreground) / var(--scanline-opacity)) 2px, | |
| hsl(var(--foreground) / var(--scanline-opacity)) 4px | |
| ); | |
| background-attachment: fixed; | |
| } | |
| ::selection { | |
| background: hsl(var(--primary) / 0.3); | |
| color: hsl(var(--primary)); | |
| } | |
| } | |
| @layer components { | |
| /* Glowing text effects */ | |
| .text-glow { | |
| text-shadow: var(--glow-primary); | |
| } | |
| .text-glow-accent { | |
| text-shadow: var(--glow-accent); | |
| } | |
| .text-glow-destructive { | |
| text-shadow: var(--glow-destructive); | |
| } | |
| /* Box glow effects */ | |
| .box-glow { | |
| box-shadow: var(--glow-primary); | |
| } | |
| .box-glow-accent { | |
| box-shadow: var(--glow-accent); | |
| } | |
| /* Cyber border effect */ | |
| .cyber-border { | |
| @apply relative; | |
| border: 1px solid hsl(var(--primary) / 0.3); | |
| } | |
| .cyber-border::before { | |
| content: ''; | |
| @apply absolute inset-0 pointer-events-none; | |
| background: linear-gradient( | |
| 90deg, | |
| hsl(var(--primary) / 0) 0%, | |
| hsl(var(--primary) / 0.1) 50%, | |
| hsl(var(--primary) / 0) 100% | |
| ); | |
| animation: scan 3s linear infinite; | |
| } | |
| /* Terminal cursor blink */ | |
| .cursor-blink::after { | |
| content: '▮'; | |
| @apply text-primary ml-1; | |
| animation: blink 1s step-end infinite; | |
| } | |
| /* Data stream effect */ | |
| .data-stream { | |
| @apply overflow-hidden relative; | |
| } | |
| .data-stream::before { | |
| content: ''; | |
| @apply absolute top-0 left-0 w-full h-full pointer-events-none; | |
| background: linear-gradient( | |
| 180deg, | |
| hsl(var(--primary) / 0.1) 0%, | |
| transparent 10%, | |
| transparent 90%, | |
| hsl(var(--primary) / 0.1) 100% | |
| ); | |
| } | |
| /* Grid overlay */ | |
| .grid-overlay { | |
| background-image: | |
| linear-gradient(hsl(var(--primary) / 0.03) 1px, transparent 1px), | |
| linear-gradient(90deg, hsl(var(--primary) / 0.03) 1px, transparent 1px); | |
| background-size: 40px 40px; | |
| } | |
| /* Breaking news ticker */ | |
| .ticker { | |
| @apply overflow-hidden whitespace-nowrap; | |
| } | |
| .ticker-content { | |
| @apply inline-block; | |
| animation: ticker 30s linear infinite; | |
| } | |
| /* Glitch effect */ | |
| .glitch { | |
| @apply relative; | |
| } | |
| .glitch::before, | |
| .glitch::after { | |
| content: attr(data-text); | |
| @apply absolute top-0 left-0 w-full h-full; | |
| } | |
| .glitch::before { | |
| left: 2px; | |
| text-shadow: -2px 0 hsl(var(--destructive)); | |
| clip-path: inset(0); | |
| animation: glitch-1 2s infinite linear alternate-reverse; | |
| } | |
| .glitch::after { | |
| left: -2px; | |
| text-shadow: 2px 0 hsl(var(--accent)); | |
| clip-path: inset(0); | |
| animation: glitch-2 2s infinite linear alternate-reverse; | |
| } | |
| /* Pulse ring */ | |
| .pulse-ring { | |
| @apply relative; | |
| } | |
| .pulse-ring::before { | |
| content: ''; | |
| @apply absolute inset-0 rounded-full; | |
| border: 2px solid hsl(var(--primary)); | |
| animation: pulse-ring 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; | |
| } | |
| } | |
| @layer utilities { | |
| /* Typography */ | |
| .font-display { | |
| font-family: 'Orbitron', sans-serif; | |
| } | |
| .font-mono { | |
| font-family: 'JetBrains Mono', monospace; | |
| } | |
| .font-sans { | |
| font-family: 'Inter', sans-serif; | |
| } | |
| /* Gradient text */ | |
| .gradient-text { | |
| @apply bg-clip-text text-transparent; | |
| background-image: var(--gradient-primary); | |
| } | |
| } | |
| /* Keyframe animations */ | |
| @keyframes blink { | |
| 0%, 100% { opacity: 1; } | |
| 50% { opacity: 0; } | |
| } | |
| @keyframes scan { | |
| 0% { transform: translateY(-100%); } | |
| 100% { transform: translateY(100%); } | |
| } | |
| @keyframes ticker { | |
| 0% { transform: translateX(0); } | |
| 100% { transform: translateX(-50%); } | |
| } | |
| @keyframes glitch-1 { | |
| 0%, 100% { clip-path: inset(80% 0 0 0); } | |
| 20% { clip-path: inset(10% 0 70% 0); } | |
| 40% { clip-path: inset(50% 0 30% 0); } | |
| 60% { clip-path: inset(30% 0 50% 0); } | |
| 80% { clip-path: inset(0 0 80% 0); } | |
| } | |
| @keyframes glitch-2 { | |
| 0%, 100% { clip-path: inset(0 0 80% 0); } | |
| 20% { clip-path: inset(30% 0 50% 0); } | |
| 40% { clip-path: inset(70% 0 10% 0); } | |
| 60% { clip-path: inset(10% 0 70% 0); } | |
| 80% { clip-path: inset(60% 0 20% 0); } | |
| } | |
| @keyframes pulse-ring { | |
| 0% { transform: scale(1); opacity: 1; } | |
| 100% { transform: scale(1.5); opacity: 0; } | |
| } | |
| @keyframes matrix-fall { | |
| 0% { transform: translateY(-100%); opacity: 0; } | |
| 10% { opacity: 1; } | |
| 90% { opacity: 1; } | |
| 100% { transform: translateY(100vh); opacity: 0; } | |
| } | |
| @keyframes float { | |
| 0%, 100% { transform: translateY(0); } | |
| 50% { transform: translateY(-10px); } | |
| } | |
| @keyframes fade-in { | |
| from { opacity: 0; transform: translateY(20px); } | |
| to { opacity: 1; transform: translateY(0); } | |
| } | |
| @keyframes slide-in-left { | |
| from { opacity: 0; transform: translateX(-30px); } | |
| to { opacity: 1; transform: translateX(0); } | |
| } | |
| @keyframes slide-in-right { | |
| from { opacity: 0; transform: translateX(30px); } | |
| to { opacity: 1; transform: translateX(0); } | |
| } | |
| @keyframes scale-in { | |
| from { opacity: 0; transform: scale(0.9); } | |
| to { opacity: 1; transform: scale(1); } | |
| } | |