echo-emily-backend / web /src /styles /globals.css
widgetwalker-username
feat: implement user profile system with Gen Z Pulse styling
b462c58
@tailwind base;
@tailwind components;
@tailwind utilities;
@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;600;700;800;900&family=Archivo+Black&family=JetBrains+Mono:wght@400;500;600;700;800&display=swap');
:root {
--neon-violet: #BC13FE;
--neon-green: #BFFF00;
--neon-orange: #FF6700;
--bg-pitch: #050505;
}
body {
background-color: var(--bg-pitch);
color: #FFFFFF;
font-family: 'JetBrains Mono', monospace;
overflow-x: hidden;
}
/* ── Neubrutalist Base ── */
@layer base {
h1, h2, h3 {
font-family: 'Orbitron', 'Archivo Black', sans-serif;
text-transform: uppercase;
letter-spacing: 0.1em;
}
}
@layer components {
/* ── The OS-Style Card ── */
.brutal-card {
background: #0A0A0A;
border: 4px solid #FFFFFF;
box-shadow: 10px 10px 0px 0px #000000;
transition: all 150ms step-end;
position: relative;
}
.brutal-card:hover {
transform: translate(-3px, -3px);
box-shadow: 13px 13px 0px 0px #000000;
}
.brutal-card:active {
transform: translate(6px, 6px);
box-shadow: 4px 4px 0px 0px #000000;
}
/* Accent Borders for OS categorization */
.card-violet { border-color: var(--neon-violet); }
.card-green { border-color: var(--neon-green); }
.card-orange { border-color: var(--neon-orange); }
/* ── Digital Readout / HUD elements ── */
.hud-text {
font-family: 'JetBrains Mono', monospace;
font-weight: 800;
font-size: 0.75rem;
letter-spacing: 0.2em;
text-transform: uppercase;
color: rgba(255, 255, 255, 0.5);
}
.hud-value {
font-family: 'Orbitron', sans-serif;
color: var(--neon-green);
text-shadow: 0 0 10px var(--neon-green);
}
/* ── OS Scanline & CRT FX ── */
.scanlines::after {
content: " ";
display: block;
position: fixed;
top: 0;
left: 0;
bottom: 0;
right: 0;
background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.06), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.06));
z-index: 1000;
background-size: 100% 4px, 3px 100%;
pointer-events: none;
}
/* ── Digital Glitch Static ── */
.noise-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: url('https://grainy-gradients.vercel.app/noise.svg');
opacity: 0.05;
pointer-events: none;
z-index: 999;
}
}
/* ── Custom Utilities ── */
@layer utilities {
.text-neon-violet { color: var(--neon-violet); text-shadow: 0 0 15px var(--neon-violet); }
.text-neon-green { color: var(--neon-green); text-shadow: 0 0 15px var(--neon-green); }
.text-neon-orange { color: var(--neon-orange); text-shadow: 0 0 15px var(--neon-orange); }
.text-neon-pink { color: #FF007F; text-shadow: 0 0 15px #FF007F; }
.text-neon-cyan { color: #00F3FF; text-shadow: 0 0 15px #00F3FF; }
.bg-neon-violet { background-color: var(--neon-violet); }
.bg-neon-green { background-color: var(--neon-green); }
.bg-neon-orange { background-color: var(--neon-orange); }
.bg-neon-pink { background-color: #FF007F; }
.bg-neon-cyan { background-color: #00F3FF; }
}
/* ── Bento Spacing ── */
.bento-container {
display: grid;
gap: 1.5rem;
padding: 1.5rem;
}