Files
botfights/frontend/src/style.css
T
2026-03-09 00:23:39 +00:00

200 lines
5.9 KiB
CSS

@import "tailwindcss";
@theme {
--font-arcade: "Press Start 2P", monospace;
--font-display: "Orbitron", sans-serif;
--font-neon: "Bungee Shade", sans-serif;
--font-retro: "Monoton", sans-serif;
--font-marker: "Permanent Marker", cursive;
--font-glitch: "Rubik Glitch", sans-serif;
--font-funky: "Honk", sans-serif;
--font-pixel: "Silkscreen", monospace;
--font-mono: "JetBrains Mono", monospace;
--font-sans: "Inter", sans-serif;
--color-neon-pink: #ff2d7b;
--color-neon-cyan: #00f0ff;
--color-neon-purple: #b83dff;
--color-neon-yellow: #ffe14d;
--color-neon-orange: #ff6b2b;
--color-neon-green: #39ff14;
--color-ring: #00ff41;
--color-ring-dim: #00aa2a;
--color-ring-glow: #00ff4140;
--color-ko: #ff2d2d;
--color-ko-glow: #ff2d2d40;
--color-gold: #ffd700;
--color-gold-dim: #b8960f;
--color-amber: #ffb000;
--color-surface: #07050a;
--color-surface-raised: #110e18;
--color-surface-overlay: #1a1525;
--color-border: #2a2040;
--color-border-bright: #3d3060;
--color-text-primary: #e8e0f0;
--color-text-secondary: #9088a0;
--color-text-muted: #605070;
}
/* Synthwave grid background */
.synthwave-grid {
background-image:
linear-gradient(rgba(184, 61, 255, 0.025) 1px, transparent 1px),
linear-gradient(90deg, rgba(184, 61, 255, 0.025) 1px, transparent 1px);
background-size: 40px 40px;
}
/* CRT scanline overlay */
.crt-overlay {
background: repeating-linear-gradient(
0deg,
rgba(0, 0, 0, 0.04) 0px,
rgba(0, 0, 0, 0.04) 1px,
transparent 1px,
transparent 3px
);
pointer-events: none;
}
/* Neon glow effects -- EXTRA BOLD */
.glow-pink {
text-shadow:
0 0 7px var(--color-neon-pink),
0 0 20px rgba(255, 45, 123, 0.5),
0 0 40px rgba(255, 45, 123, 0.25),
0 0 80px rgba(255, 45, 123, 0.1);
}
.glow-cyan {
text-shadow:
0 0 7px var(--color-neon-cyan),
0 0 20px rgba(0, 240, 255, 0.5),
0 0 40px rgba(0, 240, 255, 0.25),
0 0 80px rgba(0, 240, 255, 0.1);
}
.glow-purple {
text-shadow:
0 0 7px var(--color-neon-purple),
0 0 20px rgba(184, 61, 255, 0.5),
0 0 40px rgba(184, 61, 255, 0.25);
}
.glow-green {
text-shadow:
0 0 7px var(--color-ring),
0 0 20px var(--color-ring-glow),
0 0 40px rgba(0, 255, 65, 0.15);
}
.glow-yellow {
text-shadow:
0 0 7px var(--color-neon-yellow),
0 0 20px rgba(255, 225, 77, 0.5),
0 0 40px rgba(255, 225, 77, 0.2);
}
.glow-orange {
text-shadow:
0 0 7px var(--color-neon-orange),
0 0 20px rgba(255, 107, 43, 0.5);
}
/* Neon box glow */
.neon-border-pink {
box-shadow: 0 0 8px rgba(255, 45, 123, 0.4), 0 0 20px rgba(255, 45, 123, 0.15), inset 0 0 8px rgba(255, 45, 123, 0.05);
}
.neon-border-cyan {
box-shadow: 0 0 8px rgba(0, 240, 255, 0.4), 0 0 20px rgba(0, 240, 255, 0.15), inset 0 0 8px rgba(0, 240, 255, 0.05);
}
.neon-border-purple {
box-shadow: 0 0 8px rgba(184, 61, 255, 0.4), 0 0 20px rgba(184, 61, 255, 0.15), inset 0 0 8px rgba(184, 61, 255, 0.05);
}
.neon-border-yellow {
box-shadow: 0 0 8px rgba(255, 225, 77, 0.4), 0 0 20px rgba(255, 225, 77, 0.15), inset 0 0 8px rgba(255, 225, 77, 0.05);
}
/* Gradient text */
.gradient-text {
background: linear-gradient(135deg, var(--color-neon-cyan), var(--color-neon-pink), var(--color-neon-purple));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.gradient-text-hot {
background: linear-gradient(135deg, var(--color-neon-orange), var(--color-neon-pink), var(--color-neon-yellow));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.gradient-text-ice {
background: linear-gradient(135deg, var(--color-neon-cyan), var(--color-neon-purple), var(--color-neon-cyan));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
/* Health bar */
.health-bar {
transition: width 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
/* Screen shake */
@keyframes screen-shake {
0%, 100% { transform: translate(0, 0); }
10% { transform: translate(-3px, -2px); }
20% { transform: translate(4px, 3px); }
30% { transform: translate(-2px, 4px); }
40% { transform: translate(3px, -3px); }
50% { transform: translate(-4px, 2px); }
60% { transform: translate(2px, -4px); }
70% { transform: translate(4px, 3px); }
80% { transform: translate(-3px, -2px); }
90% { transform: translate(2px, 3px); }
}
.shake { animation: screen-shake 0.3s ease-in-out; }
/* Flicker */
@keyframes flicker {
0%, 19%, 21%, 23%, 25%, 54%, 56%, 100% { opacity: 1; }
20%, 24%, 55% { opacity: 0.3; }
}
.flicker { animation: flicker 1.5s infinite; }
/* Pulse glow */
@keyframes pulse-glow {
0%, 100% { opacity: 0.6; filter: brightness(0.8); }
50% { opacity: 1; filter: brightness(1.2); }
}
.pulse-glow { animation: pulse-glow 2s ease-in-out infinite; }
/* Neon flicker -- like a real neon sign */
@keyframes neon-flicker {
0%, 18%, 22%, 25%, 53%, 57%, 100% { opacity: 1; }
20%, 24%, 55% { opacity: 0.6; }
21%, 54% { opacity: 0.8; }
}
.neon-flicker { animation: neon-flicker 3s ease-in-out infinite; }
/* Slide up */
@keyframes slide-up {
from { opacity: 0; transform: translateY(30px); }
to { opacity: 1; transform: translateY(0); }
}
.slide-up { animation: slide-up 0.6s ease-out; }
/* Tier colors */
.tier-0 { color: var(--color-text-muted); }
.tier-1 { color: #cd7f32; }
.tier-2 { color: #c0c0c0; }
.tier-3 { color: #ffd700; }
.tier-4 { color: var(--color-neon-cyan); text-shadow: 0 0 8px rgba(0, 240, 255, 0.3); }
.tier-5 { color: var(--color-neon-purple); text-shadow: 0 0 10px rgba(184, 61, 255, 0.5); }
.tier-6 { color: var(--color-neon-pink); text-shadow: 0 0 12px rgba(255, 45, 123, 0.6); }
/* Safe area for bottom nav (iPhone notch/home indicator) */
.safe-area-bottom { padding-bottom: env(safe-area-inset-bottom, 0px); }
/* Reduced motion: skip animations */
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: 0.01ms !important;
transition-duration: 0.01ms !important;
}
}