133 lines
3.9 KiB
CSS
133 lines
3.9 KiB
CSS
@import "tailwindcss";
|
|
|
|
@theme {
|
|
--color-background: oklch(0.145 0 0);
|
|
--color-foreground: oklch(0.985 0 0);
|
|
--color-card: oklch(0.145 0 0);
|
|
--color-card-foreground: oklch(0.985 0 0);
|
|
--color-popover: oklch(0.145 0 0);
|
|
--color-popover-foreground: oklch(0.985 0 0);
|
|
--color-primary: oklch(0.835 0.28 152); /* Neon green #00ff88 equivalent */
|
|
--color-primary-foreground: oklch(0.145 0 0);
|
|
--color-secondary: oklch(0.269 0 0);
|
|
--color-secondary-foreground: oklch(0.985 0 0);
|
|
--color-muted: oklch(0.269 0 0);
|
|
--color-muted-foreground: oklch(0.708 0 0);
|
|
--color-accent: oklch(0.85 0.17 95); /* Neon gold #fbbf24 */
|
|
--color-accent-foreground: oklch(0.145 0 0);
|
|
--color-destructive: oklch(0.637 0.237 25.331); /* Neon red #ef4444 */
|
|
--color-destructive-foreground: oklch(0.985 0 0);
|
|
--color-border: oklch(0.269 0 0);
|
|
--color-input: oklch(0.269 0 0);
|
|
--color-ring: oklch(0.835 0.28 152);
|
|
--radius: 0.5rem;
|
|
}
|
|
|
|
@layer base {
|
|
:root {
|
|
--background: 222 47% 6%;
|
|
--foreground: 210 40% 98%;
|
|
--border: 217 32% 17%;
|
|
}
|
|
|
|
body {
|
|
background-color: #0a0e17;
|
|
color: #f8fafc;
|
|
border-color: #1e293b;
|
|
background-image:
|
|
radial-gradient(circle at 15% 50%, rgba(0, 255, 136, 0.04) 0%, transparent 25%),
|
|
radial-gradient(circle at 85% 30%, rgba(251, 191, 36, 0.04) 0%, transparent 25%);
|
|
}
|
|
}
|
|
|
|
/* Custom Cyberpunk Styles */
|
|
.neon-text-primary {
|
|
text-shadow: 0 0 10px rgba(0, 255, 136, 0.5), 0 0 20px rgba(0, 255, 136, 0.3);
|
|
}
|
|
|
|
.neon-text-accent {
|
|
text-shadow: 0 0 10px rgba(251, 191, 36, 0.5), 0 0 20px rgba(251, 191, 36, 0.3);
|
|
}
|
|
|
|
.neon-box-primary {
|
|
box-shadow: 0 0 15px rgba(0, 255, 136, 0.2), inset 0 0 10px rgba(0, 255, 136, 0.1);
|
|
border: 1px solid rgba(0, 255, 136, 0.4);
|
|
}
|
|
|
|
.neon-box-accent {
|
|
box-shadow: 0 0 15px rgba(251, 191, 36, 0.2), inset 0 0 10px rgba(251, 191, 36, 0.1);
|
|
border: 1px solid rgba(251, 191, 36, 0.4);
|
|
}
|
|
|
|
.cyber-grid {
|
|
background-size: 40px 40px;
|
|
background-image:
|
|
linear-gradient(to right, rgba(255, 255, 255, 0.03) 1px, transparent 1px),
|
|
linear-gradient(to bottom, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
|
|
mask-image: linear-gradient(to bottom, black 40%, transparent 100%);
|
|
-webkit-mask-image: linear-gradient(to bottom, black 40%, transparent 100%);
|
|
}
|
|
|
|
.glitch-wrapper {
|
|
position: relative;
|
|
}
|
|
|
|
.glitch-text::before,
|
|
.glitch-text::after {
|
|
content: attr(data-text);
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
opacity: 0.8;
|
|
}
|
|
|
|
.glitch-text::before {
|
|
color: #0ff;
|
|
z-index: -1;
|
|
animation: glitch-anim-1 2s infinite linear alternate-reverse;
|
|
}
|
|
|
|
.glitch-text::after {
|
|
color: #f0f;
|
|
z-index: -2;
|
|
animation: glitch-anim-2 3s infinite linear alternate-reverse;
|
|
}
|
|
|
|
@keyframes glitch-anim-1 {
|
|
0% { clip-path: inset(20% 0 80% 0); transform: translate(-2px, 1px); }
|
|
20% { clip-path: inset(60% 0 10% 0); transform: translate(2px, -1px); }
|
|
40% { clip-path: inset(40% 0 50% 0); transform: translate(-2px, 2px); }
|
|
60% { clip-path: inset(80% 0 5% 0); transform: translate(2px, -2px); }
|
|
80% { clip-path: inset(10% 0 70% 0); transform: translate(-1px, 1px); }
|
|
100% { clip-path: inset(30% 0 50% 0); transform: translate(1px, -1px); }
|
|
}
|
|
|
|
@keyframes glitch-anim-2 {
|
|
0% { clip-path: inset(10% 0 60% 0); transform: translate(2px, -1px); }
|
|
20% { clip-path: inset(30% 0 20% 0); transform: translate(-2px, 1px); }
|
|
40% { clip-path: inset(70% 0 10% 0); transform: translate(2px, -2px); }
|
|
60% { clip-path: inset(20% 0 50% 0); transform: translate(-2px, 2px); }
|
|
80% { clip-path: inset(50% 0 30% 0); transform: translate(1px, -1px); }
|
|
100% { clip-path: inset(5% 0 80% 0); transform: translate(-1px, 1px); }
|
|
}
|
|
|
|
/* CRT Scanline effect */
|
|
.scanlines::before {
|
|
content: " ";
|
|
display: block;
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
bottom: 0;
|
|
right: 0;
|
|
background: linear-gradient(
|
|
to bottom,
|
|
rgba(18, 16, 16, 0) 50%,
|
|
rgba(0, 0, 0, 0.25) 50%
|
|
);
|
|
background-size: 100% 4px;
|
|
z-index: 50;
|
|
pointer-events: none;
|
|
} |