/* Scroll Reveal Base */
.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
    will-change: opacity, transform;
}

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

.reveal.slide-in-right {
    transform: translateX(50px);
}
.reveal.slide-in-right.active {
    transform: translateX(0);
}

.reveal.slide-in-left {
    transform: translateX(-50px);
}
.reveal.slide-in-left.active {
    transform: translateX(0);
}

/* Stagger children if needed */
.reveal-container.active .reveal-item:nth-child(1) { transition-delay: 0.1s; }
.reveal-container.active .reveal-item:nth-child(2) { transition-delay: 0.2s; }
.reveal-container.active .reveal-item:nth-child(3) { transition-delay: 0.3s; }
.reveal-container.active .reveal-item:nth-child(4) { transition-delay: 0.4s; }

/* Interactive Elements Hover Polish */
.btn, .service-link, .contact-submit-btn, .pricing-btn, .theme-toggle {
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.btn:hover, .contact-submit-btn:hover {
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 14px 28px rgba(255, 123, 0, 0.35);
}

/* Base Card Transitions */
.tech-card, .skill-card, .service-slide-content, .pricing-card, .mock-ticket-card {
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), 
                box-shadow 0.4s ease, 
                border-color 0.4s ease;
}

/* Theme Toggle Button Hover */
.theme-toggle:hover {
    transform: scale(1.1) rotate(15deg);
    border-color: var(--primary-orange, #ff7b00);
    box-shadow: 0 8px 20px rgba(255, 123, 0, 0.25);
}

/* Graceful Reduced Motion (Preserves interactive UI transitions & Swiper functionality) */
@media (prefers-reduced-motion: reduce) {
    .reveal {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}
