@import url('https://fonts.googleapis.com/css2?family=Geist+Mono:wght@400;500;600&family=Geist:wght@400;500;600;700&display=swap'); @import 'leaflet/dist/leaflet.css'; @import "tailwindcss"; :root { font-family: 'Geist', system-ui, sans-serif; --glass-bg: rgba(9, 9, 11, 0.6); --glass-border: rgba(255, 255, 255, 0.05); } body { background-color: #050505; background-image: linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px), radial-gradient(circle at 15% 50%, rgba(59, 130, 246, 0.15), transparent 40%), radial-gradient(circle at 85% 30%, rgba(220, 38, 38, 0.12), transparent 40%); background-size: 32px 32px, 32px 32px, 100% 100%, 100% 100%; background-position: center center; background-attachment: fixed; color: #fafafa; margin: 0; min-height: 100vh; } #root { min-height: 100vh; } .mono { font-family: 'Geist Mono', monospace; } .zone-pulse { animation: pulse-ring 0.8s ease-out infinite; } @keyframes pulse-ring { 0% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.8); } 100% { box-shadow: 0 0 0 16px rgba(239, 68, 68, 0); } } .zone-pulse-green { animation: pulse-ring-green 1s ease-out infinite; } @keyframes pulse-ring-green { 0% { box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.6); } 100% { box-shadow: 0 0 0 14px rgba(34, 197, 94, 0); } } .step-fade-in { animation: fadeIn 0.3s cubic-bezier(0.4, 0, 0.2, 1); } @keyframes fadeIn { from { opacity: 0; transform: translateY(6px) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); } } .score-bar-fill { transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1); } .glass-panel { background: rgba(9, 9, 11, 0.4); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); border: 1px solid rgba(255, 255, 255, 0.08); box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.5), inset 0 1px 0 0 rgba(255, 255, 255, 0.05); } .neon-border-red { box-shadow: 0 0 10px rgba(220, 38, 38, 0.4), inset 0 0 10px rgba(220, 38, 38, 0.4); border-color: rgba(239, 68, 68, 0.6); } .neon-border-green { box-shadow: 0 0 10px rgba(34, 197, 94, 0.2), inset 0 0 10px rgba(34, 197, 94, 0.1); border-color: rgba(34, 197, 94, 0.4); } .neon-border-purple { box-shadow: 0 0 15px rgba(168, 85, 247, 0.5), inset 0 0 15px rgba(168, 85, 247, 0.3); border-color: rgba(192, 132, 252, 0.8); }