/* ==================== BASE STYLES ==================== */ /* Reset, Typography, and Global Styles */ /* Box Sizing Reset */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } /* Root Element */ html { font-size: 16px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; scroll-behavior: smooth; } /* Body */ body { font-family: var(--font-sans); font-size: var(--text-base); font-weight: var(--font-normal); line-height: var(--leading-normal); color: var(--color-text); background: var(--color-bg); min-height: 100vh; overflow-x: hidden; } /* Background Gradient */ body::before { content: ''; position: fixed; inset: 0; background: radial-gradient(ellipse 80% 50% at 50% -20%, rgba(99, 102, 241, 0.15), transparent), radial-gradient(ellipse 60% 40% at 100% 100%, rgba(139, 92, 246, 0.1), transparent); pointer-events: none; z-index: -1; } /* ==================== TYPOGRAPHY ==================== */ h1, h2, h3, h4, h5, h6 { color: var(--color-text); font-weight: var(--font-bold); line-height: var(--leading-tight); } h1 { font-size: var(--text-4xl); } h2 { font-size: var(--text-2xl); } h3 { font-size: var(--text-xl); } h4 { font-size: var(--text-lg); } p { color: var(--color-text-muted); line-height: var(--leading-relaxed); } strong { font-weight: var(--font-semibold); color: var(--color-text); } /* ==================== LINKS ==================== */ a { color: var(--color-primary-400); text-decoration: none; transition: color var(--duration-fast) var(--ease-out); } a:hover { color: var(--color-primary-300); } /* ==================== FOCUS STATES ==================== */ :focus { outline: none; } :focus-visible { outline: 2px solid var(--color-primary-500); outline-offset: 2px; } /* ==================== SELECTION ==================== */ ::selection { background-color: var(--color-primary-600); color: white; } /* ==================== BUTTONS (Reset) ==================== */ button { font-family: inherit; font-size: inherit; cursor: pointer; border: none; background: none; color: inherit; } button:disabled { cursor: not-allowed; opacity: 0.5; } /* ==================== INPUTS (Reset) ==================== */ input, textarea, select { font-family: inherit; font-size: inherit; color: inherit; background: transparent; border: none; } input[type="file"] { cursor: pointer; } input[type="radio"] { appearance: none; -webkit-appearance: none; position: absolute; opacity: 0; width: 0; height: 0; } /* ==================== LISTS ==================== */ ul, ol { list-style: none; } /* ==================== IMAGES ==================== */ img, svg { display: block; max-width: 100%; } /* ==================== SCROLLBAR ==================== */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: var(--color-neutral-900); } ::-webkit-scrollbar-thumb { background: var(--color-neutral-700); border-radius: var(--radius-full); } ::-webkit-scrollbar-thumb:hover { background: var(--color-neutral-600); } /* ==================== UTILITIES ==================== */ .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } [hidden] { display: none !important; }