:root {
  --azul: #1a5ea8;
  --azul-oscuro: #0f3d73;
  --naranja: #f28b1c;
  --claro: #f4f8fd;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

body {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  font-family: "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  background: linear-gradient(135deg, var(--claro) 0%, #dbe9f8 100%);
  color: var(--azul-oscuro);
  overflow-x: hidden;
  overflow-y: auto;
  position: relative;
}

/* Burbujas decorativas */
.burbuja {
  position: absolute;
  border-radius: 50%;
  opacity: .18;
  animation: flotar 9s ease-in-out infinite;
}
.b1 { width: 320px; height: 320px; background: var(--azul);   top: -90px;  left: -90px; }
.b2 { width: 220px; height: 220px; background: var(--naranja); bottom: -60px; right: 8%; animation-delay: 2s; }
.b3 { width: 140px; height: 140px; background: var(--azul);   bottom: 15%; left: 6%;  animation-delay: 4s; }

@keyframes flotar {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-22px); }
}

/* Tarjeta central */
.tarjeta {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 620px;
  padding: 44px 36px 28px;
  text-align: center;
  background: #fff;
  border-radius: 24px;
  border-top: 6px solid var(--naranja);
  box-shadow: 0 20px 50px rgba(15, 61, 115, .18);
  animation: aparecer .8s ease both;
}

@keyframes aparecer {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}

.logo {
  max-width: 100%;
  width: 260px;
  height: auto;
  margin-bottom: 22px;
}

/* Engranes */
.engranes {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: 2px;
  margin-bottom: 10px;
}
.engrane { display: block; }
.engrane.grande { width: 58px; color: var(--azul);    animation: girar 6s linear infinite; }
.engrane.chico  { width: 38px; color: var(--naranja); animation: girar 4s linear infinite reverse; margin-bottom: 4px; }

@keyframes girar { to { transform: rotate(360deg); } }

h1 {
  font-size: 2.1rem;
  font-weight: 700;
  margin-bottom: 14px;
}
h1 span { color: var(--naranja); }

.mensaje {
  font-size: 1.05rem;
  line-height: 1.6;
  color: #4a6585;
  margin-bottom: 26px;
}

/* Barra de progreso animada */
.barra {
  width: 100%;
  height: 10px;
  background: #e3edf8;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 24px;
}
.progreso {
  width: 40%;
  height: 100%;
  border-radius: 10px;
  background: linear-gradient(90deg, var(--azul), var(--naranja));
  animation: mover 2.2s ease-in-out infinite;
}
@keyframes mover {
  0%   { transform: translateX(-100%); }
  100% { transform: translateX(260%); }
}

footer {
  font-size: .85rem;
  color: #8aa0bb;
}

@media (max-width: 480px) {
  .tarjeta { padding: 32px 20px 22px; }
  h1 { font-size: 1.7rem; }
  .logo { width: 210px; }
}
