/*
  Boot loader of ventuspos.com (spec §11 "Arranque"). CSS only: visible before the JS bundle
  runs and removed by React on the first commit (src/lib/bootLoader.js). Served same-origin so the
  CSP keeps `style-src 'self'` without hashes; like the main stylesheet it blocks the first paint,
  so the loader is on screen from the first frame. Brand palette only (spec §11).
*/
#boot-loader {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: grid;
  place-items: center;
  overflow-y: auto;
  padding: 24px 16px;
  background: #f8f7f7;
  color: #01045e;
  font-family: Poppins, Arial, Helvetica, sans-serif;
  text-align: center;
}
.vb-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  max-width: 360px;
}
.vb-word {
  margin: 0;
  font-size: 28px;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1;
}
.vb-word span {
  color: #0191c0;
}
.vb-bar {
  position: relative;
  width: 180px;
  height: 4px;
  border-radius: 4px;
  background: #e8e6e6;
  overflow: hidden;
}
.vb-bar span {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 40%;
  border-radius: 4px;
  background: #0191c0;
  animation: vb-move 1.3s ease-in-out infinite;
}
.vb-slow {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  color: rgba(1, 4, 94, 0.8);
  visibility: hidden;
  animation: vb-show 0s linear 15s forwards;
}
.vb-slow p,
.vb-noscript p {
  margin: 0;
  line-height: 1.6;
}
.vb-noscript {
  display: flex;
  flex-direction: column;
  gap: 12px;
  color: rgba(1, 4, 94, 0.8);
}
.vb-noscript a {
  color: #025f9d;
  font-weight: 600;
  text-decoration: underline;
}
.vb-reload {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 10px 22px;
  border-radius: 12px;
  background: #025f9d;
  color: #ffffff;
  font-weight: 600;
  text-decoration: none;
}
.vb-reload:focus-visible,
.vb-noscript a:focus-visible {
  outline: 3px solid #0191c0;
  outline-offset: 2px;
}
.vb-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
@keyframes vb-move {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(260%);
  }
}
@keyframes vb-show {
  to {
    visibility: visible;
  }
}
@media (prefers-reduced-motion: reduce) {
  .vb-bar span {
    animation: none;
    left: 30%;
  }
}
/* JavaScript disabled: nothing is loading, so only the logo and the <noscript> text remain. */
@media (scripting: none) {
  .vb-bar,
  .vb-slow,
  .vb-sr {
    display: none;
  }
}
