philippurbschat.de/home/public/css/style.css

128 lines
No EOL
3.8 KiB
CSS

:root {
--bg-base: #020617;
}
body {
background-color: var(--bg-base);
overflow-x: hidden;
font-family: 'Outfit', sans-serif;
}
.font-mono {
font-family: 'JetBrains Mono', monospace !important;
}
/* CRT Overlay */
.crt-overlay {
position: fixed;
top: 0; left: 0; width: 100%; height: 100%;
background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.1) 50%),
linear-gradient(90deg, rgba(255, 0, 0, 0.02), rgba(0, 255, 0, 0.01), rgba(0, 0, 255, 0.02));
background-size: 100% 3px, 3px 100%;
pointer-events: none;
z-index: 50;
}
/* Noise Texture */
.noise {
position: fixed;
top: 0; left: 0; width: 100%; height: 100%;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
opacity: 0.025;
pointer-events: none;
z-index: 40;
}
/* Background Glow */
.bg-glow {
position: fixed;
top: 50%; left: 50%;
transform: translate(-50%, -50%);
width: 120vw; height: 120vh;
background: radial-gradient(circle at center, rgba(99, 102, 241, 0.08) 0%, rgba(0, 0, 0, 0) 70%);
pointer-events: none;
z-index: -1;
}
.selection-pink::selection {
background: #f43f5e;
color: white;
}
/* Animations (GPU Accelerated) */
@keyframes blob-bounce {
0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
33% { transform: translate3d(30px, -50px, 0) scale(1.1); }
66% { transform: translate3d(-20px, 20px, 0) scale(0.9); }
}
@keyframes particle-drift {
0% { transform: translate3d(0, 0, 0) rotate(0deg); opacity: 0; }
50% { opacity: 0.5; }
100% { transform: translate3d(0, -100vh, 0) rotate(360deg); opacity: 0; }
}
@keyframes invader-patrol {
0%, 100% { transform: translate3d(-12px, 0, 0); }
50% { transform: translate3d(12px, 0, 0); }
}
.animate-blob {
animation: blob-bounce 25s infinite alternate ease-in-out;
filter: blur(80px);
will-change: transform;
backface-visibility: hidden;
}
.animate-invader {
animation: invader-patrol 4s infinite ease-in-out;
will-change: transform;
}
.particle {
position: fixed;
background: white;
border-radius: 50%;
pointer-events: none;
z-index: 1;
animation: particle-drift var(--p-duration) infinite linear;
animation-delay: var(--p-delay);
will-change: transform, opacity;
}
/* UI Components */
.bullshit-terminal {
background: rgba(15, 23, 42, 0.6);
border: 1px dashed rgba(100, 116, 139, 0.3);
border-left: 4px solid #f0abfc;
position: relative;
}
.bullshit-terminal::before {
content: "CORPORATE_BULLSHIT_V1.0";
position: absolute;
top: -10px;
left: 20px;
background: #0f172a;
padding: 0 10px;
font-family: 'JetBrains Mono', monospace;
font-size: 10px;
color: #64748b;
letter-spacing: 0.1em;
}
.btn-slim {
display: inline-flex;
align-items: center;
border: 1px solid rgba(240, 171, 252, 0.3);
color: #f0abfc;
font-family: 'JetBrains Mono', monospace;
font-size: 0.75rem;
text-transform: uppercase;
letter-spacing: 0.1em;
padding: 0.75rem 1.5rem;
border-radius: 12px;
transition: all 0.3s ease;
}
.btn-slim:hover {
background: rgba(240, 171, 252, 0.1);
border-color: #f0abfc;
transform: translateY(-2px);
box-shadow: 0 0 20px rgba(240, 171, 252, 0.1);
}
.sr-only {
position: absolute !important;
width: 1px !important;
height: 1px !important;
padding: 0 !important;
margin: -1px !important;
overflow: hidden !important;
clip: rect(0, 0, 0, 0) !important;
white-space: nowrap !important;
border-width: 0 !important;
}