/* ── LOADING SCREEN REDISEÑADO ── */
.loading-screen {
  position: fixed;
  inset: 0;
  background: #0d0d0d;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 1s ease;
}
.loading-screen.hidden { opacity: 0; pointer-events: none; }

.loading-screen::before {
  content: '';
  position: absolute;
  width: 500px; height: 500px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(209,165,164,0.07) 0%, transparent 70%);
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  animation: pulse-bg 3.5s ease-in-out infinite;
}
@keyframes pulse-bg {
  0%, 100% { transform: translate(-50%,-50%) scale(1); opacity: .4; }
  50%       { transform: translate(-50%,-50%) scale(1.2); opacity: 1; }
}

.loading-content {
  position: relative;
  z-index: 2;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Anillo girator */
.logo-ring {
  position: relative;
  width: 90px; height: 90px;
  margin-bottom: 1.8rem;
}
.logo-ring svg {
  position: absolute;
  inset: 0;
  animation: spin 2.5s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

.logo-center {
  position: absolute;
  inset: 14px;
  border-radius: 50%;
  background: rgba(209,165,164,.1);
  border: 1px solid rgba(209,165,164,.2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'TAN Aegean', Georgia, serif;
  font-size: 20px;
  color: rgba(255,255,255,.85);
  letter-spacing: 2px;
}

/* Textos */
.loading-name {
  font-family: 'TAN Aegean', Georgia, serif;
  font-size: 1.1rem;
  color: rgba(255,255,255,.55);
  letter-spacing: 3px;
  margin-bottom: .25rem;
}
.loading-specialty {
  font-family: 'Montserrat', sans-serif;
  font-size: .6rem;
  color: rgba(209,165,164,.55);
  letter-spacing: 5px;
  text-transform: uppercase;
  margin-bottom: 2rem;
}

/* Barra fina */
.progress-container { width: 160px; }
.progress-bar {
  height: 1px;
  background: rgba(255,255,255,.1);
  border-radius: 1px;
  overflow: hidden;
  margin-bottom: .5rem;
}
.progress-fill {
  height: 100%;
  background: linear-gradient(90deg, rgba(209,165,164,.4), #d1a5a4);
  border-radius: 1px;
  transition: width .4s ease;
}
.progress-text {
  font-family: 'Montserrat', sans-serif;
  font-size: .65rem;
  color: rgba(209,165,164,.6);
  letter-spacing: 2px;
  text-align: right;
}

/* Puntos */
.loading-dots { display: flex; gap: 6px; justify-content: center; margin-top: 1.8rem; }
.loading-dot {
  width: 4px; height: 4px;
  border-radius: 50%;
  background: rgba(209,165,164,.3);
}
.loading-dot:nth-child(1) { animation: dot 1.4s infinite 0s; }
.loading-dot:nth-child(2) { animation: dot 1.4s infinite .2s; }
.loading-dot:nth-child(3) { animation: dot 1.4s infinite .4s; }
@keyframes dot {
  0%,100% { background: rgba(209,165,164,.2); transform: scale(1); }
  50%      { background: rgba(209,165,164,.8); transform: scale(1.4); }
}