Reach7 (обсуждение | вклад) Нет описания правки Метка: отменено |
Perl (обсуждение | вклад) Нет описания правки |
||
(не показано 65 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
:root { | |||
/* Primitive Color Tokens */ | |||
--color-white: rgba(255, 255, 255, 1); | |||
--color-black: rgba(0, 0, 0, 1); | |||
--color-cream-50: rgba(252, 252, 249, 1); | |||
--color-cream-100: rgba(255, 255, 253, 1); | |||
--color-gray-200: rgba(245, 245, 245, 1); | |||
--color-gray-300: rgba(167, 169, 169, 1); | |||
--color-gray-400: rgba(119, 124, 124, 1); | |||
--color-slate-500: rgba(98, 108, 113, 1); | |||
--color-brown-600: rgba(94, 82, 64, 1); | |||
--color-charcoal-700: rgba(31, 33, 33, 1); | |||
--color-charcoal-800: rgba(38, 40, 40, 1); | |||
--color-slate-900: rgba(19, 52, 59, 1); | |||
--color-teal-300: rgba(50, 184, 198, 1); | |||
--color-teal-400: rgba(45, 166, 178, 1); | |||
--color-teal-500: rgba(33, 128, 141, 1); | |||
--color-teal-600: rgba(29, 116, 128, 1); | |||
--color-teal-700: rgba(26, 104, 115, 1); | |||
--color-teal-800: rgba(41, 150, 161, 1); | |||
--color-red-400: rgba(255, 84, 89, 1); | |||
--color-red-500: rgba(192, 21, 47, 1); | |||
--color-orange-400: rgba(230, 129, 97, 1); | |||
--color-orange-500: rgba(168, 75, 47, 1); | |||
/* RGB versions for opacity control */ | |||
--color-brown-600-rgb: 94, 82, 64; | |||
--color-teal-500-rgb: 33, 128, 141; | |||
--color-slate-900-rgb: 19, 52, 59; | |||
--color-slate-500-rgb: 98, 108, 113; | |||
--color-red-500-rgb: 192, 21, 47; | |||
--color-red-400-rgb: 255, 84, 89; | |||
--color-orange-500-rgb: 168, 75, 47; | |||
--color-orange-400-rgb: 230, 129, 97; | |||
/* Background color tokens (Light Mode) */ | |||
--color-bg-1: rgba(59, 130, 246, 0.08); /* Light blue */ | |||
--color-bg-2: rgba(245, 158, 11, 0.08); /* Light yellow */ | |||
--color-bg-3: rgba(34, 197, 94, 0.08); /* Light green */ | |||
--color-bg-4: rgba(239, 68, 68, 0.08); /* Light red */ | |||
--color-bg-5: rgba(147, 51, 234, 0.08); /* Light purple */ | |||
--color-bg-6: rgba(249, 115, 22, 0.08); /* Light orange */ | |||
--color-bg-7: rgba(236, 72, 153, 0.08); /* Light pink */ | |||
--color-bg-8: rgba(6, 182, 212, 0.08); /* Light cyan */ | |||
/* Semantic Color Tokens (Light Mode) */ | |||
--color-background: var(--color-cream-50); | |||
--color-surface: var(--color-cream-100); | |||
--color-text: var(--color-slate-900); | |||
--color-text-secondary: var(--color-slate-500); | |||
--color-primary: var(--color-teal-500); | |||
--color-primary-hover: var(--color-teal-600); | |||
--color-primary-active: var(--color-teal-700); | |||
--color-secondary: rgba(var(--color-brown-600-rgb), 0.12); | |||
--color-secondary-hover: rgba(var(--color-brown-600-rgb), 0.2); | |||
--color-secondary-active: rgba(var(--color-brown-600-rgb), 0.25); | |||
--color-border: rgba(var(--color-brown-600-rgb), 0.2); | |||
--color-btn-primary-text: var(--color-cream-50); | |||
--color-card-border: rgba(var(--color-brown-600-rgb), 0.12); | |||
--color-card-border-inner: rgba(var(--color-brown-600-rgb), 0.12); | |||
--color-error: var(--color-red-500); | |||
--color-success: var(--color-teal-500); | |||
--color-warning: var(--color-orange-500); | |||
--color-info: var(--color-slate-500); | |||
--color-focus-ring: rgba(var(--color-teal-500-rgb), 0.4); | |||
--color-select-caret: rgba(var(--color-slate-900-rgb), 0.8); | |||
/* Common style patterns */ | |||
--focus-ring: 0 0 0 3px var(--color-focus-ring); | |||
--focus-outline: 2px solid var(--color-primary); | |||
--status-bg-opacity: 0.15; | |||
--status-border-opacity: 0.25; | |||
--select-caret-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23134252' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); | |||
--select-caret-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); | |||
/* RGB versions for opacity control */ | |||
--color-success-rgb: 33, 128, 141; | |||
--color-error-rgb: 192, 21, 47; | |||
--color-warning-rgb: 168, 75, 47; | |||
--color-info-rgb: 98, 108, 113; | |||
/* Typography */ | |||
font-family: | --font-family-base: "FKGroteskNeue", "Geist", "Inter", -apple-system, | ||
BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; | |||
--font-family-mono: "Berkeley Mono", ui-monospace, SFMono-Regular, Menlo, | |||
Monaco, Consolas, monospace; | |||
--font-size-xs: 11px; | |||
--font-size-sm: 12px; | |||
--font-size-base: 14px; | |||
--font-size-md: 14px; | |||
--font-size-lg: 16px; | |||
--font-size-xl: 18px; | |||
--font-size-2xl: 20px; | |||
--font-size-3xl: 24px; | |||
--font-size-4xl: 30px; | |||
--font-weight-normal: 400; | |||
--font-weight-medium: 500; | |||
--font-weight-semibold: 550; | |||
--font-weight-bold: 600; | |||
--line-height-tight: 1.2; | |||
--line-height-normal: 1.5; | |||
--letter-spacing-tight: -0.01em; | |||
/* Spacing */ | |||
--space-0: 0; | |||
--space-1: 1px; | |||
--space-2: 2px; | |||
--space-4: 4px; | |||
--space-6: 6px; | |||
--space-8: 8px; | |||
--space-10: 10px; | |||
--space-12: 12px; | |||
--space-16: 16px; | |||
--space-20: 20px; | |||
--space-24: 24px; | |||
--space-32: 32px; | |||
/* Border Radius */ | |||
--radius-sm: 6px; | |||
--radius-base: 8px; | |||
--radius-md: 10px; | |||
--radius-lg: 12px; | |||
--radius-full: 9999px; | |||
/* Shadows */ | |||
--shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.02); | |||
--shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.02); | |||
--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.04), | |||
0 2px 4px -1px rgba(0, 0, 0, 0.02); | |||
--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.04), | |||
0 4px 6px -2px rgba(0, 0, 0, 0.02); | |||
--shadow-inset-sm: inset 0 1px 0 rgba(255, 255, 255, 0.15), | |||
inset 0 -1px 0 rgba(0, 0, 0, 0.03); | |||
/* Animation */ | |||
--duration-fast: 150ms; | |||
--duration-normal: 250ms; | |||
--ease-standard: cubic-bezier(0.16, 1, 0.3, 1); | |||
/* Layout */ | |||
--container-sm: 640px; | |||
--container-md: 768px; | |||
--container-lg: 1024px; | |||
--container-xl: 1280px; | |||
} | } | ||
@ | /* Dark mode colors */ | ||
@media (prefers-color-scheme: dark) { | |||
:root { | |||
/* RGB versions for opacity control (Dark Mode) */ | |||
--color-gray-400-rgb: 119, 124, 124; | |||
--color-teal-300-rgb: 50, 184, 198; | |||
--color-gray-300-rgb: 167, 169, 169; | |||
--color-gray-200-rgb: 245, 245, 245; | |||
/* Background color tokens (Dark Mode) */ | |||
--color-bg-1: rgba(29, 78, 216, 0.15); /* Dark blue */ | |||
--color-bg-2: rgba(180, 83, 9, 0.15); /* Dark yellow */ | |||
--color-bg-3: rgba(21, 128, 61, 0.15); /* Dark green */ | |||
--color-bg-4: rgba(185, 28, 28, 0.15); /* Dark red */ | |||
--color-bg-5: rgba(107, 33, 168, 0.15); /* Dark purple */ | |||
--color-bg-6: rgba(194, 65, 12, 0.15); /* Dark orange */ | |||
--color-bg-7: rgba(190, 24, 93, 0.15); /* Dark pink */ | |||
--color-bg-8: rgba(8, 145, 178, 0.15); /* Dark cyan */ | |||
/* Semantic Color Tokens (Dark Mode) */ | |||
--color-background: var(--color-charcoal-700); | |||
--color-surface: var(--color-charcoal-800); | |||
--color-text: var(--color-gray-200); | |||
--color-text-secondary: rgba(var(--color-gray-300-rgb), 0.7); | |||
--color-primary: var(--color-teal-300); | |||
--color-primary-hover: var(--color-teal-400); | |||
--color-primary-active: var(--color-teal-800); | |||
--color-secondary: rgba(var(--color-gray-400-rgb), 0.15); | |||
--color-secondary-hover: rgba(var(--color-gray-400-rgb), 0.25); | |||
--color-secondary-active: rgba(var(--color-gray-400-rgb), 0.3); | |||
--color-border: rgba(var(--color-gray-400-rgb), 0.3); | |||
--color-error: var(--color-red-400); | |||
--color-success: var(--color-teal-300); | |||
--color-warning: var(--color-orange-400); | |||
--color-info: var(--color-gray-300); | |||
--color-focus-ring: rgba(var(--color-teal-300-rgb), 0.4); | |||
--color-btn-primary-text: var(--color-slate-900); | |||
--color-card-border: rgba(var(--color-gray-400-rgb), 0.2); | |||
--color-card-border-inner: rgba(var(--color-gray-400-rgb), 0.15); | |||
--shadow-inset-sm: inset 0 1px 0 rgba(255, 255, 255, 0.1), | |||
inset 0 -1px 0 rgba(0, 0, 0, 0.15); | |||
--button-border-secondary: rgba(var(--color-gray-400-rgb), 0.2); | |||
--color-border-secondary: rgba(var(--color-gray-400-rgb), 0.2); | |||
--color-select-caret: rgba(var(--color-gray-200-rgb), 0.8); | |||
/* Common style patterns - updated for dark mode */ | |||
--focus-ring: 0 0 0 3px var(--color-focus-ring); | |||
--focus-outline: 2px solid var(--color-primary); | |||
--status-bg-opacity: 0.15; | |||
--status-border-opacity: 0.25; | |||
--select-caret-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23134252' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); | |||
--select-caret-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); | |||
/* RGB versions for dark mode */ | |||
--color-success-rgb: var(--color-teal-300-rgb); | |||
--color-error-rgb: var(--color-red-400-rgb); | |||
color: | --color-warning-rgb: var(--color-orange-400-rgb); | ||
--color-info-rgb: var(--color-gray-300-rgb); | |||
} | |||
} | } | ||
/* Data attribute for manual theme switching */ | |||
[data-color-scheme="dark"] { | |||
/* RGB versions for opacity control (dark mode) */ | |||
--color-gray-400-rgb: 119, 124, 124; | |||
--color-teal-300-rgb: 50, 184, 198; | |||
--color-gray-300-rgb: 167, 169, 169; | |||
--color-gray-200-rgb: 245, 245, 245; | |||
/* Colorful background palette - Dark Mode */ | |||
--color-bg-1: rgba(29, 78, 216, 0.15); /* Dark blue */ | |||
--color-bg-2: rgba(180, 83, 9, 0.15); /* Dark yellow */ | |||
--color-bg-3: rgba(21, 128, 61, 0.15); /* Dark green */ | |||
--color-bg-4: rgba(185, 28, 28, 0.15); /* Dark red */ | |||
--color-bg-5: rgba(107, 33, 168, 0.15); /* Dark purple */ | |||
--color-bg-6: rgba(194, 65, 12, 0.15); /* Dark orange */ | |||
--color-bg-7: rgba(190, 24, 93, 0.15); /* Dark pink */ | |||
--color-bg-8: rgba(8, 145, 178, 0.15); /* Dark cyan */ | |||
/* Semantic Color Tokens (Dark Mode) */ | |||
--color-background: var(--color-charcoal-700); | |||
--color-surface: var(--color-charcoal-800); | |||
--color-text: var(--color-gray-200); | |||
--color-text-secondary: rgba(var(--color-gray-300-rgb), 0.7); | |||
--color-primary: var(--color-teal-300); | |||
--color-primary-hover: var(--color-teal-400); | |||
--color-primary-active: var(--color-teal-800); | |||
--color-secondary: rgba(var(--color-gray-400-rgb), 0.15); | |||
--color-secondary-hover: rgba(var(--color-gray-400-rgb), 0.25); | |||
--color-secondary-active: rgba(var(--color-gray-400-rgb), 0.3); | |||
--color-border: rgba(var(--color-gray-400-rgb), 0.3); | |||
--color-error: var(--color-red-400); | |||
--color-success: var(--color-teal-300); | |||
--color-warning: var(--color-orange-400); | |||
--color-info: var(--color-gray-300); | |||
--color-focus-ring: rgba(var(--color-teal-300-rgb), 0.4); | |||
--color-btn-primary-text: var(--color-slate-900); | |||
--color-card-border: rgba(var(--color-gray-400-rgb), 0.15); | |||
--color-card-border-inner: rgba(var(--color-gray-400-rgb), 0.15); | |||
--shadow-inset-sm: inset 0 1px 0 rgba(255, 255, 255, 0.1), | |||
inset 0 -1px 0 rgba(0, 0, 0, 0.15); | |||
--color-border-secondary: rgba(var(--color-gray-400-rgb), 0.2); | |||
--color-select-caret: rgba(var(--color-gray-200-rgb), 0.8); | |||
/* Common style patterns - updated for dark mode */ | |||
--focus-ring: 0 0 0 3px var(--color-focus-ring); | |||
--focus-outline: 2px solid var(--color-primary); | |||
--status-bg-opacity: 0.15; | |||
--status-border-opacity: 0.25; | |||
--select-caret-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23134252' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); | |||
--select-caret-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); | |||
/* RGB versions for dark mode */ | |||
--color-success-rgb: var(--color-teal-300-rgb); | |||
--color-error-rgb: var(--color-red-400-rgb); | |||
--color-warning-rgb: var(--color-orange-400-rgb); | |||
--color-info-rgb: var(--color-gray-300-rgb); | |||
} | } | ||
. | [data-color-scheme="light"] { | ||
/* RGB versions for opacity control (light mode) */ | |||
--color-brown-600-rgb: 94, 82, 64; | |||
--color-teal-500-rgb: 33, 128, 141; | |||
--color-slate-900-rgb: 19, 52, 59; | |||
/* Semantic Color Tokens (Light Mode) */ | |||
--color-background: var(--color-cream-50); | |||
--color-surface: var(--color-cream-100); | |||
--color-text: var(--color-slate-900); | |||
--color-text-secondary: var(--color-slate-500); | |||
--color-primary: var(--color-teal-500); | |||
--color-primary-hover: var(--color-teal-600); | |||
--color-primary-active: var(--color-teal-700); | |||
--color-secondary: rgba(var(--color-brown-600-rgb), 0.12); | |||
--color-secondary-hover: rgba(var(--color-brown-600-rgb), 0.2); | |||
--color-secondary-active: rgba(var(--color-brown-600-rgb), 0.25); | |||
--color-border: rgba(var(--color-brown-600-rgb), 0.2); | |||
--color-btn-primary-text: var(--color-cream-50); | |||
--color-card-border: rgba(var(--color-brown-600-rgb), 0.12); | |||
--color-card-border-inner: rgba(var(--color-brown-600-rgb), 0.12); | |||
--color-error: var(--color-red-500); | |||
--color-success: var(--color-teal-500); | |||
--color-warning: var(--color-orange-500); | |||
--color-info: var(--color-slate-500); | |||
--color-focus-ring: rgba(var(--color-teal-500-rgb), 0.4); | |||
/* RGB versions for light mode */ | |||
--color-success-rgb: var(--color-teal-500-rgb); | |||
--color-error-rgb: var(--color-red-500-rgb); | |||
--color-warning-rgb: var(--color-orange-500-rgb); | |||
--color-info-rgb: var(--color-slate-500-rgb); | |||
} | } | ||
/* Base styles */ | |||
html { | |||
font-size: var(--font-size-base); | |||
font-family: var(--font-family-base); | |||
line-height: var(--line-height-normal); | |||
color: var(--color-text); | |||
background-color: var(--color-background); | |||
-webkit-font-smoothing: antialiased; | |||
box-sizing: border-box; | |||
} | } | ||
body { | |||
margin: 0; | |||
padding: 0; | |||
} | } | ||
*, | |||
*::before, | |||
*::after { | |||
box-sizing: inherit; | |||
} | } | ||
/* Typography */ | |||
h1, | |||
h2, | |||
h3, | |||
h4, | |||
h5, | |||
h6 { | |||
margin: 0; | |||
font-weight: var(--font-weight-semibold); | |||
line-height: var(--line-height-tight); | |||
color: var(--color-text); | |||
letter-spacing: var(--letter-spacing-tight); | |||
} | } | ||
h1 { | |||
font-size: var(--font-size-4xl); | |||
} | } | ||
h2 { | |||
font-size: var(--font-size-3xl); | |||
} | } | ||
h3 { | |||
font-size: var(--font-size-2xl); | |||
} | } | ||
h4 { | |||
font-size: var(--font-size-xl); | |||
} | } | ||
h5 { | |||
font-size: var(--font-size-lg); | |||
} | } | ||
h6 { | |||
font-size: var(--font-size-md); | |||
} | } | ||
p { | |||
margin: 0 0 var(--space-16) 0; | |||
} | } | ||
a { | |||
color: var(--color-primary); | |||
text-decoration: none; | |||
transition: color var(--duration-fast) var(--ease-standard); | |||
} | } | ||
a:hover { | |||
color: var(--color-primary-hover); | |||
} | } | ||
code, | |||
pre { | |||
font-family: var(--font-family-mono); | |||
font-size: calc(var(--font-size-base) * 0.95); | |||
background-color: var(--color-secondary); | |||
border-radius: var(--radius-sm); | |||
} | } | ||
code { | |||
padding: var(--space-1) var(--space-4); | |||
} | } | ||
pre { | |||
padding: var(--space-16); | |||
margin: var(--space-16) 0; | |||
overflow: auto; | |||
border: 1px solid var(--color-border); | |||
} | } | ||
pre code { | |||
background: none; | |||
padding: 0; | |||
} | } | ||
. | /* Buttons */ | ||
.btn { | |||
display: inline-flex; | |||
align-items: center; | |||
justify-content: center; | |||
padding: var(--space-8) var(--space-16); | |||
border-radius: var(--radius-base); | |||
font-size: var(--font-size-base); | |||
font-weight: 500; | |||
line-height: 1.5; | |||
cursor: pointer; | |||
transition: all var(--duration-normal) var(--ease-standard); | |||
border: none; | |||
text-decoration: none; | |||
position: relative; | |||
} | } | ||
. | .btn:focus-visible { | ||
outline: none; | |||
box-shadow: var(--focus-ring); | |||
} | } | ||
. | .btn--primary { | ||
background: var(--color-primary); | |||
color: var(--color-btn-primary-text); | |||
} | } | ||
. | .btn--primary:hover { | ||
background: var(--color-primary-hover); | |||
} | } | ||
. | .btn--primary:active { | ||
background: var(--color-primary-active); | |||
} | } | ||
. | .btn--secondary { | ||
background: var(--color-secondary); | |||
color: var(--color-text); | |||
} | } | ||
. | .btn--secondary:hover { | ||
background: var(--color-secondary-hover); | |||
} | } | ||
. | .btn--secondary:active { | ||
background: var(--color-secondary-active); | |||
} | } | ||
. | .btn--outline { | ||
background: transparent; | |||
border: 1px solid var(--color-border); | |||
color: var(--color-text); | |||
} | } | ||
.btn--outline:hover { | |||
background: var(--color-secondary); | |||
} | } | ||
. | .btn--sm { | ||
padding: var(--space-4) var(--space-12); | |||
font-size: var(--font-size-sm); | |||
border-radius: var(--radius-sm); | |||
} | } | ||
. | .btn--lg { | ||
padding: var(--space-10) var(--space-20); | |||
font-size: var(--font-size-lg); | |||
border-radius: var(--radius-md); | |||
} | } | ||
.btn--full-width { | |||
width: 100%; | |||
} | } | ||
. | .btn:disabled { | ||
opacity: 0.5; | |||
cursor: not-allowed; | |||
} | } | ||
. | /* Form elements */ | ||
.form-control { | |||
display: block; | |||
width: 100%; | |||
padding: var(--space-8) var(--space-12); | |||
font-size: var(--font-size-md); | |||
line-height: 1.5; | |||
color: var(--color-text); | |||
background-color: var(--color-surface); | |||
border: 1px solid var(--color-border); | |||
border-radius: var(--radius-base); | |||
transition: border-color var(--duration-fast) var(--ease-standard), | |||
box-shadow var(--duration-fast) var(--ease-standard); | |||
} | } | ||
. | textarea.form-control { | ||
font-family: var(--font-family-base); | |||
font-size: var(--font-size-base); | |||
} | } | ||
. | select.form-control { | ||
padding: var(--space-8) var(--space-12); | |||
-webkit-appearance: none; | |||
-moz-appearance: none; | |||
appearance: none; | |||
background-image: var(--select-caret-light); | |||
background-repeat: no-repeat; | |||
background-position: right var(--space-12) center; | |||
background-size: 16px; | |||
padding-right: var(--space-32); | |||
} | } | ||
. | /* Add a dark mode specific caret */ | ||
background- | @media (prefers-color-scheme: dark) { | ||
select.form-control { | |||
background-image: var(--select-caret-dark); | |||
} | |||
} | } | ||
. | /* Also handle data-color-scheme */ | ||
[data-color-scheme="dark"] select.form-control { | |||
background-image: var(--select-caret-dark); | |||
} | } | ||
[data-color-scheme="light"] select.form-control { | |||
background-image: var(--select-caret-light); | |||
} | } | ||
. | .form-control:focus { | ||
border-color: var(--color-primary); | |||
outline: var(--focus-outline); | |||
} | } | ||
. | .form-label { | ||
display: block; | |||
margin-bottom: var(--space-8); | |||
font-weight: var(--font-weight-medium); | |||
font-size: var(--font-size-sm); | |||
} | } | ||
. | .form-group { | ||
margin-bottom: var(--space-16); | |||
} | } | ||
. | /* Card component */ | ||
.card { | |||
background-color: var(--color-surface); | |||
border-radius: var(--radius-lg); | |||
border: 1px solid var(--color-card-border); | |||
box-shadow: var(--shadow-sm); | |||
overflow: hidden; | |||
transition: box-shadow var(--duration-normal) var(--ease-standard); | |||
} | } | ||
. | .card:hover { | ||
box-shadow: var(--shadow-md); | |||
} | } | ||
. | .card__body { | ||
padding: var(--space-16); | |||
} | } | ||
. | .card__header, | ||
.card__footer { | |||
padding: var(--space-16); | |||
border-bottom: 1px solid var(--color-card-border-inner); | |||
} | } | ||
. | /* Status indicators - simplified with CSS variables */ | ||
.status { | |||
display: inline-flex; | |||
align-items: center; | |||
padding: var(--space-6) var(--space-12); | |||
border-radius: var(--radius-full); | |||
font-weight: var(--font-weight-medium); | |||
font-size: var(--font-size-sm); | |||
} | } | ||
. | .status--success { | ||
background-color: rgba( | |||
var(--color-success-rgb, 33, 128, 141), | |||
var(--status-bg-opacity) | |||
); | |||
color: var(--color-success); | |||
border: 1px solid | |||
rgba(var(--color-success-rgb, 33, 128, 141), var(--status-border-opacity)); | |||
} | } | ||
. | .status--error { | ||
background-color: rgba( | |||
var(--color-error-rgb, 192, 21, 47), | |||
var(--status-bg-opacity) | |||
); | |||
color: var(--color-error); | |||
border: 1px solid | |||
rgba(var(--color-error-rgb, 192, 21, 47), var(--status-border-opacity)); | |||
} | } | ||
.status--warning { | |||
background-color: rgba( | |||
var(--color-warning-rgb, 168, 75, 47), | |||
var(--status-bg-opacity) | |||
); | |||
color: var(--color-warning); | |||
border: 1px solid | |||
rgba(var(--color-warning-rgb, 168, 75, 47), var(--status-border-opacity)); | |||
} | } | ||
. | .status--info { | ||
background-color: rgba( | |||
var(--color-info-rgb, 98, 108, 113), | |||
var(--status-bg-opacity) | |||
); | |||
color: var(--color-info); | |||
border: 1px solid | |||
rgba(var(--color-info-rgb, 98, 108, 113), var(--status-border-opacity)); | |||
} | } | ||
. | /* Container layout */ | ||
.container { | |||
width: 100%; | |||
margin-right: auto; | |||
margin-left: auto; | |||
padding-right: var(--space-16); | |||
padding-left: var(--space-16); | |||
} | } | ||
. | @media (min-width: 640px) { | ||
.container { | |||
max-width: var(--container-sm); | |||
} | |||
} | } | ||
@media (min-width: 768px) { | |||
. | .container { | ||
max-width: var(--container-md); | |||
} | |||
} | } | ||
@media (min-width: 1024px) { | |||
. | .container { | ||
max-width: var(--container-lg); | |||
} | |||
} | } | ||
@media (min-width: 1280px) { | |||
. | .container { | ||
max-width: var(--container-xl); | |||
} | |||
} | } | ||
. | /* Utility classes */ | ||
.flex { | |||
display: flex; | |||
} | } | ||
.flex-col { | |||
. | flex-direction: column; | ||
} | } | ||
.items-center { | |||
align-items: center; | |||
} | } | ||
.justify-center { | |||
justify-content: center; | |||
} | } | ||
.justify-between { | |||
justify-content: space-between; | |||
} | } | ||
.gap-4 { | |||
gap: var(--space-4); | |||
} | } | ||
.gap-8 { | |||
gap: var(--space-8); | |||
} | } | ||
.gap-16 { | |||
gap: var(--space-16); | |||
} | } | ||
. | .m-0 { | ||
margin: 0; | |||
} | } | ||
.mt-8 { | |||
margin-top: var(--space-8); | |||
} | } | ||
.mb-8 { | |||
margin-bottom: var(--space-8); | |||
} | } | ||
.mx-8 { | |||
margin-left: var(--space-8); | |||
margin-right: var(--space-8); | |||
} | } | ||
.my-8 { | |||
margin-top: var(--space-8); | |||
margin-bottom: var(--space-8); | |||
} | } | ||
.p-0 { | |||
padding: 0; | |||
} | } | ||
.py-8 { | |||
padding-top: var(--space-8); | |||
padding-bottom: var(--space-8); | |||
} | } | ||
.px-8 { | |||
padding-left: var(--space-8); | |||
padding-right: var(--space-8); | |||
} | } | ||
.py-16 { | |||
padding-top: var(--space-16); | |||
padding-bottom: var(--space-16); | |||
} | } | ||
.px-16 { | |||
padding-left: var(--space-16); | |||
padding-right: var(--space-16); | |||
} | } | ||
.block { | |||
display: block; | |||
} | } | ||
.hidden { | |||
display: none; | |||
} | } | ||
. | /* Accessibility */ | ||
.sr-only { | |||
position: absolute; | |||
width: 1px; | |||
height: 1px; | |||
padding: 0; | |||
margin: -1px; | |||
overflow: hidden; | |||
clip: rect(0, 0, 0, 0); | |||
white-space: nowrap; | |||
border-width: 0; | |||
} | } | ||
:focus-visible { | |||
outline: var(--focus-outline); | |||
outline-offset: 2px; | |||
} | } | ||
/* Dark mode specifics */ | |||
[data-color-scheme="dark"] .btn--outline { | |||
border: 1px solid var(--color-border-secondary); | |||
} | } | ||
@font-face { | |||
font-family: 'FKGroteskNeue'; | |||
src: url('https://r2cdn.perplexity.ai/fonts/FKGroteskNeue.woff2') | |||
format('woff2'); | |||
} | } | ||
@font-face { | |||
font-family: 'FKGroteskNeue'; | |||
src: url('https://r2cdn.perplexity.ai/fonts/FKGroteskNeue.woff2') format('woff2'); | |||
} | } | ||
/* Remove custom color variables and use design system */ | |||
:root { | |||
/* Legacy space theme variables mapped to design system */ | |||
--space-primary: var(--color-primary); | |||
--space-secondary: var(--color-primary-hover); | |||
--space-accent: var(--color-primary-active); | |||
--space-dark: var(--color-background); | |||
--space-darker: var(--color-surface); | |||
--space-purple: var(--color-surface); | |||
--space-blue: var(--color-surface); | |||
--space-orange: var(--color-warning); | |||
--space-glow: rgba(var(--color-teal-500-rgb), 0.6); | |||
--space-text: var(--color-text); | |||
--space-text-bright: var(--color-text); | |||
--space-bg-primary: var(--color-surface); | |||
--space-bg-secondary: var(--color-surface); | |||
--space-border: var(--color-border); | |||
} | } | ||
/* Базовые стили */ | |||
* { | |||
box-sizing: border-box; | |||
} | } | ||
body { | |||
background: var(--color-background); | |||
background-attachment: fixed; | |||
color: var(--color-text); | |||
font-family: var(--font-family-base); | |||
font-size: var(--font-size-base); | |||
font-weight: var(--font-weight-normal); | |||
line-height: var(--line-height-normal); | |||
letter-spacing: var(--letter-spacing-tight); | |||
text-rendering: optimizeLegibility; | |||
-webkit-font-smoothing: antialiased; | |||
-moz-osx-font-smoothing: grayscale; | |||
min-height: 100vh; | |||
} | } | ||
/* Основной контейнер MediaWiki */ | |||
.mw-body { | |||
background: var(--color-surface); | |||
border: 1px solid var(--color-border); | |||
border-radius: var(--radius-lg); | |||
box-shadow: var(--shadow-lg); | |||
backdrop-filter: blur(20px); | |||
padding: var(--space-32) var(--space-32); | |||
margin: var(--space-32); | |||
position: relative; | |||
overflow: hidden; | |||
} | } | ||
.mw-body::before { | |||
content: ''; | |||
position: absolute; | |||
top: 0; | |||
left: 0; | |||
right: 0; | |||
height: 1px; | |||
background: linear-gradient(90deg, transparent, var(--color-primary), transparent); | |||
opacity: 0.5; | |||
} | } | ||
.mw-body-content { | |||
font-family: var(--font-family-base); | |||
font-size: var(--font-size-base); | |||
font-weight: var(--font-weight-normal); | |||
line-height: var(--line-height-normal); | |||
color: var(--color-text); | |||
word-wrap: break-word; | |||
overflow-wrap: break-word; | |||
} | } | ||
/* Исправление переполнения текста */ | |||
.mw-body-content p { | |||
margin: var(--space-20) 0; | |||
line-height: var(--line-height-normal); | |||
color: var(--color-text); | |||
word-wrap: break-word; | |||
overflow-wrap: break-word; | |||
hyphens: auto; | |||
} | } | ||
/* Улучшенный код */ | |||
code { | |||
background: var(--color-secondary); | |||
border: 1px solid var(--color-border); | |||
color: var(--color-text); | |||
padding: var(--space-8) var(--space-12); | |||
border-radius: var(--radius-base); | |||
font-size: 90%; | |||
font-family: var(--font-family-mono); | |||
box-shadow: var(--shadow-inset-sm); | |||
font-weight: var(--font-weight-medium); | |||
letter-spacing: 0.5px; | |||
word-break: break-all; | |||
white-space: pre-wrap; | |||
} | } | ||
pre { | |||
background: var(--color-surface); | |||
border: 2px solid var(--color-border); | |||
border-radius: var(--radius-md); | |||
padding: var(--space-32); | |||
overflow-x: auto; | |||
box-shadow: var(--shadow-inset-sm); | |||
font-family: var(--font-family-mono); | |||
font-size: var(--font-size-sm); | |||
line-height: var(--line-height-normal); | |||
letter-spacing: 0.5px; | |||
position: relative; | |||
} | } | ||
pre::before { | |||
content: ''; | |||
position: absolute; | |||
top: 0; | |||
left: 0; | |||
right: 0; | |||
height: 2px; | |||
background: linear-gradient(90deg, var(--color-primary), var(--color-primary-hover)); | |||
border-radius: var(--radius-md) var(--radius-md) 0 0; | |||
} | } | ||
/* Улучшенные цитаты */ | |||
blockquote { | |||
overflow: hidden; | |||
margin: var(--space-32) 0; | |||
padding: var(--space-32) var(--space-32); | |||
border-left: 5px solid var(--color-primary); | |||
background: var(--color-secondary); | |||
border-radius: 0 var(--radius-md) var(--radius-md) 0; | |||
box-shadow: var(--shadow-md); | |||
font-style: italic; | |||
position: relative; | |||
font-family: var(--font-family-base); | |||
font-size: var(--font-size-lg); | |||
line-height: var(--line-height-normal); | |||
} | } | ||
blockquote::before { | |||
content: '"'; | |||
font-size: 5em; | |||
color: rgba(var(--color-primary-rgb), 0.3); | |||
position: absolute; | |||
top: -15px; | |||
left: 15px; | |||
font-family: var(--font-family-base); | |||
font-weight: var(--font-weight-bold); | |||
} | } | ||
/* Улучшенные изображения */ | |||
img { | |||
image-rendering: optimizeSpeed; | |||
max-width: 100%; | |||
height: auto; | |||
border-radius: var(--radius-base); | |||
box-shadow: var(--shadow-md); | |||
transition: all var(--duration-normal) var(--ease-standard); | |||
} | } | ||
img:hover { | |||
transform: scale(1.03); | |||
box-shadow: var(--shadow-lg); | |||
filter: brightness(1.1); | |||
} | } | ||
/* Улучшенные ссылки */ | |||
a, | |||
a:visited { | |||
color: var(--color-primary); | |||
text-decoration: none; | |||
transition: all var(--duration-normal) var(--ease-standard); | |||
position: relative; | |||
font-weight: var(--font-weight-medium); | |||
word-wrap: break-word; | |||
} | } | ||
a:not(.image):not(.thumbimage):not(.mw-file-description)::after { | |||
content: ''; | |||
position: absolute; | |||
bottom: -3px; | |||
left: 0; | |||
width: 0; | |||
height: 2px; | |||
background: linear-gradient(90deg, var(--color-primary), var(--color-primary-hover)); | |||
transition: width var(--duration-normal) var(--ease-standard); | |||
border-radius: 2px; | |||
} | } | ||
a:not(.image):not(.thumbimage):not(.mw-file-description):hover::after { | |||
width: 100%; | |||
} | } | ||
a:hover, | |||
a:visited:hover { | |||
color: var(--color-primary-hover); | |||
text-shadow: 0 0 15px rgba(var(--color-primary-rgb), 0.7); | |||
transform: translateX(2px); | |||
} | } | ||
/* Исключения для изображений */ | |||
.thumb a::after, | |||
.gallery a::after, | |||
a[href*="File:"]::after, | |||
a[href*="Файл:"]::after, | |||
a[title*="File:"]::after, | |||
a[title*="Файл:"]::after { | |||
display: none !important; | |||
} | } | ||
/* Улучшенные таблицы */ | |||
.wikitable { | |||
background: var(--color-surface); | |||
border: 1px solid var(--color-border); | |||
color: var(--color-text); | |||
border-collapse: separate; | |||
border-spacing: 0; | |||
margin: var(--space-32) 0; | |||
border-radius: var(--radius-md); | |||
overflow: hidden; | |||
box-shadow: var(--shadow-md); | |||
position: relative; | |||
font-family: var(--font-family-base); | |||
width: 100%; | |||
max-width: 100%; | |||
word-wrap: break-word; | |||
} | } | ||
.wikitable::before { | |||
content: ''; | |||
position: absolute; | |||
top: 0; | |||
left: 0; | |||
right: 0; | |||
height: 2px; | |||
background: linear-gradient(90deg, var(--color-primary), var(--color-primary-hover)); | |||
} | } | ||
.wikitable > tr > th, | |||
.wikitable > tr > td, | |||
.wikitable > * > tr > th, | |||
.wikitable > * > tr > td { | |||
border: 1px solid var(--color-border); | |||
padding: var(--space-16) var(--space-20); | |||
transition: all var(--duration-fast) var(--ease-standard); | |||
font-family: var(--font-family-base); | |||
line-height: var(--line-height-normal); | |||
word-wrap: break-word; | |||
overflow-wrap: break-word; | |||
max-width: 0; | |||
min-width: 100px; | |||
} | } | ||
. | .wikitable > * > tr > th { | ||
background: var(--color-secondary); | |||
color: var(--color-text); | |||
font-weight: var(--font-weight-bold); | |||
text-transform: uppercase; | |||
letter-spacing: 1px; | |||
font-size: var(--font-size-sm); | |||
text-shadow: 0 2px 6px rgba(0, 0, 0, 0.8); | |||
position: relative; | |||
} | } | ||
. | .wikitable > * > tr > th::after { | ||
content: ''; | |||
position: absolute; | |||
bottom: 0; | |||
left: 0; | |||
right: 0; | |||
height: 1px; | |||
background: linear-gradient(90deg, transparent, var(--color-primary), transparent); | |||
} | } | ||
. | .wikitable > * > tr:hover > td { | ||
background: var(--color-secondary-hover); | |||
transform: scale(1.01); | |||
} | } | ||
/* Улучшенный поиск */ | |||
#simpleSearch { | |||
background: var(--color-surface); | |||
border: 2px solid var(--color-border); | |||
border-radius: var(--radius-full); | |||
transition: all var(--duration-normal) var(--ease-standard); | |||
box-shadow: var(--shadow-inset-sm); | |||
position: relative; | |||
overflow: hidden; | |||
} | } | ||
#simpleSearch::before { | |||
content: ''; | |||
position: absolute; | |||
top: -2px; | |||
left: -2px; | |||
right: -2px; | |||
bottom: -2px; | |||
background: linear-gradient(45deg, var(--color-primary), var(--color-primary-hover), var(--color-primary)); | |||
border-radius: var(--radius-full); | |||
opacity: 0; | |||
transition: opacity var(--duration-fast) var(--ease-standard); | |||
z-index: -1; | |||
} | } | ||
#simpleSearch:focus-within::before { | |||
opacity: 1; | |||
} | } | ||
#simpleSearch:focus-within { | |||
border-color: transparent; | |||
box-shadow: var(--focus-ring); | |||
transform: scale(1.02); | |||
} | } | ||
#searchInput { | |||
color: var(--color-text); | |||
background: transparent; | |||
border: none; | |||
padding: var(--space-16) var(--space-24); | |||
font-size: var(--font-size-base); | |||
outline: none; | |||
width: 100%; | |||
box-sizing: border-box; | |||
font-family: var(--font-family-base); | |||
font-weight: var(--font-weight-normal); | |||
} | } | ||
#searchInput::placeholder { | |||
color: var(--color-text-secondary); | |||
opacity: 0.8; | |||
font-style: italic; | |||
} | } | ||
/* Улучшенные вкладки */ | |||
.vector-menu-tabs { | |||
background: transparent; | |||
} | } | ||
.vector-menu-tabs li { | |||
background: var(--color-surface); | |||
border-radius: var(--radius-md) var(--radius-md) 0 0; | |||
margin-right: var(--space-4); | |||
transition: all var(--duration-normal) var(--ease-standard); | |||
border: 1px solid var(--color-border); | |||
border-bottom: none; | |||
position: relative; | |||
overflow: hidden; | |||
} | } | ||
.vector-menu-tabs li::before { | |||
content: ''; | |||
position: absolute; | |||
top: -1px; | |||
left: -1px; | |||
right: -1px; | |||
height: 3px; | |||
background: linear-gradient(90deg, transparent, var(--color-primary), transparent); | |||
opacity: 0; | |||
transition: opacity var(--duration-fast) var(--ease-standard); | |||
} | } | ||
.vector-menu-tabs li:hover::before { | |||
opacity: 1; | |||
} | } | ||
.vector-menu-tabs li:hover { | |||
background: var(--color-secondary); | |||
transform: translateY(-5px); | |||
box-shadow: var(--shadow-md); | |||
} | } | ||
. | .vector-menu-tabs .selected { | ||
background: var(--color-secondary-active); | |||
border-color: var(--color-primary); | |||
box-shadow: 0 -6px 20px rgba(var(--color-primary-rgb), 0.5); | |||
} | } | ||
.vector-menu-tabs .selected::before { | |||
opacity: 1; | |||
} | } | ||
.vector-menu-tabs .selected a, | |||
.vector-menu-tabs .selected a:visited { | |||
color: var(--color-primary); | |||
font-weight: var(--font-weight-bold); | |||
text-shadow: 0 2px 6px rgba(0, 0, 0, 0.8); | |||
} | } | ||
. | /* Улучшенная боковая панель */ | ||
#mw-site-navigation .sidebar-chunk, | |||
#mw-related-navigation .sidebar-chunk, | |||
.portlet, | |||
.pBody, | |||
#mw-panel, | |||
.mw-panel, | |||
#sidebar, | |||
.sidebar, | |||
.vector-menu-portal, | |||
.vector-legacy-sidebar, | |||
#p-navigation, | |||
#p-tb, | |||
#p-lang { | |||
background: var(--color-surface); | |||
color: var(--color-text); | |||
border: 1px solid var(--color-border); | |||
border-radius: var(--radius-md); | |||
margin-bottom: var(--space-32); | |||
box-shadow: var(--shadow-sm); | |||
overflow: hidden; | |||
backdrop-filter: blur(10px); | |||
} | } | ||
. | .vector-menu-portal h3, | ||
#mw-panel .portal h3, | |||
.sidebar h3 { | |||
background: var(--color-secondary); | |||
color: var(--color-text); | |||
padding: var(--space-16) var(--space-20); | |||
margin: 0; | |||
border-radius: var(--radius-md) var(--radius-md) 0 0; | |||
font-weight: var(--font-weight-bold); | |||
text-shadow: 0 2px 6px rgba(0, 0, 0, 0.8); | |||
text-transform: uppercase; | |||
letter-spacing: 0.8px; | |||
font-size: var(--font-size-sm); | |||
position: relative; | |||
} | } | ||
.vector-menu-portal h3::after, | |||
#mw-panel .portal h3::after, | |||
.sidebar h3::after { | |||
content: ''; | |||
position: absolute; | |||
bottom: 0; | |||
left: 0; | |||
right: 0; | |||
height: 2px; | |||
background: linear-gradient(90deg, transparent, var(--color-primary), transparent); | |||
} | } | ||
. | .vector-menu-portal .vector-menu-content ul li a, | ||
#mw-panel .portal .body ul li a { | |||
color: var(--color-primary); | |||
padding: var(--space-16) var(--space-20); | |||
display: block; | |||
transition: all var(--duration-normal) var(--ease-standard); | |||
border-radius: var(--radius-sm); | |||
margin: var(--space-4) var(--space-8); | |||
position: relative; | |||
word-wrap: break-word; | |||
} | } | ||
. | .vector-menu-portal .vector-menu-content ul li a::before, | ||
#mw-panel .portal .body ul li a::before { | |||
content: ''; | |||
position: absolute; | |||
left: 0; | |||
top: 0; | |||
bottom: 0; | |||
width: 0; | |||
background: linear-gradient(135deg, var(--color-primary), var(--color-primary-hover)); | |||
transition: width var(--duration-fast) var(--ease-standard); | |||
border-radius: var(--radius-sm) 0 0 var(--radius-sm); | |||
} | } | ||
. | .vector-menu-portal .vector-menu-content ul li a:hover::before, | ||
#mw-panel .portal .body ul li a:hover::before { | |||
width: 4px; | |||
} | } | ||
. | .vector-menu-portal .vector-menu-content ul li a:hover, | ||
#mw-panel .portal .body ul li a:hover { | |||
background: var(--color-secondary); | |||
color: var(--color-primary-hover); | |||
transform: translateX(10px); | |||
text-shadow: 0 0 12px rgba(var(--color-primary-rgb), 0.6); | |||
} | } | ||
. | /* Улучшенные формы */ | ||
.mw-editform #wpTextbox1, | |||
textarea { | |||
background: var(--color-surface); | |||
border: 2px solid var(--color-border); | |||
color: var(--color-text); | |||
border-radius: var(--radius-md); | |||
font-family: var(--font-family-mono); | |||
padding: var(--space-32); | |||
font-size: var(--font-size-sm); | |||
line-height: var(--line-height-normal); | |||
transition: all var(--duration-normal) var(--ease-standard); | |||
box-shadow: var(--shadow-inset-sm); | |||
resize: vertical; | |||
font-weight: var(--font-weight-normal); | |||
letter-spacing: 0.5px; | |||
word-wrap: break-word; | |||
} | } | ||
. | .mw-editform #wpTextbox1:focus, | ||
textarea:focus { | |||
border-color: var(--color-primary); | |||
outline: var(--focus-outline); | |||
} | } | ||
/* Улучшенные кнопки */ | |||
.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button { | |||
background: var(--color-surface); | |||
border: 2px solid var(--color-border); | |||
color: var(--color-text); | |||
border-radius: var(--radius-base); | |||
transition: all var(--duration-normal) var(--ease-standard); | |||
font-weight: var(--font-weight-semibold); | |||
padding: var(--space-16) var(--space-24); | |||
box-shadow: var(--shadow-sm); | |||
position: relative; | |||
overflow: hidden; | |||
text-transform: uppercase; | |||
letter-spacing: 0.8px; | |||
font-family: var(--font-family-base); | |||
} | } | ||
. | .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button::before { | ||
content: ''; | |||
position: absolute; | |||
top: 0; | |||
left: -100%; | |||
width: 100%; | |||
height: 100%; | |||
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); | |||
transition: left 0.5s ease; | |||
} | } | ||
. | .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover::before { | ||
left: 100%; | |||
} | } | ||
.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover { | |||
background: var(--color-secondary); | |||
border-color: var(--color-primary); | |||
transform: translateY(-3px); | |||
box-shadow: var(--shadow-lg); | |||
text-shadow: 0 0 12px rgba(var(--color-primary-rgb), 0.6); | |||
} | } | ||
/* Улучшенные скроллбары */ | |||
::-webkit-scrollbar { | |||
width: 14px; | |||
height: 14px; | |||
} | } | ||
::-webkit-scrollbar-track { | |||
background: var(--color-surface); | |||
border-radius: var(--radius-base); | |||
border: 1px solid var(--color-border); | |||
} | } | ||
::-webkit-scrollbar-thumb { | |||
background: var(--color-border); | |||
border-radius: var(--radius-base); | |||
border: 2px solid var(--color-surface); | |||
transition: all var(--duration-fast) var(--ease-standard); | |||
} | } | ||
::-webkit-scrollbar-thumb:hover { | |||
background: var(--color-primary); | |||
box-shadow: 0 0 12px rgba(var(--color-primary-rgb), 0.6); | |||
} | } | ||
::-webkit-scrollbar-corner { | |||
background: var(--color-surface); | |||
} | } | ||
/* Скрытие скроллбаров для Firefox */ | |||
* { | |||
scrollbar-width: thin; | |||
scrollbar-color: var(--color-border) transparent; | |||
} | } | ||
/* Заголовки */ | |||
h1, h2, h3, h4, h5, h6 { | |||
color: var(--color-text); | |||
font-family: var(--font-family-base); | |||
font-weight: var(--font-weight-semibold); | |||
text-shadow: 0 4px 8px rgba(0, 0, 0, 0.8); | |||
border-bottom: 3px solid var(--color-border); | |||
padding-bottom: var(--space-12); | |||
margin-top: var(--space-32); | |||
position: relative; | |||
letter-spacing: var(--letter-spacing-tight); | |||
word-wrap: break-word; | |||
} | } | ||
h1::after, h2::after, h3::after, h4::after, h5::after, h6::after { | |||
content: ''; | |||
position: absolute; | |||
bottom: -3px; | |||
left: 0; | |||
width: 80px; | |||
height: 3px; | |||
background: linear-gradient(90deg, var(--color-primary), var(--color-primary-hover)); | |||
border-radius: 3px; | |||
} | } | ||
h1 { | |||
background: linear-gradient(90deg, var(--color-primary), var(--color-primary-hover)); | |||
-webkit-background-clip: text; | |||
-webkit-text-fill-color: transparent; | |||
background-clip: text; | |||
font-size: var(--font-size-4xl); | |||
font-weight: var(--font-weight-bold); | |||
} | } | ||
h2 { | |||
font-size: var(--font-size-3xl); | |||
font-weight: var(--font-weight-semibold); | |||
} | } | ||
h3 { | |||
font-size: var(--font-size-2xl); | |||
font-weight: var(--font-weight-semibold); | |||
} | } | ||
h4 { | |||
font-size: var(--font-size-xl); | |||
font-weight: var(--font-weight-medium); | |||
} | } | ||
h5 { | |||
font-size: var(--font-size-lg); | |||
font-weight: var(--font-weight-medium); | |||
} | } | ||
h6 { | |||
font-size: var(--font-size-base); | |||
font-weight: var(--font-weight-medium); | |||
} | } | ||
. | /* Первый заголовок страницы */ | ||
.firstHeading { | |||
font-family: var(--font-family-base); | |||
font-weight: var(--font-weight-bold); | |||
font-size: var(--font-size-4xl); | |||
background: linear-gradient(90deg, var(--color-primary), var(--color-primary-hover)); | |||
-webkit-background-clip: text; | |||
-webkit-text-fill-color: transparent; | |||
background-clip: text; | |||
margin-bottom: var(--space-16); | |||
text-align: center; | |||
word-wrap: break-word; | |||
} | } | ||
/* Личное меню */ | |||
#p-personal ul li a { | |||
color: var(--color-primary); | |||
padding: var(--space-16) var(--space-20); | |||
border-radius: var(--radius-base); | |||
transition: all var(--duration-fast) var(--ease-standard); | |||
margin: 0 var(--space-4); | |||
font-weight: var(--font-weight-medium); | |||
} | } | ||
#p-personal ul li a:hover { | |||
background: var(--color-secondary); | |||
color: var(--color-primary-hover); | |||
text-shadow: 0 0 12px rgba(var(--color-primary-rgb), 0.6); | |||
transform: translateY(-2px); | |||
} | } | ||
/* Выпадающие меню */ | |||
.vector-menu-dropdown .vector-menu-content { | |||
background: var(--color-surface); | |||
border: 2px solid var(--color-border); | |||
border-radius: var(--radius-md); | |||
box-shadow: var(--shadow-lg); | |||
padding: var(--space-16); | |||
backdrop-filter: blur(15px); | |||
} | } | ||
/* Скрытие элементов */ | |||
#pt-createaccount, | |||
#site-tools, | |||
.flaggedrevs_draft_synced, | |||
.flaggedrevs_stable_synced, | |||
#t-upload { | |||
display: none; | |||
} | } | ||
/* Ссылки на источники */ | |||
.reference { | |||
background-color: transparent; | |||
} | } | ||
. | .references li:target, | ||
sup.reference:target { | |||
background: var(--color-secondary-hover); | |||
border-radius: var(--radius-sm); | |||
box-shadow: 0 0 15px rgba(var(--color-primary-rgb), 0.6); | |||
} | } | ||
/* Футер */ | |||
#footer { | |||
background: var(--color-surface); | |||
border-top: 3px solid var(--color-border); | |||
border-radius: var(--radius-md) var(--radius-md) 0 0; | |||
margin-top: var(--space-32); | |||
padding: var(--space-32); | |||
color: var(--color-text-secondary); | |||
box-shadow: var(--shadow-sm); | |||
position: relative; | |||
} | } | ||
# | #footer::before { | ||
content: ''; | |||
position: absolute; | |||
top: 0; | |||
left: 0; | |||
right: 0; | |||
height: 2px; | |||
background: linear-gradient(90deg, var(--color-primary), var(--color-primary-hover)); | |||
} | } | ||
/* Результаты поиска */ | |||
.mw-search-result-heading a { | |||
color: var(--color-primary); | |||
font-weight: var(--font-weight-semibold); | |||
} | } | ||
.mw- | .mw-search-result-data { | ||
color: var(--color-text-secondary); | |||
font-style: italic; | |||
} | } | ||
/* Списки изменений */ | |||
.mw-changeslist-line { | |||
border-left: 3px solid var(--color-border); | |||
padding-left: var(--space-20); | |||
margin-bottom: var(--space-16); | |||
transition: all var(--duration-fast) var(--ease-standard); | |||
} | } | ||
.mw-changeslist-line:hover { | |||
border-left-color: var(--color-primary); | |||
background: var(--color-secondary); | |||
transform: translateX(5px); | |||
} | } | ||
/* Списки */ | |||
li { | |||
line-height: var(--line-height-normal); | |||
margin-bottom: var(--space-12); | |||
word-wrap: break-word; | |||
} | } | ||
/* Жирный и курсивный текст */ | |||
strong, b { | |||
font-weight: var(--font-weight-semibold); | |||
color: var(--color-text); | |||
} | } | ||
em, i { | |||
font-style: italic; | |||
color: var(--color-text-secondary); | |||
} | } | ||
. | /* Навигационные блоки */ | ||
.navbox { | |||
border: 1px solid var(--color-border); | |||
width: 100%; | |||
clear: both; | |||
font-size: 90%; | |||
text-align: center; | |||
padding: 0; | |||
margin: var(--space-32) auto 0; | |||
background: var(--color-surface); | |||
color: var(--color-text); | |||
border-radius: var(--radius-md); | |||
box-shadow: var(--shadow-sm); | |||
overflow: hidden; | |||
} | } | ||
.navbox::before { | |||
content: ''; | |||
position: absolute; | |||
top: 0; | |||
left: 0; | |||
right: 0; | |||
height: 2px; | |||
background: linear-gradient(90deg, var(--color-primary), var(--color-primary-hover)); | |||
} | } | ||
. | /* Информационные блоки */ | ||
.infobox { | |||
border: 1px solid var(--color-border); | |||
border-spacing: 0; | |||
background: var(--color-surface); | |||
color: var(--color-text); | |||
margin: var(--space-20) 0 var(--space-20) var(--space-32); | |||
padding: 0; | |||
float: right; | |||
clear: right; | |||
font-size: 90%; | |||
line-height: var(--line-height-normal); | |||
width: 28em; | |||
border-radius: var(--radius-md); | |||
overflow: hidden; | |||
box-shadow: var(--shadow-md); | |||
position: relative; | |||
word-wrap: break-word; | |||
} | } | ||
.infobox::before { | |||
content: ''; | |||
position: absolute; | |||
top: 0; | |||
left: 0; | |||
right: 0; | |||
height: 2px; | |||
background: linear-gradient(90deg, var(--color-primary), var(--color-primary-hover)); | |||
} | } | ||
. | .infobox tr { | ||
transition: all var(--duration-fast) var(--ease-standard); | |||
} | } | ||
.infobox tr:hover { | |||
background: var(--color-secondary); | |||
transform: translateX(8px); | |||
} | } | ||
.infobox th, | |||
.infobox td { | |||
padding: var(--space-16) var(--space-20); | |||
word-wrap: break-word; | |||
overflow-wrap: break-word; | |||
} | } | ||
/* ===== СТИЛИ ДЛЯ ГЛАВНОЙ СТРАНИЦЫ ===== */ | |||
/* Новая hero-секция с космическими эффектами */ | |||
.sunrise-hero-new { | |||
position: relative; | |||
background: var(--color-surface); | |||
border-radius: var(--radius-lg); | |||
padding: var(--space-32) var(--space-32); | |||
margin: var(--space-32) 0; | |||
overflow: hidden; | |||
min-height: 500px; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
box-shadow: var(--shadow-lg); | |||
clear: both; | |||
} | } | ||
/* Анимированный звездный фон */ | |||
.hero-background { | |||
position: absolute; | |||
top: 0; | |||
left: 0; | |||
right: 0; | |||
bottom: 0; | |||
overflow: hidden; | |||
} | } | ||
.stars { | |||
color: | position: absolute; | ||
width: 100%; | |||
height: 100%; | |||
background-image: | |||
radial-gradient(2px 2px at 20px 30px, var(--color-text), transparent), | |||
radial-gradient(2px 2px at 40px 70px, rgba(var(--color-text-rgb, 245, 245, 245), 0.8), transparent), | |||
radial-gradient(1px 1px at 90px 40px, var(--color-text), transparent), | |||
radial-gradient(1px 1px at 130px 80px, rgba(var(--color-text-rgb, 245, 245, 245), 0.6), transparent), | |||
radial-gradient(2px 2px at 160px 30px, var(--color-text-secondary), transparent); | |||
background-repeat: repeat; | |||
background-size: 200px 100px; | |||
animation: sparkle 25s linear infinite; | |||
} | } | ||
@keyframes sparkle { | |||
from { transform: translateX(0); } | |||
to { transform: translateX(-200px); } | |||
} | } | ||
. | .nebula { | ||
position: absolute; | |||
width: 100%; | |||
height: 100%; | |||
background: radial-gradient(ellipse at center, rgba(var(--color-primary-rgb), 0.15) 0%, transparent 70%); | |||
animation: nebula-glow 10s ease-in-out infinite alternate; | |||
} | } | ||
@keyframes nebula-glow { | |||
0% { opacity: 0.4; } | |||
100% { opacity: 0.8; } | |||
} | } | ||
. | /* Контент героя */ | ||
.hero-content { | |||
display: flex; | |||
flex-direction: column; | |||
align-items: center; | |||
justify-content: center; | |||
text-align: center; | |||
width: 100%; | |||
max-width: 100%; | |||
} | } | ||
.hero-logo { | |||
margin-bottom: var(--space-32); | |||
} | } | ||
.logo-text { | |||
font-family: var(--font-family-base); | |||
font-size: var(--font-size-4xl); | |||
font-weight: var(--font-weight-bold); | |||
background: linear-gradient(45deg, var(--color-primary), var(--color-warning), var(--color-primary-hover)); | |||
-webkit-background-clip: text; | |||
-webkit-text-fill-color: transparent; | |||
background-clip: text; | |||
display: block; | |||
text-shadow: 0 0 40px rgba(var(--color-primary-rgb), 0.6); | |||
animation: glow-pulse 4s ease-in-out infinite alternate; | |||
} | } | ||
@keyframes glow-pulse { | |||
0% { filter: drop-shadow(0 0 25px rgba(var(--color-primary-rgb), 0.6)); } | |||
100% { filter: drop-shadow(0 0 50px rgba(var(--color-primary-rgb), 0.6)); } | |||
} | } | ||
. | .logo-subtext { | ||
font-family: var(--font-family-base); | |||
font-size: var(--font-size-xl); | |||
color: var(--color-primary-active); | |||
font-weight: var(--font-weight-normal); | |||
letter-spacing: 0.4em; | |||
text-transform: uppercase; | |||
display: block; | |||
margin-top: var(--space-16); | |||
} | } | ||
. | .hero-description { | ||
font-size: var(--font-size-xl); | |||
color: var(--color-text); | |||
margin-bottom: var(--space-32); | |||
opacity: 0.95; | |||
font-weight: var(--font-weight-normal); | |||
line-height: var(--line-height-normal); | |||
word-wrap: break-word; | |||
} | } | ||
. | .hero-stats { | ||
display: grid; | |||
grid-template-columns: repeat(4, auto); | |||
justify-content: center; | |||
gap: 20px; | |||
width: 100%; | |||
margin-top: 32px; | |||
} | } | ||
. | .stat-item { | ||
background: rgba(255, 255, 255, 0.1); | |||
backdrop-filter: blur(10px); | |||
border: 1px solid rgba(255, 255, 255, 0.2); | |||
border-radius: 16px; | |||
padding: 20px; | |||
min-height: 130px; | |||
display: flex; | |||
flex-direction: column; | |||
justify-content: center; | |||
align-items: center; | |||
transition: all 0.3s ease; | |||
} | } | ||
. | .stat-item::before { | ||
content: ''; | |||
position: absolute; | |||
top: -50%; | |||
left: -50%; | |||
width: 200%; | |||
height: 200%; | |||
background: conic-gradient(transparent, rgba(var(--color-primary-rgb), 0.1), transparent); | |||
animation: rotate-slow 8s linear infinite; | |||
opacity: 0; | |||
transition: opacity var(--duration-fast) var(--ease-standard); | |||
} | } | ||
. | .stat-item:hover::before { | ||
opacity: 1; | |||
} | } | ||
@keyframes rotate-slow { | |||
0% { transform: rotate(0deg); } | |||
100% { transform: rotate(360deg); } | |||
} | } | ||
. | .stat-item:hover { | ||
transform: translateY(-8px) scale(1.05); | |||
box-shadow: 0 15px 50px rgba(var(--color-primary-rgb), 0.4); | |||
background: var(--color-secondary-hover); | |||
} | } | ||
. | .stat-number { | ||
font-size: 2.5em; | |||
font-weight: bold; | |||
color: #ffffff; | |||
line-height: 1.1; | |||
margin-bottom: 8px; | |||
} | } | ||
. | .stat-label { | ||
font-size: 0.95em; | |||
color: rgba(255, 255, 255, 0.8); | |||
font-weight: 500; | |||
line-height: 1.3; | |||
} | } | ||
. | /* Обновленный контейнер */ | ||
.sunrise-container-new { | |||
display: grid; | |||
grid-template-columns: repeat(auto-fit, minmax(450px, 1fr)); | |||
gap: var(--space-32); | |||
margin: var(--space-32) 0; | |||
clear: both; | |||
} | } | ||
. | /* Новые секции с правильным переносом текста */ | ||
.sunrise-section-new { | |||
background: var(--color-surface); | |||
border-radius: var(--radius-lg); | |||
padding: var(--space-32); | |||
box-shadow: var(--shadow-md); | |||
border: 1px solid var(--color-border); | |||
position: relative; | |||
transition: all var(--duration-normal) var(--ease-standard); | |||
overflow: visible; | |||
display: flex; | |||
flex-direction: column; | |||
word-wrap: break-word; | |||
overflow-wrap: break-word; | |||
hyphens: auto; | |||
} | } | ||
. | .sunrise-section-new::before { | ||
content: ''; | |||
position: absolute; | |||
top: 0; | |||
left: -100%; | |||
width: 100%; | |||
height: 100%; | |||
background: linear-gradient(90deg, transparent, rgba(var(--color-primary-rgb), 0.1), transparent); | |||
transition: left 0.6s ease; | |||
} | } | ||
. | .sunrise-section-new:hover::before { | ||
left: 100%; | |||
} | } | ||
. | .sunrise-section-new:hover { | ||
transform: translateY(-10px) scale(1.02); | |||
box-shadow: var(--shadow-lg); | |||
border-color: var(--color-primary); | |||
} | } | ||
. | .section-header { | ||
margin-bottom: var(--space-24); | |||
text-align: center; | |||
} | } | ||
. | .section-header h2 { | ||
color: var(--color-text); | |||
font-size: var(--font-size-2xl); | |||
margin-bottom: var(--space-16); | |||
font-weight: var(--font-weight-semibold); | |||
word-wrap: break-word; | |||
} | } | ||
. | .section-header p { | ||
color: var(--color-primary); | |||
opacity: 0.9; | |||
font-size: var(--font-size-lg); | |||
word-wrap: break-word; | |||
} | } | ||
. | /* Секция особенностей */ | ||
.sunrise-features { | |||
margin: var(--space-32) 0; | |||
padding: var(--space-32) 0; | |||
background: var(--color-secondary); | |||
border-radius: var(--radius-lg); | |||
border: 1px solid var(--color-border); | |||
clear: both; | |||
} | } | ||
. | .features-header { | ||
text-align: center; | |||
margin-bottom: var(--space-32); | |||
} | } | ||
.features-header h2 { | |||
font-size: var(--font-size-3xl); | |||
color: var(--color-text); | |||
margin-bottom: var(--space-16); | |||
font-weight: var(--font-weight-semibold); | |||
word-wrap: break-word; | |||
} | } | ||
. | .features-header p { | ||
color: var(--color-primary); | |||
font-size: var(--font-size-xl); | |||
opacity: 0.9; | |||
word-wrap: break-word; | |||
} | } | ||
. | .features-grid { | ||
display: grid; | |||
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); | |||
gap: var(--space-32); | |||
padding: 0 var(--space-24); | |||
} | } | ||
. | .feature-card { | ||
background: var(--color-surface); | |||
border-radius: var(--radius-lg); | |||
padding: var(--space-32) var(--space-24); | |||
text-align: center; | |||
border: 1px solid var(--color-border); | |||
backdrop-filter: blur(15px); | |||
transition: all var(--duration-normal) var(--ease-standard); | |||
position: relative; | |||
overflow: hidden; | |||
word-wrap: break-word; | |||
overflow-wrap: break-word; | |||
} | } | ||
. | .feature-card::before { | ||
content: ''; | |||
position: absolute; | |||
top: -50%; | |||
left: -50%; | |||
width: 200%; | |||
height: 200%; | |||
background: conic-gradient(transparent, rgba(var(--color-primary-rgb), 0.1), transparent); | |||
animation: rotate-slow 8s linear infinite; | |||
opacity: 0; | |||
transition: opacity var(--duration-normal) var(--ease-standard); | |||
} | } | ||
. | .feature-card:hover::before { | ||
opacity: 1; | |||
} | } | ||
. | .feature-card:hover { | ||
transform: translateY(-15px) scale(1.05); | |||
box-shadow: 0 25px 80px rgba(var(--color-primary-rgb), 0.3); | |||
border-color: var(--color-primary); | |||
} | } | ||
. | .feature-icon { | ||
font-size: 4em; | |||
margin-bottom: var(--space-20); | |||
filter: drop-shadow(0 0 25px rgba(var(--color-primary-rgb), 0.6)); | |||
position: relative; | |||
z-index: 1; | |||
} | } | ||
. | .feature-card h3 { | ||
color: var(--color-text); | |||
font-size: var(--font-size-xl); | |||
margin-bottom: var(--space-16); | |||
font-weight: var(--font-weight-semibold); | |||
position: relative; | |||
z-index: 1; | |||
word-wrap: break-word; | |||
} | } | ||
. | .feature-card p { | ||
color: var(--color-text); | |||
opacity: 0.95; | |||
line-height: var(--line-height-normal); | |||
position: relative; | |||
z-index: 1; | |||
font-size: var(--font-size-lg); | |||
word-wrap: break-word; | |||
overflow-wrap: break-word; | |||
} | } | ||
. | /* Обновленные блоки с правильным переносом текста */ | ||
.sunrise-blocks-new { | |||
background: var(--color-surface); | |||
border-radius: var(--radius-lg); | |||
padding: var(--space-32); | |||
margin: var(--space-32) 0; | |||
box-shadow: var(--shadow-md); | |||
border: 1px solid var(--color-border); | |||
position: relative; | |||
overflow: hidden; | |||
clear: both; | |||
word-wrap: break-word; | |||
overflow-wrap: break-word; | |||
hyphens: auto; | |||
} | } | ||
. | .sunrise-blocks-new::before { | ||
content: ''; | |||
position: absolute; | |||
top: 0; | |||
left: 0; | |||
right: 0; | |||
height: 3px; | |||
background: linear-gradient(90deg, var(--color-primary), var(--color-primary-hover)); | |||
} | } | ||
. | .blocks-header { | ||
text-align: center; | |||
margin-bottom: var(--space-32); | |||
} | } | ||
. | .blocks-header h2 { | ||
font-size: var(--font-size-3xl); | |||
color: var(--color-text); | |||
margin-bottom: var(--space-16); | |||
font-weight: var(--font-weight-semibold); | |||
word-wrap: break-word; | |||
} | } | ||
. | .blocks-header p { | ||
color: var(--color-primary); | |||
font-size: var(--font-size-xl); | |||
opacity: 0.9; | |||
word-wrap: break-word; | |||
} | } | ||
. | /* Космические частицы */ | ||
.space-particles { | |||
position: fixed; | |||
top: 0; | |||
left: 0; | |||
width: 100%; | |||
height: 100%; | |||
pointer-events: none; | |||
z-index: -1; | |||
} | } | ||
.particle { | |||
position: absolute; | |||
width: 3px; | |||
height: 3px; | |||
background: var(--color-primary); | |||
border-radius: 50%; | |||
animation: float 12s infinite linear; | |||
opacity: 0.7; | |||
box-shadow: 0 0 6px rgba(var(--color-primary-rgb), 0.8); | |||
} | } | ||
.particle:nth-child(1) { | |||
left: 10%; | |||
animation-delay: 0s; | |||
animation-duration: 10s; | |||
} | } | ||
. | .particle:nth-child(2) { | ||
left: 25%; | |||
animation-delay: 3s; | |||
animation-duration: 12s; | |||
} | } | ||
. | .particle:nth-child(3) { | ||
left: 60%; | |||
animation-delay: 6s; | |||
animation-duration: 8s; | |||
} | } | ||
. | .particle:nth-child(4) { | ||
left: 80%; | |||
animation-delay: 9s; | |||
animation-duration: 14s; | |||
} | } | ||
. | .particle:nth-child(5) { | ||
left: 95%; | |||
animation-delay: 12s; | |||
animation-duration: 11s; | |||
} | } | ||
. | @keyframes float { | ||
0% { | |||
transform: translateY(100vh) rotate(0deg); | |||
opacity: 0; | |||
} | |||
10% { | |||
opacity: 0.7; | |||
} | |||
90% { | |||
opacity: 0.7; | |||
} | |||
100% { | |||
transform: translateY(-100px) rotate(360deg); | |||
opacity: 0; | |||
} | |||
} | } | ||
. | /* Улучшенные ссылки в секциях главной страницы */ | ||
.sunrise-section-new a, | |||
.sunrise-blocks-new a { | |||
color: var(--color-primary); | |||
text-decoration: none; | |||
transition: all var(--duration-fast) var(--ease-standard); | |||
position: relative; | |||
padding: var(--space-4) var(--space-6); | |||
border-radius: var(--radius-sm); | |||
word-wrap: break-word; | |||
overflow-wrap: break-word; | |||
display: inline-block; | |||
max-width: 100%; | |||
} | } | ||
. | .sunrise-section-new a:hover, | ||
.sunrise-blocks-new a:hover { | |||
color: var(--color-primary-hover); | |||
background: var(--color-secondary); | |||
transform: translateX(5px); | |||
text-shadow: 0 0 8px rgba(var(--color-primary-rgb), 0.5); | |||
} | } | ||
. | /* Заголовки в секциях главной страницы */ | ||
.sunrise-section-new h1, | |||
.sunrise-section-new h2, | |||
.sunrise-section-new h3, | |||
.sunrise-blocks-new h1, | |||
.sunrise-blocks-new h2, | |||
.sunrise-blocks-new h3 { | |||
color: var(--color-text); | |||
border-bottom: 2px solid var(--color-border); | |||
padding-bottom: var(--space-16); | |||
margin-bottom: var(--space-20); | |||
position: relative; | |||
word-wrap: break-word; | |||
overflow-wrap: break-word; | |||
} | } | ||
. | .sunrise-section-new h1::after, | ||
.sunrise-section-new h2::after, | |||
.sunrise-section-new h3::after, | |||
.sunrise-blocks-new h1::after, | |||
.sunrise-blocks-new h2::after, | |||
.sunrise-blocks-new h3::after { | |||
content: ''; | |||
position: absolute; | |||
bottom: -2px; | |||
left: 0; | |||
width: 80px; | |||
height: 2px; | |||
background: linear-gradient(90deg, var(--color-primary), var(--color-primary-hover)); | |||
border-radius: 2px; | |||
} | } | ||
. | /* Параграфы в секциях с правильным переносом */ | ||
.sunrise-section-new p, | |||
.sunrise-blocks-new p { | |||
word-wrap: break-word; | |||
overflow-wrap: break-word; | |||
hyphens: auto; | |||
line-height: var(--line-height-normal); | |||
margin-bottom: var(--space-20); | |||
} | } | ||
. | /* Адаптивность */ | ||
@media (max-width: 1024px) { | |||
.sunrise-container-new { | |||
grid-template-columns: 1fr; | |||
gap: var(--space-24); | |||
} | |||
.features-grid { | |||
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); | |||
gap: var(--space-24); | |||
} | |||
.mw-body { | |||
padding: var(--space-24) var(--space-24); | |||
margin: var(--space-20); | |||
} | |||
} | } | ||
.mw- | @media (max-width: 768px) { | ||
border- | .sunrise-container-new { | ||
grid-template-columns: 1fr; | |||
gap: var(--space-20); | |||
} | |||
.features-grid { | |||
grid-template-columns: 1fr; | |||
gap: var(--space-20); | |||
padding: 0 var(--space-16); | |||
} | |||
.sunrise-hero-new { | |||
padding: var(--space-32) var(--space-24); | |||
min-height: 400px; | |||
} | |||
.mw-body { | |||
padding: var(--space-20) var(--space-20); | |||
margin: var(--space-16); | |||
border-radius: var(--radius-md); | |||
} | |||
.sunrise-section-new, | |||
.sunrise-blocks-new { | |||
padding: var(--space-24); | |||
border-radius: var(--radius-md); | |||
} | |||
.feature-card { | |||
padding: var(--space-32) var(--space-20); | |||
} | |||
} | } | ||
.mw- | @media (max-width: 480px) { | ||
.sunrise-section-new, | |||
.sunrise-blocks-new { | |||
padding: var(--space-20); | |||
border-radius: var(--radius-base); | |||
margin: var(--space-16) 0; | |||
} | |||
.feature-card { | |||
padding: var(--space-24) var(--space-16); | |||
border-radius: var(--radius-base); | |||
} | |||
.sunrise-hero-new { | |||
padding: var(--space-24) var(--space-16); | |||
min-height: 350px; | |||
border-radius: var(--radius-base); | |||
margin: var(--space-16) 0; | |||
} | |||
.mw-body { | |||
padding: var(--space-16) var(--space-16); | |||
margin: var(--space-8); | |||
border-radius: var(--radius-base); | |||
} | |||
.sunrise-container-new { | |||
gap: var(--space-16); | |||
margin: var(--space-16) 0; | |||
} | |||
.features-grid { | |||
gap: var(--space-16); | |||
padding: 0 var(--space-12); | |||
} | |||
.sunrise-features { | |||
margin: var(--space-16) 0; | |||
padding: var(--space-24) 0; | |||
border-radius: var(--radius-base); | |||
} | |||
.features-header { | |||
margin-bottom: var(--space-24); | |||
} | |||
.blocks-header { | |||
margin-bottom: var(--space-24); | |||
} | |||
.logo-text { | |||
font-size: var(--font-size-3xl); | |||
} | |||
.logo-subtext { | |||
font-size: var(--font-size-lg); | |||
margin-top: var(--space-12); | |||
} | |||
.hero-description { | |||
font-size: var(--font-size-lg); | |||
margin-bottom: var(--space-24); | |||
} | |||
.stat-number { | |||
font-size: 2.5em; | |||
font-weight: bold; | |||
color: #ffffff; | |||
line-height: 1.1; | |||
margin-bottom: 8px; | |||
white-space: nowrap; | |||
overflow: visible; | |||
text-overflow: initial; | |||
text-align: center; | |||
} | |||
.stat-label { | |||
font-size: 0.95em; | |||
color: rgba(255, 255, 255, 0.8); | |||
font-weight: 500; | |||
line-height: 1.3; | |||
white-space: nowrap; | |||
overflow: visible; | |||
text-overflow: initial; | |||
text-align: center; | |||
} | } | ||
. | .section-header h2 { | ||
font-size: var(--font-size-xl); | |||
margin-bottom: var(--space-12); | |||
} | |||
.section-header p { | |||
font-size: var(--font-size-base); | |||
} | |||
.features-header h2 { | |||
font-size: var(--font-size-2xl); | |||
margin-bottom: var(--space-12); | |||
} | |||
.features-header p { | |||
font-size: var(--font-size-lg); | |||
} | |||
.blocks-header h2 { | |||
font-size: var(--font-size-2xl); | |||
margin-bottom: var(--space-12); | |||
} | |||
.blocks-header p { | |||
font-size: var(--font-size-lg); | |||
} | |||
.feature-card h3 { | |||
font-size: var(--font-size-lg); | |||
margin-bottom: var(--space-12); | |||
} | |||
.feature-card p { | |||
font-size: var(--font-size-base); | |||
} | |||
.feature-icon { | |||
font-size: 3em; | |||
margin-bottom: var(--space-16); | |||
} | |||
} | } | ||
. | /* Исправления для текста - предотвращение обрыва слов */ | ||
.sunrise-section-new *, | |||
.sunrise-blocks-new *, | |||
.hero-content *, | |||
.feature-card * { | |||
word-wrap: break-word; | |||
overflow-wrap: break-word; | |||
hyphens: auto; | |||
} | } | ||
. | /* Специальные правила для длинных слов */ | ||
.sunrise-section-new, | |||
.sunrise-blocks-new { | |||
word-break: break-word; | |||
overflow-wrap: anywhere; | |||
} | } | ||
. | /* Убираем скроллбары из всех блоков главной страницы */ | ||
.sunrise-section-new, | |||
.sunrise-blocks-new, | |||
.stat-item, | |||
.feature-card { | |||
overflow: hidden; | |||
overflow-wrap: break-word; | |||
word-wrap: break-word; | |||
} | } | ||
/* Плавные переходы для всех элементов */ | |||
* { | |||
transition: transform var(--duration-fast) var(--ease-standard), | |||
box-shadow var(--duration-fast) var(--ease-standard), | |||
border-color var(--duration-fast) var(--ease-standard), | |||
background-color var(--duration-fast) var(--ease-standard); | |||
} | } | ||
/* Оптимизация производительности */ | |||
@media (prefers-reduced-motion: reduce) { | |||
*, | |||
*::before, | |||
*::after { | |||
animation-duration: 0.01ms !important; | |||
animation-iteration-count: 1 !important; | |||
transition-duration: 0.01ms !important; | |||
} | |||
} | } | ||
. | /* Печать */ | ||
background-color: | @media print { | ||
.space-particles, | |||
.hero-background { | |||
display: none; | |||
} | |||
body { | |||
background: var(--color-background); | |||
color: var(--color-text); | |||
} | |||
.mw-body { | |||
background: var(--color-surface); | |||
box-shadow: none; | |||
border: 1px solid var(--color-border); | |||
} | |||
} | } | ||
/* Контейнер MainMenuAbout */ | |||
.mainmenu-about-container { | |||
display: flex; | |||
flex-direction: column; | |||
gap: 15px; | |||
height: auto; | |||
} | } | ||
. | /* Секция сообщества */ | ||
.community-links { | |||
overflow: hidden; /* Убираем любые скроллбары */ | |||
padding: 10px 0; | |||
} | } | ||
. | .social-grid { | ||
display: grid; | |||
grid-template-columns: 1fr 1fr; | |||
gap: 15px; | |||
} | } | ||
. | .social-link { | ||
display: flex; | |||
justify-content: center; | |||
align-items: center; | |||
background: rgba(var(--color-primary-rgb), 0.05); | |||
border: 1px solid rgba(var(--color-primary-rgb), 0.1); | |||
border-radius: var(--radius-md); | |||
padding: 10px; | |||
min-height: 80px; | |||
transition: all 0.3s ease; | |||
} | } | ||
. | .social-link:hover { | ||
transform: translateY(-3px); | |||
box-shadow: 0 5px 15px rgba(var(--color-primary-rgb), 0.2); | |||
border-color: rgba(var(--color-primary-rgb), 0.3); | |||
background: rgba(var(--color-primary-rgb), 0.1); | |||
} | } | ||
. | .social-link img { | ||
max-width: 100%; | |||
max-height: 60px; | |||
object-fit: contain; | |||
transition: transform 0.3s ease; | |||
} | } | ||
.social-link:hover img { | |||
transform: scale(1.05); | |||
} | } | ||
. | @media (max-width: 500px) { | ||
.social-grid { | |||
grid-template-columns: 1fr; | |||
} | |||
} | } | ||
. | /* Контент секций */ | ||
.about-content, | |||
.help-content, | |||
.other-projects { | |||
word-wrap: break-word; | |||
overflow-wrap: break-word; | |||
hyphens: auto; | |||
line-height: 1.6; | |||
overflow: visible; | |||
max-height: none; | |||
} | } | ||
. | /* Убираем скроллбары везде где они могут появиться */ | ||
.mainmenu-about-container *, | |||
.community-links *, | |||
.social-grid *, | |||
.social-link * { | |||
/* Для WebKit браузеров (Chrome, Safari) */ | |||
scrollbar-width: none; /* Firefox */ | |||
-ms-overflow-style: none; /* IE и Edge */ | |||
} | } | ||
.mainmenu-about-container *::-webkit-scrollbar, | |||
.community-links *::-webkit-scrollbar, | |||
.social-grid *::-webkit-scrollbar, | |||
.social-link *::-webkit-scrollbar { | |||
display: none; /* Chrome, Safari, Opera */ | |||
} | } | ||
/* Адаптивность для мобильных */ | |||
@media (max-width: 768px) { | |||
.social-grid { | |||
grid-template-columns: 1fr; | |||
gap: 10px; | |||
} | |||
.social-link { | |||
min-height: 120px; | |||
} | |||
. | |||
} | |||
. | |||
} | |||
} | } | ||
. | /* Улучшенное предупреждение о доработке страницы */ | ||
.sunrise-warning-banner { | |||
background: linear-gradient(135deg, #fbbf24, #f97316); | |||
color: #1f2937; | |||
border-radius: 12px; | |||
padding: 16px 24px; | |||
margin: 24px auto; | |||
box-shadow: 0 10px 25px rgba(251, 191, 36, 0.3); | |||
display: flex; | |||
justify-content: center; | |||
align-items: center; | |||
position: relative; | |||
animation: pulse-warning 3s ease-in-out infinite alternate; | |||
font-weight: 600; | |||
font-size: 16px; | |||
max-width: 860px; | |||
border: 2px solid rgba(255, 255, 255, 0.2); | |||
} | } | ||
. | .warning-content { | ||
display: flex; | |||
align-items: center; | |||
gap: 12px; | |||
width: 100%; | |||
} | } | ||
. | .warning-icon { | ||
font-size: 28px; | |||
animation: bounce-warning 2s ease-in-out infinite; | |||
} | } | ||
. | .warning-text { | ||
flex-grow: 1; | |||
line-height: 1.4; | |||
} | } | ||
. | .warning-close { | ||
background: transparent; | |||
border: none; | |||
font-size: 24px; | |||
font-weight: bold; | |||
cursor: pointer; | |||
color: #1f2937; | |||
transition: all 0.3s ease; | |||
padding: 4px 8px; | |||
border-radius: 6px; | |||
transform: rotate(0deg); | |||
} | } | ||
. | .warning-close:hover { | ||
color: #dc2626; | |||
background: rgba(255, 255, 255, 0.2); | |||
transform: rotate(180deg); | |||
} | } | ||
@keyframes pulse-warning { | |||
0% { | |||
box-shadow: 0 10px 25px rgba(251, 191, 36, 0.3); | |||
} | |||
100% { | |||
box-shadow: 0 15px 35px rgba(251, 191, 36, 0.5); | |||
} | |||
} | } | ||
@keyframes bounce-warning { | |||
0%, 20%, 50%, 80%, 100% { | |||
transform: translateY(0); | |||
} | |||
40% { | |||
transform: translateY(-8px); | |||
} | |||
60% { | |||
transform: translateY(-4px); | |||
} | |||
} | } | ||
. | .stat-item:last-child { | ||
background: linear-gradient(135deg, rgba(139, 92, 246, 0.2), rgba(59, 130, 246, 0.2)); | |||
border-color: rgba(139, 92, 246, 0.4); | |||
animation: infinity-glow 4s ease-in-out infinite alternate; | |||
} | } | ||
. | .stat-item:last-child .stat-number { | ||
background: linear-gradient(45deg, #fbbf24, #f472b6); | |||
-webkit-background-clip: text; | |||
-webkit-text-fill-color: transparent; | |||
background-clip: text; | |||
font-size: 2.2em; | |||
} | } | ||
@keyframes infinity-glow { | |||
0% { | |||
box-shadow: 0 0 15px rgba(139, 92, 246, 0.3); | |||
} | |||
100% { | |||
box-shadow: 0 0 25px rgba(59, 130, 246, 0.5); | |||
} | |||
} | } | ||
. | .mw-collapsible-toggle a { | ||
color: var(--color-primary); | |||
text-decoration: none; | |||
font-weight: var(--font-weight-medium); | |||
transition: color var(--duration-fast) var(--ease-standard); | |||
} | } | ||
. | .mw-collapsible-toggle a:hover { | ||
color: var(--color-primary-hover); | |||
} | } | ||
. | .mw-collapsed .mw-collapsible-content { | ||
display: none; | |||
} | } | ||
. | /* Альтернативное решение для details/summary */ | ||
details.abbreviation-list { | |||
background: #f8fafc; | |||
border: 1px solid #e2e8f0; | |||
border-radius: 8px; | |||
padding: 16px; | |||
margin: 16px 0; | |||
} | } | ||
. | details.abbreviation-list summary { | ||
cursor: pointer; | |||
font-weight: bold; | |||
color: #3b82f6; | |||
margin-bottom: 12px; | |||
user-select: none; | |||
} | } | ||
. | details.abbreviation-list summary:hover { | ||
color: #1d4ed8; | |||
} | } | ||
. | details.abbreviation-list[open] summary { | ||
margin-bottom: 16px; | |||
border-bottom: 1px solid #e2e8f0; | |||
padding-bottom: 8px; | |||
} | } | ||
. | /* Адаптивность для предупреждения */ | ||
@media (max-width: 768px) { | |||
.sunrise-warning-banner { | |||
margin: 16px 12px; | |||
padding: 14px 18px; | |||
font-size: 15px; | |||
} | |||
.warning-icon { | |||
font-size: 24px; | |||
} | |||
.warning-close { | |||
font-size: 20px; | |||
} | |||
} | } | ||
@media (max-width: 480px) { | |||
.sunrise-warning-banner { | |||
margin: 12px 8px; | |||
padding: 12px 16px; | |||
font-size: 14px; | |||
} | |||
.warning-content { | |||
gap: 8px; | |||
} | |||
} | } | ||
. | .mw-collapsible-toggle { | ||
cursor: pointer; | |||
color: var(--color-primary, #3b82f6); | |||
font-weight: bold; | |||
user-select: none; | |||
text-decoration: none; | |||
border: none; | |||
background: transparent; | |||
padding: 4px 8px; | |||
border-radius: 4px; | |||
transition: all 0.3s ease; | |||
} | } | ||
. | .mw-collapsible-toggle:hover { | ||
color: var(--color-primary-hover, #1d4ed8); | |||
background-color: var(--color-secondary, rgba(59, 130, 246, 0.1)); | |||
text-decoration: none; | |||
} | } | ||
. | .mw-collapsed .mw-collapsible-content { | ||
display: none !important; | |||
} | } | ||
. | .mw-collapsible-content { | ||
display: block; | |||
} | } | ||
. | .mw-customtoggle { | ||
cursor: pointer; | |||
color: var(--color-primary, #3b82f6); | |||
font-weight: bold; | |||
user-select: none; | |||
text-decoration: none; | |||
} | } | ||
. | .mw-customtoggle:hover { | ||
color: var(--color-primary-hover, #1d4ed8); | |||
text-decoration: underline; | |||
} | } | ||
@keyframes infinity-glow { | |||
0% { | |||
box-shadow: 0 0 15px rgba(139, 92, 246, 0.3); | |||
} | |||
100% { | |||
box-shadow: 0 0 25px rgba(59, 130, 246, 0.5); | |||
} | |||
} | } | ||
. | .recentchanges-frame .mw-collapsible-content { | ||
max-height: 400px; | |||
overflow-y: auto; | |||
} | } | ||
. | .mw-highlight, | ||
.mw-geshi, | |||
pre.mw-code { | |||
position: relative; | |||
background: var(--color-surface); | |||
border: 1px solid var(--color-border); | |||
border-radius: var(--radius-md); | |||
box-shadow: var(--shadow-inset-sm); | |||
overflow: auto; | |||
} | } | ||
. | .mw-highlight pre, | ||
pre.mw-code, | |||
pre code { | |||
white-space: pre; | |||
word-break: normal; | |||
overflow-wrap: normal; | |||
hyphens: manual; | |||
line-height: 1.4; | |||
letter-spacing: 0; | |||
margin: 0; | |||
background: transparent; | |||
border: 0; | |||
padding: 12px 16px; | |||
font-family: var(--font-family-mono); | |||
font-size: 13px; | |||
} | } | ||
.mw-highlight table { | |||
border-collapse: collapse; | |||
width: 100%; | |||
} | } | ||
::- | .mw-highlight td.linenos, | ||
.mw-highlight .linenos { | |||
width: 3.5em; | |||
min-width: 3.5em; | |||
text-align: right; | |||
color: var(--color-text-secondary); | |||
user-select: none; | |||
border-right: 1px solid var(--color-border); | |||
padding: 12px 8px; | |||
vertical-align: top; | |||
} | } | ||
.mw-highlight td.code, | |||
.mw-highlight .code { | |||
padding: 0; | |||
} | } | ||
.mw-highlight td.code pre { | |||
padding-left: 12px; | |||
} | } | ||
. | .mw-numbered-lines, | ||
.line-numbers { | |||
counter-reset: lineno; | |||
} | } | ||
.mw-numbered-lines > code > span, | |||
. | .line-numbers > code > span { | ||
display: block; | |||
counter-increment: lineno; | |||
} | } | ||
.mw-numbered-lines > code > span::before, | |||
. | .line-numbers > code > span::before { | ||
content: counter(lineno); | |||
display: inline-block; | |||
width: 3.5em; | |||
margin-right: 8px; | |||
text-align: right; | |||
color: var(--color-text-secondary); | |||
user-select: none; | |||
border-right: 1px solid var(--color-border); | |||
padding-right: 8px; | |||
} | } | ||
. | .mw-highlight code, | ||
.mw-geshi code { | |||
background: transparent; | |||
padding: 0; | |||
border: 0; | |||
box-shadow: none; | |||
} | } | ||
. | .mw-body .wikitable pre, | ||
.mw-body .infobox pre { | |||
overflow: auto; | |||
} | } | ||
. | .mw-highlight pre, | ||
pre.mw-code { | |||
overflow-x: auto; | |||
overflow-y: hidden; | |||
} | } | ||
.mw- | .mw-highlight pre, | ||
pre.mw-code { | |||
line-height: 1.5; | |||
font-size: 13px; | |||
} | } | ||
.mw-highlight td.linenos { padding: 10px 8px; } | |||
.mw-highlight td.code pre { padding-left: 14px; } | |||
} | |||
.mw- | |||
} | |||
.mw- | .mw-highlight td.linenos, | ||
.mw-highlight td.code { vertical-align: top; } | |||
} | |||
.mw- | .mw-highlight pre, | ||
pre.mw-code, | |||
pre code { | |||
word-break: normal; | |||
overflow-wrap: normal; | |||
} | } | ||
@media (max-width: 480px) { | |||
.mw-highlight td.linenos { width: 3.2em; min-width: 3.2em; } | |||
.mw- | |||
} | } |
Текущая версия от 20:23, 8 августа 2025
:root {
/* Primitive Color Tokens */
--color-white: rgba(255, 255, 255, 1);
--color-black: rgba(0, 0, 0, 1);
--color-cream-50: rgba(252, 252, 249, 1);
--color-cream-100: rgba(255, 255, 253, 1);
--color-gray-200: rgba(245, 245, 245, 1);
--color-gray-300: rgba(167, 169, 169, 1);
--color-gray-400: rgba(119, 124, 124, 1);
--color-slate-500: rgba(98, 108, 113, 1);
--color-brown-600: rgba(94, 82, 64, 1);
--color-charcoal-700: rgba(31, 33, 33, 1);
--color-charcoal-800: rgba(38, 40, 40, 1);
--color-slate-900: rgba(19, 52, 59, 1);
--color-teal-300: rgba(50, 184, 198, 1);
--color-teal-400: rgba(45, 166, 178, 1);
--color-teal-500: rgba(33, 128, 141, 1);
--color-teal-600: rgba(29, 116, 128, 1);
--color-teal-700: rgba(26, 104, 115, 1);
--color-teal-800: rgba(41, 150, 161, 1);
--color-red-400: rgba(255, 84, 89, 1);
--color-red-500: rgba(192, 21, 47, 1);
--color-orange-400: rgba(230, 129, 97, 1);
--color-orange-500: rgba(168, 75, 47, 1);
/* RGB versions for opacity control */
--color-brown-600-rgb: 94, 82, 64;
--color-teal-500-rgb: 33, 128, 141;
--color-slate-900-rgb: 19, 52, 59;
--color-slate-500-rgb: 98, 108, 113;
--color-red-500-rgb: 192, 21, 47;
--color-red-400-rgb: 255, 84, 89;
--color-orange-500-rgb: 168, 75, 47;
--color-orange-400-rgb: 230, 129, 97;
/* Background color tokens (Light Mode) */
--color-bg-1: rgba(59, 130, 246, 0.08); /* Light blue */
--color-bg-2: rgba(245, 158, 11, 0.08); /* Light yellow */
--color-bg-3: rgba(34, 197, 94, 0.08); /* Light green */
--color-bg-4: rgba(239, 68, 68, 0.08); /* Light red */
--color-bg-5: rgba(147, 51, 234, 0.08); /* Light purple */
--color-bg-6: rgba(249, 115, 22, 0.08); /* Light orange */
--color-bg-7: rgba(236, 72, 153, 0.08); /* Light pink */
--color-bg-8: rgba(6, 182, 212, 0.08); /* Light cyan */
/* Semantic Color Tokens (Light Mode) */
--color-background: var(--color-cream-50);
--color-surface: var(--color-cream-100);
--color-text: var(--color-slate-900);
--color-text-secondary: var(--color-slate-500);
--color-primary: var(--color-teal-500);
--color-primary-hover: var(--color-teal-600);
--color-primary-active: var(--color-teal-700);
--color-secondary: rgba(var(--color-brown-600-rgb), 0.12);
--color-secondary-hover: rgba(var(--color-brown-600-rgb), 0.2);
--color-secondary-active: rgba(var(--color-brown-600-rgb), 0.25);
--color-border: rgba(var(--color-brown-600-rgb), 0.2);
--color-btn-primary-text: var(--color-cream-50);
--color-card-border: rgba(var(--color-brown-600-rgb), 0.12);
--color-card-border-inner: rgba(var(--color-brown-600-rgb), 0.12);
--color-error: var(--color-red-500);
--color-success: var(--color-teal-500);
--color-warning: var(--color-orange-500);
--color-info: var(--color-slate-500);
--color-focus-ring: rgba(var(--color-teal-500-rgb), 0.4);
--color-select-caret: rgba(var(--color-slate-900-rgb), 0.8);
/* Common style patterns */
--focus-ring: 0 0 0 3px var(--color-focus-ring);
--focus-outline: 2px solid var(--color-primary);
--status-bg-opacity: 0.15;
--status-border-opacity: 0.25;
--select-caret-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23134252' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
--select-caret-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
/* RGB versions for opacity control */
--color-success-rgb: 33, 128, 141;
--color-error-rgb: 192, 21, 47;
--color-warning-rgb: 168, 75, 47;
--color-info-rgb: 98, 108, 113;
/* Typography */
--font-family-base: "FKGroteskNeue", "Geist", "Inter", -apple-system,
BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
--font-family-mono: "Berkeley Mono", ui-monospace, SFMono-Regular, Menlo,
Monaco, Consolas, monospace;
--font-size-xs: 11px;
--font-size-sm: 12px;
--font-size-base: 14px;
--font-size-md: 14px;
--font-size-lg: 16px;
--font-size-xl: 18px;
--font-size-2xl: 20px;
--font-size-3xl: 24px;
--font-size-4xl: 30px;
--font-weight-normal: 400;
--font-weight-medium: 500;
--font-weight-semibold: 550;
--font-weight-bold: 600;
--line-height-tight: 1.2;
--line-height-normal: 1.5;
--letter-spacing-tight: -0.01em;
/* Spacing */
--space-0: 0;
--space-1: 1px;
--space-2: 2px;
--space-4: 4px;
--space-6: 6px;
--space-8: 8px;
--space-10: 10px;
--space-12: 12px;
--space-16: 16px;
--space-20: 20px;
--space-24: 24px;
--space-32: 32px;
/* Border Radius */
--radius-sm: 6px;
--radius-base: 8px;
--radius-md: 10px;
--radius-lg: 12px;
--radius-full: 9999px;
/* Shadows */
--shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.02);
--shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.02);
--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.04),
0 2px 4px -1px rgba(0, 0, 0, 0.02);
--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.04),
0 4px 6px -2px rgba(0, 0, 0, 0.02);
--shadow-inset-sm: inset 0 1px 0 rgba(255, 255, 255, 0.15),
inset 0 -1px 0 rgba(0, 0, 0, 0.03);
/* Animation */
--duration-fast: 150ms;
--duration-normal: 250ms;
--ease-standard: cubic-bezier(0.16, 1, 0.3, 1);
/* Layout */
--container-sm: 640px;
--container-md: 768px;
--container-lg: 1024px;
--container-xl: 1280px;
}
/* Dark mode colors */
@media (prefers-color-scheme: dark) {
:root {
/* RGB versions for opacity control (Dark Mode) */
--color-gray-400-rgb: 119, 124, 124;
--color-teal-300-rgb: 50, 184, 198;
--color-gray-300-rgb: 167, 169, 169;
--color-gray-200-rgb: 245, 245, 245;
/* Background color tokens (Dark Mode) */
--color-bg-1: rgba(29, 78, 216, 0.15); /* Dark blue */
--color-bg-2: rgba(180, 83, 9, 0.15); /* Dark yellow */
--color-bg-3: rgba(21, 128, 61, 0.15); /* Dark green */
--color-bg-4: rgba(185, 28, 28, 0.15); /* Dark red */
--color-bg-5: rgba(107, 33, 168, 0.15); /* Dark purple */
--color-bg-6: rgba(194, 65, 12, 0.15); /* Dark orange */
--color-bg-7: rgba(190, 24, 93, 0.15); /* Dark pink */
--color-bg-8: rgba(8, 145, 178, 0.15); /* Dark cyan */
/* Semantic Color Tokens (Dark Mode) */
--color-background: var(--color-charcoal-700);
--color-surface: var(--color-charcoal-800);
--color-text: var(--color-gray-200);
--color-text-secondary: rgba(var(--color-gray-300-rgb), 0.7);
--color-primary: var(--color-teal-300);
--color-primary-hover: var(--color-teal-400);
--color-primary-active: var(--color-teal-800);
--color-secondary: rgba(var(--color-gray-400-rgb), 0.15);
--color-secondary-hover: rgba(var(--color-gray-400-rgb), 0.25);
--color-secondary-active: rgba(var(--color-gray-400-rgb), 0.3);
--color-border: rgba(var(--color-gray-400-rgb), 0.3);
--color-error: var(--color-red-400);
--color-success: var(--color-teal-300);
--color-warning: var(--color-orange-400);
--color-info: var(--color-gray-300);
--color-focus-ring: rgba(var(--color-teal-300-rgb), 0.4);
--color-btn-primary-text: var(--color-slate-900);
--color-card-border: rgba(var(--color-gray-400-rgb), 0.2);
--color-card-border-inner: rgba(var(--color-gray-400-rgb), 0.15);
--shadow-inset-sm: inset 0 1px 0 rgba(255, 255, 255, 0.1),
inset 0 -1px 0 rgba(0, 0, 0, 0.15);
--button-border-secondary: rgba(var(--color-gray-400-rgb), 0.2);
--color-border-secondary: rgba(var(--color-gray-400-rgb), 0.2);
--color-select-caret: rgba(var(--color-gray-200-rgb), 0.8);
/* Common style patterns - updated for dark mode */
--focus-ring: 0 0 0 3px var(--color-focus-ring);
--focus-outline: 2px solid var(--color-primary);
--status-bg-opacity: 0.15;
--status-border-opacity: 0.25;
--select-caret-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23134252' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
--select-caret-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
/* RGB versions for dark mode */
--color-success-rgb: var(--color-teal-300-rgb);
--color-error-rgb: var(--color-red-400-rgb);
--color-warning-rgb: var(--color-orange-400-rgb);
--color-info-rgb: var(--color-gray-300-rgb);
}
}
/* Data attribute for manual theme switching */
[data-color-scheme="dark"] {
/* RGB versions for opacity control (dark mode) */
--color-gray-400-rgb: 119, 124, 124;
--color-teal-300-rgb: 50, 184, 198;
--color-gray-300-rgb: 167, 169, 169;
--color-gray-200-rgb: 245, 245, 245;
/* Colorful background palette - Dark Mode */
--color-bg-1: rgba(29, 78, 216, 0.15); /* Dark blue */
--color-bg-2: rgba(180, 83, 9, 0.15); /* Dark yellow */
--color-bg-3: rgba(21, 128, 61, 0.15); /* Dark green */
--color-bg-4: rgba(185, 28, 28, 0.15); /* Dark red */
--color-bg-5: rgba(107, 33, 168, 0.15); /* Dark purple */
--color-bg-6: rgba(194, 65, 12, 0.15); /* Dark orange */
--color-bg-7: rgba(190, 24, 93, 0.15); /* Dark pink */
--color-bg-8: rgba(8, 145, 178, 0.15); /* Dark cyan */
/* Semantic Color Tokens (Dark Mode) */
--color-background: var(--color-charcoal-700);
--color-surface: var(--color-charcoal-800);
--color-text: var(--color-gray-200);
--color-text-secondary: rgba(var(--color-gray-300-rgb), 0.7);
--color-primary: var(--color-teal-300);
--color-primary-hover: var(--color-teal-400);
--color-primary-active: var(--color-teal-800);
--color-secondary: rgba(var(--color-gray-400-rgb), 0.15);
--color-secondary-hover: rgba(var(--color-gray-400-rgb), 0.25);
--color-secondary-active: rgba(var(--color-gray-400-rgb), 0.3);
--color-border: rgba(var(--color-gray-400-rgb), 0.3);
--color-error: var(--color-red-400);
--color-success: var(--color-teal-300);
--color-warning: var(--color-orange-400);
--color-info: var(--color-gray-300);
--color-focus-ring: rgba(var(--color-teal-300-rgb), 0.4);
--color-btn-primary-text: var(--color-slate-900);
--color-card-border: rgba(var(--color-gray-400-rgb), 0.15);
--color-card-border-inner: rgba(var(--color-gray-400-rgb), 0.15);
--shadow-inset-sm: inset 0 1px 0 rgba(255, 255, 255, 0.1),
inset 0 -1px 0 rgba(0, 0, 0, 0.15);
--color-border-secondary: rgba(var(--color-gray-400-rgb), 0.2);
--color-select-caret: rgba(var(--color-gray-200-rgb), 0.8);
/* Common style patterns - updated for dark mode */
--focus-ring: 0 0 0 3px var(--color-focus-ring);
--focus-outline: 2px solid var(--color-primary);
--status-bg-opacity: 0.15;
--status-border-opacity: 0.25;
--select-caret-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23134252' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
--select-caret-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
/* RGB versions for dark mode */
--color-success-rgb: var(--color-teal-300-rgb);
--color-error-rgb: var(--color-red-400-rgb);
--color-warning-rgb: var(--color-orange-400-rgb);
--color-info-rgb: var(--color-gray-300-rgb);
}
[data-color-scheme="light"] {
/* RGB versions for opacity control (light mode) */
--color-brown-600-rgb: 94, 82, 64;
--color-teal-500-rgb: 33, 128, 141;
--color-slate-900-rgb: 19, 52, 59;
/* Semantic Color Tokens (Light Mode) */
--color-background: var(--color-cream-50);
--color-surface: var(--color-cream-100);
--color-text: var(--color-slate-900);
--color-text-secondary: var(--color-slate-500);
--color-primary: var(--color-teal-500);
--color-primary-hover: var(--color-teal-600);
--color-primary-active: var(--color-teal-700);
--color-secondary: rgba(var(--color-brown-600-rgb), 0.12);
--color-secondary-hover: rgba(var(--color-brown-600-rgb), 0.2);
--color-secondary-active: rgba(var(--color-brown-600-rgb), 0.25);
--color-border: rgba(var(--color-brown-600-rgb), 0.2);
--color-btn-primary-text: var(--color-cream-50);
--color-card-border: rgba(var(--color-brown-600-rgb), 0.12);
--color-card-border-inner: rgba(var(--color-brown-600-rgb), 0.12);
--color-error: var(--color-red-500);
--color-success: var(--color-teal-500);
--color-warning: var(--color-orange-500);
--color-info: var(--color-slate-500);
--color-focus-ring: rgba(var(--color-teal-500-rgb), 0.4);
/* RGB versions for light mode */
--color-success-rgb: var(--color-teal-500-rgb);
--color-error-rgb: var(--color-red-500-rgb);
--color-warning-rgb: var(--color-orange-500-rgb);
--color-info-rgb: var(--color-slate-500-rgb);
}
/* Base styles */
html {
font-size: var(--font-size-base);
font-family: var(--font-family-base);
line-height: var(--line-height-normal);
color: var(--color-text);
background-color: var(--color-background);
-webkit-font-smoothing: antialiased;
box-sizing: border-box;
}
body {
margin: 0;
padding: 0;
}
*,
*::before,
*::after {
box-sizing: inherit;
}
/* Typography */
h1,
h2,
h3,
h4,
h5,
h6 {
margin: 0;
font-weight: var(--font-weight-semibold);
line-height: var(--line-height-tight);
color: var(--color-text);
letter-spacing: var(--letter-spacing-tight);
}
h1 {
font-size: var(--font-size-4xl);
}
h2 {
font-size: var(--font-size-3xl);
}
h3 {
font-size: var(--font-size-2xl);
}
h4 {
font-size: var(--font-size-xl);
}
h5 {
font-size: var(--font-size-lg);
}
h6 {
font-size: var(--font-size-md);
}
p {
margin: 0 0 var(--space-16) 0;
}
a {
color: var(--color-primary);
text-decoration: none;
transition: color var(--duration-fast) var(--ease-standard);
}
a:hover {
color: var(--color-primary-hover);
}
code,
pre {
font-family: var(--font-family-mono);
font-size: calc(var(--font-size-base) * 0.95);
background-color: var(--color-secondary);
border-radius: var(--radius-sm);
}
code {
padding: var(--space-1) var(--space-4);
}
pre {
padding: var(--space-16);
margin: var(--space-16) 0;
overflow: auto;
border: 1px solid var(--color-border);
}
pre code {
background: none;
padding: 0;
}
/* Buttons */
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
padding: var(--space-8) var(--space-16);
border-radius: var(--radius-base);
font-size: var(--font-size-base);
font-weight: 500;
line-height: 1.5;
cursor: pointer;
transition: all var(--duration-normal) var(--ease-standard);
border: none;
text-decoration: none;
position: relative;
}
.btn:focus-visible {
outline: none;
box-shadow: var(--focus-ring);
}
.btn--primary {
background: var(--color-primary);
color: var(--color-btn-primary-text);
}
.btn--primary:hover {
background: var(--color-primary-hover);
}
.btn--primary:active {
background: var(--color-primary-active);
}
.btn--secondary {
background: var(--color-secondary);
color: var(--color-text);
}
.btn--secondary:hover {
background: var(--color-secondary-hover);
}
.btn--secondary:active {
background: var(--color-secondary-active);
}
.btn--outline {
background: transparent;
border: 1px solid var(--color-border);
color: var(--color-text);
}
.btn--outline:hover {
background: var(--color-secondary);
}
.btn--sm {
padding: var(--space-4) var(--space-12);
font-size: var(--font-size-sm);
border-radius: var(--radius-sm);
}
.btn--lg {
padding: var(--space-10) var(--space-20);
font-size: var(--font-size-lg);
border-radius: var(--radius-md);
}
.btn--full-width {
width: 100%;
}
.btn:disabled {
opacity: 0.5;
cursor: not-allowed;
}
/* Form elements */
.form-control {
display: block;
width: 100%;
padding: var(--space-8) var(--space-12);
font-size: var(--font-size-md);
line-height: 1.5;
color: var(--color-text);
background-color: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: var(--radius-base);
transition: border-color var(--duration-fast) var(--ease-standard),
box-shadow var(--duration-fast) var(--ease-standard);
}
textarea.form-control {
font-family: var(--font-family-base);
font-size: var(--font-size-base);
}
select.form-control {
padding: var(--space-8) var(--space-12);
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
background-image: var(--select-caret-light);
background-repeat: no-repeat;
background-position: right var(--space-12) center;
background-size: 16px;
padding-right: var(--space-32);
}
/* Add a dark mode specific caret */
@media (prefers-color-scheme: dark) {
select.form-control {
background-image: var(--select-caret-dark);
}
}
/* Also handle data-color-scheme */
[data-color-scheme="dark"] select.form-control {
background-image: var(--select-caret-dark);
}
[data-color-scheme="light"] select.form-control {
background-image: var(--select-caret-light);
}
.form-control:focus {
border-color: var(--color-primary);
outline: var(--focus-outline);
}
.form-label {
display: block;
margin-bottom: var(--space-8);
font-weight: var(--font-weight-medium);
font-size: var(--font-size-sm);
}
.form-group {
margin-bottom: var(--space-16);
}
/* Card component */
.card {
background-color: var(--color-surface);
border-radius: var(--radius-lg);
border: 1px solid var(--color-card-border);
box-shadow: var(--shadow-sm);
overflow: hidden;
transition: box-shadow var(--duration-normal) var(--ease-standard);
}
.card:hover {
box-shadow: var(--shadow-md);
}
.card__body {
padding: var(--space-16);
}
.card__header,
.card__footer {
padding: var(--space-16);
border-bottom: 1px solid var(--color-card-border-inner);
}
/* Status indicators - simplified with CSS variables */
.status {
display: inline-flex;
align-items: center;
padding: var(--space-6) var(--space-12);
border-radius: var(--radius-full);
font-weight: var(--font-weight-medium);
font-size: var(--font-size-sm);
}
.status--success {
background-color: rgba(
var(--color-success-rgb, 33, 128, 141),
var(--status-bg-opacity)
);
color: var(--color-success);
border: 1px solid
rgba(var(--color-success-rgb, 33, 128, 141), var(--status-border-opacity));
}
.status--error {
background-color: rgba(
var(--color-error-rgb, 192, 21, 47),
var(--status-bg-opacity)
);
color: var(--color-error);
border: 1px solid
rgba(var(--color-error-rgb, 192, 21, 47), var(--status-border-opacity));
}
.status--warning {
background-color: rgba(
var(--color-warning-rgb, 168, 75, 47),
var(--status-bg-opacity)
);
color: var(--color-warning);
border: 1px solid
rgba(var(--color-warning-rgb, 168, 75, 47), var(--status-border-opacity));
}
.status--info {
background-color: rgba(
var(--color-info-rgb, 98, 108, 113),
var(--status-bg-opacity)
);
color: var(--color-info);
border: 1px solid
rgba(var(--color-info-rgb, 98, 108, 113), var(--status-border-opacity));
}
/* Container layout */
.container {
width: 100%;
margin-right: auto;
margin-left: auto;
padding-right: var(--space-16);
padding-left: var(--space-16);
}
@media (min-width: 640px) {
.container {
max-width: var(--container-sm);
}
}
@media (min-width: 768px) {
.container {
max-width: var(--container-md);
}
}
@media (min-width: 1024px) {
.container {
max-width: var(--container-lg);
}
}
@media (min-width: 1280px) {
.container {
max-width: var(--container-xl);
}
}
/* Utility classes */
.flex {
display: flex;
}
.flex-col {
flex-direction: column;
}
.items-center {
align-items: center;
}
.justify-center {
justify-content: center;
}
.justify-between {
justify-content: space-between;
}
.gap-4 {
gap: var(--space-4);
}
.gap-8 {
gap: var(--space-8);
}
.gap-16 {
gap: var(--space-16);
}
.m-0 {
margin: 0;
}
.mt-8 {
margin-top: var(--space-8);
}
.mb-8 {
margin-bottom: var(--space-8);
}
.mx-8 {
margin-left: var(--space-8);
margin-right: var(--space-8);
}
.my-8 {
margin-top: var(--space-8);
margin-bottom: var(--space-8);
}
.p-0 {
padding: 0;
}
.py-8 {
padding-top: var(--space-8);
padding-bottom: var(--space-8);
}
.px-8 {
padding-left: var(--space-8);
padding-right: var(--space-8);
}
.py-16 {
padding-top: var(--space-16);
padding-bottom: var(--space-16);
}
.px-16 {
padding-left: var(--space-16);
padding-right: var(--space-16);
}
.block {
display: block;
}
.hidden {
display: none;
}
/* Accessibility */
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border-width: 0;
}
:focus-visible {
outline: var(--focus-outline);
outline-offset: 2px;
}
/* Dark mode specifics */
[data-color-scheme="dark"] .btn--outline {
border: 1px solid var(--color-border-secondary);
}
@font-face {
font-family: 'FKGroteskNeue';
src: url('https://r2cdn.perplexity.ai/fonts/FKGroteskNeue.woff2')
format('woff2');
}
@font-face {
font-family: 'FKGroteskNeue';
src: url('https://r2cdn.perplexity.ai/fonts/FKGroteskNeue.woff2') format('woff2');
}
/* Remove custom color variables and use design system */
:root {
/* Legacy space theme variables mapped to design system */
--space-primary: var(--color-primary);
--space-secondary: var(--color-primary-hover);
--space-accent: var(--color-primary-active);
--space-dark: var(--color-background);
--space-darker: var(--color-surface);
--space-purple: var(--color-surface);
--space-blue: var(--color-surface);
--space-orange: var(--color-warning);
--space-glow: rgba(var(--color-teal-500-rgb), 0.6);
--space-text: var(--color-text);
--space-text-bright: var(--color-text);
--space-bg-primary: var(--color-surface);
--space-bg-secondary: var(--color-surface);
--space-border: var(--color-border);
}
/* Базовые стили */
* {
box-sizing: border-box;
}
body {
background: var(--color-background);
background-attachment: fixed;
color: var(--color-text);
font-family: var(--font-family-base);
font-size: var(--font-size-base);
font-weight: var(--font-weight-normal);
line-height: var(--line-height-normal);
letter-spacing: var(--letter-spacing-tight);
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
min-height: 100vh;
}
/* Основной контейнер MediaWiki */
.mw-body {
background: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: var(--radius-lg);
box-shadow: var(--shadow-lg);
backdrop-filter: blur(20px);
padding: var(--space-32) var(--space-32);
margin: var(--space-32);
position: relative;
overflow: hidden;
}
.mw-body::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 1px;
background: linear-gradient(90deg, transparent, var(--color-primary), transparent);
opacity: 0.5;
}
.mw-body-content {
font-family: var(--font-family-base);
font-size: var(--font-size-base);
font-weight: var(--font-weight-normal);
line-height: var(--line-height-normal);
color: var(--color-text);
word-wrap: break-word;
overflow-wrap: break-word;
}
/* Исправление переполнения текста */
.mw-body-content p {
margin: var(--space-20) 0;
line-height: var(--line-height-normal);
color: var(--color-text);
word-wrap: break-word;
overflow-wrap: break-word;
hyphens: auto;
}
/* Улучшенный код */
code {
background: var(--color-secondary);
border: 1px solid var(--color-border);
color: var(--color-text);
padding: var(--space-8) var(--space-12);
border-radius: var(--radius-base);
font-size: 90%;
font-family: var(--font-family-mono);
box-shadow: var(--shadow-inset-sm);
font-weight: var(--font-weight-medium);
letter-spacing: 0.5px;
word-break: break-all;
white-space: pre-wrap;
}
pre {
background: var(--color-surface);
border: 2px solid var(--color-border);
border-radius: var(--radius-md);
padding: var(--space-32);
overflow-x: auto;
box-shadow: var(--shadow-inset-sm);
font-family: var(--font-family-mono);
font-size: var(--font-size-sm);
line-height: var(--line-height-normal);
letter-spacing: 0.5px;
position: relative;
}
pre::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 2px;
background: linear-gradient(90deg, var(--color-primary), var(--color-primary-hover));
border-radius: var(--radius-md) var(--radius-md) 0 0;
}
/* Улучшенные цитаты */
blockquote {
overflow: hidden;
margin: var(--space-32) 0;
padding: var(--space-32) var(--space-32);
border-left: 5px solid var(--color-primary);
background: var(--color-secondary);
border-radius: 0 var(--radius-md) var(--radius-md) 0;
box-shadow: var(--shadow-md);
font-style: italic;
position: relative;
font-family: var(--font-family-base);
font-size: var(--font-size-lg);
line-height: var(--line-height-normal);
}
blockquote::before {
content: '"';
font-size: 5em;
color: rgba(var(--color-primary-rgb), 0.3);
position: absolute;
top: -15px;
left: 15px;
font-family: var(--font-family-base);
font-weight: var(--font-weight-bold);
}
/* Улучшенные изображения */
img {
image-rendering: optimizeSpeed;
max-width: 100%;
height: auto;
border-radius: var(--radius-base);
box-shadow: var(--shadow-md);
transition: all var(--duration-normal) var(--ease-standard);
}
img:hover {
transform: scale(1.03);
box-shadow: var(--shadow-lg);
filter: brightness(1.1);
}
/* Улучшенные ссылки */
a,
a:visited {
color: var(--color-primary);
text-decoration: none;
transition: all var(--duration-normal) var(--ease-standard);
position: relative;
font-weight: var(--font-weight-medium);
word-wrap: break-word;
}
a:not(.image):not(.thumbimage):not(.mw-file-description)::after {
content: '';
position: absolute;
bottom: -3px;
left: 0;
width: 0;
height: 2px;
background: linear-gradient(90deg, var(--color-primary), var(--color-primary-hover));
transition: width var(--duration-normal) var(--ease-standard);
border-radius: 2px;
}
a:not(.image):not(.thumbimage):not(.mw-file-description):hover::after {
width: 100%;
}
a:hover,
a:visited:hover {
color: var(--color-primary-hover);
text-shadow: 0 0 15px rgba(var(--color-primary-rgb), 0.7);
transform: translateX(2px);
}
/* Исключения для изображений */
.thumb a::after,
.gallery a::after,
a[href*="File:"]::after,
a[href*="Файл:"]::after,
a[title*="File:"]::after,
a[title*="Файл:"]::after {
display: none !important;
}
/* Улучшенные таблицы */
.wikitable {
background: var(--color-surface);
border: 1px solid var(--color-border);
color: var(--color-text);
border-collapse: separate;
border-spacing: 0;
margin: var(--space-32) 0;
border-radius: var(--radius-md);
overflow: hidden;
box-shadow: var(--shadow-md);
position: relative;
font-family: var(--font-family-base);
width: 100%;
max-width: 100%;
word-wrap: break-word;
}
.wikitable::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 2px;
background: linear-gradient(90deg, var(--color-primary), var(--color-primary-hover));
}
.wikitable > tr > th,
.wikitable > tr > td,
.wikitable > * > tr > th,
.wikitable > * > tr > td {
border: 1px solid var(--color-border);
padding: var(--space-16) var(--space-20);
transition: all var(--duration-fast) var(--ease-standard);
font-family: var(--font-family-base);
line-height: var(--line-height-normal);
word-wrap: break-word;
overflow-wrap: break-word;
max-width: 0;
min-width: 100px;
}
.wikitable > * > tr > th {
background: var(--color-secondary);
color: var(--color-text);
font-weight: var(--font-weight-bold);
text-transform: uppercase;
letter-spacing: 1px;
font-size: var(--font-size-sm);
text-shadow: 0 2px 6px rgba(0, 0, 0, 0.8);
position: relative;
}
.wikitable > * > tr > th::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 1px;
background: linear-gradient(90deg, transparent, var(--color-primary), transparent);
}
.wikitable > * > tr:hover > td {
background: var(--color-secondary-hover);
transform: scale(1.01);
}
/* Улучшенный поиск */
#simpleSearch {
background: var(--color-surface);
border: 2px solid var(--color-border);
border-radius: var(--radius-full);
transition: all var(--duration-normal) var(--ease-standard);
box-shadow: var(--shadow-inset-sm);
position: relative;
overflow: hidden;
}
#simpleSearch::before {
content: '';
position: absolute;
top: -2px;
left: -2px;
right: -2px;
bottom: -2px;
background: linear-gradient(45deg, var(--color-primary), var(--color-primary-hover), var(--color-primary));
border-radius: var(--radius-full);
opacity: 0;
transition: opacity var(--duration-fast) var(--ease-standard);
z-index: -1;
}
#simpleSearch:focus-within::before {
opacity: 1;
}
#simpleSearch:focus-within {
border-color: transparent;
box-shadow: var(--focus-ring);
transform: scale(1.02);
}
#searchInput {
color: var(--color-text);
background: transparent;
border: none;
padding: var(--space-16) var(--space-24);
font-size: var(--font-size-base);
outline: none;
width: 100%;
box-sizing: border-box;
font-family: var(--font-family-base);
font-weight: var(--font-weight-normal);
}
#searchInput::placeholder {
color: var(--color-text-secondary);
opacity: 0.8;
font-style: italic;
}
/* Улучшенные вкладки */
.vector-menu-tabs {
background: transparent;
}
.vector-menu-tabs li {
background: var(--color-surface);
border-radius: var(--radius-md) var(--radius-md) 0 0;
margin-right: var(--space-4);
transition: all var(--duration-normal) var(--ease-standard);
border: 1px solid var(--color-border);
border-bottom: none;
position: relative;
overflow: hidden;
}
.vector-menu-tabs li::before {
content: '';
position: absolute;
top: -1px;
left: -1px;
right: -1px;
height: 3px;
background: linear-gradient(90deg, transparent, var(--color-primary), transparent);
opacity: 0;
transition: opacity var(--duration-fast) var(--ease-standard);
}
.vector-menu-tabs li:hover::before {
opacity: 1;
}
.vector-menu-tabs li:hover {
background: var(--color-secondary);
transform: translateY(-5px);
box-shadow: var(--shadow-md);
}
.vector-menu-tabs .selected {
background: var(--color-secondary-active);
border-color: var(--color-primary);
box-shadow: 0 -6px 20px rgba(var(--color-primary-rgb), 0.5);
}
.vector-menu-tabs .selected::before {
opacity: 1;
}
.vector-menu-tabs .selected a,
.vector-menu-tabs .selected a:visited {
color: var(--color-primary);
font-weight: var(--font-weight-bold);
text-shadow: 0 2px 6px rgba(0, 0, 0, 0.8);
}
/* Улучшенная боковая панель */
#mw-site-navigation .sidebar-chunk,
#mw-related-navigation .sidebar-chunk,
.portlet,
.pBody,
#mw-panel,
.mw-panel,
#sidebar,
.sidebar,
.vector-menu-portal,
.vector-legacy-sidebar,
#p-navigation,
#p-tb,
#p-lang {
background: var(--color-surface);
color: var(--color-text);
border: 1px solid var(--color-border);
border-radius: var(--radius-md);
margin-bottom: var(--space-32);
box-shadow: var(--shadow-sm);
overflow: hidden;
backdrop-filter: blur(10px);
}
.vector-menu-portal h3,
#mw-panel .portal h3,
.sidebar h3 {
background: var(--color-secondary);
color: var(--color-text);
padding: var(--space-16) var(--space-20);
margin: 0;
border-radius: var(--radius-md) var(--radius-md) 0 0;
font-weight: var(--font-weight-bold);
text-shadow: 0 2px 6px rgba(0, 0, 0, 0.8);
text-transform: uppercase;
letter-spacing: 0.8px;
font-size: var(--font-size-sm);
position: relative;
}
.vector-menu-portal h3::after,
#mw-panel .portal h3::after,
.sidebar h3::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 2px;
background: linear-gradient(90deg, transparent, var(--color-primary), transparent);
}
.vector-menu-portal .vector-menu-content ul li a,
#mw-panel .portal .body ul li a {
color: var(--color-primary);
padding: var(--space-16) var(--space-20);
display: block;
transition: all var(--duration-normal) var(--ease-standard);
border-radius: var(--radius-sm);
margin: var(--space-4) var(--space-8);
position: relative;
word-wrap: break-word;
}
.vector-menu-portal .vector-menu-content ul li a::before,
#mw-panel .portal .body ul li a::before {
content: '';
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 0;
background: linear-gradient(135deg, var(--color-primary), var(--color-primary-hover));
transition: width var(--duration-fast) var(--ease-standard);
border-radius: var(--radius-sm) 0 0 var(--radius-sm);
}
.vector-menu-portal .vector-menu-content ul li a:hover::before,
#mw-panel .portal .body ul li a:hover::before {
width: 4px;
}
.vector-menu-portal .vector-menu-content ul li a:hover,
#mw-panel .portal .body ul li a:hover {
background: var(--color-secondary);
color: var(--color-primary-hover);
transform: translateX(10px);
text-shadow: 0 0 12px rgba(var(--color-primary-rgb), 0.6);
}
/* Улучшенные формы */
.mw-editform #wpTextbox1,
textarea {
background: var(--color-surface);
border: 2px solid var(--color-border);
color: var(--color-text);
border-radius: var(--radius-md);
font-family: var(--font-family-mono);
padding: var(--space-32);
font-size: var(--font-size-sm);
line-height: var(--line-height-normal);
transition: all var(--duration-normal) var(--ease-standard);
box-shadow: var(--shadow-inset-sm);
resize: vertical;
font-weight: var(--font-weight-normal);
letter-spacing: 0.5px;
word-wrap: break-word;
}
.mw-editform #wpTextbox1:focus,
textarea:focus {
border-color: var(--color-primary);
outline: var(--focus-outline);
}
/* Улучшенные кнопки */
.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button {
background: var(--color-surface);
border: 2px solid var(--color-border);
color: var(--color-text);
border-radius: var(--radius-base);
transition: all var(--duration-normal) var(--ease-standard);
font-weight: var(--font-weight-semibold);
padding: var(--space-16) var(--space-24);
box-shadow: var(--shadow-sm);
position: relative;
overflow: hidden;
text-transform: uppercase;
letter-spacing: 0.8px;
font-family: var(--font-family-base);
}
.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
transition: left 0.5s ease;
}
.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover::before {
left: 100%;
}
.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover {
background: var(--color-secondary);
border-color: var(--color-primary);
transform: translateY(-3px);
box-shadow: var(--shadow-lg);
text-shadow: 0 0 12px rgba(var(--color-primary-rgb), 0.6);
}
/* Улучшенные скроллбары */
::-webkit-scrollbar {
width: 14px;
height: 14px;
}
::-webkit-scrollbar-track {
background: var(--color-surface);
border-radius: var(--radius-base);
border: 1px solid var(--color-border);
}
::-webkit-scrollbar-thumb {
background: var(--color-border);
border-radius: var(--radius-base);
border: 2px solid var(--color-surface);
transition: all var(--duration-fast) var(--ease-standard);
}
::-webkit-scrollbar-thumb:hover {
background: var(--color-primary);
box-shadow: 0 0 12px rgba(var(--color-primary-rgb), 0.6);
}
::-webkit-scrollbar-corner {
background: var(--color-surface);
}
/* Скрытие скроллбаров для Firefox */
* {
scrollbar-width: thin;
scrollbar-color: var(--color-border) transparent;
}
/* Заголовки */
h1, h2, h3, h4, h5, h6 {
color: var(--color-text);
font-family: var(--font-family-base);
font-weight: var(--font-weight-semibold);
text-shadow: 0 4px 8px rgba(0, 0, 0, 0.8);
border-bottom: 3px solid var(--color-border);
padding-bottom: var(--space-12);
margin-top: var(--space-32);
position: relative;
letter-spacing: var(--letter-spacing-tight);
word-wrap: break-word;
}
h1::after, h2::after, h3::after, h4::after, h5::after, h6::after {
content: '';
position: absolute;
bottom: -3px;
left: 0;
width: 80px;
height: 3px;
background: linear-gradient(90deg, var(--color-primary), var(--color-primary-hover));
border-radius: 3px;
}
h1 {
background: linear-gradient(90deg, var(--color-primary), var(--color-primary-hover));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
font-size: var(--font-size-4xl);
font-weight: var(--font-weight-bold);
}
h2 {
font-size: var(--font-size-3xl);
font-weight: var(--font-weight-semibold);
}
h3 {
font-size: var(--font-size-2xl);
font-weight: var(--font-weight-semibold);
}
h4 {
font-size: var(--font-size-xl);
font-weight: var(--font-weight-medium);
}
h5 {
font-size: var(--font-size-lg);
font-weight: var(--font-weight-medium);
}
h6 {
font-size: var(--font-size-base);
font-weight: var(--font-weight-medium);
}
/* Первый заголовок страницы */
.firstHeading {
font-family: var(--font-family-base);
font-weight: var(--font-weight-bold);
font-size: var(--font-size-4xl);
background: linear-gradient(90deg, var(--color-primary), var(--color-primary-hover));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
margin-bottom: var(--space-16);
text-align: center;
word-wrap: break-word;
}
/* Личное меню */
#p-personal ul li a {
color: var(--color-primary);
padding: var(--space-16) var(--space-20);
border-radius: var(--radius-base);
transition: all var(--duration-fast) var(--ease-standard);
margin: 0 var(--space-4);
font-weight: var(--font-weight-medium);
}
#p-personal ul li a:hover {
background: var(--color-secondary);
color: var(--color-primary-hover);
text-shadow: 0 0 12px rgba(var(--color-primary-rgb), 0.6);
transform: translateY(-2px);
}
/* Выпадающие меню */
.vector-menu-dropdown .vector-menu-content {
background: var(--color-surface);
border: 2px solid var(--color-border);
border-radius: var(--radius-md);
box-shadow: var(--shadow-lg);
padding: var(--space-16);
backdrop-filter: blur(15px);
}
/* Скрытие элементов */
#pt-createaccount,
#site-tools,
.flaggedrevs_draft_synced,
.flaggedrevs_stable_synced,
#t-upload {
display: none;
}
/* Ссылки на источники */
.reference {
background-color: transparent;
}
.references li:target,
sup.reference:target {
background: var(--color-secondary-hover);
border-radius: var(--radius-sm);
box-shadow: 0 0 15px rgba(var(--color-primary-rgb), 0.6);
}
/* Футер */
#footer {
background: var(--color-surface);
border-top: 3px solid var(--color-border);
border-radius: var(--radius-md) var(--radius-md) 0 0;
margin-top: var(--space-32);
padding: var(--space-32);
color: var(--color-text-secondary);
box-shadow: var(--shadow-sm);
position: relative;
}
#footer::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 2px;
background: linear-gradient(90deg, var(--color-primary), var(--color-primary-hover));
}
/* Результаты поиска */
.mw-search-result-heading a {
color: var(--color-primary);
font-weight: var(--font-weight-semibold);
}
.mw-search-result-data {
color: var(--color-text-secondary);
font-style: italic;
}
/* Списки изменений */
.mw-changeslist-line {
border-left: 3px solid var(--color-border);
padding-left: var(--space-20);
margin-bottom: var(--space-16);
transition: all var(--duration-fast) var(--ease-standard);
}
.mw-changeslist-line:hover {
border-left-color: var(--color-primary);
background: var(--color-secondary);
transform: translateX(5px);
}
/* Списки */
li {
line-height: var(--line-height-normal);
margin-bottom: var(--space-12);
word-wrap: break-word;
}
/* Жирный и курсивный текст */
strong, b {
font-weight: var(--font-weight-semibold);
color: var(--color-text);
}
em, i {
font-style: italic;
color: var(--color-text-secondary);
}
/* Навигационные блоки */
.navbox {
border: 1px solid var(--color-border);
width: 100%;
clear: both;
font-size: 90%;
text-align: center;
padding: 0;
margin: var(--space-32) auto 0;
background: var(--color-surface);
color: var(--color-text);
border-radius: var(--radius-md);
box-shadow: var(--shadow-sm);
overflow: hidden;
}
.navbox::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 2px;
background: linear-gradient(90deg, var(--color-primary), var(--color-primary-hover));
}
/* Информационные блоки */
.infobox {
border: 1px solid var(--color-border);
border-spacing: 0;
background: var(--color-surface);
color: var(--color-text);
margin: var(--space-20) 0 var(--space-20) var(--space-32);
padding: 0;
float: right;
clear: right;
font-size: 90%;
line-height: var(--line-height-normal);
width: 28em;
border-radius: var(--radius-md);
overflow: hidden;
box-shadow: var(--shadow-md);
position: relative;
word-wrap: break-word;
}
.infobox::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 2px;
background: linear-gradient(90deg, var(--color-primary), var(--color-primary-hover));
}
.infobox tr {
transition: all var(--duration-fast) var(--ease-standard);
}
.infobox tr:hover {
background: var(--color-secondary);
transform: translateX(8px);
}
.infobox th,
.infobox td {
padding: var(--space-16) var(--space-20);
word-wrap: break-word;
overflow-wrap: break-word;
}
/* ===== СТИЛИ ДЛЯ ГЛАВНОЙ СТРАНИЦЫ ===== */
/* Новая hero-секция с космическими эффектами */
.sunrise-hero-new {
position: relative;
background: var(--color-surface);
border-radius: var(--radius-lg);
padding: var(--space-32) var(--space-32);
margin: var(--space-32) 0;
overflow: hidden;
min-height: 500px;
display: flex;
align-items: center;
justify-content: center;
box-shadow: var(--shadow-lg);
clear: both;
}
/* Анимированный звездный фон */
.hero-background {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: hidden;
}
.stars {
position: absolute;
width: 100%;
height: 100%;
background-image:
radial-gradient(2px 2px at 20px 30px, var(--color-text), transparent),
radial-gradient(2px 2px at 40px 70px, rgba(var(--color-text-rgb, 245, 245, 245), 0.8), transparent),
radial-gradient(1px 1px at 90px 40px, var(--color-text), transparent),
radial-gradient(1px 1px at 130px 80px, rgba(var(--color-text-rgb, 245, 245, 245), 0.6), transparent),
radial-gradient(2px 2px at 160px 30px, var(--color-text-secondary), transparent);
background-repeat: repeat;
background-size: 200px 100px;
animation: sparkle 25s linear infinite;
}
@keyframes sparkle {
from { transform: translateX(0); }
to { transform: translateX(-200px); }
}
.nebula {
position: absolute;
width: 100%;
height: 100%;
background: radial-gradient(ellipse at center, rgba(var(--color-primary-rgb), 0.15) 0%, transparent 70%);
animation: nebula-glow 10s ease-in-out infinite alternate;
}
@keyframes nebula-glow {
0% { opacity: 0.4; }
100% { opacity: 0.8; }
}
/* Контент героя */
.hero-content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
width: 100%;
max-width: 100%;
}
.hero-logo {
margin-bottom: var(--space-32);
}
.logo-text {
font-family: var(--font-family-base);
font-size: var(--font-size-4xl);
font-weight: var(--font-weight-bold);
background: linear-gradient(45deg, var(--color-primary), var(--color-warning), var(--color-primary-hover));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
display: block;
text-shadow: 0 0 40px rgba(var(--color-primary-rgb), 0.6);
animation: glow-pulse 4s ease-in-out infinite alternate;
}
@keyframes glow-pulse {
0% { filter: drop-shadow(0 0 25px rgba(var(--color-primary-rgb), 0.6)); }
100% { filter: drop-shadow(0 0 50px rgba(var(--color-primary-rgb), 0.6)); }
}
.logo-subtext {
font-family: var(--font-family-base);
font-size: var(--font-size-xl);
color: var(--color-primary-active);
font-weight: var(--font-weight-normal);
letter-spacing: 0.4em;
text-transform: uppercase;
display: block;
margin-top: var(--space-16);
}
.hero-description {
font-size: var(--font-size-xl);
color: var(--color-text);
margin-bottom: var(--space-32);
opacity: 0.95;
font-weight: var(--font-weight-normal);
line-height: var(--line-height-normal);
word-wrap: break-word;
}
.hero-stats {
display: grid;
grid-template-columns: repeat(4, auto);
justify-content: center;
gap: 20px;
width: 100%;
margin-top: 32px;
}
.stat-item {
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.2);
border-radius: 16px;
padding: 20px;
min-height: 130px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
transition: all 0.3s ease;
}
.stat-item::before {
content: '';
position: absolute;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
background: conic-gradient(transparent, rgba(var(--color-primary-rgb), 0.1), transparent);
animation: rotate-slow 8s linear infinite;
opacity: 0;
transition: opacity var(--duration-fast) var(--ease-standard);
}
.stat-item:hover::before {
opacity: 1;
}
@keyframes rotate-slow {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.stat-item:hover {
transform: translateY(-8px) scale(1.05);
box-shadow: 0 15px 50px rgba(var(--color-primary-rgb), 0.4);
background: var(--color-secondary-hover);
}
.stat-number {
font-size: 2.5em;
font-weight: bold;
color: #ffffff;
line-height: 1.1;
margin-bottom: 8px;
}
.stat-label {
font-size: 0.95em;
color: rgba(255, 255, 255, 0.8);
font-weight: 500;
line-height: 1.3;
}
/* Обновленный контейнер */
.sunrise-container-new {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(450px, 1fr));
gap: var(--space-32);
margin: var(--space-32) 0;
clear: both;
}
/* Новые секции с правильным переносом текста */
.sunrise-section-new {
background: var(--color-surface);
border-radius: var(--radius-lg);
padding: var(--space-32);
box-shadow: var(--shadow-md);
border: 1px solid var(--color-border);
position: relative;
transition: all var(--duration-normal) var(--ease-standard);
overflow: visible;
display: flex;
flex-direction: column;
word-wrap: break-word;
overflow-wrap: break-word;
hyphens: auto;
}
.sunrise-section-new::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(var(--color-primary-rgb), 0.1), transparent);
transition: left 0.6s ease;
}
.sunrise-section-new:hover::before {
left: 100%;
}
.sunrise-section-new:hover {
transform: translateY(-10px) scale(1.02);
box-shadow: var(--shadow-lg);
border-color: var(--color-primary);
}
.section-header {
margin-bottom: var(--space-24);
text-align: center;
}
.section-header h2 {
color: var(--color-text);
font-size: var(--font-size-2xl);
margin-bottom: var(--space-16);
font-weight: var(--font-weight-semibold);
word-wrap: break-word;
}
.section-header p {
color: var(--color-primary);
opacity: 0.9;
font-size: var(--font-size-lg);
word-wrap: break-word;
}
/* Секция особенностей */
.sunrise-features {
margin: var(--space-32) 0;
padding: var(--space-32) 0;
background: var(--color-secondary);
border-radius: var(--radius-lg);
border: 1px solid var(--color-border);
clear: both;
}
.features-header {
text-align: center;
margin-bottom: var(--space-32);
}
.features-header h2 {
font-size: var(--font-size-3xl);
color: var(--color-text);
margin-bottom: var(--space-16);
font-weight: var(--font-weight-semibold);
word-wrap: break-word;
}
.features-header p {
color: var(--color-primary);
font-size: var(--font-size-xl);
opacity: 0.9;
word-wrap: break-word;
}
.features-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: var(--space-32);
padding: 0 var(--space-24);
}
.feature-card {
background: var(--color-surface);
border-radius: var(--radius-lg);
padding: var(--space-32) var(--space-24);
text-align: center;
border: 1px solid var(--color-border);
backdrop-filter: blur(15px);
transition: all var(--duration-normal) var(--ease-standard);
position: relative;
overflow: hidden;
word-wrap: break-word;
overflow-wrap: break-word;
}
.feature-card::before {
content: '';
position: absolute;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
background: conic-gradient(transparent, rgba(var(--color-primary-rgb), 0.1), transparent);
animation: rotate-slow 8s linear infinite;
opacity: 0;
transition: opacity var(--duration-normal) var(--ease-standard);
}
.feature-card:hover::before {
opacity: 1;
}
.feature-card:hover {
transform: translateY(-15px) scale(1.05);
box-shadow: 0 25px 80px rgba(var(--color-primary-rgb), 0.3);
border-color: var(--color-primary);
}
.feature-icon {
font-size: 4em;
margin-bottom: var(--space-20);
filter: drop-shadow(0 0 25px rgba(var(--color-primary-rgb), 0.6));
position: relative;
z-index: 1;
}
.feature-card h3 {
color: var(--color-text);
font-size: var(--font-size-xl);
margin-bottom: var(--space-16);
font-weight: var(--font-weight-semibold);
position: relative;
z-index: 1;
word-wrap: break-word;
}
.feature-card p {
color: var(--color-text);
opacity: 0.95;
line-height: var(--line-height-normal);
position: relative;
z-index: 1;
font-size: var(--font-size-lg);
word-wrap: break-word;
overflow-wrap: break-word;
}
/* Обновленные блоки с правильным переносом текста */
.sunrise-blocks-new {
background: var(--color-surface);
border-radius: var(--radius-lg);
padding: var(--space-32);
margin: var(--space-32) 0;
box-shadow: var(--shadow-md);
border: 1px solid var(--color-border);
position: relative;
overflow: hidden;
clear: both;
word-wrap: break-word;
overflow-wrap: break-word;
hyphens: auto;
}
.sunrise-blocks-new::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 3px;
background: linear-gradient(90deg, var(--color-primary), var(--color-primary-hover));
}
.blocks-header {
text-align: center;
margin-bottom: var(--space-32);
}
.blocks-header h2 {
font-size: var(--font-size-3xl);
color: var(--color-text);
margin-bottom: var(--space-16);
font-weight: var(--font-weight-semibold);
word-wrap: break-word;
}
.blocks-header p {
color: var(--color-primary);
font-size: var(--font-size-xl);
opacity: 0.9;
word-wrap: break-word;
}
/* Космические частицы */
.space-particles {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: -1;
}
.particle {
position: absolute;
width: 3px;
height: 3px;
background: var(--color-primary);
border-radius: 50%;
animation: float 12s infinite linear;
opacity: 0.7;
box-shadow: 0 0 6px rgba(var(--color-primary-rgb), 0.8);
}
.particle:nth-child(1) {
left: 10%;
animation-delay: 0s;
animation-duration: 10s;
}
.particle:nth-child(2) {
left: 25%;
animation-delay: 3s;
animation-duration: 12s;
}
.particle:nth-child(3) {
left: 60%;
animation-delay: 6s;
animation-duration: 8s;
}
.particle:nth-child(4) {
left: 80%;
animation-delay: 9s;
animation-duration: 14s;
}
.particle:nth-child(5) {
left: 95%;
animation-delay: 12s;
animation-duration: 11s;
}
@keyframes float {
0% {
transform: translateY(100vh) rotate(0deg);
opacity: 0;
}
10% {
opacity: 0.7;
}
90% {
opacity: 0.7;
}
100% {
transform: translateY(-100px) rotate(360deg);
opacity: 0;
}
}
/* Улучшенные ссылки в секциях главной страницы */
.sunrise-section-new a,
.sunrise-blocks-new a {
color: var(--color-primary);
text-decoration: none;
transition: all var(--duration-fast) var(--ease-standard);
position: relative;
padding: var(--space-4) var(--space-6);
border-radius: var(--radius-sm);
word-wrap: break-word;
overflow-wrap: break-word;
display: inline-block;
max-width: 100%;
}
.sunrise-section-new a:hover,
.sunrise-blocks-new a:hover {
color: var(--color-primary-hover);
background: var(--color-secondary);
transform: translateX(5px);
text-shadow: 0 0 8px rgba(var(--color-primary-rgb), 0.5);
}
/* Заголовки в секциях главной страницы */
.sunrise-section-new h1,
.sunrise-section-new h2,
.sunrise-section-new h3,
.sunrise-blocks-new h1,
.sunrise-blocks-new h2,
.sunrise-blocks-new h3 {
color: var(--color-text);
border-bottom: 2px solid var(--color-border);
padding-bottom: var(--space-16);
margin-bottom: var(--space-20);
position: relative;
word-wrap: break-word;
overflow-wrap: break-word;
}
.sunrise-section-new h1::after,
.sunrise-section-new h2::after,
.sunrise-section-new h3::after,
.sunrise-blocks-new h1::after,
.sunrise-blocks-new h2::after,
.sunrise-blocks-new h3::after {
content: '';
position: absolute;
bottom: -2px;
left: 0;
width: 80px;
height: 2px;
background: linear-gradient(90deg, var(--color-primary), var(--color-primary-hover));
border-radius: 2px;
}
/* Параграфы в секциях с правильным переносом */
.sunrise-section-new p,
.sunrise-blocks-new p {
word-wrap: break-word;
overflow-wrap: break-word;
hyphens: auto;
line-height: var(--line-height-normal);
margin-bottom: var(--space-20);
}
/* Адаптивность */
@media (max-width: 1024px) {
.sunrise-container-new {
grid-template-columns: 1fr;
gap: var(--space-24);
}
.features-grid {
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: var(--space-24);
}
.mw-body {
padding: var(--space-24) var(--space-24);
margin: var(--space-20);
}
}
@media (max-width: 768px) {
.sunrise-container-new {
grid-template-columns: 1fr;
gap: var(--space-20);
}
.features-grid {
grid-template-columns: 1fr;
gap: var(--space-20);
padding: 0 var(--space-16);
}
.sunrise-hero-new {
padding: var(--space-32) var(--space-24);
min-height: 400px;
}
.mw-body {
padding: var(--space-20) var(--space-20);
margin: var(--space-16);
border-radius: var(--radius-md);
}
.sunrise-section-new,
.sunrise-blocks-new {
padding: var(--space-24);
border-radius: var(--radius-md);
}
.feature-card {
padding: var(--space-32) var(--space-20);
}
}
@media (max-width: 480px) {
.sunrise-section-new,
.sunrise-blocks-new {
padding: var(--space-20);
border-radius: var(--radius-base);
margin: var(--space-16) 0;
}
.feature-card {
padding: var(--space-24) var(--space-16);
border-radius: var(--radius-base);
}
.sunrise-hero-new {
padding: var(--space-24) var(--space-16);
min-height: 350px;
border-radius: var(--radius-base);
margin: var(--space-16) 0;
}
.mw-body {
padding: var(--space-16) var(--space-16);
margin: var(--space-8);
border-radius: var(--radius-base);
}
.sunrise-container-new {
gap: var(--space-16);
margin: var(--space-16) 0;
}
.features-grid {
gap: var(--space-16);
padding: 0 var(--space-12);
}
.sunrise-features {
margin: var(--space-16) 0;
padding: var(--space-24) 0;
border-radius: var(--radius-base);
}
.features-header {
margin-bottom: var(--space-24);
}
.blocks-header {
margin-bottom: var(--space-24);
}
.logo-text {
font-size: var(--font-size-3xl);
}
.logo-subtext {
font-size: var(--font-size-lg);
margin-top: var(--space-12);
}
.hero-description {
font-size: var(--font-size-lg);
margin-bottom: var(--space-24);
}
.stat-number {
font-size: 2.5em;
font-weight: bold;
color: #ffffff;
line-height: 1.1;
margin-bottom: 8px;
white-space: nowrap;
overflow: visible;
text-overflow: initial;
text-align: center;
}
.stat-label {
font-size: 0.95em;
color: rgba(255, 255, 255, 0.8);
font-weight: 500;
line-height: 1.3;
white-space: nowrap;
overflow: visible;
text-overflow: initial;
text-align: center;
}
.section-header h2 {
font-size: var(--font-size-xl);
margin-bottom: var(--space-12);
}
.section-header p {
font-size: var(--font-size-base);
}
.features-header h2 {
font-size: var(--font-size-2xl);
margin-bottom: var(--space-12);
}
.features-header p {
font-size: var(--font-size-lg);
}
.blocks-header h2 {
font-size: var(--font-size-2xl);
margin-bottom: var(--space-12);
}
.blocks-header p {
font-size: var(--font-size-lg);
}
.feature-card h3 {
font-size: var(--font-size-lg);
margin-bottom: var(--space-12);
}
.feature-card p {
font-size: var(--font-size-base);
}
.feature-icon {
font-size: 3em;
margin-bottom: var(--space-16);
}
}
/* Исправления для текста - предотвращение обрыва слов */
.sunrise-section-new *,
.sunrise-blocks-new *,
.hero-content *,
.feature-card * {
word-wrap: break-word;
overflow-wrap: break-word;
hyphens: auto;
}
/* Специальные правила для длинных слов */
.sunrise-section-new,
.sunrise-blocks-new {
word-break: break-word;
overflow-wrap: anywhere;
}
/* Убираем скроллбары из всех блоков главной страницы */
.sunrise-section-new,
.sunrise-blocks-new,
.stat-item,
.feature-card {
overflow: hidden;
overflow-wrap: break-word;
word-wrap: break-word;
}
/* Плавные переходы для всех элементов */
* {
transition: transform var(--duration-fast) var(--ease-standard),
box-shadow var(--duration-fast) var(--ease-standard),
border-color var(--duration-fast) var(--ease-standard),
background-color var(--duration-fast) var(--ease-standard);
}
/* Оптимизация производительности */
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
}
/* Печать */
@media print {
.space-particles,
.hero-background {
display: none;
}
body {
background: var(--color-background);
color: var(--color-text);
}
.mw-body {
background: var(--color-surface);
box-shadow: none;
border: 1px solid var(--color-border);
}
}
/* Контейнер MainMenuAbout */
.mainmenu-about-container {
display: flex;
flex-direction: column;
gap: 15px;
height: auto;
}
/* Секция сообщества */
.community-links {
overflow: hidden; /* Убираем любые скроллбары */
padding: 10px 0;
}
.social-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 15px;
}
.social-link {
display: flex;
justify-content: center;
align-items: center;
background: rgba(var(--color-primary-rgb), 0.05);
border: 1px solid rgba(var(--color-primary-rgb), 0.1);
border-radius: var(--radius-md);
padding: 10px;
min-height: 80px;
transition: all 0.3s ease;
}
.social-link:hover {
transform: translateY(-3px);
box-shadow: 0 5px 15px rgba(var(--color-primary-rgb), 0.2);
border-color: rgba(var(--color-primary-rgb), 0.3);
background: rgba(var(--color-primary-rgb), 0.1);
}
.social-link img {
max-width: 100%;
max-height: 60px;
object-fit: contain;
transition: transform 0.3s ease;
}
.social-link:hover img {
transform: scale(1.05);
}
@media (max-width: 500px) {
.social-grid {
grid-template-columns: 1fr;
}
}
/* Контент секций */
.about-content,
.help-content,
.other-projects {
word-wrap: break-word;
overflow-wrap: break-word;
hyphens: auto;
line-height: 1.6;
overflow: visible;
max-height: none;
}
/* Убираем скроллбары везде где они могут появиться */
.mainmenu-about-container *,
.community-links *,
.social-grid *,
.social-link * {
/* Для WebKit браузеров (Chrome, Safari) */
scrollbar-width: none; /* Firefox */
-ms-overflow-style: none; /* IE и Edge */
}
.mainmenu-about-container *::-webkit-scrollbar,
.community-links *::-webkit-scrollbar,
.social-grid *::-webkit-scrollbar,
.social-link *::-webkit-scrollbar {
display: none; /* Chrome, Safari, Opera */
}
/* Адаптивность для мобильных */
@media (max-width: 768px) {
.social-grid {
grid-template-columns: 1fr;
gap: 10px;
}
.social-link {
min-height: 120px;
}
}
/* Улучшенное предупреждение о доработке страницы */
.sunrise-warning-banner {
background: linear-gradient(135deg, #fbbf24, #f97316);
color: #1f2937;
border-radius: 12px;
padding: 16px 24px;
margin: 24px auto;
box-shadow: 0 10px 25px rgba(251, 191, 36, 0.3);
display: flex;
justify-content: center;
align-items: center;
position: relative;
animation: pulse-warning 3s ease-in-out infinite alternate;
font-weight: 600;
font-size: 16px;
max-width: 860px;
border: 2px solid rgba(255, 255, 255, 0.2);
}
.warning-content {
display: flex;
align-items: center;
gap: 12px;
width: 100%;
}
.warning-icon {
font-size: 28px;
animation: bounce-warning 2s ease-in-out infinite;
}
.warning-text {
flex-grow: 1;
line-height: 1.4;
}
.warning-close {
background: transparent;
border: none;
font-size: 24px;
font-weight: bold;
cursor: pointer;
color: #1f2937;
transition: all 0.3s ease;
padding: 4px 8px;
border-radius: 6px;
transform: rotate(0deg);
}
.warning-close:hover {
color: #dc2626;
background: rgba(255, 255, 255, 0.2);
transform: rotate(180deg);
}
@keyframes pulse-warning {
0% {
box-shadow: 0 10px 25px rgba(251, 191, 36, 0.3);
}
100% {
box-shadow: 0 15px 35px rgba(251, 191, 36, 0.5);
}
}
@keyframes bounce-warning {
0%, 20%, 50%, 80%, 100% {
transform: translateY(0);
}
40% {
transform: translateY(-8px);
}
60% {
transform: translateY(-4px);
}
}
.stat-item:last-child {
background: linear-gradient(135deg, rgba(139, 92, 246, 0.2), rgba(59, 130, 246, 0.2));
border-color: rgba(139, 92, 246, 0.4);
animation: infinity-glow 4s ease-in-out infinite alternate;
}
.stat-item:last-child .stat-number {
background: linear-gradient(45deg, #fbbf24, #f472b6);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
font-size: 2.2em;
}
@keyframes infinity-glow {
0% {
box-shadow: 0 0 15px rgba(139, 92, 246, 0.3);
}
100% {
box-shadow: 0 0 25px rgba(59, 130, 246, 0.5);
}
}
.mw-collapsible-toggle a {
color: var(--color-primary);
text-decoration: none;
font-weight: var(--font-weight-medium);
transition: color var(--duration-fast) var(--ease-standard);
}
.mw-collapsible-toggle a:hover {
color: var(--color-primary-hover);
}
.mw-collapsed .mw-collapsible-content {
display: none;
}
/* Альтернативное решение для details/summary */
details.abbreviation-list {
background: #f8fafc;
border: 1px solid #e2e8f0;
border-radius: 8px;
padding: 16px;
margin: 16px 0;
}
details.abbreviation-list summary {
cursor: pointer;
font-weight: bold;
color: #3b82f6;
margin-bottom: 12px;
user-select: none;
}
details.abbreviation-list summary:hover {
color: #1d4ed8;
}
details.abbreviation-list[open] summary {
margin-bottom: 16px;
border-bottom: 1px solid #e2e8f0;
padding-bottom: 8px;
}
/* Адаптивность для предупреждения */
@media (max-width: 768px) {
.sunrise-warning-banner {
margin: 16px 12px;
padding: 14px 18px;
font-size: 15px;
}
.warning-icon {
font-size: 24px;
}
.warning-close {
font-size: 20px;
}
}
@media (max-width: 480px) {
.sunrise-warning-banner {
margin: 12px 8px;
padding: 12px 16px;
font-size: 14px;
}
.warning-content {
gap: 8px;
}
}
.mw-collapsible-toggle {
cursor: pointer;
color: var(--color-primary, #3b82f6);
font-weight: bold;
user-select: none;
text-decoration: none;
border: none;
background: transparent;
padding: 4px 8px;
border-radius: 4px;
transition: all 0.3s ease;
}
.mw-collapsible-toggle:hover {
color: var(--color-primary-hover, #1d4ed8);
background-color: var(--color-secondary, rgba(59, 130, 246, 0.1));
text-decoration: none;
}
.mw-collapsed .mw-collapsible-content {
display: none !important;
}
.mw-collapsible-content {
display: block;
}
.mw-customtoggle {
cursor: pointer;
color: var(--color-primary, #3b82f6);
font-weight: bold;
user-select: none;
text-decoration: none;
}
.mw-customtoggle:hover {
color: var(--color-primary-hover, #1d4ed8);
text-decoration: underline;
}
@keyframes infinity-glow {
0% {
box-shadow: 0 0 15px rgba(139, 92, 246, 0.3);
}
100% {
box-shadow: 0 0 25px rgba(59, 130, 246, 0.5);
}
}
.recentchanges-frame .mw-collapsible-content {
max-height: 400px;
overflow-y: auto;
}
.mw-highlight,
.mw-geshi,
pre.mw-code {
position: relative;
background: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: var(--radius-md);
box-shadow: var(--shadow-inset-sm);
overflow: auto;
}
.mw-highlight pre,
pre.mw-code,
pre code {
white-space: pre;
word-break: normal;
overflow-wrap: normal;
hyphens: manual;
line-height: 1.4;
letter-spacing: 0;
margin: 0;
background: transparent;
border: 0;
padding: 12px 16px;
font-family: var(--font-family-mono);
font-size: 13px;
}
.mw-highlight table {
border-collapse: collapse;
width: 100%;
}
.mw-highlight td.linenos,
.mw-highlight .linenos {
width: 3.5em;
min-width: 3.5em;
text-align: right;
color: var(--color-text-secondary);
user-select: none;
border-right: 1px solid var(--color-border);
padding: 12px 8px;
vertical-align: top;
}
.mw-highlight td.code,
.mw-highlight .code {
padding: 0;
}
.mw-highlight td.code pre {
padding-left: 12px;
}
.mw-numbered-lines,
.line-numbers {
counter-reset: lineno;
}
.mw-numbered-lines > code > span,
.line-numbers > code > span {
display: block;
counter-increment: lineno;
}
.mw-numbered-lines > code > span::before,
.line-numbers > code > span::before {
content: counter(lineno);
display: inline-block;
width: 3.5em;
margin-right: 8px;
text-align: right;
color: var(--color-text-secondary);
user-select: none;
border-right: 1px solid var(--color-border);
padding-right: 8px;
}
.mw-highlight code,
.mw-geshi code {
background: transparent;
padding: 0;
border: 0;
box-shadow: none;
}
.mw-body .wikitable pre,
.mw-body .infobox pre {
overflow: auto;
}
.mw-highlight pre,
pre.mw-code {
overflow-x: auto;
overflow-y: hidden;
}
.mw-highlight pre,
pre.mw-code {
line-height: 1.5;
font-size: 13px;
}
.mw-highlight td.linenos { padding: 10px 8px; }
.mw-highlight td.code pre { padding-left: 14px; }
.mw-highlight td.linenos,
.mw-highlight td.code { vertical-align: top; }
.mw-highlight pre,
pre.mw-code,
pre code {
word-break: normal;
overflow-wrap: normal;
}
@media (max-width: 480px) {
.mw-highlight td.linenos { width: 3.2em; min-width: 3.2em; }
}