html {
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Global utility for smooth interactions */
* {
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

/* Base body style for better text rendering */
body {
    background-color: #fafbfc;
    /* slightly warmer/cleaner than slate-50 */
}

/* Horizontal Scrolling Utilities (if used) */
.scrolling-wrapper {
    display: flex;
    overflow-x: auto;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    /* Firefox */
}

.scrolling-wrapper::-webkit-scrollbar {
    display: none;
    /* Chrome, Safari, Opera */
}

.scrolling-content {
    display: flex;
    gap: 1.5rem;
    width: max-content;
}

/* SPA Section Transitions */
.section-content {
    display: none;
    /* Hidden by default */
    animation: fadeIn 0.3s ease-in-out;
}

.section-content.active {
    display: block;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Custom Scrollbar for inner containers */
.custom-scrollbar::-webkit-scrollbar {
    width: 6px;
}

.custom-scrollbar::-webkit-scrollbar-track {
    background: #f1f5f9;
}

.custom-scrollbar::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 3px;
}

.custom-scrollbar::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}