@tailwind base; @tailwind components; @tailwind utilities; @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap'); /* Monaco Font for Domain */ @font-face { font-family: 'Monaco'; src: url('https://fonts.gstatic.com/s/monaco/v1/Monaco-Regular.woff2') format('woff2'); font-weight: normal; font-style: normal; font-display: swap; } :root { --background: #0a0a0a; --foreground: #fafafa; --card: #0f0f0f; --card-foreground: #fafafa; --popover: #0f0f0f; --popover-foreground: #fafafa; --primary: #3b82f6; --primary-foreground: #f8fafc; --secondary: #1e293b; --secondary-foreground: #f1f5f9; --muted: #1e293b; --muted-foreground: #64748b; --accent: #1e293b; --accent-foreground: #f1f5f9; --destructive: #ef4444; --destructive-foreground: #f8fafc; --border: #1e293b; --input: #1e293b; --ring: #3b82f6; --radius: 0.5rem; } * { border-color: hsl(var(--border)); } body { background-color: hsl(var(--background)); color: hsl(var(--foreground)); font-family: 'Inter', sans-serif; margin: 0; padding: 0; position: relative; min-height: 100vh; overflow-x: hidden; } /* Custom Scrollbar */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: hsl(var(--background)); } ::-webkit-scrollbar-thumb { background: hsl(var(--muted)); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: hsl(var(--muted-foreground)); } /* Glassmorphism Effects */ .glass { background: rgba(15, 15, 15, 0.8); backdrop-filter: blur(20px); border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); } .glass-card { background: rgba(15, 15, 15, 0.6); backdrop-filter: blur(16px); border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2); } /* Gradient Text */ .gradient-text { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } /* Domain Text with Monaco Font */ .domain-text { font-family: 'Monaco', 'Menlo', 'Consolas', monospace; font-size: 2.5rem; font-weight: bold; letter-spacing: 0.1em; position: relative; } @media (min-width: 768px) { .domain-text { font-size: 3.5rem; } } @media (min-width: 1024px) { .domain-text { font-size: 4rem; } } .gradient-text-blue { background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } /* Animated Background */ .animated-bg { background: radial-gradient(circle at 20% 80%, rgba(59, 130, 246, 0.08) 0%, transparent 50%), radial-gradient(circle at 80% 20%, rgba(139, 92, 246, 0.08) 0%, transparent 50%), radial-gradient(circle at 40% 40%, rgba(236, 72, 153, 0.04) 0%, transparent 50%), linear-gradient(-45deg, #0a0a0a, #111111, #0d0d0d, #151515); background-size: 400% 400%, 400% 400%, 400% 400%, 400% 400%; animation: gradientShift 25s ease infinite; } /* Film Grain / TV Noise Effect */ .animated-bg::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-image: radial-gradient(circle at 2px 2px, rgba(255,255,255,0.08) 2px, transparent 0), radial-gradient(circle at 4px 4px, rgba(0,0,0,0.04) 2px, transparent 0), radial-gradient(circle at 6px 6px, rgba(255,255,255,0.06) 2px, transparent 0), radial-gradient(circle at 8px 8px, rgba(0,0,0,0.03) 2px, transparent 0); background-size: 4px 4px, 6px 6px, 8px 8px, 10px 10px; pointer-events: none; opacity: 0.7; } @keyframes filmGrain { 0%, 100% { background-position: 0px 0px, 0px 0px, 0px 0px; } 10% { background-position: -1px -1px, 1px 1px, -1px 1px; } 20% { background-position: 1px -1px, -1px 1px, 1px -1px; } 30% { background-position: -1px 1px, 1px -1px, -1px -1px; } 40% { background-position: 1px 1px, -1px -1px, 1px 1px; } 50% { background-position: -1px -1px, 1px 1px, -1px 1px; } 60% { background-position: 1px -1px, -1px 1px, 1px -1px; } 70% { background-position: -1px 1px, 1px -1px, -1px -1px; } 80% { background-position: 1px 1px, -1px -1px, 1px 1px; } 90% { background-position: -1px -1px, 1px 1px, -1px 1px; } } @keyframes gradientShift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } /* Floating Animation */ @keyframes float { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-20px); } } .animate-float { animation: float 6s ease-in-out infinite; } /* Glow Effects */ .glow { box-shadow: 0 0 20px rgba(59, 130, 246, 0.3); } .glow-hover:hover { box-shadow: 0 0 30px rgba(59, 130, 246, 0.5); transition: box-shadow 0.3s ease; } /* Particle Background */ .particles { position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; z-index: -1; } .particle { position: absolute; width: 2px; height: 2px; background: rgba(59, 130, 246, 0.5); border-radius: 50%; animation: particleFloat 20s infinite linear; } @keyframes particleFloat { 0% { transform: translateY(100vh) rotate(0deg); opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { transform: translateY(-100vh) rotate(360deg); opacity: 0; } } /* Markdown Styles */ .markdown { color: #ffffff !important; line-height: 1.7; } .markdown h1 { font-size: 2.5rem; font-weight: 700; margin-top: 2rem; margin-bottom: 1rem; color: #ffffff !important; background: linear-gradient(135deg, #3b82f6, #1d4ed8); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .markdown h2 { font-size: 2rem; font-weight: 600; margin-top: 1.5rem; margin-bottom: 1rem; color: #ffffff !important; } .markdown h3 { font-size: 1.5rem; font-weight: 600; margin-top: 1.25rem; margin-bottom: 0.75rem; color: #ffffff !important; } .markdown p { margin-top: 0.75rem; margin-bottom: 0.75rem; line-height: 1.7; color: #e5e7eb !important; } .markdown img { max-width: 100%; height: auto; margin: 1.5rem 0; border-radius: 12px; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); transition: transform 0.3s ease; } .markdown img:hover { transform: scale(1.02); } .markdown ul, .markdown ol { margin: 1rem 0; padding-left: 2rem; } .markdown li { margin: 0.5rem 0; color: #e5e7eb !important; } .markdown blockquote { border-left: 4px solid #3b82f6; background: rgba(59, 130, 246, 0.1); padding: 1rem 1.5rem; margin: 1.5rem 0; border-radius: 8px; font-style: italic; color: #e5e7eb !important; } .markdown code { background: rgba(59, 130, 246, 0.1); color: #3b82f6 !important; padding: 0.2rem 0.4rem; border-radius: 4px; font-size: 0.9em; } .markdown pre { background: #0f0f0f; border: 1px solid #1e293b; border-radius: 8px; padding: 1rem; overflow-x: auto; margin: 1.5rem 0; } .markdown pre code { background: none; color: #ffffff !important; padding: 0; } .markdown a { color: #3b82f6 !important; text-decoration: underline; transition: color 0.2s ease; } .markdown a:hover { color: #1d4ed8 !important; } .markdown strong { color: #ffffff !important; font-weight: 600; } .markdown em { color: #e5e7eb !important; font-style: italic; } /* Button Styles */ .btn-primary { background: linear-gradient(135deg, #3b82f6, #1d4ed8); color: white; padding: 0.75rem 1.5rem; border-radius: 8px; font-weight: 500; transition: all 0.3s ease; border: none; cursor: pointer; position: relative; overflow: hidden; } .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 25px rgba(59, 130, 246, 0.4); } .btn-primary::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); transition: left 0.5s; } .btn-primary:hover::before { left: 100%; } /* Card Hover Effects */ .card-hover { transition: all 0.3s ease; cursor: pointer; } .card-hover:hover { transform: translateY(-8px) scale(1.02); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4); } /* Loading Animation */ @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } .animate-pulse { animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; } /* Fade In Animation */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } .fade-in-up { animation: fadeInUp 0.6s ease-out; } /* Responsive Design */ @media (max-width: 768px) { .markdown h1 { font-size: 2rem; } .markdown h2 { font-size: 1.75rem; } .markdown h3 { font-size: 1.25rem; } }