body { 
    font-family: 'Roboto', sans-serif; 
    color: #1a1a1a; 
}

h1, h2, h3, h4, h5, h6 { 
    font-family: 'Montserrat', sans-serif; 
}

/* Navbar */
#navbar { 
    transition: opacity 0.4s ease, transform 0.4s ease, background-color 0.3s ease, box-shadow 0.3s ease; 
}
.nav-hidden { 
    opacity: 0; 
    transform: translateY(-100%); 
    pointer-events: none; 
}
.nav-visible { 
    opacity: 1; 
    transform: translateY(0); 
    pointer-events: auto; 
}

/* Hero Slider */
.slider-img { 
    position: absolute; 
    inset: 0; 
    width: 100%; 
    height: 100%; 
    object-fit: cover; 
    opacity: 0; 
    transition: opacity 1.5s ease-in-out; 
}
.slider-img.active { 
    opacity: 1; 
}

/* Speakers */
.speaker-overlay { 
    opacity: 0; 
    transition: all 0.4s ease; 
    background: linear-gradient(to top, rgba(226,57,62,0.9) 0%, rgba(226,57,62,0.4) 60%, transparent 100%); 
}
.speaker-card:hover .speaker-overlay { 
    opacity: 1; 
}
.speaker-card:hover img { 
    transform: scale(1.05); 
}
.speaker-card img { 
    transition: transform 0.5s ease; 
}

/* Schedule / Programa */
.schedule-item { 
    border-left: 2px solid #e0e0e0; 
}
.schedule-item::before { 
    content: ''; 
    position: absolute; 
    left: -7px; 
    top: 6px; 
    width: 12px; 
    height: 12px; 
    background: #E2393E; 
    border-radius: 50%; 
    border: 2px solid #fff; 
    z-index: 2; 
}
.schedule-break::before { 
    background: #9e9e9e; 
    width: 10px; 
    height: 10px; 
    left: -6px; 
    top: 8px; 
}

/* Scroll Reveal */
.reveal { 
    opacity: 0; 
    transform: translateY(20px); 
    transition: all 0.6s ease-out; 
}
.reveal.active { 
    opacity: 1; 
    transform: translateY(0); 
}

/* Lightbox */
.lightbox-modal { 
    opacity: 0; 
    pointer-events: none; 
    transition: opacity 0.3s ease; 
}
.lightbox-modal.open { 
    opacity: 1; 
    pointer-events: auto; 
}

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