@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap'); @tailwind base; @tailwind components; @tailwind utilities; :root { --bg: #0a0a0f; --card-bg: rgba(255, 255, 255, 0.05); --card-border: rgba(255, 255, 255, 0.08); --text-primary: rgba(255, 255, 255, 0.95); --text-secondary: rgba(255, 255, 255, 0.5); --accent: #6366f1; --accent-2: #8b5cf6; } .light { --bg: #f0f0f8; --card-bg: rgba(255, 255, 255, 0.8); --card-border: rgba(0, 0, 0, 0.08); --text-primary: rgba(15, 15, 30, 0.95); --text-secondary: rgba(15, 15, 30, 0.5); } * { box-sizing: border-box; margin: 0; padding: 0; } html, body { width: 100%; height: 100%; overflow: hidden; touch-action: manipulation; -webkit-tap-highlight-color: transparent; } body { background-color: var(--bg); color: var(--text-primary); font-family: 'Inter', system-ui, sans-serif; transition: background-color 0.3s ease, color 0.3s ease; } /* Glassmorphism card */ .glass-card { background: var(--card-bg); border: 1px solid var(--card-border); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border-radius: 20px; transition: background 0.3s ease, border-color 0.3s ease; } /* Custom scrollbar */ ::-webkit-scrollbar { width: 4px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: rgba(99, 102, 241, 0.4); border-radius: 2px; } /* Custom toggle switch */ .toggle-track { position: relative; width: 52px; height: 28px; border-radius: 14px; cursor: pointer; transition: background-color 0.3s ease; } .toggle-thumb { position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: white; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3); transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); } .toggle-on .toggle-thumb { transform: translateX(24px); } /* Custom range slider */ input[type='range'] { -webkit-appearance: none; appearance: none; width: 100%; height: 6px; border-radius: 3px; background: rgba(255, 255, 255, 0.1); outline: none; cursor: pointer; } .light input[type='range'] { background: rgba(0, 0, 0, 0.1); } input[type='range']::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 20px; height: 20px; border-radius: 50%; background: #6366f1; cursor: pointer; box-shadow: 0 0 8px rgba(99, 102, 241, 0.6); transition: transform 0.15s ease; } input[type='range']::-webkit-slider-thumb:hover { transform: scale(1.2); } input[type='range']::-moz-range-thumb { width: 20px; height: 20px; border-radius: 50%; background: #6366f1; cursor: pointer; border: none; box-shadow: 0 0 8px rgba(99, 102, 241, 0.6); } /* Ambient orbs */ .orb { position: fixed; border-radius: 50%; filter: blur(80px); pointer-events: none; z-index: 0; } /* No select on interactive elements in tablet mode */ .no-select { -webkit-user-select: none; user-select: none; } /* Progress bar */ .progress-bar { height: 8px; border-radius: 4px; background: rgba(255, 255, 255, 0.08); overflow: hidden; } .light .progress-bar { background: rgba(0, 0, 0, 0.08); } .progress-fill { height: 100%; border-radius: 4px; background: linear-gradient(90deg, #6366f1, #8b5cf6); transition: width 0.6s cubic-bezier(0.34, 1.56, 0.64, 1); } /* Glow effects */ .glow-indigo { box-shadow: 0 0 20px rgba(99, 102, 241, 0.3); } .glow-emerald { box-shadow: 0 0 20px rgba(16, 185, 129, 0.3); } .glow-rose { box-shadow: 0 0 20px rgba(244, 63, 94, 0.3); } .glow-amber { box-shadow: 0 0 20px rgba(245, 158, 11, 0.3); } /* Modal backdrop */ .modal-backdrop { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.6); backdrop-filter: blur(8px); z-index: 100; display: flex; align-items: center; justify-content: center; }