/* Base Styles */ :root { --color-primary: #06b6d4; --color-secondary: #8b5cf6; --color-bg: #020617; --color-surface: #1e293b; } /* Custom Scrollbar */ ::-webkit-scrollbar { width: 10px; height: 10px; } ::-webkit-scrollbar-track { background: #f1f5f9; } ::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 5px; } ::-webkit-scrollbar-thumb:hover { background: #94a3b8; } /* Code Block Styling */ .code-block { font-family: 'JetBrains Mono', Consolas, Monaco, monospace; background: #0f172a; border: 1px solid #1e293b; border-radius: 0.75rem; overflow: hidden; } .code-header { background: #1e293b; border-bottom: 1px solid #334155; padding: 0.75rem 1rem; display: flex; justify-content: space-between; align-items: center; } .code-content { padding: 1.5rem; overflow-x: auto; line-height: 1.6; font-size: 0.875rem; } /* Syntax Highlighting Colors */ .syntax-keyword { color: #c084fc; } .syntax-string { color: #4ade80; } .syntax-comment { color: #475569; font-style: italic; } .syntax-function { color: #22d3ee; } .syntax-number { color: #fbbf24; } .syntax-class { color: #f472b6; } /* Architecture Diagram Lines */ .pipeline-connector { position: relative; height: 2px; background: linear-gradient(90deg, var(--color-primary), var(--color-secondary)); opacity: 0.5; } .pipeline-connector::after { content: ''; position: absolute; right: 0; top: -4px; width: 0; height: 0; border-left: 8px solid var(--color-secondary); border-top: 5px solid transparent; border-bottom: 5px solid transparent; } /* Glow Effects */ .glow-primary { box-shadow: 0 0 20px rgba(6, 182, 212, 0.3); } .glow-secondary { box-shadow: 0 0 20px rgba(139, 92, 246, 0.3); } /* Phase Number Styling */ .phase-number { font-family: 'JetBrains Mono', monospace; background: linear-gradient(135deg, var(--color-primary), var(--color-secondary)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; text-shadow: 0 2px 4px rgba(0,0,0,0.1); } /* Smooth Reveal Animation */ .reveal { opacity: 0; transform: translateY(30px); transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1); } .reveal.active { opacity: 1; transform: translateY(0); } /* Grid Background Pattern */ .grid-pattern { background-image: linear-gradient(rgba(6, 182, 212, 0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(6, 182, 212, 0.03) 1px, transparent 1px); background-size: 50px 50px; } /* Hover Card Effect */ .hover-lift { transition: transform 0.3s ease, box-shadow 0.3s ease; } .hover-lift:hover { transform: translateY(-5px); box-shadow: 0 20px 40px -15px rgba(0, 0, 0, 0.5); } /* Pulse Animation for Live Indicators */ @keyframes pulse-ring { 0% { transform: scale(0.8); opacity: 0.5; } 100% { transform: scale(2); opacity: 0; } } .pulse-ring::before { content: ''; position: absolute; left: 0; top: 0; width: 100%; height: 100%; border-radius: 50%; background: inherit; animation: pulse-ring 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite; } /* Custom Selection */ ::selection { background: rgba(6, 182, 212, 0.3); color: #ecfeff; } /* Focus Visible Styles */ *:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; } /* Responsive Typography */ @media (max-width: 640px) { .code-content { font-size: 0.75rem; } } /* Print Styles */ @media print { .no-print { display: none !important; } body { background: white; color: black; } } /* Hugging Face Spaces Embed Optimizations */ .embedded { overflow-x: hidden; } .embedded site-header { position: relative !important; } /* HF Spaces specific fixes */ iframe[src*="hf.space"] { border: none; width: 100%; height: 100vh; } /* Ensure proper height in HF iframe */ html, body { min-height: 100vh; min-height: 100dvh; }