@font-face { font-family: "Gilroy"; src: url("/fonts/Gilroy-Bold.ttf") format("truetype"); font-weight: bold; font-display: swap; } @font-face { font-family: "Gilroy"; src: url("/fonts/Gilroy-Medium.ttf") format("truetype"); font-weight: 500; font-display: swap; } @font-face { font-family: "Nevduplenysh"; src: url("/fonts/Nevduplenysh.otf") format("opentype"); font-weight: normal; font-style: normal; font-display: swap; } /* Базовые стили */ html { scroll-behavior: smooth; background: linear-gradient(135deg, #111827, #1f2937, #111827); min-height: 100vh; } body { background: linear-gradient(135deg, #111827, #1f2937, #111827); color: #ffffff; } /* Отступы от фиксированного хедера */ .header-offset { padding-top: 4rem; /* 64px */ } @media (min-width: 320px) { .header-offset { padding-top: 4.5rem; /* 72px */ } } @media (min-width: 480px) { .header-offset { padding-top: 5rem; /* 80px */ } } @media (min-width: 640px) { .header-offset { padding-top: 5.5rem; /* 88px */ } } @media (min-width: 768px) { .header-offset { padding-top: 6rem; /* 96px */ } } @media (min-width: 1024px) { .header-offset { padding-top: 7rem; /* 112px */ } } /* Планшетные стили */ @media (min-width: 768px) and (max-width: 1023px) { /* Оптимизация для планшетов */ .tablet-grid { grid-template-columns: repeat(2, 1fr); } .tablet-text-lg { font-size: 1.125rem; } .tablet-p-6 { padding: 1.5rem; } .tablet-gap-6 { gap: 1.5rem; } /* Увеличиваем размер кликабельных элементов для планшетов */ .tablet-touch-target { min-height: 48px; min-width: 48px; } } /* Портретная ориентация планшетов */ @media (min-width: 768px) and (max-width: 1023px) and (orientation: portrait) { .tablet-portrait-stack { flex-direction: column; } .tablet-portrait-full { width: 100%; } .tablet-portrait-center { text-align: center; } } /* Альбомная ориентация планшетов */ @media (min-width: 768px) and (max-width: 1023px) and (orientation: landscape) { .tablet-landscape-grid { grid-template-columns: repeat(3, 1fr); } .tablet-landscape-flex { display: flex; align-items: center; } } /* Ноутбучные стили */ @media (min-width: 1024px) and (max-width: 1439px) { /* Оптимизация для ноутбуков */ .laptop-grid { grid-template-columns: repeat(3, 1fr); } .laptop-text-xl { font-size: 1.25rem; } .laptop-p-8 { padding: 2rem; } .laptop-gap-8 { gap: 2rem; } /* Компактные отступы для ноутбуков */ .laptop-compact { padding: 1rem 2rem; } .laptop-sidebar { width: 280px; } } /* Оптимизация для touch-устройств */ @media (hover: none) and (pointer: coarse) { /* Увеличиваем размер кликабельных элементов */ button, .btn, a[role="button"], input[type="button"], input[type="submit"] { min-height: 44px; min-width: 44px; padding: 12px 16px; } /* Убираем hover эффекты для touch-устройств */ .hover\:scale-105:hover { transform: none; } /* Добавляем активные состояния для touch */ .touch-active:active { transform: scale(0.95); transition: transform 0.1s ease; } } /* Улучшенная прокрутка для планшетов */ @media (min-width: 768px) and (max-width: 1023px) { .scroll-smooth { scroll-behavior: smooth; } /* Скрываем скроллбары на планшетах для более чистого вида */ .hide-scrollbar { -ms-overflow-style: none; scrollbar-width: none; } .hide-scrollbar::-webkit-scrollbar { display: none; } } /* Адаптивная типографика */ @media (min-width: 768px) and (max-width: 1023px) { .responsive-text-sm { font-size: 0.875rem; } .responsive-text-base { font-size: 1rem; } .responsive-text-lg { font-size: 1.125rem; } .responsive-text-xl { font-size: 1.25rem; } .responsive-text-2xl { font-size: 1.5rem; } } @media (min-width: 1024px) and (max-width: 1439px) { .responsive-text-sm { font-size: 0.875rem; } .responsive-text-base { font-size: 1rem; } .responsive-text-lg { font-size: 1.125rem; } .responsive-text-xl { font-size: 1.25rem; } .responsive-text-2xl { font-size: 1.5rem; } .responsive-text-3xl { font-size: 1.875rem; } } /* Кастомные стили */ .social-icon { transition: transform 0.3s ease, opacity 0.3s ease; } .social-icon:hover { transform: scale(1.1); opacity: 0.8; } /* Анимации */ @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .fade-in { animation: fadeIn 0.6s ease-out; } /* Специальные стили для модальных окон на планшетах */ @media (min-width: 768px) and (max-width: 1023px) { .modal-tablet { max-width: 90vw; max-height: 90vh; } .modal-tablet .modal-content { padding: 2rem; } .modal-tablet .modal-header { font-size: 1.5rem; } .modal-tablet .modal-text { font-size: 1rem; } } /* Специальные стили для модальных окон на ноутбуках */ @media (min-width: 1024px) and (max-width: 1439px) { .modal-laptop { max-width: 80vw; max-height: 85vh; } .modal-laptop .modal-content { padding: 2.5rem; } .modal-laptop .modal-header { font-size: 1.75rem; } .modal-laptop .modal-text { font-size: 1.125rem; } } /* Стили для загрузчика страницы */ #page-loader { transition: opacity 0.5s ease-out, transform 0.5s ease-out; } /* Стили для контента страницы */ #page-content { opacity: 1; transition: opacity 0.3s ease-in; } /* Предотвращение белого фона во время загрузки */ html, body { min-height: 100vh; background: linear-gradient(135deg, #111827, #1f2937, #111827); } /* Анимация появления для загрузчика */ @keyframes fade-in { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .animate-fade-in { animation: fade-in 0.8s ease-out; } /* Улучшенная анимация bounce для точек загрузки */ @keyframes enhanced-bounce { 0%, 20%, 53%, 80%, 100% { transform: translateY(0); } 40%, 43% { transform: translateY(-15px); } 70% { transform: translateY(-7px); } 90% { transform: translateY(-3px); } } .animate-enhanced-bounce { animation: enhanced-bounce 1.4s ease-in-out infinite; } /* Анимация пульсации для логотипа */ @keyframes logo-pulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.05); } } .animate-logo-pulse { animation: logo-pulse 2s ease-in-out infinite; } /* Градиентная анимация для прогресс-бара */ @keyframes progress-shimmer { 0% { background-position: -200px 0; } 100% { background-position: calc(200px + 100%) 0; } } .progress-shimmer { background: linear-gradient( 90deg, #fbbf24 25%, #f59e0b 50%, #fbbf24 75% ); background-size: 200px 100%; animation: progress-shimmer 2s infinite; } /* Адаптивные стили для загрузчика */ /* Очень маленькие экраны (до 320px) */ @media (max-width: 319px) { #page-loader .text-center { padding: 0.5rem; } #page-loader h1 { font-size: 1.25rem !important; margin-bottom: 1rem !important; } #page-loader p { font-size: 0.75rem !important; } #page-loader .w-64 { width: 12rem !important; } #page-loader img { height: 3rem !important; } #page-loader .w-3 { width: 0.5rem !important; height: 0.5rem !important; } } /* Маленькие экраны (320px - 479px) */ @media (min-width: 320px) and (max-width: 479px) { #page-loader .text-center { padding: 0.75rem; } #page-loader h1 { font-size: 1.5rem !important; margin-bottom: 1.5rem !important; } #page-loader p { font-size: 0.875rem !important; } #page-loader .w-64 { width: 14rem !important; } #page-loader img { height: 4rem !important; } } /* Средние экраны (480px - 767px) */ @media (min-width: 480px) and (max-width: 767px) { #page-loader .text-center { padding: 1rem; } #page-loader h1 { font-size: 2rem !important; margin-bottom: 1.5rem !important; } #page-loader p { font-size: 1rem !important; } #page-loader .w-64 { width: 18rem !important; } #page-loader img { height: 5rem !important; } } /* Планшеты (768px - 1027px) */ @media (min-width: 768px) and (max-width: 1027px) { #page-loader .text-center { padding: 1.5rem; } #page-loader h1 { font-size: 2.5rem !important; margin-bottom: 2rem !important; } #page-loader p { font-size: 1.125rem !important; } #page-loader .w-64 { width: 24rem !important; } #page-loader img { height: 6rem !important; } #page-loader .w-3 { width: 1rem !important; height: 1rem !important; } } /* Ноутбуки (1028px - 1439px) */ @media (min-width: 1028px) and (max-width: 1439px) { #page-loader .text-center { padding: 2rem; } #page-loader h1 { font-size: 3rem !important; margin-bottom: 2rem !important; } #page-loader p { font-size: 1.25rem !important; } #page-loader .w-64 { width: 28rem !important; } #page-loader img { height: 7rem !important; } #page-loader .w-3 { width: 1.25rem !important; height: 1.25rem !important; } } /* Большие экраны (1440px+) */ @media (min-width: 1440px) { #page-loader .text-center { padding: 2.5rem; } #page-loader h1 { font-size: 3.5rem !important; margin-bottom: 2.5rem !important; } #page-loader p { font-size: 1.5rem !important; } #page-loader .w-64 { width: 32rem !important; } #page-loader img { height: 8rem !important; } #page-loader .w-3 { width: 1.5rem !important; height: 1.5rem !important; } } /* Дополнительные адаптивные стили для декоративных элементов */ @media (max-width: 479px) { #page-loader .absolute.top-1\/4 { width: 4rem !important; height: 4rem !important; } #page-loader .absolute.bottom-1\/4 { width: 5rem !important; height: 5rem !important; } #page-loader .absolute.top-1\/2 { width: 3rem !important; height: 3rem !important; } } @media (min-width: 480px) and (max-width: 767px) { #page-loader .absolute.top-1\/4 { width: 6rem !important; height: 6rem !important; } #page-loader .absolute.bottom-1\/4 { width: 7rem !important; height: 7rem !important; } #page-loader .absolute.top-1\/2 { width: 4rem !important; height: 4rem !important; } } /* Адаптивные стили для прогресс-бара */ @media (max-width: 319px) { #page-loader .bg-gray-700 { height: 0.375rem !important; } } @media (min-width: 320px) and (max-width: 479px) { #page-loader .bg-gray-700 { height: 0.5rem !important; } } @media (min-width: 480px) and (max-width: 767px) { #page-loader .bg-gray-700 { height: 0.625rem !important; } } @media (min-width: 768px) and (max-width: 1027px) { #page-loader .bg-gray-700 { height: 0.75rem !important; } } @media (min-width: 1028px) { #page-loader .bg-gray-700 { height: 1rem !important; } } /* Адаптивные стили для отступов между элементами */ @media (max-width: 479px) { #page-loader .mb-8 { margin-bottom: 1rem !important; } #page-loader .mb-6 { margin-bottom: 1rem !important; } #page-loader .mt-4 { margin-top: 0.75rem !important; } } @media (min-width: 480px) and (max-width: 767px) { #page-loader .mb-8 { margin-bottom: 1.5rem !important; } #page-loader .mb-6 { margin-bottom: 1.25rem !important; } #page-loader .mt-4 { margin-top: 1rem !important; } }