/* --- CORE SETTINGS --- */
body {
  background-color: #ffffff;
  color: #000000;
  overflow-x: hidden;
  cursor: default;
  -webkit-tap-highlight-color: transparent;
}

/* --- UTILIDADES DE TEXTO --- */
.text-reveal-wrapper {
  overflow: hidden;
  position: relative;
}

.text-reveal-content {
  transform: translateY(110%);
  transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
  display: block;
}

.is-visible .text-reveal-content {
  transform: translateY(0);
}

.fine-line {
  height: 1px;
  background-color: #000000;
  width: 100%;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 1.5s ease-in-out;
}

.is-visible .fine-line {
  transform: scaleX(1);
}

/* --- PARALLAX & IMÁGENES --- */
.parallax-section {
  background-attachment: fixed;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  height: 70vh;
  width: 100%;
  position: relative;
}

/* Ajuste para móviles donde fixed a veces falla */
@media (hover: none) {
  .parallax-section {
    background-attachment: scroll;
  }
}

.bw-filter {
  filter: grayscale(100%) contrast(120%) brightness(90%);
}

/* --- INTRO SCREEN --- */
#intro-screen {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: #ffffff;
  z-index: 100;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transition: transform 1.2s cubic-bezier(0.77, 0, 0.175, 1);
}

.intro-hidden {
  transform: translateY(-100%);
}

/* --- UI ELEMENTS --- */
.btn-minimal {
  background: transparent;
  border: 1px solid #000;
  color: #000;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  padding: 1rem 3rem;
  transition: all 0.4s ease;
  position: relative;
  overflow: hidden;
  font-size: 0.8rem;
  font-weight: 500;
}

.btn-minimal:hover {
  background: #000;
  color: #fff;
}

.btn-minimal-inverse {
  background: #000;
  color: #fff;
  border: 1px solid #000;
}
.btn-minimal-inverse:hover {
  background: #fff;
  color: #000;
}

/* --- LIGHTBOX (Optimized) --- */
#lightbox-modal {
  background-color: rgba(255, 255, 255, 0.98);
}

/* Corrección de rotación para llenar pantalla */
.rotate-mobile {
  transform: rotate(90deg);
  width: 100vh !important;
  height: 100vw !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: contain;
}

/* Ocultar flechas en móvil para fomentar swipe */
@media (max-width: 768px) {
  .mobile-hidden-arrows {
    display: none !important;
  }
}

/* --- VISIBILITY UTILITIES --- */
.section-hidden {
  display: none !important;
}

.fade-in-section {
  opacity: 0;
  transition: opacity 1s ease-out;
}
.fade-in-section.is-visible {
  opacity: 1;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
  width: 4px;
}
::-webkit-scrollbar-track {
  background: #fff;
}
::-webkit-scrollbar-thumb {
  background: #000;
}
