/* Design tokens — the only place raw brand hex values are defined. */ :root { /* Color — surface ramp built on #0a0a0f */ --color-surface: #0a0a0f; --color-surface-raised: #12121a; --color-surface-overlay: #1a1a24; --color-surface-muted: #22222e; /* Color — accent ramp */ --color-accent: #6366f1; --color-accent-strong: #8b5cf6; --color-accent-soft: #a855f7; --color-accent-cool: #3b82f6; /* Color — text ramp. muted and subtle stay at least 4.5:1 on --color-surface. */ --color-text: #f4f4f8; --color-text-muted: #d2d2dc; --color-text-subtle: #b8b8c8; /* Color — glass and elevation */ --surface-glass: linear-gradient( 135deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.05) 100% ); --surface-glass-border: rgba(255, 255, 255, 0.15); --surface-glass-border-strong: rgba(255, 255, 255, 0.25); --shadow-soft: 0 4px 24px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.1); --shadow-raised: 0 8px 32px rgba(99, 102, 241, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.15); --blur-glass: 16px; /* Typography */ --font-sans: system-ui, sans-serif; --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace; --text-xs: clamp(0.75rem, 0.7rem + 0.2vw, 0.8125rem); --text-sm: clamp(0.875rem, 0.8rem + 0.25vw, 0.9375rem); --text-md: clamp(1rem, 0.95rem + 0.3vw, 1.125rem); --text-lg: clamp(1.125rem, 1rem + 0.5vw, 1.375rem); --text-xl: clamp(1.375rem, 1.1rem + 0.9vw, 1.75rem); --text-2xl: clamp(1.75rem, 1.3rem + 1.4vw, 2.25rem); --text-3xl: clamp(2.25rem, 1.6rem + 2vw, 3rem); --leading-tight: 1.2; --leading-normal: 1.5; --leading-relaxed: 1.7; --tracking-wide: 0.08em; /* Spacing */ --space-1: 0.25rem; --space-2: 0.5rem; --space-3: 0.75rem; --space-4: 1rem; --space-5: 1.25rem; --space-6: 1.5rem; --space-7: 2rem; --space-8: 2.5rem; --space-9: 3rem; --space-10: 4rem; --space-11: 5rem; --space-12: 6rem; /* Radii and layout */ --radius-sm: 0.375rem; --radius-md: 0.75rem; --radius-lg: 1rem; --radius-pill: 999px; --content-max: 72rem; --content-gutter: clamp(1rem, 4vw, 2rem); /* Motion */ --duration-fast: 150ms; --duration-base: 250ms; --duration-slow: 400ms; --ease-standard: cubic-bezier(0.4, 0, 0.2, 1); --ease-emphasized: cubic-bezier(0.2, 0, 0, 1); /* Focus */ --focus-ring-color: var(--color-accent); --focus-ring-width: 2px; --focus-ring-offset: 3px; } *, *::before, *::after { box-sizing: border-box; } html { color-scheme: dark; scroll-behavior: smooth; } body { margin: 0; background: var(--color-surface); color: var(--color-text); font-family: var(--font-sans); font-size: var(--text-md); line-height: var(--leading-normal); -webkit-font-smoothing: antialiased; color-scheme: dark; } :focus-visible { outline: var(--focus-ring-width) solid var(--focus-ring-color); outline-offset: var(--focus-ring-offset); } .visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } .skip-link { position: absolute; top: var(--space-2); left: var(--space-2); z-index: 1000; padding: var(--space-2) var(--space-4); background: var(--color-surface-raised); color: var(--color-text); border-radius: var(--radius-sm); text-decoration: none; transform: translateY(-200%); transition: transform var(--duration-fast) var(--ease-standard); } .skip-link:focus { transform: translateY(0); } .glass-surface { background: var(--surface-glass); backdrop-filter: blur(var(--blur-glass)); -webkit-backdrop-filter: blur(var(--blur-glass)); border: 1px solid var(--surface-glass-border); box-shadow: var(--shadow-soft); } .content-container { width: min(100% - 2 * var(--content-gutter), var(--content-max)); margin-inline: auto; } .stack { display: flex; flex-direction: column; gap: var(--space-4); } .cluster { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; } @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; } }