ThejasRao's picture
Initial OpenENV hackathon submission
c492c3f
@tailwind base;
@tailwind components;
@tailwind utilities;
/* ── Keyframes (defined here so they're always emitted) ──────────── */
@keyframes stepReveal {
from { opacity: 0; transform: translateX(-10px); }
to { opacity: 1; transform: translateX(0); }
}
@keyframes fillBar {
from { transform: scaleX(0); }
to { transform: scaleX(1); }
}
@keyframes fadeUp {
from { opacity: 0; transform: translateY(8px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes scanPulse {
0%, 100% { opacity: 0.4; }
50% { opacity: 1; }
}
@keyframes ping {
75%, 100% { transform: scale(2); opacity: 0; }
}
@keyframes slideInRight {
from { opacity: 0; transform: translateX(24px); }
to { opacity: 1; transform: translateX(0); }
}
@layer base {
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html, body, #root { height: 100%; overflow: hidden; }
body {
background: #080810;
color: #dde1f0;
font-family: 'IBM Plex Mono', monospace;
-webkit-font-smoothing: antialiased;
font-size: 13px;
}
/* Scanline texture */
body::after {
content: '';
position: fixed;
inset: 0;
background: repeating-linear-gradient(
0deg,
transparent,
transparent 3px,
rgba(0,0,0,0.025) 3px,
rgba(0,0,0,0.025) 4px
);
pointer-events: none;
z-index: 9999;
}
}
@layer utilities {
.font-display { font-family: 'Syne', sans-serif; }
.step-item {
opacity: 0;
animation: stepReveal 0.35s ease forwards;
}
.score-bar {
transform-origin: left;
transform: scaleX(0);
animation: fillBar 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.4s forwards;
}
.fade-up {
opacity: 0;
animation: fadeUp 0.4s ease forwards;
}
.animate-scanPulse { animation: scanPulse 1.4s ease-in-out infinite; }
.animate-ping { animation: ping 1s cubic-bezier(0,0,0.2,1) infinite; }
.slide-in { animation: slideInRight 0.3s ease forwards; }
.glow-red { text-shadow: 0 0 35px rgba(248,113,113,0.55), 0 0 70px rgba(248,113,113,0.2); }
.glow-green { text-shadow: 0 0 35px rgba(74,222,128,0.55), 0 0 70px rgba(74,222,128,0.2); }
.glow-orange { text-shadow: 0 0 35px rgba(251,146,60,0.55), 0 0 70px rgba(251,146,60,0.2); }
.glow-purple { text-shadow: 0 0 35px rgba(192,132,252,0.55), 0 0 70px rgba(192,132,252,0.2); }
}
::-webkit-scrollbar { width: 3px; }
::-webkit-scrollbar-track { background: #0f0f1a; }
::-webkit-scrollbar-thumb { background: #2a2a45; }