body {
    background-color: #FFFFFF;
    color: #2F2F2F;
    -webkit-font-smoothing: antialiased;
}

/* Typography Utilities */
h1, h2, h3, h4, h5, h6 {
    font-family: 'Montserrat', sans-serif;
    letter-spacing: -0.02em;
}

/* Carousel Transitions */
.carousel-slide {
    transition: opacity 1200ms ease-in-out, transform 8000ms ease-out;
    opacity: 0;
    z-index: 0;
}
.carousel-slide.active {
    opacity: 1;
    z-index: 10;
    transform: scale(1.03); 
}

/* Premium Gradient Text */
.text-gradient {
    background: linear-gradient(135deg, #0D2B45 0%, #2EC4F1 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-fill-color: transparent;
    color: transparent;
}

/* Glassmorphism tuned for Premium look */
.glass-panel {
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.8);
}

.glass-panel-dark {
    background: rgba(13, 43, 69, 0.85);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

/* 100vh Hero Adjustment */
@media (min-height: 800px) and (min-width: 1024px) {
     .hero-carousel-height {
         height: 85vh;
     }
}

.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

/* Reveal Animations */
.reveal {
    opacity: 0;
    transform: translateY(20px);
    transition: all 800ms cubic-bezier(0.4, 0, 0.2, 1);
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-fade-in {
    animation: fadeIn 1000ms ease forwards;
}

.animate-fade-in-up {
    animation: fadeInUp 1000ms ease forwards;
}
