/* Base Theme Variables */ :root { /* Breakpoints - for reference only, not used as variables */ --breakpoint-mobile-sm: 320px; --breakpoint-mobile: 480px; --breakpoint-tablet: 768px; --breakpoint-desktop: 1200px; /* Spacing Scale */ --space-unit: 0.25rem; --space-xxs: calc(var(--space-unit) * 1); /* 0.25rem */ --space-xs: calc(var(--space-unit) * 2); /* 0.5rem */ --space-sm: calc(var(--space-unit) * 3); /* 0.75rem */ --space-md: calc(var(--space-unit) * 4); /* 1rem */ --space-lg: calc(var(--space-unit) * 6); /* 1.5rem */ --space-xl: calc(var(--space-unit) * 8); /* 2rem */ --space-xxl: calc(var(--space-unit) * 12); /* 3rem */ --space-xxxl: calc(var(--space-unit) * 16); /* 4rem */ --space-xxxxl: calc(var(--space-unit) * 32); /* 4rem */ /* Typography Scale */ --font-size-base: 1rem; --font-size-xs: calc(var(--font-size-base) * 0.75); /* 12px */ --font-size-sm: calc(var(--font-size-base) * 0.875); /* 14px */ --font-size-md: var(--font-size-base); /* 16px */ --font-size-lg: calc(var(--font-size-base) * 1.25); /* 20px */ --font-size-xl: calc(var(--font-size-base) * 1.5); /* 24px */ --font-size-xxl: calc(var(--font-size-base) * 2); /* 32px */ --font-size-xxxl: calc(var(--font-size-base) * 2.5); /* 40px */ /* Line Heights */ --line-height-tight: 1.2; --line-height-base: 1.6; --line-height-relaxed: 1.8; /* Font Weights */ --font-weight-light: 300; --font-weight-normal: 400; --font-weight-medium: 500; --font-weight-semibold: 600; --font-weight-bold: 700; /* Layout */ --container-padding: var(--space-md); --section-spacing: var(--space-xxxxl); --header-height: 100px; --content-width-sm: 640px; --content-width-md: 768px; --content-width-lg: 1024px; --content-width-xl: 1200px; /* Border Radius */ --radius-sm: 4px; --radius-md: 8px; --radius-lg: 16px; --radius-pill: 9999px; /* Transitions */ --transition-speed: 0.3s; --transition-timing: ease; --theme-transition: color var(--transition-speed) var(--transition-timing), background-color var(--transition-speed) var(--transition-timing); /* Light Theme Colors (default) */ --primary: #3a7be0; --primary-gradient-1: #112fcf; --primary-gradient-2: #3b3bc8; --primary-gradient-3: #5743ed; --primary-gradient-4: #784dd9; --bg-main: #f8f8f8; --bg-card: #f1f1f1; --text: #333333; --text-muted: #666666; --header-gradient-1: rgba(237, 237, 237, 0.9); --header-gradient-2: rgba(228, 228, 228, 0.9); --border-color: rgba(58, 123, 224, 0.1); --bg-hover-rgb: 237, 237, 237; --bg-hover-nav: 207, 207, 207; /* Z-index Scale */ --z-below: -1; --z-normal: 1; --z-above: 10; --z-header: 100; --z-modal: 1000; } /* Dark Theme */ [data-theme="dark"] { --bg-main: #0a0a0a; --bg-card: #141414; --text: #e0e0e0; --text-muted: #888888; --header-gradient-1: rgba(14, 14, 14, 0.9); --header-gradient-2: rgba(41, 41, 41, 0.9); --bg-hover-rgb: 17, 17, 17; --bg-hover-nav: 20, 20, 20; } /* Responsive Adjustments */ @media (max-width: 768px) { :root { /* Tablet Adjustments */ --font-size-base: 0.9375rem; --header-height: 80px; --container-padding: var(--space-lg); --section-spacing: var(--space-xl); } } @media (max-width: 480px) { :root { /* Mobile Adjustments */ --font-size-base: 0.875rem; --header-height: 70px; --container-padding: var(--space-md); --section-spacing: var(--space-lg); } } @media (max-width: 320px) { :root { /* Small Mobile Adjustments */ --font-size-base: 0.8125rem; --header-height: 60px; --container-padding: var(--space-sm); --section-spacing: var(--space-md); } } /* Safe Area Insets for Notched Devices */ @supports (padding: max(0px)) { :root { --safe-area-inset-top: max(0px, env(safe-area-inset-top)); --safe-area-inset-right: max(0px, env(safe-area-inset-right)); --safe-area-inset-bottom: max(0px, env(safe-area-inset-bottom)); --safe-area-inset-left: max(0px, env(safe-area-inset-left)); } }