/* -------------------------------------------------------------
   NEXUS STUDIO - Light Theme Only (Prettier Native CSS)
------------------------------------------------------------- */

/* Grid Background Pattern with Klein Blue gridlines */
.grid-background {
    background-size: 40px 40px;
    background-image: 
        linear-gradient(to right, rgba(0, 47, 167, 0.04) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(0, 47, 167, 0.04) 1px, transparent 1px);
    mask-image: radial-gradient(circle at 50% 50%, black, transparent 75%);
    -webkit-mask-image: radial-gradient(circle at 50% 50%, black, transparent 75%);
}

/* Horizontal Tech Marquee Animation */
@keyframes marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

.animate-marquee {
    display: inline-flex;
    animation: marquee 25s linear infinite;
}

.animate-marquee:hover {
    animation-play-state: paused;
}

/* Modal Overlay Toggle states */
.modal-overlay.active {
    opacity: 1;
    pointer-events: all;
}

.modal-overlay.active .modal-content {
    transform: translateY(0);
}

/* Scroll Reveal animations */
.reveal-item {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

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

/* Custom Tag Selection Styling for Estimator */
.estimator-tag.active {
    background-color: #002fa7;
    color: #ffffff;
    border-color: #002fa7;
}

/* Bilingual CN/EN Language Switching Rules */
body:not(.lang-en-active) .lang-en {
    display: none !important;
}

body.lang-en-active .lang-zh {
    display: none !important;
}
