body {
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
    background-color: #f8fafc; /* Slate-50 */
    font-family: 'Inter', sans-serif;
}

body.loaded {
    opacity: 1;
}

/* Custom interactive classes */
.hover-scale {
    transition: transform 0.3s ease;
}
.hover-scale:hover {
    transform: scale(1.02);
}

.gradient-text {
    background: linear-gradient(90deg, #2563eb, #06b6d4);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* Loading animation for images */
.img-loading {
    background: #e2e8f0;
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0% { background-color: #e2e8f0; }
    50% { background-color: #cbd5e1; }
    100% { background-color: #e2e8f0; }
}
