:where([class^="ri-"])::before {
content: "\f3c2";
}
.modal-overlay {
backdrop-filter: blur(4px);
}
.skeleton {
background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
background-size: 200% 100%;
animation: loading 1.5s infinite;
}
@keyframes loading {
0% {
background-position: 200% 0;
}
100% {
background-position: -200% 0;
}
}
.skeleton-card {
background: white;
border-radius: 1rem;
padding: 1rem;
box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
}
.skeleton-line {
height: 0.75rem;
margin-bottom: 0.5rem;
border-radius: 0.25rem;
}
.skeleton-line.short {
width: 60%;
}
.skeleton-line.medium {
width: 80%;
}
.skeleton-line.long {
width: 100%;
}
.skeleton-avatar {
width: 2.5rem;
height: 2.5rem;
border-radius: 50%;
}
.skeleton-image {
width: 100%;
height: 10rem;
border-radius: 0.75rem;
}
.skeleton-button {
height: 2.5rem;
width: 6rem;
border-radius: 0.5rem;
}
.scroll-to-top {
position: fixed;
bottom: 1rem;
right: 1rem;
z-index: 40;
opacity: 0;
visibility: hidden;
transform: translateY(20px);
transition: all 0.3s ease;
}
@media (min-width: 640px) {
.scroll-to-top {
bottom: 1.5rem;
right: 1.5rem;
}
}
.scroll-to-top.visible {
opacity: 1;
visibility: visible;
transform: translateY(0);
}
.scroll-to-top:hover {
transform: translateY(-2px);
box-shadow: 0 10px 25px rgba(59, 130, 246, 0.3);
}

/* Стили для анимаций */
.animate-in.fade-in { opacity: 1; transform: translateY(0); }
.animate-in.fade-in-left { opacity: 1; transform: translateX(0); }
.animate-in.fade-in-right { opacity: 1; transform: translateX(0); }
.animate-in.fade-in-up { opacity: 1; transform: translateY(0); }
.animate-in.scale-in { opacity: 1; transform: scale(1); }

.fade-in, .fade-in-left, .fade-in-right, .fade-in-up, .scale-in {
opacity: 0;
transition: all 0.8s ease-out;
}

.fade-in { transform: translateY(30px); }
.fade-in-left { transform: translateX(-30px); }
.fade-in-right { transform: translateX(30px); }
.fade-in-up { transform: translateY(30px); }
.scale-in { transform: scale(0.95); }

.scale-90 { transform: scale(0.9); }

@media (max-width: 480px) {
.max-w-6xl { max-width: 100%; }
.px-4 { padding-left: 0.75rem; padding-right: 0.75rem; }
.text-2xl { font-size: 1.25rem; line-height: 1.75rem; }
.text-3xl { font-size: 1.5rem; line-height: 2rem; }
.text-4xl { font-size: 1.75rem; line-height: 2.25rem; }
.text-5xl { font-size: 2rem; line-height: 2.5rem; }
.py-10 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
.py-12 { padding-top: 2rem; padding-bottom: 2rem; }
.py-16 { padding-top: 2.5rem; padding-bottom: 2.5rem; }
.py-20 { padding-top: 3rem; padding-bottom: 3rem; }
.gap-6 { gap: 0.75rem; }
.gap-8 { gap: 1rem; }
.gap-10 { gap: 1.25rem; }
.gap-12 { gap: 1.5rem; }
.min-h-\[80vh\] { min-height: 70vh; }
}

.lang-icon {
  display: inline-block;
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
  object-fit: cover;
  vertical-align: middle;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}