@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap'); * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Inter', sans-serif; line-height: 1.6; } /* Custom scrollbar */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: #f1f1f1; } ::-webkit-scrollbar-thumb { background: linear-gradient(45deg, #ec4899, #84cc16); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: linear-gradient(45deg, #db2777, #65a30d); } /* Animation classes */ .fade-in { animation: fadeIn 0.8s ease-in; } @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .pulse-glow { animation: pulseGlow 2s infinite; } @keyframes pulseGlow { 0%, 100% { box-shadow: 0 0 20px rgba(236, 72, 153, 0.3); } 50% { box-shadow: 0 0 30px rgba(236, 72, 153, 0.6); } } /* Quantum gradient backgrounds */ .quantum-gradient { background: linear-gradient(135deg, #fdf2f8 0%, #ecfdf5 100%); } .security-pattern { background-image: radial-gradient(circle at 20% 80%, rgba(236, 72, 153, 0.1) 0%, transparent 50%), radial-gradient(circle at 80% 20%, rgba(132, 204, 22, 0.1) 0%, transparent 50%); } /* Anomaly effects */ @keyframes anomalyPulse { 0% { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.7); } 70% { box-shadow: 0 0 0 10px rgba(220, 38, 38, 0); } 100% { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0); } } .anomaly-critical { animation: anomalyPulse 1s; } .anomaly-marker { position: absolute; width: 12px; height: 12px; background: #ef4444; border-radius: 50%; transform: translate(-50%, -50%); z-index: 100; pointer-events: none; } /* Component transitions */ .component-enter { opacity: 0; transform: scale(0.9); } .component-enter-active { opacity: 1; transform: scale(1); transition: all 0.3s ease-out; } /* Responsive text scaling */ .text-responsive { font-size: clamp(1rem, 2.5vw, 2rem); }