/* Custom styles for elements not covered by Tailwind */
.bg-gradient-radial {
    background: radial-gradient(circle at 30% 50%, rgba(220, 38, 38, 0.08), transparent);
}

.dark .bg-gradient-radial {
    background: radial-gradient(circle at 30% 50%, rgba(220, 38, 38, 0.1), transparent);
}

/* Theme button active states */
.theme-btn.active {
    background-color: white;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    color: #1e293b;
}

.dark .theme-btn.active {
    background-color: #334155;
    color: white;
}

/* Smooth transitions */
* {
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 300ms;
}

/* Star rating styles */
.star-filled {
    color: #fbbf24;
    fill: currentColor;
}

.star-empty {
    color: #d1d5db;
}

.dark .star-empty {
    color: #4b5563;
}

/* Hover effects */
.hover-scale:hover {
    transform: scale(1.02);
}

.hover-shadow:hover {
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}

/* Responsive text sizing */
@media (max-width: 640px) {
    .text-responsive-xl {
        font-size: 1.25rem;
        line-height: 1.75rem;
    }
}

@media (min-width: 640px) {
    .text-responsive-xl {
        font-size: 1.5rem;
        line-height: 2rem;
    }
}

/* Loading animation for dynamic content */
.loading {
    opacity: 0.5;
    pointer-events: none;
}

/* Sponsored badge animation */
@keyframes pulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: .8;
    }
}

.sponsored-badge {
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}