2025-04-15 16:28:03 +05:30
|
|
|
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&family=Inter:wght@300;400;500;600;700&display=swap');
|
|
|
|
|
|
|
|
|
|
@tailwind base;
|
|
|
|
|
@tailwind components;
|
|
|
|
|
@tailwind utilities;
|
|
|
|
|
|
|
|
|
|
@layer base {
|
|
|
|
|
:root {
|
|
|
|
|
/* Cypherpunk theme */
|
|
|
|
|
--background: 226 20% 14%; /* cyber-dark */
|
|
|
|
|
--foreground: 0 0% 94%;
|
|
|
|
|
|
|
|
|
|
--card: 226 20% 14%;
|
|
|
|
|
--card-foreground: 0 0% 94%;
|
|
|
|
|
|
|
|
|
|
--popover: 226 20% 18%;
|
|
|
|
|
--popover-foreground: 0 0% 94%;
|
|
|
|
|
|
|
|
|
|
--primary: 195 82% 42%; /* cyber-accent */
|
|
|
|
|
--primary-foreground: 0 0% 98%;
|
|
|
|
|
|
|
|
|
|
--secondary: 226 20% 18%; /* slightly lighter than background */
|
|
|
|
|
--secondary-foreground: 0 0% 94%;
|
|
|
|
|
|
|
|
|
|
--muted: 226 13% 27%; /* cyber-muted */
|
|
|
|
|
--muted-foreground: 225 6% 57%; /* cyber-neutral */
|
|
|
|
|
|
|
|
|
|
--accent: 195 82% 42%; /* cyber-accent */
|
|
|
|
|
--accent-foreground: 0 0% 98%;
|
|
|
|
|
|
|
|
|
|
--destructive: 0 84% 60%;
|
|
|
|
|
--destructive-foreground: 0 0% 98%;
|
|
|
|
|
|
|
|
|
|
--border: 226 13% 27%;
|
|
|
|
|
--input: 226 13% 27%;
|
|
|
|
|
--ring: 195 82% 42%;
|
|
|
|
|
|
|
|
|
|
--radius: 0.25rem; /* smaller radius for shaper edges */
|
|
|
|
|
|
|
|
|
|
--sidebar-background: 226 20% 14%;
|
|
|
|
|
--sidebar-foreground: 0 0% 94%;
|
|
|
|
|
--sidebar-primary: 195 82% 42%;
|
|
|
|
|
--sidebar-primary-foreground: 0 0% 98%;
|
|
|
|
|
--sidebar-accent: 226 20% 18%;
|
|
|
|
|
--sidebar-accent-foreground: 0 0% 94%;
|
|
|
|
|
--sidebar-border: 226 13% 27%;
|
|
|
|
|
--sidebar-ring: 195 82% 42%;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@layer base {
|
|
|
|
|
* {
|
|
|
|
|
@apply border-border;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
body {
|
|
|
|
|
@apply bg-background text-foreground font-mono;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Terminal-like appearance */
|
|
|
|
|
::-webkit-scrollbar {
|
|
|
|
|
width: 8px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
::-webkit-scrollbar-track {
|
|
|
|
|
background: hsl(var(--secondary));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
::-webkit-scrollbar-thumb {
|
|
|
|
|
background: hsl(var(--muted));
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
::-webkit-scrollbar-thumb:hover {
|
|
|
|
|
background: hsl(var(--muted-foreground));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Add a subtle text-shadow to primary elements */
|
|
|
|
|
.text-glow {
|
|
|
|
|
text-shadow: 0 0 8px rgba(15, 160, 206, 0.5);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Custom focus styles */
|
|
|
|
|
*:focus-visible {
|
|
|
|
|
@apply outline-none ring-2 ring-primary/70 ring-offset-1 ring-offset-background;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Monospace styling */
|
|
|
|
|
h1, h2, h3, h4, h5, h6, button, input, textarea {
|
|
|
|
|
@apply font-mono;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Button styles */
|
|
|
|
|
.btn {
|
|
|
|
|
@apply inline-flex items-center justify-center rounded-sm px-4 py-2 text-sm font-medium transition-colors focus-visible:outline-none disabled:opacity-50;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@layer components {
|
|
|
|
|
.thread-card {
|
|
|
|
|
@apply border border-cyber-muted bg-cyber-dark hover:bg-cyber-muted/20 transition-colors rounded-sm p-4 mb-4;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.board-card {
|
|
|
|
|
@apply border border-cyber-muted bg-cyber-dark hover:bg-cyber-muted/20 transition-colors rounded-sm p-4 mb-4;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.comment-card {
|
|
|
|
|
@apply border-l-2 border-cyber-muted pl-4 py-2 my-3 hover:border-cyber-accent transition-colors;
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-04-22 11:05:49 +05:30
|
|
|
|
|
|
|
|
/* Cyberpunk glow animation for CypherImage */
|
|
|
|
|
@keyframes cyber-flicker {
|
|
|
|
|
0%, 100% {
|
|
|
|
|
opacity: 1;
|
|
|
|
|
filter: drop-shadow(0 0 2px rgba(0, 255, 255, 0.8));
|
|
|
|
|
}
|
|
|
|
|
8%, 10% {
|
|
|
|
|
opacity: 0.8;
|
|
|
|
|
filter: drop-shadow(0 0 5px rgba(0, 255, 255, 0.8));
|
|
|
|
|
}
|
|
|
|
|
20%, 25% {
|
|
|
|
|
opacity: 1;
|
|
|
|
|
filter: drop-shadow(0 0 1px rgba(0, 255, 255, 0.5));
|
|
|
|
|
}
|
|
|
|
|
30% {
|
|
|
|
|
opacity: 0.6;
|
|
|
|
|
filter: drop-shadow(0 0 8px rgba(0, 255, 255, 1));
|
|
|
|
|
}
|
|
|
|
|
40%, 45% {
|
|
|
|
|
opacity: 1;
|
|
|
|
|
filter: drop-shadow(0 0 2px rgba(0, 255, 255, 0.6));
|
|
|
|
|
}
|
|
|
|
|
50%, 55% {
|
|
|
|
|
opacity: 0.9;
|
|
|
|
|
filter: drop-shadow(0 0 3px rgba(0, 255, 255, 0.8));
|
|
|
|
|
}
|
|
|
|
|
60%, 100% {
|
|
|
|
|
opacity: 1;
|
|
|
|
|
filter: drop-shadow(0 0 2px rgba(0, 255, 255, 0.6));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.cyberpunk-glow {
|
|
|
|
|
animation: cyber-flicker 8s infinite;
|
|
|
|
|
will-change: filter, opacity;
|
|
|
|
|
}
|