* {
  user-select: none;
  -webkit-user-select: none;
}

#welcome-overlay {
  transition: opacity 0.5s ease, visibility 0.5s;
}

/* Grilla del Mosaico de Bienvenida (CCT) */
.cct-mosaic {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(3, 1fr);
  gap: 1rem;
  height: 100vh;
  width: 100vw;
  padding: 1.5rem;
  box-sizing: border-box;
}

.tile-sala    { grid-column: 1 / 3; grid-row: 1 / 3; }
.tile-fachada { grid-column: 3 / 4; grid-row: 1 / 2; }
.tile-foro    { grid-column: 4 / 5; grid-row: 1 / 3; }
.tile-mirador { grid-column: 3 / 4; grid-row: 2 / 3; }
.tile-lobby   { grid-column: 1 / 3; grid-row: 3 / 4; }
.tile-foro360 { grid-column: 3 / 5; grid-row: 3 / 4; }

/* Transición suave para la tarjeta estelar */
#featured-card {
  transition: opacity 0.4s ease-in-out;
}

/* Botones e Interfaz Táctil para Encuestas */
.touch-btn-cct {
  min-height: 52px;
  padding: 10px 14px;
  border: 1px solid rgba(51, 65, 85, 0.8);
  border-radius: 14px;
  background-color: rgba(15, 23, 42, 0.6);
  font-size: 0.875rem;
  font-weight: 600;
  color: #cbd5e1;
  transition: all 0.15s ease-in-out;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.touch-btn-cct:active {
  transform: scale(0.96);
}

.touch-btn-cct.selected {
  border-color: #EBB02D;
  background-color: rgba(235, 176, 45, 0.15);
  color: #EBB02D;
  box-shadow: 0 0 12px rgba(235, 176, 45, 0.2);
}

.rate-btn-cct {
  height: 46px;
  border: 1px solid rgba(51, 65, 85, 0.8);
  background-color: rgba(15, 23, 42, 0.6);
  border-radius: 12px;
  font-size: 1rem;
  font-weight: bold;
  color: #94a3b8;
  cursor: pointer;
  transition: all 0.15s ease;
}

.rate-btn-cct:active {
  transform: scale(0.95);
}

.rate-btn-cct.selected {
  background-color: #EBB02D;
  color: #0f172a;
  border-color: #EBB02D;
}

/* Renderizado nítido y suavizado para el póster del pendón al reducirse */
aside img {
  image-rendering: -webkit-optimize-contrast;
  backface-visibility: hidden;
  transform: translateZ(0);
}