body { font-family: 'Montserrat', sans-serif; background-color: #F8F9FA; color: #1C1C1C; overflow-x: hidden; }

/* Smooth Reveal Animation */
.reveal { opacity: 0; transform: translateY(30px); transition: all 1s cubic-bezier(0.16, 1, 0.3, 1); }
.reveal.active { opacity: 1; transform: translateY(0); }

.delay-100 { transition-delay: 0.1s; }
.delay-200 { transition-delay: 0.2s; }
.delay-300 { transition-delay: 0.3s; }
.delay-400 { transition-delay: 0.4s; }

/* Technical Background Grids */
.bg-grid-tech {
    background-size: 40px 40px;
    background-image: 
        linear-gradient(to right, rgba(0, 0, 0, 0.05) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(0, 0, 0, 0.05) 1px, transparent 1px);
}
.bg-grid-dark {
    background-size: 40px 40px;
    background-image: 
        linear-gradient(to right, rgba(255, 255, 255, 0.05) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
}

/* Blueprint Mask Reveal */
.blueprint-container { position: relative; overflow: hidden; cursor: pointer; }
.blueprint-layer { position: absolute; inset: 0; background: url('../images/projeto-execucao/projeto-execucao-blueprint.webp') center/cover no-repeat; opacity: 1; transition: opacity 0.8s ease, filter 0.8s ease; }
.real-layer { position: absolute; inset: 0; background: url('../images/projeto-execucao/projeto-execucao-real.webp') center/cover no-repeat; opacity: 0; transition: opacity 0.8s ease, transform 0.8s ease; transform: scale(1.05); }
.blueprint-container:hover .real-layer { opacity: 1; transform: scale(1); }
.blueprint-container:hover .blueprint-layer { opacity: 0; filter: blur(4px); }

/* Custom Scrollbar */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #F8F9FA; }
::-webkit-scrollbar-thumb { background: #003984; border-radius: 4px; }

/* Masked Text Reveal */
.text-mask { overflow: hidden; display: inline-block; vertical-align: bottom; }
.text-mask-inner { display: block; transform: translateY(110%); opacity: 0; transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1), opacity 1.2s ease; }
.reveal.active .text-mask-inner { transform: translateY(0); opacity: 1; }

/* Mobile menu */
#mobile-menu { transition: max-height 0.3s ease-out; max-height: 0; overflow: hidden; }
#mobile-menu.open { max-height: 400px; }
